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

我在实盘的时候经常出现仓位数据pos不准确,不知道怎么弄
比如我真实仓位为6,但策略显示pos为13;然后程序会委托13手去下单,导致拒单。
目前我的解决思路是手动修改仓位,
但我想让程序每次下单前,确认一次实际持仓,再下单;
我该如何直接访问账户的实际持仓? 这个代码如何实现哦?
我连接的是火币的合约,用的策略是AtrRsiStrategy,
该策略中self.pos是不准确的。
short_stop = self.intra_trade_low * \
(1 + self.trailing_percent / 100)
self.cover(short_stop, abs(self.pos), stop=True)

description

description

description

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

实际仓位与策略显示的仓位不一致,导致下单异常

Administrator
avatar
加入于:
帖子: 2129
声望: 96

可以在策略内,通过下述代码访问底层持仓

# 以HBDM的净持仓为例
vt_positionid = f"{self.vt_symbol}.{Direction.NET.value}"
position = self.cta_engine.main_engine.get_position(vt_positionid)
if position:
    net_pos = position.volume
else:
    net_pos = 0

但注意这种写法并不推荐使用

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

嗯,谢谢老师

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