Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это выбор дизайна, чтобы не включать магический номер в торговый запрос для функции MT4OrderClose ?
В настоящее время DEAL_ENTRY_OUT от MT4OrderClose будет иметь магию == 0.
Это не имеет большого значения, потому что с идентификатором позиции можно отследить магическое число от DEAL_ENTRY_IN, однако для целей анализа истории наличие соответствия DEAL_ENTRY_IN / DEAL_ENTRY_OUT, возможно, даст большую гибкость.
В OrderClose можно задать MagicNumber, если есть желание.
В MT5 при частичном закрытии позиции можно менять MagicNumber открытой позиции, поэтому дается выбор.
Например, если у Вас открыта позиция с MagicNumber = 5 и Вы закрываете позицию руками, то DEAL_ENTRY_OUT_MAGIC = 0. При этом библиотека все равно вернет OrderMagicNumber() = 5.
Не знаю, баг или фича, но для фьючерсов профит и цена открытия считаются не совсем так, как ожидается. Допустим, происходит открытие позиции в 12.00, в 18.40 происходит клиринг и автоматическое переоткрытие позиции, после чего в 20.00 позиция закрывается. В итоге получается 4 сделки (вход-выход и 2 сделки клиринга). GetHistoryPositionData для тикета 4-й сделки (выхода из позиции) выбирает профит как MT4ORDERS::Order.Profit = ::HistoryDealGetDouble(Ticket, DEAL_PROFIT); Что вернёт по сути разницу между сделками 3-4 (клирингом и выходом). Но цену открытия он вернёт как MT4ORDERS::Order.OpenPrice = ::HistoryDealGetDouble(OpenTicket, DEAL_PRICE);. Т.е. вернёт цену открытия 1-й сделки. На мой взгляд, имеет смысл сделать единообразно, либо тянуть всё с первой сделки (и цену открытия, и профит), либо тянуть всё с последнего открытия (с 3-й сделки в клиринг). Или это фича, и так должно быть, и я что-то упускаю?
Так Вы же через библиотеку анализируете историю на Неттинге. Это ровно тот озвученный изначально случай, для которого библиотека не была дописана. И будет ли - большой вопрос. Т.к. очень много возни, а необходимости на практике такой не возникает.
На Неттинге использую все так же библиотеку, но обхожу работу с историей.
https://www.mql5.com/ru/blogs/post/733393
Замеряем скорость на ситуации из записи в блоге.
Результат.
Хорошо видно, во сколько обходятся HistorySelect-функции.
OrdersHistoryTotal на горячую хоть и меньше, но все равно ощутимо, поэтому всегда была рекомендация стараться не вызывать ее чаще одного раза на On-событие.
OrderSelect по истории оказался бесплатен.
Можно собрать статистику по времени, затраченному на исполнение маркет-ордеров (включая TP/SL).
Результат.
До двух минут исполнение на запущенном счете. Поделитесь здесь своей статой. Скрипт никакие библиотеки не использует, подходит для Неттинг/Хеджа.
В MT4/5 вести отладку при работе с историей торгов довольно неприятно. Приходится использовать различные костыльные решения.
В MT5 можно сразу посмотреть все поля выбранного через MT4Orders ордера. Для этого нужно добавить в наблюдение MT4ORDERS::Order.
Так можно видеть все свойства выбранного ордера.
Поделитесь здесь своей статой. Скрипт никакие библиотеки не использует, подходит для Неттинг/Хеджа.
Вот такой есть реал:
И еще один:
Вот такой есть реал:
Спасибо за информацию. Такое длительное исполнение, наверное, связано со сторонними шлюзами. Интересно, как на биржах.