你这个不仅夸周期无法更新,就是当前周期的0号K线,你的写法也无法更新
这里rates_total - prev_calculated = 0 时,0号K线没有得到更新
for(int i=0; i<rates_total - prev_calculated && !IsStopped(); i++)
跨周期的指标,比较麻烦。思路如下:
短周期h4(当前图表周期),长周期d1。
1)定时更新
正常情况,可以使用定时器,或者比较当前时间与上次更新时间的差值,是否超过了设定的阀值。
需要更新时,发出计算信号,或者调用计算函数。
2)计算指标的值
读取指定周期(长周期d1)的价格数据。
这里可能会出现数据不在本地,需要从服务器下载的情况。由于数据下载需要时间,因此遇到这种情况时,我的处理是直接返回程序错误(异常情况)。下一个行情数据到来时,mt5会启动指标、ea等,这时让程序重新读取价格数据。若网络延时比较大,需要多读几次,方能成功。
通过价格数据,计算指标、ea等。
计算结果,若需要绘图,则调用绘图函数。
若无需绘图,则正常返回。
空了写个样本发到代码库,MT4的很简单,MT5的跨周期则比较麻烦,会存在不少问题,特别是周末要特殊处理。
感谢!
在实现4小时图中显示日线图的布林功能中,该跨周期指标不随K线变化而更新,求解,哪里出了错。
以下为跨周期指标代码: