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 studyEvents(self): logger.debug("Finding events") df_events = self.findEventsAndGenerateOrders() logger.debug("Creating study") ep.eventprofiler(df_events, self.df_price, i_lookback=20, i_lookforward=20, s_filename=self.profilerOutFile, b_market_neutral=True, b_errorbars=True, s_market_sym='SPY')
def profile_threshold_actual_close_events(ls_symbols, d_data, actual_close_threshold, filename): df_events = find_price_drop_events(ls_symbols, d_data, actual_close_threshold) ep.eventprofiler(df_events, d_data, i_lookback=20, i_lookforward=20, s_filename=filename, b_market_neutral=True, b_errorbars=True, s_market_sym='SPY')
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)
import MyEvents2 as ev import datetime as dt import EventProfiler as ep import numpy as np #symbols = ['BFRE','ATCS','RSERF','GDNEF','LAST','ATTUF','JBFCF','CYVA','SPF','XPO','EHECF','TEMO','AOLS','CSNT','REMI','GLRP','AIFLY','BEE','DJRT','CHSTF','AICAF'] symbols = np.loadtxt('symbol-set2-wohyphen.txt', dtype='S10', comments='#') #ARVIND: use ABX for testing #symbols = ['ABX'] #symbols = symbols[0:20] #ARVIND: changed the start and end day to include data during the non-recession period startday = dt.datetime(2008, 1, 1) #startday = dt.datetime(2004,1,1) endday = dt.datetime(2008, 12, 31) eventMatrix = ev.findEvents(symbols, startday, endday, verbose=True) #print eventMatrix #print 'eventMatrix call ended' #print len(eventMatrix) eventProfiler = ep.EventProfiler(eventMatrix, startday, endday, lookback_days=20, lookforward_days=20, verbose=True) #ARVIND: i need plotMarketNeutral to be False eventProfiler.study(filename="MyEventStudy2.pdf",\ plotErrorBars=True,\ plotMarketNeutral=False,\ plotEvents=False,\ marketSymbol='SPY')