Как при помощи встроенного языка отловить ввод нового ордера или скажем закрытие ордера? - страница 2

 
Lora:
сначала пропала связь, а потом и все графики исчезли.
Думаю, что эти события никак не связаны с запоминанием IP на вашем компьютере.
 
ТО SKif Да, но то, что я описала, Я пыталась проделать на трех разных терминалах!! Я так и не смогла подключиться к Альпари.
 

Вы меня заинтересовали. Дайте мне этот IP, я попробую это сделать на одной из своих машин.

 
Оба опубликованы на сайте Альпари: 217.74.44.32:443 и 212.65.93.12:443 Демо. Из меня специалист никудышный, поэтому и попросила помощи. Возможно я что-то неправильно делаю? А может быть вообще все не так?
 

Я попробовал ещё раз, всё получилось..

Попробуйте ещё раз. Если будет подвисать, подождите немного, пока МТ скачает историю в открытые окна.

 
Интересно получается: полдня мучалась зря, а сейчас попыталась и получилось. Правда только на одном терминале, но всеравно - прогресс.
 

У меня вопросик. При помощи функции OrderSelect выбираю из истории закрытый ордер. Мне нужно проверить был он открыт на текущем баре или нет. Если например у меня часовый график то проверяю так:

if(TimeHour(OrderOpenTime())==TimeHour(CurTime())) // Час совпадает { if(TimeDay(OrderOpenTime())==TimeDay(CurTime())) // День совпадает { Print("Ордер открыт на текущем баре"); return(0); } }

Если я программу с таким кодом включу не на часовках то она будет работать неправильно. Можете подсказать, как эту задачу можно решить по другому, может какая-то функция специальная есть, или что то подобное. Спасибо.

 
Почему не будет работать?
 
Rosh писал (а):

Почему не будет работать?


Он будет правильно работать на графике Н1. Если я например его включу на минутках (М1) то придется дописать

if(TimeMinute(OrderOpenTime())==TimeMinute(CurTime())) // Минута совпадает

А если к примеру эксперт запущен на М30, выбранный ордер из истории был открыт например в 12:15, а проверка проводится в 12:45, то эксперт напишет "Ордер открыт на текущем баре", так как час совпадает. А на самом деле новый бар начал формироваться в 12:30.

Да и мне кажется что это как-то не рационально, у меня даже тестер стратегий стал заметно медленнее работать. Думаю что есть более простой способ определить на каком баре был открыт ордер. Я не особо разбираюсь в mql, недавно начал изучать. Спасибо.

 
Понял, есть необходимость проверять - открыт ордер в пределах текущего тайм-фрейма или нет. Тогда проще:

if(iBarShift(NULL,0,OrderOpenTime())==iBarShift(NULL,0,CurTime())) // бары совпадают
{
Print("Ордер открыт на текущем баре");
return(0);
}
Причина обращения: