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

尊敬的群主和各位前辈好,请教下
背景:(下面三件事在一个交易日内)
1.我在vnpy里手动下了一手多单rb1910
2.然后在cta模块里初始化+启动 策略A,标的为rb1910,策略A pos为0,然后停止策略,退出客户端,在本地json文件里,找到策略A,把pos手动由0改为1
3.启动客户端,加载策略A,,初始化后pos为1,接着行情触发策略平仓条件,sell函数无法平仓,报错“平昨仓位不足”
问题
1.像上面这样步骤操作,在重新登录平仓的时候,是不是vnpy系统默认这个仓位是昨仓,直接发平昨指令?这样认定的原理在哪个py文件里?
2.像上面这样步骤操作,我就是想把这个手动下的今天仓位(系统认为是昨仓)平掉(就是有今仓平今仓,有昨仓平昨仓,就是要平掉一手),代码里需要加什么?(现在平仓用的sell和cover函数)
(如下图所示,手动开sc空单后,上面一顿操作,系统自动平仓不了)
description

跪谢解答

Administrator
avatar
加入于:
帖子: 1711
声望: 80

这是因为你用的SIMNOW环境,CTP柜台的今昨仓位计算有问题~~和vn.py本地处理没关系哦,换个别的测试环境或者实盘环境就行了

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

用Python的交易员 wrote:

这是因为你用的SIMNOW环境,CTP柜台的今昨仓位计算有问题~~和vn.py本地处理没关系哦,换个别的测试环境或者实盘环境就行了
群主大大好!所以别的测试环境,俩平仓函数(sell cover)就可以实现【有今仓平今仓,有昨仓平昨仓,就是要平掉一手】的功能是吧?

Administrator
avatar
加入于:
帖子: 1711
声望: 80

是的,实盘环境肯定可以

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