各位大神,我想要把某个周期K线中成交量按buy、sell两种类型分开统计出来,比如1分钟周期的K线图,每根K线对应的成交量中buy,sell两种类型的成交量分别是多少。 我的是思路是当没有新K线生产时,获取trade数据并累加起来,然后在新K线生成后,对累计的trade数据进行分类统计,重置取数的各个参数,进入下一个循环。但是用实盘级回测时出现了问题,一个是统计到的成交量数据与实际每个K线records[-2][“Volume”]的成交量对不上,差别很大,统计到的买单成交量加上卖单成交量,都比records[-2][“Volume”]显示的成交量大。 代码如下,绕了我两天了。请各位大神指导一下是不是逻辑有问题,还是说回测本身就会有这个问题?如果是逻辑有问题请详细指点一下,谢谢。
def GetRecords(self):
if self.LastBarTime == self.BarTime:
trades = _C(exchange.GetTrades)
if trades :
for i in range (len(trades)):
if trades[i] not in self.trades:
self.trades.append(trades[i])
if self.LastBarTime != self.BarTime: #新K线
if self.trades :
for i in range (len(self.trades)):
if self.trades[i]["Type"] == 0 : #买单
self.trade_buy.append(self.trades[i])
if self.trades[i]["Type"] == 1 : #卖单
self.trade_sell.append(self.trades[i])
if self.trade_buy:
for i in range (len(self.trade_buy)):
self.totlebuyamount += self.trade_buy[0-i]["Amount"]
if self.trade_sell:
for i in range (len(self.trade_sell)):
self.totlesellamount += self.trade_sell[0-i]["Amount"]
Log("总成交量",self.totlebuyamount+self.totolesellamoun,"买单成交量",self.totlebuyamount,"卖单成交量",self.totolesellamount)
self.trades = []
self.trade_buy = []
self.trade_sell = []
self.totlebuyamount = 0
self.totlesellamount = 0
发明者量化-小小梦 回测的订单流是模拟的。这个要实盘测试才行的。
xaifer48 谢谢
发明者量化-小小梦 数字货币市场用订单流数据就行,trades数据。
xaifer48 梦总,代码这么写逻辑上有问题么?我看了一下https://www.fmz.cn/strategy/291843、https://www.quantinfo.com/Article/View/2334.html这两篇,里面是用的tick数据,不是trade,是不是要用tick数据来搞好点类?求指导