Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Все программы в Code Base доступны из MetaTrader 5. Опубликуй и ты свою!
Сергей
20
Сергей 2012.01.16 15:46  

Думаю Mx1 и Mx2 тоже следует обнулять перед каждым циклом.

Не не правильно, надо добавить ограничение не дальше Timemax1:

if (Timemax1== iTime(NULL,"PERIOD", i)) 
    {
     max1=Mx1;
    }  
Файлы:
indps_3.mq4 5 kb
angela
1575
angela 2012.01.16 16:46  
mInvIn:

Думаю Mx1 и Mx2 тоже следует обнулять перед каждым циклом.

Не не правильно, надо добавить ограничение не дальше Timemax1:



Вставляя это,

if (Timemax1== iTime(NULL,"PERIOD", i)) 
    {
     max1=Mx1;
    }  
Вы предыдущую строчку внимательно смотрели?
Сергей
20
Сергей 2012.01.16 17:32  
Angela:


Вставляя это,

Вы предыдущую строчку внимательно смотрели?


Какую именно? Если эту { max1=iOpen(NULL,"PERIOD", i);Mx1=iOpen(NULL,"PERIOD", i); Timemax1= iTime(NULL,"PERIOD", i); }

то она исполнится только если {MathAbs(iOpen(NULL,"PERIOD", i)-Mx1)>15*Point}, а у вас с прошлой итерации осталось значение Mx1=iOpen(NULL,"PERIOD", i),

таким образом Ваша программа пропускает нужную свечу и идет искать дальше, и находит более старый вариант, отсюда скачки. Искать новую контольную точку

имеет смысл только на барах, появившихся позже последней имеющейся если же там нет - оставить старую. Может путанно изъясняюсь,

посмотрите на тестере нормально вроде работает.

Простите за невнимательность, конструкцию конечно же нужно перенести в старт. И что-то решать со второй точкой.

Файлы:
indps_4.mq4 5 kb
Сергей
20
Сергей 2012.01.16 18:20  
Еще предложил бы удалить цикл из инета, или исправить там Mx1=iClose(NULL,"PERIOD", i) на Mx1=iHigh(NULL,"PERIOD", i)
angela
1575
angela 2012.01.17 11:54  
mInvIn:


Какую именно? Если эту { max1=iOpen(NULL,"PERIOD", i);Mx1=iOpen(NULL,"PERIOD", i); Timemax1= iTime(NULL,"PERIOD", i); }

то она исполнится только если {MathAbs(iOpen(NULL,"PERIOD", i)-Mx1)>15*Point}, а у вас с прошлой итерации осталось значение Mx1=iOpen(NULL,"PERIOD", i),

таким образом Ваша программа пропускает нужную свечу и идет искать дальше, и находит более старый вариант, отсюда скачки. Искать новую контольную точку

имеет смысл только на барах, появившихся позже последней имеющейся если же там нет - оставить старую. Может путанно изъясняюсь,

посмотрите на тестере нормально вроде работает.

Простите за невнимательность, конструкцию конечно же нужно перенести в старт. И что-то решать со второй точкой.

Спасибо, этот вариант решает проблему, но не понятно, почему, по аналогии, не устанавливается вторая координата.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий