vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 10
声望: 0

我在策略文件中对逐笔交易对进行统计获利情况,最终结果和回测引擎中使用逐日成交统计的获利对不上.每次都会差很多.
有人碰到这个问题的吗?

Member
avatar
加入于:
帖子: 1462
声望: 89

回测引擎逐日盯市计算中对反向合约回测是做了处理的,请问你的逐笔交易计算处理了吗?

Member
avatar
加入于:
帖子: 10
声望: 0

肯定处理了啊,代码就是参考逐日的改的

  def calculate_pnl(
            self,
            open_p: float,
            trade: TradeData,
            size: int,
            rate: float,
            inverse: bool
    ):
        """"""
        close_p = trade.price
        if trade.direction == Direction.LONG:
            pos = trade.volume
        else:
            pos = -trade.volume

        if not inverse:  # For normal contract
            holding_pnl = pos * (close_p - open_p) * size
            turnover = pos * size * close_p
            commission = turnover * rate * 2


        else:  # For crypto currency inverse contract
            holding_pnl = pos * (1 / close_p - 1 / open_p) * size
            turnover = pos * size / close_p
            commission = turnover * rate * 2
        self.net_pnl = holding_pnl - commission

传入开仓价和平仓的trade,暂时忽略了滑点.应该没毛病吧.

Member
avatar
加入于:
帖子: 1462
声望: 89

那就请再仔细排查看看了

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3