我已经编写了一个代码来计算. MQL5
但它不起作用。
MQL 代码是:
/////////////////////////////////////////////////////////
int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
{
//----+
//---- check for the presence of bars, sufficient for the calculation
if (rates_total < (sdPer - 1) + begin)
return(0);
//---- declaration of local variables
int first, bar, i, t;
//---- calculation of starting index first of the main loop
if(prev_calculated==0) // check for the first start of the indicator
first=sdPer-1+begin; // start index for all the bars
else first=prev_calculated-1; // start index for the new bars
//---- main loop of the calculation
for(bar = first; bar < rates_total - 1; bar++)
{
t = 0;
//---- avaliation loop for the current bar
for(i = 0; i < sdPer; i++)
if(price[bar] > price[bar - i])
{
if(t >= 1)
t = t + 1;
else t = 1;
}
else if(price[bar] < price[bar - i])
{
if(t <= -1)
t = t - 1;
else t = -1;
}
else if(price[bar] == price[bar - i])
{
t = 0;
}
//---- set the element of the indicator buffer with the value of SMA we have calculated
ExtLineBuffer[bar]=t;// **streak duration**
}
//----+
return(rates_total);
}
////////////////////////////////////////////////////////////
我没有发现错误。怎么错了?