Example #1
0
  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)
Example #2
0
    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)
Example #3
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
Example #4
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