import datetime as dt from quant_sim.simulator import Simulator from quant_sim.sources.yeod_source import YEOD_Source from quant_sim.examples.example_algo import * from quant_sim.reporting.report_library import CSV_Master_Report, CSV_ByStrat, Cheetah_Report # Define Constants start_dt = dt.datetime(1993, 2, 1) end_dt = dt.datetime(2013, 9, 6) balance = 10000 DATA = '/mnt/share2/LanahanMain/code_projects/data' DATA = 'J:/LanahanMain/code_projects/data' REPORT_DIR = 'J:/LanahanMain/code_projects/quant_sim/quant_sim/reporting/reports/' # Define Data Sources data_source = YEOD_Source(DATA + '/eod_data/') # Initialize Simulation sim = Simulator(start_dt, end_dt) # Add Data sim.add_data(('SPY', data_source.load('SPY'))) sim.add_data(('IBM', data_source.load('IBM'))) sim.add_data(('^GSPC', data_source.load('^GSPC'))) sim.add_data(('^VIX', data_source.load('^VIX'))) # Initialize calendar to simulate one sim.set_calendar(data_source.load('SPY').keys()) # Add algorithms to simulate sim.add_algo([
def __getitem__(self, key): if key in self.data and self.now_dt in self.data[key]: return self.data[key][self.now_dt] elif key in self.data and self.now_dt not in self.data[key]: raise Date_Not_In_History_Error( "'%s' not in %s data" % (self.now_dt.strftime('%Y-%m-%d'), key)) else: raise SID_Error("'%s' not in data" % (key)) if __name__ == '__main__': from quant_sim.sources.yeod_source import YEOD_Source DATA = 'J:/LanahanMain/code_projects/data' data_source = YEOD_Source(DATA + '/eod_data/') env = Environment() env.set_calendar(data_source.load('SPY').keys()) env.add_data('SPY', data_source.load('SPY')) env.update(dt.datetime(1993, 2, 9)) print 0, env['SPY'] print 1, env.get('SPY', 1) print 2, env.get('SPY', 2) #print env.get('SPY','2013-08-01','2013-07-29') #env.data['SPY'].pop(dt.datetime(2013,6,19)) #print env.get('SPY','2013-06-17','2013-06-21') print print "*** testing iteration ****" for i, d in enumerate(env): print i + 1, d
if left < right: dates = self.calendar[left:right+1] return [self.data[sid].get(d,None) for d in dates] def __getitem__(self, key): if key in self.data and self.now_dt in self.data[key]: return self.data[key][self.now_dt] elif key in self.data and self.now_dt not in self.data[key]: raise Date_Not_In_History_Error("'%s' not in %s data"%(self.now_dt.strftime('%Y-%m-%d'), key)) else: raise SID_Error("'%s' not in data"%(key)) if __name__ == '__main__': from quant_sim.sources.yeod_source import YEOD_Source DATA = 'J:/LanahanMain/code_projects/data' data_source = YEOD_Source(DATA+'/eod_data/') env= Environment() env.set_calendar(data_source.load('SPY').keys()) env.add_data('SPY', data_source.load('SPY')) env.update(dt.datetime(1993,2,9)) print 0,env['SPY'] print 1,env.get('SPY',1) print 2,env.get('SPY',2) #print env.get('SPY','2013-08-01','2013-07-29') #env.data['SPY'].pop(dt.datetime(2013,6,19)) #print env.get('SPY','2013-06-17','2013-06-21') print print "*** testing iteration ****" for i,d in enumerate(env): print i+1,d
import datetime as dt from quant_sim.simulator import Simulator from quant_sim.sources.yeod_source import YEOD_Source from quant_sim.examples.example_algo import * from quant_sim.reporting.report_library import CSV_Master_Report,CSV_ByStrat, Cheetah_Report # Define Constants start_dt = dt.datetime(1993,2,1) end_dt = dt.datetime(2013,9,6) balance = 10000 DATA = '/mnt/share2/LanahanMain/code_projects/data' DATA = 'J:/LanahanMain/code_projects/data' REPORT_DIR = 'J:/LanahanMain/code_projects/quant_sim/quant_sim/reporting/reports/' # Define Data Sources data_source = YEOD_Source(DATA+'/eod_data/') # Initialize Simulation sim = Simulator(start_dt, end_dt) # Add Data sim.add_data(('SPY', data_source.load('SPY'))) sim.add_data(('IBM', data_source.load('IBM'))) sim.add_data(('^GSPC', data_source.load('^GSPC'))) sim.add_data(('^VIX', data_source.load('^VIX'))) # Initialize calendar to simulate one sim.set_calendar(data_source.load('SPY').keys()) # Add algorithms to simulate sim.add_algo([