示例#1
0
    def __init__(self, feed, config, stopPer, stopTrailing, smaShort, smaLong):
        if config['dbfeed']:
            feed = dbfeed.DbFeed(config['db'], [], 100, config['startDate'], config['endDate'])
            feed.registerInstrument(config['instrument'])
        else:
            feed = yahoofeed.Feed()
            feed.sanitizeBars(True)
            feed.addBarsFromCSV(config['instrument'], config['instrument'] + ".csv")

        MyBenchmark.__init__(self, feed, stopPer, stopTrailing, smaLong)

        self.info("%s %s %s %s" % (stopPer, stopTrailing, smaShort, smaLong))

        self._smaShort = {}
        self._smaLong = {}
        self._macdPrice = {}
        self._macdVol = {}
        for instrument in feed.getRegisteredInstruments():
            self._smaShort[instrument] = ma.SMA(self._feed[instrument].getPriceDataSeries(), smaShort)
            self._smaLong[instrument] = ma.SMA(self._feed[instrument].getPriceDataSeries(), smaLong)
            self._macdPrice[instrument] = macd.MACD(self._feed[instrument].getPriceDataSeries(), 12, 26, 9)
            self._macdVol[instrument] = macd.MACD(self._feed[instrument].getVolumeDataSeries(), 12, 26, 9)
示例#2
0
# The if __name__ == '__main__' part is necessary if running on Windows.
if __name__ == '__main__':
    # Config params

    config = {
      'user': '******',
      'password': '******',
      'host': '127.0.0.1',
      'database': 'ibex35',
      'raise_on_warnings': True,
    }

    logger.log_format = "[%(levelname)s] %(message)s"

    startDate = datetime.date(2001, 05, 24)
    endDate = datetime.date(2015, 12, 21)

    instrument = 'GAS.MC'

    feed = None

    if DBFEED:
        feed = dbfeed.DbFeed(config, [], 100, startDate, endDate)
        feed.registerInstrument(instrument)
    else:
        feed = yahoofeed.Feed()
        feed.sanitizeBars(True)
        feed.addBarsFromCSV(instrument, instrument + ".csv")

    local.run(MyTaLibStrategy, feed, parameters_generator())
示例#3
0
    def onBars(self, bars):
        for instrument in bars.keys():
            bar = bars[instrument]
            self.info("%s %s %s %s %s" %
                      (instrument, bars.getDateTime(), bar.getOpen(),
                       bar.getPrice(), bar.getField('PER')))


config = {
    'user': '******',
    'password': '',
    'host': '127.0.0.1',
    'database': 'ibex35',
    'raise_on_warnings': True,
}

fields = ['PER']

indices = ['IBEX35']

dateStart = datetime.date(2010, 01, 04)
dateEnd = datetime.date(2012, 01, 04)

feed = dbfeed.DbFeed(config, fields, 100, dateStart, dateEnd)
for index in indices:
    feed.registerIndex(index)

myStrategy = MyStrategy(feed)
myStrategy.run()
示例#4
0
fields = [
    'PER',
    'PBV',
    'DPS',
    'NDE'
]

indices = [
    'IBEX35'
]

capStart = 1000000
startDate = None # e.g. datetime.date(2015, 06, 01)
endDate = None

feed = dbfeed.DbFeed(config, fields, 10, startDate, endDate)
for index in indices:
    feed.registerIndex(index)

# Pick strategy

myStrategy = None
if SCENARIO == 2:
    myStrategy = MyBenchmark(feed, 10, capStart)
elif SCENARIO == 3:
    rules = [
        organizers.OrderRule('PBV', True)
    ]
    myStrategy = MyFundamentalStrategy(feed, 10, capStart, rules)
elif SCENARIO == 4:
    rules = [