Example #1
0
    def SimpleMA(seriesName, sig_index, short_win, long_win):
        
        #Read in data and setup object
        dbpath = "/home/phcostello/Documents/Data/FinanceData.sqlite"
        the_data_reader = dr.DBReader(dbpath)
        series_data = the_data_reader.readSeries(seriesName)
        
        d1 = datetime.datetime(2009,6,1).date()
        d2 = datetime.datetime(2012,1,1).date()
        #d2 = datetime.datetime.now().date()
        
        series_data = series_data[d1:d2]
        
        #Filter on index we want to look at, e.g 'Open', 'Adj_Close'
        series_data = pd.DataFrame(series_data[sig_index])
        
        #Construct data object for pairs trading strat
        #sma_md = md.simple_ma_md(series_data)
        sma_md = md.exponential_ma_md(series_data)
        
#        sma_md.generateTradeSig(  seriesName = seriesName, 
#                                 sig_index=sig_index, 
#                                 short_win=short_win, 
#                                long_win=long_win)
        
        sma_md.generateTradeSig(  seriesName = seriesName, 
                                 sig_index=sig_index, 
                                 short_win=short_win, 
                                long_win=long_win)
        
        
        #Setup portfolio
        simpleEmptyTrade = td.TradeEquity(seriesName, 
                                          notional=0, 
                                          price_series_label=sig_index)
        
        port = pf.Portfolio("portfolio", cashAmt=100)
        port.add_trade(simpleEmptyTrade)
        #No more trade types
        port.fixed_toggle()
        
        #Setup Strategy
        strat = tsc.MA_Trade_Strategy()
        
        #return pairsStrat
    
        tic = time.clock()
        strat.run_strategy(sma_md,port)
        toc = time.clock()
        print "strategy took {} seconds to run".format(toc - tic)
        outfile = open("pickled_sma2.pkl", 'wb')
        pickle.dump(strat,outfile)
        outfile.close()
Example #2
0
 def setup_strategy(pars):
     short_win = pars[0]
     long_win = pars[1]
     
     sma_md = md.exponential_ma_md(series_data)
     sma_md.generateTradeSig( seriesName = seriesName, 
                              sig_index=sig_index, 
                              short_win=short_win, 
                             long_win=long_win)
     #Setup portfolio
     simpleEmptyTrade = td.TradeEquity(seriesName, 
                                       notional=0, 
                                       price_series_label=sig_index)
     
     port = pf.Portfolio("portfolio", cashAmt=1)
     port.add_trade(simpleEmptyTrade)
     #No more trade types
     port.fixed_toggle()
 
     #Setup Strategy
     strat = tsc.MA_Trade_Strategy()
     
     return sma_md, port, strat
Example #3
0
 
 #Change Date Range
 d1 = datetime(2012,1,1).date()
 d2 = datetime(2012,6,1).date()
 
 data = dataFull.loc[d1:d2]
 print data.head()
 
 #Generate trade sigs for simple moving average
 sma = md.simple_ma_md(data)
 sma.generateTradeSig('AAPL',
                      'Adj_Close',
                      short_win = 10,
                      long_win = 20)
 sma.plot()
 
 #Generate trade sigs for exponentially weighted moving ave 
 ema = md.exponential_ma_md(data)
 ema.generateTradeSig('AAPL',
                      'Adj_Close',
                      short_span = 10,
                      long_span = 20)
 ema.plot()
 
 
 #Do something with pairs trades. Should add something about data downloading panels
 plt.show()