各位大神,我想要把某个周期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