-
Notifications
You must be signed in to change notification settings - Fork 15
Price graph #1
Copy link
Copy link
Open
Description
Plotted out HackerGold price graph.
Looks ok
Code - Notebook:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import datetime
start_date = datetime.datetime.now()
end_date = datetime.datetime.now() + datetime.timedelta(days=90)
class milestones:
p1 = 1476972000 # P1: GMT: 20-Oct-2016 14:00 => The Sale Starts
p2 = 1478181600 # P2: GMT: 03-Nov-2016 14:00 => 1st Price Ladder
p3 = 1479391200 # P3: GMT: 17-Nov-2016 14:00 => Price Stable,
# Hackathon Starts
p4 = 1480600800 # P4: GMT: 01-Dec-2016 14:00 => 2nd Price Ladder
p5 = 1481810400 # P5: GMT: 15-Dec-2016 14:00 => Price Stable
p6 = 1482415200 # P6: GMT: 22-Dec-2016 14:00 => Sale Ends, Hackathon Ends
BASE_PRICE = 200
def price(now):
if now < milestones.p1:
return 0;
if now >= milestones.p1 and now < milestones.p2:
return BASE_PRICE;
if now >= milestones.p2 and now < milestones.p3:
days_in = 1 + (now - milestones.p2) // (60 * 60 *24);
return BASE_PRICE - days_in * 25 // 7
if now >= milestones.p3 and now < milestones.p4:
return BASE_PRICE // 4 * 3;
if now >= milestones.p4 and now < milestones.p5:
days_in = 1 + (now - milestones.p4) // (60 * 60 *24);
return (BASE_PRICE // 4 * 3) - days_in * 25 // 7; # daily decrease 3.5
if now >= milestones.p5 and now < milestones.p6:
return BASE_PRICE // 2;
if now >= milestones.p6:
return 0;
print("Start date {}, end date {}".format(start_date, end_date))
# Step one day at a time
y = []
x_range = []
current = start_date
while current < end_date:
x_range.append(current)
now = current.timestamp()
p = int(price(now))
assert type(p) == int
y.append(p)
current += datetime.timedelta(days=1)
line, = plt.plot(x_range, y, "--", linewidth=2)
plt.ylim(0, 200)
plt.show()
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
