使用RB000映射,设置偏移,1分钟交易,在6月30日22:57:01成交,收盘后看那个K线,根本就没有这个价格,为什么当时能成交,并且当时在K线上,程序也标记出那个交易。什么问题?当时报价系统问题吗,收盘后K线值正常了?
在实时bar上,如果你的图表交易命令的价格参数,超出bar的high、low范围,信号会按照这个价格标记在bar未达到的位置。如果价格超出当天limit价格,会矫正到limit价格。
当实时bar变成历史bar重算的时候,这个信号价格会矫正到当前bar的,high、low范围内。
你这个情况,应该是公式偷价了,计算了一个不可能出现的价格出来。
“在实时bar上,如果你的图表交易命令的价格参数,超出bar的high、low范围,信号会按照这个价格标记在bar未达到的位置“
实时bar上价格未达到这个价格(超出bar的high、low范围),Buysell也不能触发,信号为什么能标记?
”计算了一个不可能出现的价格出来“,那么当时也不应该触发,不好意思,没有明白你这句话。
buy就只是个信号标记函数而已,盘中系统会根据实时bar上的信号报单
你实盘交易的时候k线最高价1000,但是不妨碍你想用1010去报单买入啊!所以盘中k线上的信号价格,你程序里算出来是多少就按多少标示,然后软件系统读到这个1010,就会根据1010这个价格去报单买入。
而当这个k线从实盘k线变成历史k线以后,就要考虑这个价格是否是成交价格,因为这个会影响回测的准确性,这个价格从委托价变成了成交价。这个应该不难理解吧?你虽然用1010去报买入,但是这根bar走完了最高价才1000,说明你委托价1010报出去,实际成交价格一定是低于1000的。
历史信号为了回测用,回测一定是用成交价计算,如果是委托价就乱套了
”根据实时bar上的信号报单”,当时没有这个价格,为什么能触发?按照这个逻辑,buySELL参数随便填个价格比如1000000,那么每个K线都有标记?我测试过,它只在开盘价格交易。
触发价格跟报单价格是两回事,我想上涨突破1000点以后用1010去报单买入为什么不可以?1010不在bar的高低价范围内就不能报单了吗?
问题是条件触发了,并报单,保单当时没有这个价格,应该显示交易失败,但是显示交易成功?并且在K线以外交易成功。
5159这个价格买盘有啊,为什么不能成交。
明白了。但是当时触发条件就是在BAR的价格当中
If(High-targetPrice>=0)
{
Sell(1,targetPrice);
}
为什么会在K线以外价格报单?
设置偏移成交,偏移量为0
你设置委托偏移了吗?如果设置委托偏移,那报单价格和程序里写的就无关了,只取盘口了。
但是按照你这个代码,信号是不应该出在bar高低范围外的,如果是这种情况就不清楚什么原因了
我已经设置偏移了。就算不设置偏移,我这个条件也不应该在K线以外价格成交?
和模拟盘当时的报价系统有关吗?
非常谢谢你,对这个问题的耐心解答。