Всех приветствую.
Подскажите, пожалуйста, как установить время закрытия сделки по аналогу с экспирацией опционов?
Мне нужно установить время закрытия каждой открытой сделки.
Т.е., я открываю штук 5-10 сделок по каждой валюте и
мне нужно у каждой установить время, когда сделки закрыться, если она не закрылась по стопу или лоссу.
в коммент или в мэйджик ордера записать время закрытия
и написать функцию, которая каждый тик перебирает все открытые сделки, и проверяет не пора ли им закрыться.
Можно так (закрывает все сделки в указанное время):
if(TimeHour(TimeCurrent())==22 & TimeMinute(TimeCurrent())==30){ for (int i=OrdersTotal()-1; i>-1; i--){ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){ if(OrderSymbol()==Symbol()){ bool orderClose=false; while(!orderClose){ orderClose=OrderClose(OrderTicket(),Lot,Bid,Slippage); } } } } }
Для каждой сделки отдельно удобно будет только если внутри дня (например код ниже по идее должен закрывать сделку через 5 часов после открытия... но только если внутри дня дальше думать нужно...):
for (int i=OrdersTotal()-1; i>-1; i--){ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){ if(OrderSymbol()==Symbol()){ if(TimeHour(TimeCurrent())-TimeHour(OrderOpenTime())>=5 & TimeMinute(TimeCurrent())>TimeMinute(OrderOpenTime())){ bool orderClose=false; while(!orderClose){ orderClose=OrderClose(OrderTicket(),Lot,Bid,Slippage); } } } } }
Если за пределами дня открытия наверное немного сложнее будет
Можно так (закрывает все сделки в указанное время):
Для каждой сделки отдельно удобно будет только если внутри дня (например код ниже по идее должен закрывать сделку через 5 часов после открытия... но только если внутри дня дальше думать нужно...):
Если за пределами дня открытия наверное немного сложнее будет
Гениально. А если нужно для каждой позиции установить своё время жизни позиции, да ещё и время рандомно? И не исключён вариант, что та позиция которая
открыта последней должна быть закрыта первой.
Для каждой сделки отдельно удобно будет только если внутри дня (например код ниже по идее должен закрывать сделку через 5 часов после открытия... но только если внутри дня дальше думать нужно...):
if(TimeCurrent() > OrderOpenTime()+ 5*3660 )
Точняк! А не нужно 3600 на 1000 умножать или там в секундах?
https://docs.mql4.com/ru/trading/orderopentime
datetime OrderOpenTime();
в MQL datetime ограничен секундами
Можно так (закрывает все сделки в указанное время):
Для каждой сделки отдельно удобно будет только если внутри дня (например код ниже по идее должен закрывать сделку через 5 часов после открытия... но только если внутри дня дальше думать нужно...):
Если за пределами дня открытия наверное немного сложнее будет
есть идея
в коммент или в мэйджик ордера записать время закрытия
и написать функцию, которая каждый тик перебирает все открытые сделки, и проверяет не пора ли им закрыться.
Ребят, от души. Всем спасибо за помощь
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всех приветствую.
Подскажите, пожалуйста, как установить время закрытия сделки по аналогу с экспирацией опционов?
Мне нужно установить время закрытия каждой открытой сделки.
Т.е., я открываю штук 5-10 сделок по каждой валюте и мне нужно у каждой установить время, когда сделки закрыться, если она не закрылась по стопу или лоссу.