if(prev_calculated>0)
limit++;
стри
i<
добавь=
Смотрите в логах, чтобы не получилось деление на ноль.
При делениии, ЛЮБОМ, а у тебя оно здесь: CorrelationBuffer[i]=iClose(Pair1,0,i)/iClose(Pair2,0,i);
Нужно ставить:
if (iClose(Pair2,0,i)!=0) CorrelationBuffer[i]=iClose(Pair1,0,i)/iClose(Pair2,0,i);
Раньше сам компилятор проверял деление на ноль, теперь это прерогатива программиста.....к сожалению. Хотя если знать об этой особенности, то особого труда не составляет. Лишний код есть не просит как грицца!!!!
При делениии, ЛЮБОМ, а у тебя оно здесь: CorrelationBuffer[i]=iClose(Pair1,0,i)/iClose(Pair2,0,i);
Нужно ставить:
if (iClose(Pair2,0,i)!=0) CorrelationBuffer[i]=iClose(Pair1,0,i)/iClose(Pair2,0,i);
Раньше сам компилятор проверял деление на ноль, теперь это прерогатива программиста.....к сожалению. Хотя если знать об этой особенности, то особого труда не составляет. Лишний код есть не просит как грицца!!!!
И когда же существовала эта самая проверка деления на 0?
Может что упустил
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ребят, я с программирование не очень хорошо, раньше кодил маленько, но сейчас все забыл. Помогите разобраться с индюком, всю голову сломал, какие варианты уже не пробовал, ну никак.
int limit;
limit=rates_total-prev_calculated;
if(prev_calculated>0)
limit++;
for(int i=0; i<limit; i++)
{
CorrelationBuffer[i]=iClose(Pair1,0,i)/iClose(Pair2,0,i);
}