Package QSTK :: Package csvconverter :: Module StrategyDataModel
[hide private]
[frames] | no frames]

Source Code for Module QSTK.csvconverter.StrategyDataModel

 1  import tables as pt #@UnresolvedImport 
 2  import time 
 3      
 
 4  #I DON'T THINK THIS FILE IS NEEDED ANYMORE SHREYAS JOSHI 22 JUN 2010    
 
 5      
 
6 -class StrategyDataModel(pt.IsDescription):
7 symbol = pt.StringCol(30) #30 char string; Ticker 8 exchange = pt.StringCol(10) #10 char string; NYSE, NASDAQ, etc. 9 adj_high = pt.Float32Col() 10 adj_low = pt.Float32Col() 11 adj_open = pt.Float32Col() 12 adj_close = pt.Float32Col() 13 close = pt.Float32Col() 14 volume = pt.Int32Col() 15 timestamp = pt.Time64Col() 16 date = pt.Int32Col() 17 interval = pt.Time64Col() 18
19 - def __init__(selfparams):
20 print "In the constructor"
21 #constructor done 22
23 -def generateDataFile():
24 import random 25 random.seed(1) 26 #86400 seconds in a day 27 stocks = [] 28 for i in range(30): #stocks 29 stocks.append('stock%.6i'%i) 30 31 h5f = pt.openFile('defaultPytablesFile.h5', mode = "w") 32 group = h5f.createGroup("/", 'StrategyData') 33 table = h5f.createTable(group, 'StrategyData', StrategyDataModel) 34 row = table.row 35 36 for i in range(100): #timestamps 37 j = 0 38 for stock in stocks: 39 adjOpen = random.random() * random.randint(1,100) 40 adjClose = random.random() * random.randint(1,100) 41 row['exchange'] = 'NYSE' 42 row['symbol'] = stock 43 row['adj_open'] = adjOpen 44 row['adj_close'] = adjClose 45 row['adj_high'] = max(adjOpen,adjClose) * random.randint(1,5) 46 row['adj_low'] = min(adjOpen,adjClose) / random.randint(1,5) 47 row['close'] = adjClose 48 row['volume'] = random.randint(1000,10000) 49 row['timestamp'] = i*86400 50 row['when_available'] = i*86400 51 row['interval'] = 86400 52 row.append() 53 table.flush() 54 if i%10==0: 55 print i, 56 if i%100==0: 57 print '' 58 h5f.close()
59 #generateDataFile() 60