![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот мой вариант за вычетом собственно торговой логики.
И моя поправка к комментарию RaptorUK:
Я изменил код полилинии, чтобы разрешить наложения, ...
Обратная совместимость TLne:
Для рисования на субграфике просто используйте iWin = WindowFind("indicatorName");
Из сообщения о рисовании индикатора как на основном графике, так и на субграфике, TLine может быть использован для обоих с изменениями.
Для рисования на субграфике просто используйте iWin = WindowFind("indicatorName");
Спасибо
Время закрытия рынка.
Я хотел закрыть все ордера до конца недели (рынок закрывается в пятницу), чтобы предотвратить потери, если рынок разойдется в конце недели, пройдя SL. (Это не смоделировано в тестере).
Итак, вопрос в том, когда закрывается (или открывается) рынок. Все сообщения и поиски в сети просто неверны. От Forex Education - Introduction to Forex - IBFX Рынок Forex работает 24 часа в сутки, 5,5 дней в неделю (6:00 PM ET в воскресенье до 4:00 PM ET в пятницу) Это ET - Нью-Йоркское местное время.
Это означает, что все проводки зависят от того, когда они были сделаны, так как граница DST меняется из года в год.
Это означает, что необходимо вычислить, когда начинается и заканчивается NY DST для рассматриваемого бара. (Для обратного тестирования нам нужны значения по крайней мере до 2000 г.) Проблема в том, что Windows не предоставляет процедур преобразования, кроме как между текущим TZ и UTC, и только для текущего года. Если ПК не находится в системе ET, это невозможно сделать напрямую. Более того, пока не выйдет Windows8, вы не сможете получить конвертацию для ET и предыдущих лет. А в реестре Win7 значения охватывают только 2005 год (и те были неверными, если я правильно их прочитал), так что я не думаю, что Win8 будет лучше.
Это означает, что необходимо самостоятельно вычислить DST. Я обновил свой код: TimeGmt() и LocalTimeGMT() с аргументами по умолчанию, некоторой дополнительной документацией и проверками, а также написал код для вычисления времени закрытия рынка. Наслаждайтесь.
Это хорошие моменты, есть еще много вещей, которые являются догадкой даже с функциями MT4, которые не всегда возвращают правильное значение. Например, информация о брокере и сервере и торговые параметры, такие как переменный спред, ECN или нет, SL требуется или нет, выясняется только из обработки ошибок, информации о символах и т.д.
Многие из них - просто базовые вещи, которые не могут быть (и не должны быть) легко проверены. Например, информация об открытых графиках и исторических данных, информация о времени (например, GMT, часовой пояс, DST), информация об открытии и закрытии рынка.
Disaster Recovery было бы действительно хорошо, начиная с того, что MT4 не выключается и перезапускается, как он хочет (обновление), также terminal.exe правильно выключается, который остается замороженным в диспетчере задач даже спустя несколько часов после того, как терминал был закрыт (и считалось, что он был закрыт правильно с помощью кнопки закрытия без какого-либо сообщения об ошибке).
Неплохо было бы сделать поддержку локального датацентра, это облегчило бы работу вместо ограниченных глобальных переменных и открытых файлов. Не говоря уже о хранении тиковых данных ask, bid, (spread), которые отсутствуют.
Есть много простых недостающих вещей, которые делают жизнь намного сложнее, и это ужасно много работы, чтобы обработать их правильно, если это возможно. Многие внешние советы и трюки, даже хаки, необходимы для обширной правильной работы. Я не виню никого, кто публикует стратегию на codebase и не обрабатывает все возможные (многие из них специфические для брокера) проблемы с MT4 или сервером - особенно когда суть в стратегии, а не в обработке ошибок.
Даже очень простые вещи отсутствуют, мы не можем работать с лог-файлами, которые могут легко вырасти в сотни мегабайт или больше, когда что-то идет не так. Они растут до тех пор, пока диск не заполняется, и ничего нельзя сделать, даже опции в настройках терминала по обработке лог-файлов.