VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 6
声望: 0

逻辑:
实盘情况下获取总的持仓
结果:

description

代码:

    def my_get_positions(self):
        """获取当前持仓列表"""
        buy_num = 0
        sell_num = 0
        positions = self.cta_engine.main_engine.get_all_positions()
        # positions = self.cta_engine.get_all_positions()
        # self.write_log(f" my_get_positions:{len(positions)}")
        for position in positions:
            if position.vt_symbol==self.vt_symbol:
                if position.direction == Direction.LONG:
                    buy_num +=position.volume
                if position.direction == Direction.SHORT:
                    sell_num += position.volume

                self.write_log(
                    f"postions: {position.vt_symbol}, {self.vt_symbol}  id :{position.vt_positionid} 方向: {position.direction}, 数量: {position.volume}, 均价: {position.price}, 盈亏: {position.pnl}")
        return buy_num,sell_num


        # 实盘的情况下获取持仓
        if self.cta_engine.get_engine_type() ==EngineType.LIVE: #EngineType.BACKTESTING
            buy_num,sell_num = self.my_get_positions()

为什么不一样呢,哪里有问题呢
这是界面的持仓:

description

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

我用的是3.8版,刚试了4.2版,结果也不一样:
description

Member
avatar
加入于:
帖子: 5785
声望: 352

position.price的计算过程可以在接口onRspQryInvestorPosition函数中找到,其他软件是如何计算的就不清楚了

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

xiaohe wrote:

position.price的计算过程可以在接口onRspQryInvestorPosition函数中找到,其他软件是如何计算的就不清楚了

是在 vnpy_ctp.gateway.ctpgateway.py 这个文件吗

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】