def __init__(self, feed, tickers, period=9, balance=15000, limit=10): basestrategies.BaseTrender.__init__(self, feed, period, tickers, balance, mongofeed.MongoRowParser) self.cross_aboves = {} self.cross_belows = {} self.current_positions = set() self.pos_limit = limit params = {'timeperiod':period, 'nbdevup':2, 'nbdevdn':2, 'matype':du.tl.MA_SMA} for ticker in self.tickers: print 'Initializing: %s' % (ticker) data = du.get_data(ticker) d = [v['Adj Clos'] for v in data] a, b, c = du.run_command( 'BBANDS', np.array(d), **params ) highs = dataseries.SequenceDataSeries([d for d in a.tolist()]) lows = dataseries.SequenceDataSeries([d for d in c.tolist()]) mids = dataseries.SequenceDataSeries([d for d in b.tolist()]) self.cross_aboves[ticker] = cross.CrossAbove(feed.getDataSeries(ticker) .getAdjCloseDataSeries(), highs) self.cross_belows[ticker] = cross.CrossBelow(feed.getDataSeries(ticker) .getAdjCloseDataSeries(), lows)
def __init__(self, feed, tickers, period=9, balance=15000, limit=10): basestrategies.BaseTrender.__init__(self, feed, period, tickers, balance, mongofeed.MongoRowParser) self.cross_aboves = {} self.cross_belows = {} self.current_positions = set() self.pos_limit = limit params = { 'timeperiod': period, 'nbdevup': 2, 'nbdevdn': 2, 'matype': du.tl.MA_SMA } for ticker in self.tickers: print 'Initializing: %s' % (ticker) data = du.get_data(ticker) d = [v['Adj Clos'] for v in data] a, b, c = du.run_command('BBANDS', np.array(d), **params) highs = dataseries.SequenceDataSeries([d for d in a.tolist()]) lows = dataseries.SequenceDataSeries([d for d in c.tolist()]) mids = dataseries.SequenceDataSeries([d for d in b.tolist()]) self.cross_aboves[ticker] = cross.CrossAbove( feed.getDataSeries(ticker).getAdjCloseDataSeries(), highs) self.cross_belows[ticker] = cross.CrossBelow( feed.getDataSeries(ticker).getAdjCloseDataSeries(), lows)
def __init__(self, feed, smaPeriod, f, tick1, tick2): strategy.Strategy.__init__(self, f, 2000) self.__position = {} self.__tick1 = tick1 self.__tick2 = tick2 self.pdata = feed.getDataSeries(tick1).getCloseDataSeries() self.result = None self.last_price = {} self.last_price.setdefault(tick1, None) self.last_price.setdefault(tick2, None) def get_ratio(bar): return bar.ratio self.ratios = f.getDataSeries('%s/%s' % (tick1, tick2)) self.ratios = dataseries.BarValueDataSeries( f.getDataSeries('%s/%s' % (tick1, tick2)), get_ratio) self.ratio_series = du.RatioDataSeries(tick1, tick2, 'Adj Clos') a, b, c = du.run_command( 'BBANDS', np.array(self.ratio_series.d), **{ 'timeperiod': smaPeriod, 'nbdevup': 2, 'nbdevdn': 2, 'matype': du.tl.MA_SMA }) self.highs = dataseries.SequenceDataSeries([d for d in a.tolist()]) #print [d for d in a.tolist()] self.mids = dataseries.SequenceDataSeries([d for d in b.tolist()]) self.lows = dataseries.SequenceDataSeries([d for d in c.tolist()]) """ self.highs = du.ArbitraryDataSeries('Upper BBand', a.tolist()) self.mids = du.ArbitraryDataSeries('Mean', b.tolist()) self.lows = du.ArbitraryDataSeries('Lower BBand', c.tolist()) """ self.cross_below = cross.CrossBelow(self.ratios, self.lows) self.cross_above = cross.CrossAbove(self.ratios, self.highs) self.cautious_cross_below = cross.CrossBelow(self.ratios, self.highs) self.cautious_cross_above = cross.CrossAbove(self.ratios, self.highs) self.price_slope = trend.Slope(self.ratios, 60) self.last_slope = 0
def __init__(self, feed, smaPeriod, f, tick1, tick2): strategy.Strategy.__init__(self, f, 2000) self.__position = {} self.__tick1 = tick1 self.__tick2 = tick2 self.pdata = feed.getDataSeries(tick1).getCloseDataSeries() self.result = None self.last_price = {} self.last_price.setdefault(tick1, None) self.last_price.setdefault(tick2, None) def get_ratio(bar): return bar.ratio self.ratios = f.getDataSeries('%s/%s' %(tick1, tick2)) self.ratios = dataseries.BarValueDataSeries(f.getDataSeries('%s/%s' %(tick1, tick2)), get_ratio) self.ratio_series = du.RatioDataSeries(tick1, tick2, 'Adj Clos') a, b, c = du.run_command( 'BBANDS', np.array(self.ratio_series.d), **{'timeperiod':smaPeriod, 'nbdevup':2, 'nbdevdn':2, 'matype':du.tl.MA_SMA} ) self.highs = dataseries.SequenceDataSeries([d for d in a.tolist()]) #print [d for d in a.tolist()] self.mids = dataseries.SequenceDataSeries([d for d in b.tolist()]) self.lows = dataseries.SequenceDataSeries([d for d in c.tolist()]) """ self.highs = du.ArbitraryDataSeries('Upper BBand', a.tolist()) self.mids = du.ArbitraryDataSeries('Mean', b.tolist()) self.lows = du.ArbitraryDataSeries('Lower BBand', c.tolist()) """ self.cross_below = cross.CrossBelow(self.ratios, self.lows) self.cross_above = cross.CrossAbove(self.ratios, self.highs) self.cautious_cross_below = cross.CrossBelow(self.ratios, self.highs) self.cautious_cross_above = cross.CrossAbove(self.ratios, self.highs) self.price_slope = trend.Slope(self.ratios, 60) self.last_slope = 0