Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ищи и скачивай программы из Code Base через MetaTrader. Это быстро!
Apologet
99
Apologet 2011.01.13 20:12 

Пишу советника на 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
27308
Alexandr Bryzgalov 2011.01.13 20:14  

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

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

Apologet
99
Apologet 2011.01.13 20:23  
sanyooooook:

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

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



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

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

o_o
Модератор
23690
o_o 2011.01.13 20:29  
sanyooooook:

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

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

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

значится так

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

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

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