之前也出现过同一个策略两个指标不同的问题,已经重装最新版vnpy
print了每一根bar的该指标的数值出来,初始化途中没有问题,但是初始化完成,即使没有按start都是不同的
因为我round了指标,所以肯定是不对的
请问是什么原因呢?
最奇怪的是,这个问题只有在初始化才会会出现,一般等实盘发生指标更新了,就会正常?
查了下,直接调用了关机之前的记录 strategy_data.Jason,没有因为初始化而更新?请问这是为什么呢?
郭易燔 wrote:
相同品种的策略的行情数据是一样的。计算指标不一致的话请检查两个策略的参数是否一致,图片上有个参数两个策略分别是10和15。具体细节可以在自行在策略中打印数据进行对比。
实盘会不会出现开盘附近的脏数据在不同策略线上不同响应呢?
10/15不是策略的计算参数,在因子计算上是一致的,实际上重启了之后盘中再启动,计算也是一致的
所以才会怀疑是不是开盘 or rqdata初始化的问题?
如上图,是同一个品种同一个周期完全相同的策略文件
指标是利用AM来计算的,在初始化的时候,指标计算的值是一致的,但是实盘的时候,计算出来的值就不一致了
难道每一条策略都是单独的数据流吗?即使这样也不应该出现计算不一致的情况啊
由于云服务器的分辨率问题,这个回测结果的边框都压缩了根本看不到....
请问怎么变成可以拖动调整大小的
我记得rqdata的数据和ctp的数据在时间戳上面有差异?但是忘了....
还有就是ctp实盘的时候,有时候最后一根k是收盘前发出,有的是开盘后第一个tick发出,
请问是什么情况呢?
xiaohe wrote:
不知道你策略怎么写的了,更多是由策略逻辑决定的
不是,我是直接用sell 和cover的...但是我觉得这个应该是比如我平2手,然后如果默认先平今,如果恰好只有一手今仓,就会一直跳bug...
我意思是这种,怎么获得比如今仓到底有多少之类的...来避免这个bug
有的时候会报错平仓超限,感觉是因为平的是今仓...但是恰好不够数?
请问这个问题应该怎么处理?
在哪儿可以找到相关的处理信息?或者教程?
谢谢
self里面设定数组有问题,设定了一个[ ]来记录不同子策略的持仓
回测通过
实盘中发现每一个bar都会产生数组的方向变动?
感觉是不同策略之间会相互影响?换成单一变量记录貌似就没有这个问题了?
用Python的交易员 wrote:
请贴下出错后的截图?
正常情况下,策略触发异常后,就会立即被CTA引擎停止
没有截图,因为是我用print来检测出是没有运行的
策略的逻辑是onbar里面有一个检测持仓和self.fixsize是不是一致的语句,之前可以盘中改交易手数
但是昨天更新了之后,这句话的检测就bug了,明明持仓和self.fixsize不一致,但还是认为是一致的,于是后面的代码就没有运行了
所以我推断,是因为盘中停止策略修改的self.fixsize没有传达到里面?
盘中修改已经在跑的策略,把fixsize改成其他的情况下
通过print发现只要这样做就 有bug,立刻那个策略就不会再有数据运行
这是什么回事呢?
或者,如何退回2.16,刚更新2.18才有的问题
好得,谢谢,但是很神奇的是,重启了一次又好了?难道会有一个bug,某情况下不更新on_bar?
新版本是修改了on_bar函数吗?
昨天从1.6更新到1.8,今天盘中发现所有onbar的都没有触发,请问是什么回事?
是不是底层改过了?
hxxjava wrote:
arnego wrote:
为什么合成比如5分钟,有的时候是在5分钟最后,有的时候是在下一分钟开始?
有的时候收盘最后扔了单子,然后被拒了,然后有时候开盘会补回,有时候补回?
我的理解是有时候开盘那一瞬间才完成上一根bar?因为:
1)tick推动1分钟合成bar的生成,然后1分钟合成bar推到5分钟合成bar的生成。
2)这导致你在5分钟合成bar的on_5min_bar()【加入你策略中就叫着个名字】中做的交易不是由时间来触发的,而是取决于新的5分钟合成K线的第一个tick数据是何时出现的。
3)如果新的5分钟合成bar的第一个tick数据来的早,你的策略就会结束旧的5分钟合成bar,然后使用它作为参数早执行交易,如果来的晚就晚执行。道理就是如此。
感谢回复,请问这个有办法标准化到第二天开盘再执行吗?
就像这样,每天收盘前最后一根K线都是被拒,但是平常成交都是00秒的
为什么合成比如5分钟,有的时候是在5分钟最后,有的时候是在下一分钟开始?
有的时候收盘最后扔了单子,然后被拒了,然后有时候开盘会补回,有时候补回?
我的理解是有时候开盘那一瞬间才完成上一根bar?
xiaohe wrote:
- 是有rqdata账户吗?
- 上海证券交易所在rqdata好像是XSHG
谢谢回复.
有rqdata的,期货一直使用没有问题.
SSE/SZSE是XTP的后缀,登录XTP的情况下,用xshg会这样
如图所示,一按下载数据就bug了,这是为什么呢?