求教各位大神关于trade中成交量分类统计的问题

Author: xaifer48, Created: 2022-08-18 12:56:23, Updated: 2022-08-20 16:07:39

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

More

小小梦 回测的订单流是模拟的。这个要实盘测试才行的。

xaifer48 谢谢

小小梦 数字货币市场用订单流数据就行,trades数据。

xaifer48 梦总,代码这么写逻辑上有问题么?我看了一下https://www.fmz.cn/strategy/291843、https://www.quantinfo.com/Article/View/2334.html这两篇,里面是用的tick数据,不是trade,是不是要用tick数据来搞好点类?求指导