Skip to content

Price graph #1

@miohtama

Description

@miohtama

Plotted out HackerGold price graph.

Looks ok

screen shot 2016-10-15 at 13 25 14

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()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions