1.重启后指标会从新加载,指标buffer都是要从新计算的,因此指标buffer会被置于空值,信号会消失。
2.价格变动几下也会出现消失的情况,这种情况就是指标buffer都被初始化为空值了。
因为某些情况下prev_calculated会被置零,这些情况包括:掉线后又连线,价格图表有丢失数据重新补充后,切换图表周期,修改指标参数。
prev_calculated被置零,你的代码中指标的buffer就初始化为空值了。
1.重启后指标会从新加载,指标buffer都是要从新计算的,因此指标buffer会被置于空值,信号会消失。
2.价格变动几下也会出现消失的情况,这种情况就是指标buffer都被初始化为空值了。
因为某些情况下prev_calculated会被置零,这些情况包括:掉线后又连线,价格图表有丢失数据重新补充后,切换图表周期,修改指标参数。
prev_calculated被置零,你的代码中指标的buffer就初始化为空值了。
为何mt5重启后指标箭头消失,有时候是价格变动几下就消失箭头信号了,就这个简单代码,为啥?
int OnCalculate(const int rates_total,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int limit,i;
if(prev_calculated==0)
{
limit=50;
ArrayInitialize(bk,EMPTY_VALUE);
}
else
limit=prev_calculated-1;
for(i=limit; i<rates_total && !IsStopped();i++)
{
if(true&& i-bkt>16)//当前位置和上次条件成立位置大于16根bars
{
bk[i]=low[i];
bkt=i;////记录条件成立时候的bars位置
}
}
return(rates_total);
}