Beispiel #1
0
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)   
Beispiel #2
0
 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')
Beispiel #3
0
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')
Beispiel #4
0
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)
Beispiel #5
0
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')