Exemplo n.º 1
0
 def testResampleBarFeedWithMultipleInstrumentsFails(self):
     with self.assertRaisesRegexp(Exception, "Only barfeeds with 1 instrument can be resampled"):
         with common.TmpDir() as tmp_path:
             feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
             feed.addBarsFromCSV("spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
             feed.addBarsFromCSV("spb", common.get_data_file_path("nt-spy-minute-2011.csv"))
             resample.resample_to_csv(feed, bar.Frequency.HOUR, os.path.join(tmp_path, "any.csv"))
Exemplo n.º 2
0
    def testResampleMtGoxMinute(self):
        # Resample.
        feed = mtgoxfeed.CSVTradeFeed()
        feed.addBarsFromCSV(
            common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(
            feed["BTC"], barfeed.Frequency.MINUTE)
        resample.resample_to_csv(feed, barfeed.Frequency.MINUTE,
                                 "minute-mgtox-usd-2013-01-01.csv")
        resampledBarDS.pushLast(
        )  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.MINUTE)
        feed.addBarsFromCSV("BTC", "minute-mgtox-usd-2013-01-01.csv")
        feed.loadAll()

        self.assertEqual(len(feed["BTC"]), 537)
        self.assertEqual(feed["BTC"][0].getDateTime(),
                         datetime.datetime(2013, 01, 01, 00, 04, 59))
        self.assertEqual(feed["BTC"][-1].getDateTime(),
                         datetime.datetime(2013, 01, 01, 23, 58, 59))

        self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
        self.assertEqual(resampledBarDS[0].getDateTime(),
                         dt.as_utc(feed["BTC"][0].getDateTime()))
        self.assertEqual(resampledBarDS[-1].getDateTime(),
                         dt.as_utc(feed["BTC"][-1].getDateTime()))
Exemplo n.º 3
0
    def testResampleMtGoxHour(self):
        # Resample.
        feed = mtgoxfeed.CSVTradeFeed()
        feed.addBarsFromCSV(
            common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(
            feed["BTC"], barfeed.Frequency.HOUR)
        resampledFile = os.path.join(common.get_temp_path(),
                                     "hour-mgtox-usd-2013-01-01.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.HOUR, resampledFile)
        resampledBarDS.pushLast(
        )  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.HOUR)
        feed.addBarsFromCSV("BTC", resampledFile)
        feed.loadAll()

        self.assertEqual(len(feed["BTC"]), 24)
        self.assertEqual(feed["BTC"][0].getDateTime(),
                         datetime.datetime(2013, 01, 01, 00, 59, 59))
        self.assertEqual(feed["BTC"][-1].getDateTime(),
                         datetime.datetime(2013, 01, 01, 23, 59, 59))

        self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
        self.assertEqual(resampledBarDS[0].getDateTime(),
                         dt.as_utc(feed["BTC"][0].getDateTime()))
        self.assertEqual(resampledBarDS[-1].getDateTime(),
                         dt.as_utc(feed["BTC"][-1].getDateTime()))
Exemplo n.º 4
0
def bolling_trans_data():
    dat = pd.read_csv("../../api/stock/csv/600281SH_min.csv", index_col=['datetime'], encoding='gbk')

    feed = dataFramefeed.Feed(frequency=bar.Frequency.MINUTE)
    feed.addBarsFromDataFrame("orcl", dat)

    resample.resample_to_csv(feed, bar.Frequency.MINUTE * 5,"../../api/stock/csv/600281SH_5min.csv")  # 这样resample的数据是对的
Exemplo n.º 5
0
    def testResampleNinjaTraderDay(self):
        # Resample.
        feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
        feed.addBarsFromCSV("spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(feed["spy"], barfeed.Frequency.DAY)
        resampledFile = os.path.join(common.get_temp_path(), "day-nt-spy-minute-2011.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.DAY, resampledFile)
        resampledBarDS.pushLast()  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.DAY)
        feed.addBarsFromCSV("spy", resampledFile, marketsession.USEquities.getTimezone())
        feed.loadAll()

        self.assertEqual(len(feed["spy"]), 25)
        self.assertEqual(
            feed["spy"][0].getDateTime(),
            dt.localize(datetime.datetime(2011, 1, 3), marketsession.USEquities.getTimezone()),
        )
        self.assertEqual(
            feed["spy"][-1].getDateTime(),
            dt.localize(datetime.datetime(2011, 2, 1), marketsession.USEquities.getTimezone()),
        )

        self.assertEqual(len(resampledBarDS), len(feed["spy"]))
        self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(datetime.datetime(2011, 1, 3)))
        self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(datetime.datetime(2011, 2, 1)))
Exemplo n.º 6
0
    def testResampleMtGoxDay(self):
        # Resample.
        feed = mtgoxfeed.CSVTradeFeed()
        feed.addBarsFromCSV(common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(feed["BTC"], barfeed.Frequency.DAY)
        resampledFile = os.path.join(common.get_temp_path(), "day-mgtox-usd-2013-01-01.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.DAY, resampledFile)
        resampledBarDS.pushLast()  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.DAY)
        feed.addBarsFromCSV("BTC", resampledFile)
        feed.loadAll()

        self.assertEqual(len(feed["BTC"]), 1)
        self.assertEqual(feed["BTC"][0].getDateTime(), datetime.datetime(2013, 1, 1))
        self.assertEqual(feed["BTC"][0].getOpen(), 13.51001)
        self.assertEqual(feed["BTC"][0].getHigh(), 13.56)
        self.assertEqual(feed["BTC"][0].getLow(), 13.16123)
        self.assertEqual(feed["BTC"][0].getClose(), 13.30413)
        self.assertEqual(feed["BTC"][0].getVolume(), 28168.9114596)
        self.assertEqual(feed["BTC"][0].getAdjClose(), 13.30413)

        self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
        self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(feed["BTC"][0].getDateTime()))
        self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(feed["BTC"][-1].getDateTime()))
        self.assertEqual(resampledBarDS[0].getOpen(), feed["BTC"][0].getOpen())
        self.assertEqual(resampledBarDS[0].getHigh(), feed["BTC"][0].getHigh())
        self.assertEqual(resampledBarDS[0].getLow(), feed["BTC"][0].getLow())
        self.assertEqual(resampledBarDS[0].getClose(), feed["BTC"][0].getClose())
        self.assertEqual(round(resampledBarDS[0].getVolume(), 5), round(feed["BTC"][0].getVolume(), 5))
        self.assertEqual(resampledBarDS[0].getAdjClose(), feed["BTC"][0].getAdjClose())
Exemplo n.º 7
0
 def testResampleBarFeedWithMultipleInstrumentsFails(self):
     with self. assertRaisesRegex(Exception, "Only barfeeds with 1 instrument can be resampled"):
         with common.TmpDir() as tmp_path:
             feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
             feed.addBarsFromCSV("spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
             feed.addBarsFromCSV("spb", common.get_data_file_path("nt-spy-minute-2011.csv"))
             resample.resample_to_csv(feed, bar.Frequency.HOUR, os.path.join(tmp_path, "any.csv"))
Exemplo n.º 8
0
    def testResampleNinjaTraderHour(self):
        with common.TmpDir() as tmp_path:
            # Resample.
            feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
            feed.addBarsFromCSV("spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
            resampledBarDS = resampled_ds.ResampledBarDataSeries(feed["spy"], bar.Frequency.HOUR)
            resampledFile = os.path.join(tmp_path, "hour-nt-spy-minute-2011.csv")
            resample.resample_to_csv(feed, bar.Frequency.HOUR, resampledFile)
            resampledBarDS.pushLast()  # Need to manually push the last stot since time didn't change.

            # Load the resampled file.
            feed = csvfeed.GenericBarFeed(bar.Frequency.HOUR, marketsession.USEquities.getTimezone())
            feed.addBarsFromCSV("spy", resampledFile)
            feed.loadAll()

        self.assertEqual(len(feed["spy"]), 340)
        self.assertEqual(feed["spy"][0].getDateTime(), dt.localize(datetime.datetime(2011, 1, 3, 9), marketsession.USEquities.getTimezone()))
        self.assertEqual(feed["spy"][-1].getDateTime(), dt.localize(datetime.datetime(2011, 2, 1, 1), marketsession.USEquities.getTimezone()))
        self.assertEqual(feed["spy"][0].getOpen(), 126.35)
        self.assertEqual(feed["spy"][0].getHigh(), 126.45)
        self.assertEqual(feed["spy"][0].getLow(), 126.3)
        self.assertEqual(feed["spy"][0].getClose(), 126.4)
        self.assertEqual(feed["spy"][0].getVolume(), 3397.0)
        self.assertEqual(feed["spy"][0].getAdjClose(), None)

        self.assertEqual(len(resampledBarDS), len(feed["spy"]))
        self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(datetime.datetime(2011, 1, 3, 9)))
        self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(datetime.datetime(2011, 2, 1, 1)))
Exemplo n.º 9
0
    def testResampleNinjaTraderHour(self):
        # Resample.
        feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
        feed.addBarsFromCSV("spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(feed["spy"], barfeed.Frequency.HOUR)
        resampledFile = os.path.join(common.get_temp_path(), "hour-nt-spy-minute-2011.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.HOUR, resampledFile)
        resampledBarDS.pushLast()  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.HOUR, marketsession.USEquities.getTimezone())
        feed.addBarsFromCSV("spy", resampledFile)
        feed.loadAll()

        self.assertEqual(len(feed["spy"]), 340)
        self.assertEqual(feed["spy"][0].getDateTime(), dt.localize(datetime.datetime(2011, 1, 3, 9), marketsession.USEquities.getTimezone()))
        self.assertEqual(feed["spy"][-1].getDateTime(), dt.localize(datetime.datetime(2011, 2, 1, 1), marketsession.USEquities.getTimezone()))
        self.assertEqual(feed["spy"][0].getOpen(), 126.35)
        self.assertEqual(feed["spy"][0].getHigh(), 126.45)
        self.assertEqual(feed["spy"][0].getLow(), 126.3)
        self.assertEqual(feed["spy"][0].getClose(), 126.4)
        self.assertEqual(feed["spy"][0].getVolume(), 3397.0)
        self.assertEqual(feed["spy"][0].getAdjClose(), None)

        self.assertEqual(len(resampledBarDS), len(feed["spy"]))
        self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(datetime.datetime(2011, 1, 3, 9)))
        self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(datetime.datetime(2011, 2, 1, 1)))
Exemplo n.º 10
0
    def testResampleNinjaTraderDay(self):
        with common.TmpDir() as tmp_path:
            # Resample.
            feed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
            feed.addBarsFromCSV(
                "spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
            resampledBarDS = resampled_ds.ResampledBarDataSeries(
                feed["spy"], bar.Frequency.DAY)
            resampledFile = os.path.join(tmp_path,
                                         "day-nt-spy-minute-2011.csv")
            resample.resample_to_csv(feed, bar.Frequency.DAY, resampledFile)
            resampledBarDS.pushLast(
            )  # Need to manually push the last stot since time didn't change.

            # Load the resampled file.
            feed = csvfeed.GenericBarFeed(bar.Frequency.DAY)
            feed.addBarsFromCSV("spy", resampledFile,
                                marketsession.USEquities.getTimezone())
            feed.loadAll()

        self.assertEqual(len(feed["spy"]), 25)
        self.assertEqual(
            feed["spy"][0].getDateTime(),
            dt.localize(datetime.datetime(2011, 1, 3),
                        marketsession.USEquities.getTimezone()))
        self.assertEqual(
            feed["spy"][-1].getDateTime(),
            dt.localize(datetime.datetime(2011, 2, 1),
                        marketsession.USEquities.getTimezone()))

        self.assertEqual(len(resampledBarDS), len(feed["spy"]))
        self.assertEqual(resampledBarDS[0].getDateTime(),
                         dt.as_utc(datetime.datetime(2011, 1, 3)))
        self.assertEqual(resampledBarDS[-1].getDateTime(),
                         dt.as_utc(datetime.datetime(2011, 2, 1)))
Exemplo n.º 11
0
def main(end,months,minutes=30):
	barFeed = barfeed.CSVTradeFeed()
	start = end - timedelta(months*365/12)
	print "Resampling from %s to %s" % (start,end)
	barFeed.addBarsFromCSV("/home/mcstar/data/coinbaseUSD.csv", fromDateTime=start, toDateTime=end)
	path = "./%smin-BTC-%s.csv" % (minutes,end.year)
	resample.resample_to_csv(barFeed, bar.Frequency.MINUTE*minutes, path)
	print "Saved to ",path 
Exemplo n.º 12
0
def main(end, months):
    barFeed = barfeed.CSVTradeFeed()
    start = end - timedelta(months * 365 / 12)
    barFeed.addBarsFromCSV("/home/mcstar/data/.coinbaseUSD.csv",
                           fromDateTime=start,
                           toDateTime=end)
    resample.resample_to_csv(barFeed, bar.Frequency.MINUTE * 30,
                             "./30min-btc-%s.csv" % (start.year))
Exemplo n.º 13
0
def main(plot):
    bBandsPeriod = 60 * 24 * 2

    # download and load the historic trade data from mtgox
    currency = 'USD'
    instrument = 'BTC'
    startdate = datetime.date(2013, 1, 1)
    enddate = datetime.date.today() - relativedelta(days=1)
    barFrequency = pyalgotrade.barfeed.Frequency.MINUTE

    print '(down-)loading bars'
    feed = GenericBarFeed(barFrequency)
    month = startdate
    while month <= enddate:
        fnamOrig = 'trades-mtgox-%s-%d-%d.csv' % (currency, month.year,
                                                  month.month)
        if barFrequency == pyalgotrade.barfeed.Frequency.MINUTE:
            fnamResa = 'resamp1m-mtgox-%s-%d-%d.csv' % (currency, month.year,
                                                        month.month)
        else:
            fnamResa = 'resamp1h-mtgox-%s-%d-%d.csv' % (currency, month.year,
                                                        month.month)
        if not os.path.exists(fnamOrig):
            print 'downloading ', fnamOrig
            tools.download_trades_by_month(currency, month.year, month.month,
                                           fnamOrig)
        if not os.path.exists(fnamResa):
            print 'resampling ', fnamResa
            feedLocal = barfeed.CSVTradeFeed()
            feedLocal.addBarsFromCSV(fnamOrig)
            resample_to_csv(feedLocal, barFrequency, fnamResa)

        print 'loading ', fnamResa
        feed.addBarsFromCSV(instrument, fnamResa)
        month += relativedelta(months=1)

    print 'set up strategy and plot'
    myStrategy = MyStrategy(feed, instrument, bBandsPeriod)

    if plot:
        plt = plotter.StrategyPlotter(myStrategy, True, True, True)
        plt.getInstrumentSubplot(instrument).addDataSeries(
            "upper",
            myStrategy.getBollingerBands().getUpperBand())
        plt.getInstrumentSubplot(instrument).addDataSeries(
            "middle",
            myStrategy.getBollingerBands().getMiddleBand())
        plt.getInstrumentSubplot(instrument).addDataSeries(
            "lower",
            myStrategy.getBollingerBands().getLowerBand())

    print 'run the strategy'
    myStrategy.run()
    print "Result: %.2f" % myStrategy.getResult()

    if plot:
        plt.plot()
Exemplo n.º 14
0
def main():
    '''
    mid 先要从网站手动下载tick压缩文件
    手动解压后通过此程序转化周期
    '''
    barFeed = barfeed.CSVTradeFeed()
    barFeed.addBarsFromCSV("bitstampUSD.csv",
                           fromDateTime=datetime.datetime(2014, 1, 1),
                           toDateTime=datetime.datetime(2014, 2, 1))
    resample.resample_to_csv(barFeed, bar.Frequency.MINUTE * 30,
                             "30min-bitstampUSD.csv")
Exemplo n.º 15
0
def ENE_trans_data():
    dat = pd.read_csv("../../api/stock/csv/600281SH_min.csv", index_col=['datetime'], encoding='gbk')

    feed = dataFramefeed.Feed(frequency=bar.Frequency.MINUTE)
    feed.addBarsFromDataFrame("orcl", dat)

    ###暂时不用
    # resampledBarDS_day = resampled.ResampledBarDataSeries(feed["orcl"], bar.Frequency.DAY)
    # resampledBarDS_5min = resampled.ResampledBarDataSeries(feed["orcl"], bar.Frequency.MINUTE*5)
    # feed.addBarsFromSequence("orcl_d",resampledBarDS_day)

    resample.resample_to_csv(feed, bar.Frequency.MINUTE * 5,
                             "../../api/stock/csv/600281SH_5min.csv")  # 这样resample的数据是对的
Exemplo n.º 16
0
def main(plot):
    bBandsPeriod = 60 * 24 * 2

    # download and load the historic trade data from mtgox
    currency = 'USD'
    instrument = 'BTC'
    startdate = datetime.date(2013, 1, 1)
    enddate = datetime.date.today() - relativedelta(days=1)
    barFrequency = pyalgotrade.barfeed.Frequency.MINUTE

    print '(down-)loading bars'
    feed = GenericBarFeed(barFrequency)
    month = startdate
    while month <= enddate:
        fnamOrig = 'trades-mtgox-%s-%d-%d.csv' % (currency, month.year, month.month)
        if barFrequency == pyalgotrade.barfeed.Frequency.MINUTE:
            fnamResa = 'resamp1m-mtgox-%s-%d-%d.csv' % (currency, month.year, month.month)
        else:
            fnamResa = 'resamp1h-mtgox-%s-%d-%d.csv' % (currency, month.year, month.month)
        if not os.path.exists(fnamOrig):
            print 'downloading ', fnamOrig
            tools.download_trades_by_month(currency, month.year, month.month, fnamOrig)
        if not os.path.exists(fnamResa):
            print 'resampling ', fnamResa
            feedLocal = barfeed.CSVTradeFeed()
            feedLocal.addBarsFromCSV(fnamOrig)
            resample_to_csv(feedLocal, barFrequency, fnamResa)

        print 'loading ', fnamResa
        feed.addBarsFromCSV(instrument, fnamResa)
        month += relativedelta(months=1)

    print 'set up strategy and plot'
    myStrategy = MyStrategy(feed, instrument, bBandsPeriod)

    if plot:
        plt = plotter.StrategyPlotter(myStrategy, True, True, True)
        plt.getInstrumentSubplot(instrument).addDataSeries("upper", myStrategy.getBollingerBands().getUpperBand())
        plt.getInstrumentSubplot(instrument).addDataSeries("middle", myStrategy.getBollingerBands().getMiddleBand())
        plt.getInstrumentSubplot(instrument).addDataSeries("lower", myStrategy.getBollingerBands().getLowerBand())

    print 'run the strategy'
    myStrategy.run()
    print "Result: %.2f" % myStrategy.getResult()

    if plot:
        plt.plot()
Exemplo n.º 17
0
    def testResampleMtGoxDay(self):
        # Resample.
        feed = mtgoxfeed.CSVTradeFeed()
        feed.addBarsFromCSV(
            common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(
            feed["BTC"], barfeed.Frequency.DAY)
        resampledFile = os.path.join(common.get_temp_path(),
                                     "day-mgtox-usd-2013-01-01.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.DAY, resampledFile)
        resampledBarDS.pushLast(
        )  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.DAY)
        feed.addBarsFromCSV("BTC", resampledFile)
        feed.loadAll()

        self.assertEqual(len(feed["BTC"]), 1)
        self.assertEqual(feed["BTC"][0].getDateTime(),
                         datetime.datetime(2013, 01, 01, 23, 59, 59))
        self.assertEqual(feed["BTC"][0].getOpen(), 13.51001)
        self.assertEqual(feed["BTC"][0].getHigh(), 13.56)
        self.assertEqual(feed["BTC"][0].getLow(), 13.16123)
        self.assertEqual(feed["BTC"][0].getClose(), 13.30413)
        self.assertEqual(feed["BTC"][0].getVolume(), 28168.9114596)
        self.assertEqual(feed["BTC"][0].getAdjClose(), 13.30413)

        self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
        self.assertEqual(resampledBarDS[0].getDateTime(),
                         dt.as_utc(feed["BTC"][0].getDateTime()))
        self.assertEqual(resampledBarDS[-1].getDateTime(),
                         dt.as_utc(feed["BTC"][-1].getDateTime()))
        self.assertEqual(resampledBarDS[0].getOpen(), feed["BTC"][0].getOpen())
        self.assertEqual(resampledBarDS[0].getHigh(), feed["BTC"][0].getHigh())
        self.assertEqual(resampledBarDS[0].getLow(), feed["BTC"][0].getLow())
        self.assertEqual(resampledBarDS[0].getClose(),
                         feed["BTC"][0].getClose())
        self.assertEqual(round(resampledBarDS[0].getVolume(), 5),
                         round(feed["BTC"][0].getVolume(), 5))
        self.assertEqual(resampledBarDS[0].getAdjClose(),
                         feed["BTC"][0].getAdjClose())
Exemplo n.º 18
0
	def testResampleMtGoxHour(self):
		# Resample.
		feed = mtgoxfeed.CSVTradeFeed()
		feed.addBarsFromCSV(common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
		resampledBarDS = resampled.ResampledBarDataSeries(feed["BTC"], barfeed.Frequency.HOUR)
		resample.resample_to_csv(feed, barfeed.Frequency.HOUR, "hour-mgtox-usd-2013-01-01.csv")
		resampledBarDS.pushLast() # Need to manually push the last stot since time didn't change.

		# Load the resampled file.
		feed = csvfeed.GenericBarFeed(barfeed.Frequency.HOUR)
		feed.addBarsFromCSV("BTC", "hour-mgtox-usd-2013-01-01.csv")
		feed.loadAll()
	
		self.assertEqual(len(feed["BTC"]), 24)
		self.assertEqual(feed["BTC"][0].getDateTime(), datetime.datetime(2013, 01, 01, 00, 59, 59))
		self.assertEqual(feed["BTC"][-1].getDateTime(), datetime.datetime(2013, 01, 01, 23, 59, 59))

		self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
		self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(feed["BTC"][0].getDateTime()))
		self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(feed["BTC"][-1].getDateTime()))
Exemplo n.º 19
0
    def testResampleMtGoxMinute(self):
        # Resample.
        feed = mtgoxfeed.CSVTradeFeed()
        feed.addBarsFromCSV(common.get_data_file_path("trades-mgtox-usd-2013-01-01.csv"))
        resampledBarDS = resampled.ResampledBarDataSeries(feed["BTC"], barfeed.Frequency.MINUTE)
        resampledFile = os.path.join(common.get_temp_path(), "minute-mgtox-usd-2013-01-01.csv")
        resample.resample_to_csv(feed, barfeed.Frequency.MINUTE, resampledFile)
        resampledBarDS.pushLast()  # Need to manually push the last stot since time didn't change.

        # Load the resampled file.
        feed = csvfeed.GenericBarFeed(barfeed.Frequency.MINUTE)
        feed.addBarsFromCSV("BTC", resampledFile)
        feed.loadAll()

        self.assertEqual(len(feed["BTC"]), 537)
        self.assertEqual(feed["BTC"][0].getDateTime(), datetime.datetime(2013, 1, 1, 0, 4))
        self.assertEqual(feed["BTC"][-1].getDateTime(), datetime.datetime(2013, 1, 1, 23, 58))

        self.assertEqual(len(resampledBarDS), len(feed["BTC"]))
        self.assertEqual(resampledBarDS[0].getDateTime(), dt.as_utc(feed["BTC"][0].getDateTime()))
        self.assertEqual(resampledBarDS[-1].getDateTime(), dt.as_utc(feed["BTC"][-1].getDateTime()))
Exemplo n.º 20
0
def main():
    barFeed = barfeed.CSVTradeFeed()
    barFeed.addBarsFromCSV(".\\data\\bitstampUSD.csv", fromDateTime=datetime.datetime(2014, 1, 1))
    resample.resample_to_csv(barFeed, bar.Frequency.MINUTE*30, "30min-bitstampUSD.csv")
Exemplo n.º 21
0
def resampleCsv(minutes):
	"""Change interval of data trades with recalc prices"""
	feed = coinfeed.Feed()
	feed.addBarsFromCSV("btc", "data/ticker.csv")
	resample_to_csv(feed, 60 * minutes, "resampled.csv")
Exemplo n.º 22
0
def main():
    barFeed = barfeed.CSVTradeFeed()
    barFeed.addBarsFromCSV("bitstampUSD.csv", fromDateTime=datetime.datetime(2014, 1, 1))
    resample.resample_to_csv(barFeed, bar.Frequency.MINUTE*30, "30min-bitstampUSD.csv")
Exemplo n.º 23
0
def main(file_in, file_out, freq):
    barFeed = barfeed.CSVTradeFeed()
    barFeed.addBarsFromCSV(file_in, fromDateTime=datetime.datetime(2014, 1, 1))
    resample.resample_to_csv(barFeed, bar.Frequency.MINUTE * freq, file_out)