Скачать MetaTrader 5

Подскажите где ошибка

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Apologet
99
Apologet  

Пишу советника на mql4. Одним из критериев его работы является закрытие ордера при открытии нового бара. Для этого я во время открытия позиции присваиваю значение переменной

  OpenTime=iOpen(NULL,PERIOD_H1,0);  

При последующих итерациях советник просто получает значение цены открытия бара и если оно отличается от значения OpenTime, то даёт команду на закрытие ордера

  Open0=iOpen(NULL,PERIOD_H1,0); // Значение open на нулевом баре

  if (Working==true && OpenTime!=Open0) // Условия для закрытия   
Alert("Попытка закрыть ордер ",Ticket,". Ожидание ответа..");

 Но это не работает советник закрывает позиции на следующем же тике после открытия. пробовал читать журнал его работы и вот что увидел:

 Alert: OpenTime=1.3359

Alert: Open0=1.3359

Alert: "Попытка закрыть ордер 12895243. Ожидание ответа..

 

Заранее спасибо за любую помощь 





 

Alexandr Bryzgalov
39706
Alexandr Bryzgalov  

))), за что боролся на то и напоролся

ты присваиваешь цену открытия бара,а не время открытия

Apologet
99
Apologet  
sanyooooook:

))), за что боролся на то и напоролся

ты присваиваешь цену открытия бара,а не время открытия



со временем открытия то же самое

в любом случае почему строка :  if (Working==true && OpenTime!=Open0) при одинаковых значениях OpenTime и Open0 срабатывает как условие

o_o
Модератор
24221
o_o  
sanyooooook:

))), за что боролся на то и напоролся

ты присваиваешь цену открытия бара,а не время открытия

да. веселая у человека проблема :))

значится так

1. исправить тип переменных Open0 и OpenTime - на datetime

2. брать iTime(,,0)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий