OnBar(ArrayRef<Integer> indexs)
在实际运行的时候是:历史k线只执行收盘的时候,当前k线是每个价格波动都执行。
那如果我的策略开仓位不是K线收盘时,也不是K线开盘时,而是k线运行中。理论上实盘是可以实现的。
但是就是不知道回测历史数据的话,这种k线运行中开的单,也能正确回测出来吗?
能否说一下,回测历史数据的执行机制。因为写完EA,必定回测的。我想知道回测的执行和实际执行到底差异在什么地方,以考证回测报告的准确性。
历史不是tick,只有收盘的结果
那这样的话,回测历史数据基本就只能做做简单的k线收盘模型了,我还以为 onbar 改成tick驱动后,回测历史数据的机制也改成tick驱动了。
你可以看看系统公式的 动态突破策略是怎么做盘中突破处理的,这个策略不是收盘才确认信号的
我问的是 回测历史数据的时候,如果我k线没有收盘就开市价单。
比如:就简单的,5均线 和10均线,金叉就买,但是我不是要求k线收盘后开仓。而是K线运行过程中金叉就开仓。我知道 onbar事件机制里如果是当前k线是可以实现的。但是回测历史就只能是收盘后来判断是否金叉了是吧。那这样的话,如果是k线运行过程中开的单子,测试历史数据就完全不准确了是吧。
MT4,MT5都能准确测试k线过程中的情况的。
我知道你的意思,历史k线就是按照收盘状态运行一次,至于这根K线在盘中的时候是否能触发你的条件,要通过你的逻辑推算去判断出来,还要把触发时的最新价格也推算出来作为信号价格,这样写出来的模型就是真实的
信号只有两个参数,手数和价格
你理解的不太准确,不是只执行收盘,是开高低收只读取收盘状态的bar。
如果你能推算出,k线盘中满足条件时的价格和手数,那不就相当于能标记出信号了吗