- Особенности языка mql4, тонкости и приёмы работы
- Поясните, что это?
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
После выполнения OrderSend обращение к соответствующим ордеру, позиции или сделке не всегда успешно. Бывают ситуации, когда нужно подождать несколько десятков миллисекунд, пока историческая или текущая торговая информация станет корректной.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
TakeProfit (и StopLoss) закрытой позиции
fxsaber, 2016.07.17 20:19
Это не огульные обвинения, а результат многочасовых попыток разобраться (никакие HistorySelectByPosition и прочее не помогают), как же все работает. И я готов с радостью принести свои извинения, если ошибаюсь. Чтобы не быть голословным привожу советник для тестера (так проще разобраться) на сервере RoboForexEU-MetaTrader 5, который открывает позицию, затем ставит SL и TP-уровни.
void OnTick() { static bool Flag = true; if (Flag) { // Открываем SELL-позицию MqlTradeRequest Request = {0}; Request.action = TRADE_ACTION_DEAL; Request.symbol = Symbol(); Request.volume = 1; Request.price = SymbolInfoDouble(Symbol(), SYMBOL_BID); Request.type = ORDER_TYPE_SELL; MqlTradeResult Result; if (OrderSend(Request, Result)) { // Устанавливаем SL и TP Request.position = Result.deal; Request.action = TRADE_ACTION_SLTP; Request.tp = Result.ask - 10 * _Point; Request.sl = Result.ask + 10 * _Point; if (OrderSend(Request, Result)) Print("Сделка в тестере закроется либо по SL, TP, либо по окончании бэктеста") ; Flag = false; } } }
В этом советнике невозможно определить (в OnDeinit) SL и TP единственной закрытой позиции. Это так задумано?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернатива Sleep для прогонки в тестере
Vitalie Postolache, 2017.02.10 18:01
А таймеры работают в тестере МТ5?Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернатива Sleep для прогонки в тестере
Slawa, 2017.02.22 11:16
Да, но только для тестируемого эксперта. Для индикаторов, которые использует эксперт, - нетФорум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Slawa, 2017.02.14 13:46
Зачем? Достаточно однократного действия.И пока символ выбран в обзоре рынка и история по символу удерживается экспертом, то она поддерживается в синхронизированном состоянии. Удержание экспертом означает не реже 1 раза в 2 минуты обращаться к этой истории, например копированием одного бара. Если история синхронизирована, то на копирование одного бара время не тратится - всего несколько тактов процессора. Либо, как тут только что сказали, спрашивать количество баров, тоже несколько тактов
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Alexey Kozitsyn, 2017.02.14 13:47
К индикаторам относится интервал в 2 минуты?
Да, а проверкой факта синхронизации синхронизация также будет удерживаться?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Slawa, 2017.02.14 13:50
К индикаторам тоже относится. Создайте 1-минутный таймер и спрашивайте количество баров у всех интересующих Вас таймсерий.Проверкой факта синхронизированности синхронизация не удерживается.
После выполнения OrderSend обращение к соответствующим ордеру, позиции или сделке не всегда успешно. Бывают ситуации, когда нужно подождать несколько десятков миллисекунд, пока историческая или текущая торговая информация станет корректной.
Да не надо ждать несколько миллисекунд.
Сообщение придёт в OnTradeTransaction
см. код
В скриптах этого нет. Вместо скрипта использовать связку советник+ExpertRemove глупо.
Более того, OrderSend вываливается по таймауту, если нет ответа от сервера 180 секунд. Это говорит о том, что в OnTradeTransaction могут скапливаться вечно ожидаемые тикеты. И вариант всего одного order_ticket для OnTradeTransaction, как в скрипте у Вас, плох. После асинхронной отправки идет работа со списков ордеров. На то она и асинхронная, чтобы работать с пачками. А если работы с пачками нет, то асинхронность никогда не нужна.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования