Esempio n. 1
0
def generate_random_perioddata(dt):
    a = random()*50+50
    b = random()*50+50
    c = random()*50+50
    d = random()*50+50
    retval = PeriodData(date=dt,period=Period.DAILY, stock="AAPL", open=a,high=max((a,b,c,d)),low=min(a,b,c,d),close=d,volume=100000,adjustedClose=d)
    return retval

def generate_random_series():
    retval = list()
    dt = datetime(year=2015,month=1,day=1)
    for i in range(1000):
        dt = dt + timedelta(days=1)
        retval.append(generate_random_perioddata(dt))
    return retval

# Here begins the example code

# Track the adjusted close and 20 period simple moving average 
close = AdjustedClose()
sma = SimpleMovingAverage(metric=close, period=20)

print "Date,SMA"

for periodData in generate_random_series():
    close.handle(periodData)
    sma.handle(periodData)
    
    if sma.ready() and close.ready():
        print "%s,%f" % (periodData.date, sma.value())
Esempio n. 2
0
 def __init__(self):
     Check.__init__(self)
     # adjusted close accounts for splits and dividends
     self.close = AdjustedClose()
     self.ma = SimpleMovingAverage(metric=self.close, period=200)