def main(argv): l_event_strategies = [] l_event_strategies.append(es.UnderThreshold('sp5002012', 'actual_close', 9)) #l_event_strategies.append(es.RelativeStrength('sp5002008', 'close', -5, 'SPY', 2)) #l_event_strategies.append(es.DailyChange('sp5002008', 'close', -10, '%')) #l_event_strategies.append(es.RelativeStrengthWithVolume('sp5002008', 'close', -5, 'SPY', 2)) dt_start = dt.datetime(2008, 1, 1) dt_end = dt.datetime(2009, 12, 31) print 'AnalysisEngine : Events to Analyze:' i = 0 for e in l_event_strategies: i += 1 print 'AnalysisEngine : %00d - %s' % (i, e.getName()) print print 'AnalysisEngine : Profiling Events' ep.profile_events(dt_start, dt_end, l_event_strategies) print print 'AnalysisEngine : Simulating Orders' ms.simulate_orders(50000, l_event_strategies) print print 'AnalysisEngine : Analyzing Results' pa.analize_results('$SPX', l_event_strategies, dt_start, dt_end)
def main(argv): # parameters s_list_name = "sp5002012" dt_start = dt.datetime(2008, 1, 1) dt_end = dt.datetime(2009, 12, 31) s_bench_sym = "SPY" i_initial_cash = 100000 print "TechInv : Bollinger Event Study" # read market data dataobj = da.DataAccess("Yahoo") ls_symbols = dataobj.get_symbols_from_list(s_list_name) ls_symbols.append(s_bench_sym) d_data = get_symbol_data(dataobj, ls_symbols, dt_start, dt_end) # create the object that implements the strategy event_strategy = es.BollingerRelWeakness(s_list_name, d_data, i_initial_cash, 20) df_events, i_event_counter = event_strategy.find_events(ls_symbols, "close", 2.0, s_bench_sym, 1.3) print "EventProfiler : For the %1.1f %s event with the components of %s, we find %d events. Date Range = (%s) to (%s)." % ( event_strategy.f_size, event_strategy.s_feature, event_strategy.s_list_name, i_event_counter, dt_start, dt_end, ) print "TechInv : Profiling Events" ep.profile_event(event_strategy, ls_symbols, dt_start, dt_end, df_events, 100, 5) print "" ms.simulate_market(event_strategy) event_strategy.s_bench_sym = "$SPX" print "" pa.analyze_event(event_strategy, dt_start, dt_end)