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
加入于:
帖子: 4655
声望: 266

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

# 以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

嗯,谢谢老师

Member
avatar
加入于:
帖子: 18
声望: 1

用Python的交易员 wrote:

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

# 以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

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

请教,为什么不推荐使用?
是交易所的限制还是程序执行的效率考虑?

这些数据对于交易系统太重要了。有没有这方面底层api运用的资料?谢谢!

Member
avatar
加入于:
帖子: 2115
声望: 140

可参考https://www.vnpy.com/forum/topic/1806-vnpyshi-fou-ti-gong-zai-ce-lue-zhong-cha-xun-chi-cang-xin-xi-de-fang-fa

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

沪公网安备 31011502017034号