VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 7
声望: 0

我看offset_converter.convert_order_request()中如果要求锁仓,调用PositionHolding.convert_order_request_lock()。这个方法的逻辑是,比如下单方向是Direction.LONG,只要今日有空头仓位则无论是哪个交易所的订单都是改为开仓,这里对于上期所和能源交易所如果昨天有空头仓位,感觉应该优先平昨,再把剩下的改为开仓吧?

Member
avatar
加入于:
帖子: 5078
声望: 306

vnpy.trader.converter.py里288,289行的convert_order_request_lock函数里有对这个两个交易所在有昨仓情况下先平昨的处理的

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

xiaohe wrote:

vnpy.trader.converter.py里288,289行的convert_order_request_lock函数里有对这个两个交易所在有昨仓情况下先平昨的处理的
我看convert_order_request_lock函数的275行的逻辑是如果td_volume不为0,就直接将订单改为开仓并返回了,也就是说即使有昨仓,只要今日有开仓,就不会平昨。

Member
avatar
加入于:
帖子: 5078
声望: 306

锁仓主要是为了避免平今惩罚,而怎么判断是否平今,怎看今天有没有开仓。这个函数里的td_volume是今天反方向开仓的数量。那如果今天反方向开过仓了再去平那肯定就是平今了。
这个锁仓转换有在官网微信公众号里的vn.py全实战进阶-CTA策略的第32课锁仓转换做具体讲解,感兴趣的话可以去看一下。

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

沪公网安备 31011502017034号

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