虽然水平有限看不太懂。但是这个估计有问题。

象这样,没有考虑成交不成交。碰到一些跳空的,这估计成交不了。个人觉得一些记录要onOrder全部成交后才开始记录。
试过不同的atr 0.5ATR,1ATR 2ATR 加仓,不同的加仓次数。4次,5次,6次。结果碰巧在一些位置,因为不成交,几年都没开一单。后来改为一天不成交就撤单。

要是回测模块,能有画图,有进出场标志就更好了。

#----------------------------------------------------------------------
def buy(self, price, volume):
    """买入开仓"""
    price = self.calculateTradePrice(DIRECTION_LONG, price)

    self.open(price, volume)
    self.newSignal(DIRECTION_LONG, OFFSET_OPEN, price, volume)

    # 以最后一次加仓价格,加上两倍N计算止损
    self.longStop = price - self.atrVolatility * 2