0
我正在使用bitstamp客戶端上的算法,該算法在30分鐘的酒吧中效果更好,而不是將每次交易視爲酒吧。問:在pyalgotrade中重新採樣bitstamp吧
是否有一種「正確」的方式將這些條重新採樣爲30分鐘的間隔?
我可以做比特幣交易經紀人沒有問題,但我需要從bitstampbroker執行,所以我希望能做到這一點。
我正在使用bitstamp客戶端上的算法,該算法在30分鐘的酒吧中效果更好,而不是將每次交易視爲酒吧。問:在pyalgotrade中重新採樣bitstamp吧
是否有一種「正確」的方式將這些條重新採樣爲30分鐘的間隔?
我可以做比特幣交易經紀人沒有問題,但我需要從bitstampbroker執行,所以我希望能做到這一點。
這應有助於:
from pyalgotrade.bitstamp import barfeed
from pyalgotrade.bitstamp import broker
from pyalgotrade import strategy
class Strategy(strategy.BaseStrategy):
def __init__(self, feed, brk):
super(Strategy, self).__init__(feed, brk)
self._instrument = "BTC"
self._bid = None
self._ask = None
self._resampledBF = self.resampleBarFeed(60, self.onResampledBars)
# Subscribe to order book update events to get bid/ask prices to trade.
feed.getOrderBookUpdateEvent().subscribe(self._onOrderBookUpdate)
def _onOrderBookUpdate(self, orderBookUpdate):
bid = orderBookUpdate.getBidPrices()[0]
ask = orderBookUpdate.getAskPrices()[0]
if bid != self._bid or ask != self._ask:
self._bid = bid
self._ask = ask
self.info("Order book updated. Best bid: %s. Best ask: %s" % (self._bid, self._ask))
def onResampledBars(self, dt, bars):
bar = bars[self._instrument]
self.info("Resampled - Price: %s. Volume: %s." % (bar.getClose(), bar.getVolume()))
def onBars(self, bars):
bar = bars[self._instrument]
self.info("Price: %s. Volume: %s." % (bar.getClose(), bar.getVolume()))
def main():
barFeed = barfeed.LiveTradeFeed()
brk = broker.PaperTradingBroker(1000, barFeed)
strat = Strategy(barFeed, brk)
strat.run()
if __name__ == "__main__":
main()