1 MQL会认为那是缺省值,不需要绘制
2 -1是你自己要这样,意味着你要重新计算(你认为原来的有误差或不可信?), 上一个十字星(10根K线以后形成的)的收盘价将丢失?收盘价在Close中,可能只是你就在Cross.Buffer的你给修改了。 一般没有问题,要知道 一般的误差至少也得一根线! 没有精准无比的东西,只有误差多少的问题 包括值和时间。
3 没有,它的用处就是 对付 时间价格的更新变化重算, 或者你自己想个办法怎么对付 时间的变化.....
提醒: mql自身并不完美。
1 MQL会认为那是缺省值,不需要绘制
2 -1是你自己要这样,意味着你要重新计算(你认为原来的有误差或不可信?), 上一个十字星(10根K线以后形成的)的收盘价将丢失?收盘价在Close中,可能只是你就在Cross.Buffer的你给修改了。 一般没有问题,要知道 一般的误差至少也得一根线! 没有精准无比的东西,只有误差多少的问题 包括值和时间。
3 没有,它的用处就是 对付 时间价格的更新变化重算, 或者你自己想个办法怎么对付 时间的变化.....
提醒: mql自身并不完美。
代码如上,问题如下:
假设该程序运行的图表中,共有10根K线,且从左到右,只有第1和第5根K线是十字星,且收盘价分别为10.01和10.05。
1. 以上程序运行时,新价格第一次被更新后,indicatorCounted()首次运行时返回0值,并赋给counted_bars;接下来两个if语句均未被触发,则limit=bars-0=10;然后进入for循环,i 初始值为10,然后递减为0;整个过程中,使得Cross.Buffer[9]=10.01,Cross.Buffer[5]=10.05,然后Cross.Buffer[10]=Cross.Buffer[8]= Cross.Buffer[7]= Cross.Buffer[6]= Cross.Buffer[4]= Cross.Buffer[3]= Cross.Buffer[2]= Cross.Buffer[1]= Cross.Buffer[0] =0.0. 是这样吗?如果是,那为什么画线的时候,只有连接Cross.Buffer[9]和Cross.Buffer[5]的线段,而没有连接其它值为0.0的线段,我的意思是程序是如何识别不需要连接0.0值得,毕竟他们都是在同一个数组中。
2. 当价格再次被更新后,indicatorCounted()返回值为10,并赋值给counted_bars,则第二个 if 语句被触发,counted_bars=9;则limit=1;然后进入 for 循环,则重新写入Cross.Buffer[1]的值;问题是,当新K线出现以后,被更新的永远是Cross.Buffer[1]值,即Cross.Buffer[1]记录了刚刚形成的十字星的收盘价,而上一个十字星(10根K线以后形成的)的收盘价将丢失。所以我想以上运行追踪应该有问题,因为实际并非如此,请问是哪里的问题?
3. indicatorCounted()被运行一次以后,其返回值和Bars一样吗?indicatorCounted()还有其他作用吗?
谢谢!