Особенности языка mql5, тонкости и приёмы работы - страница 173
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Выше обновил.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2020.04.09 13:13
Похоже, совсем не сталкивались. Посмотрите в Документации. Там два объема на ордер.
Это живые лимитники. Первое число - исходный объем, второй - залитый. Как только станут равны или будет удален, попадет в историю.
А это не один ордер двумя частями исполненный? Как-то странно совпали не исполненные объёмы.
А это не один ордер двумя частями исполненный? Как-то странно совпали не исполненные объёмы.
Совпадение. У них даже мэджики разные.
В режиме ордера не может быть ордера, когда он живой. Когда будет мертвый - там будет время первого исполнения, как сказал изначально.
Нашел в истории.
при схлопывании через CloseBy, вроде, теряются мэджики. Нужно проверять.
Похоже, по этой причине первый код ниже работать не будет.
Forum on trading, automated trading systems and testing trading strategies
History Profit in MQL5 ?
fxsaber, 2017.08.26 19:16
Посчитать профит по мэджику, похоже, проблема.
Стрелочки открытия/закрытия позиций, которые MT5 автоматически расставляет в реал-тайме, основываются на TradeTransaction-событиях.
Только что видел, как эти события (открытие и закрытие около десятка позиций) не дошли до Терминала из-за кратковременного обрыва связи - так совпало, сидел у компа и смотрел воочию. По итогу соответствующих стрелок нет.
И, как тут говорили иногда, нельзя полагаться на OnTradeTransaction в боевых советниках. Жаль, надежного публичного механизма работы с OrderSendAsync нет.
Жаль, надежного публичного механизма работы с OrderSendAsync нет.
а сервисы могут получить доступ к торговым операциям? - если да, то мониторить каждые 10 мс и отправлять событие чарту можно
глянул в справку, думал может дописали про сервисы, но по моему так и было в прошлом году:
•Сервис — программа, которая в отличие от индикаторов, советиников и скриптов для своей работы не требует привязки к графику. Как и скрипты, сервисы не обрабатывают никаких событий, кроме события запуска. Для запуска сервиса в его коде обязательно должна быть функция-обработчик OnStart. Сервисы не принимают никаких других событий кроме Start, но могут сами отправлять графикам пользовательские события с помощью EventChartCustom
UPD: набросал скрипт-сервис
открыл руками несколько ордеров, закрыл, по моему работает без проблем
а сервисы могут получить доступ к торговым операциям? - если да, то мониторить каждые 10 мс и отправлять событие чарту можно
Это ничем не отличается от такого же перебора в совтенике. Только недостаточно сравнивать кол-во, поменяться может внутренность.
Это ничем не отличается от такого же перебора в совтенике. Только недостаточно сравнивать кол-во, поменяться может внутренность.
Сервисы, как Алертеры, очень хороши. Не нужны чарты, автоматически запущены с Терминалом. Надо только отрабатывать ситуации переключения между счетами.
ЗЫ Сервис может быть и боевым советником. Без GUI только не очень удобно.Это ничем не отличается от такого же перебора в совтенике. Только недостаточно сравнивать кол-во, поменяться может внутренность.
отличается
есть, так называемые, задачи Контроля и Управления
ЕА - управление, сервис - контроль
контроль не должен быть излишним - заберете все ресурсы системы, получите вместо контроля нестабильную систему
нужно определить критичность событий, имхо, закрытие и открытие ордеров - это критичные события требующие контроля, а изменение ТП и СЛ, можно проводить как и ранее делали (несколько неудачных попыток - бросили, на следующем тике еще раз повторим)
а так, как Вы предлагаете - контролировать всё, ну как бы можно - можно повторить в SQLite состояние ордеров, потом появится задача синхронизации этой БД с сервисом и ЕА.... лишнее все это
думаю, что проще схема должна быть - примерно так: получили событие OnTradeTransaction от терминала в ЕА и сгенерировали событие OnChartEvent из сервиса для дополнительного контроля в ЕА