If(Countif(sar>=high,10)>=9 && MarketPosition ==0 && sar[1]>=high[1] && sar[0]<low[0] )//当前没有持仓,sar连续9根以上K线空头,当前sar空转转多买入开仓
{
Buy(n,0);//用现价马上发送委托买入n张合约 }
上面策略运行后,结果是在历史K线上发信号下单了。请问各位老师,如何让它不要在历史K线上下单,我只要它在当前最新K线上判断是否要下单。要怎么写?
正常情况下没办法
如果非要历史Bar不出信号
只能在日线级别的OnBarOpen域
ReStrart(False)
1、需要一个全局变量辅助
用以控制只运行一次
2、需要barstatus == 2 控制是当前Bar
按照你这个逻辑,每次刷新图表都会让之前运行时留下的信号消失,你确定要这个效果吗?
你确定的话条件里加 barstatus == 2 就行了
嗯,我只需要最近的9根K线满足条件就行,之前的不用管。但这样会不会又出现另一个问题,就是当前已经开单,然后又过了十几根K线条件又满足了会不会重复开单?
你的问题其实挺奇怪的
正常来说,历史bar会出信号,但是不会下单的。
你说历史bar上下单这个我不能理解
如果图上已经有开仓信号了,你模型里做了不加仓设置,不会加仓