Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Храни исходные коды в MQL5 Storage. Это безопасно!
Igor Knyazkov
784
Igor Knyazkov 2016.03.01 08:18 
Здравствуйте. Хочу задать следующее условие: "если хай первого бара ниже хая второго с погрешностью в -10 пунктов(то есть хай второго бара максимум больше хая первого максимум на 10 пунктов).

Вот код:

if ((iHigh(Symb,tmf,1)<=iHigh(Symb,tmf,2)+10*Point)
{
Alert();
}


Symb-символ, tmf-таймфрейм.
Проблема в том, что алерт очень часто срабатывает там, где не надо. Где ошибка?

Dennie
38
Dennie 2016.03.01 08:55  
А где он должен срабатывать? Если этот код будет в обработчике "OnTick()", то он будет непрерывно гнать алерты по каждому тику, если два указанных бара соответствуют условию. 
Igor Knyazkov
784
Igor Knyazkov 2016.03.01 15:51  
ouch:
А где он должен срабатывать? Если этот код будет в обработчике "OnTick()", то он будет непрерывно гнать алерты по каждому тику, если два указанных бара соответствуют условию. 
Он как раз расположен в функции OnTick()... Но я не имею ввиду срабатывание алерта на каждом тике после нужного бара-с этим проблем нет :) Проблема в том, что алерт срабатывает на НЕНУЖНЫХ барах, барах, которые не попадают под условие(во всяком случае то, которое я хотел заложить в этот код). Я заметил, что алерт срабатывает по принципу: "если хай первого ниже хая второго". То есть, не учитывается разница в 10 пунктов.
Vasyl Nosal
18222
Vasyl Nosal 2016.03.01 16:07  
-10*Point
?
Igor Knyazkov
784
Igor Knyazkov 2016.03.01 16:24  
Всем спасибо! Вопрос решен! :)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий