Скачать MetaTrader 5

Ошибки, баги, вопросы

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Запустили испанскую и португальскую версии сайта. Оцени сам!
admoon
22
admoon 2014.04.13 08:38 

Простая штука:

double min,max;

i=Bars-1-period1;
while(max-min==0)
{
min=Low[i];
max=High[i];
i++;
}

На ТФ: Д1 и М4 отладчик бракует строку min=Low[i];, терминал "виснет". Замена  на min=iLow() ;  ничего не даёт.Помогите понять где "дыра" :в текущих данных терминала, в новом редакторе МТ4 или в моей голове?

Aleksey Rodionov
4320
Aleksey Rodionov 2014.04.13 09:48  
Ihor Herasko
9029
Ihor Herasko 2014.04.13 20:33  
admoon:


На ТФ: Д1 и М4 отладчик бракует строку min=Low[i];, терминал "виснет". Замена  на min=iLow() ;  ничего не даёт.Помогите понять где "дыра" :в текущих данных терминала, в новом редакторе МТ4 или в моей голове?

1. Не в ту сторону происходит изменение индекса бара.

2. Нет проверки на выход из цикла по индексу баров.

Наверное нужно так:

double min = 0, max = 0;

i = Bars - 1 - period1;
while(max - min == 0 && i >= 0)
{
   min = Low[i];
   max = High[i];
   i--;
} 
Andrey Khatimlianskii
56145
Andrey Khatimlianskii 2014.04.14 22:55  

Я бы еще избавился от проверки на равенство для даблов:

double min = 0.0, max = 0.0;

for ( int i = Bars - 1 - period1; i >= 0 && MathAbs( min - max ) < DBL_EPSILON; i -- )
{
   min = Low[i];
   max = High[i];
}
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий