Ранее говорилось о доскональном представлении CloseBy-операций в MT5. Теперь же пойдет речь об упрощенном представлении того же самого.
CloseBy-операции встречаются по разным причинам. Это может быть следствием особенностей исполнения брокером или специальной реализацией советника (вплоть до использования в Тестере). Бывают ситуации, когда хочется быстро и наглядно разобраться.
Упрощение.
CustomReport позволяет представить две взаимные CloseBy-операции в виде одной обычной позиции.
Чтобы понять, как это происходит, проще всего запустить скрипт с показанной на картинке настройкой.
Представление одной позицией содержит даже SL/TP-уровни и величины проскальзывания на закрытии. Плюс выбрана правильная хронология CloseBy-операций.
Визуализация.
CustomReport делает HTML-визуализацию. Но может возникнуть желание посмотреть историю торговли на графике символа. К сожалению, MT5 не умеет корректно штатно показывать CloseBy-операции. Поэтому выкрутиться в такой ситуации позволяют многочисленные бесплатные MT4-style-продукты визуализации истории торгов и виртуальное окружение.
Покажем это на примере.
Сначала через CustomReport сохраним отчет в виртуальное окружение.
Затем скормим виртуальное окружение одному из бесплатных MT4-style-визуализаторов торговой истории.
Таким образом получим на графике понятное отображение CloseBy-операций.
Соответствующая конвертация MT4-style-визуализатора.
#property indicator_chart_window #property indicator_plots 0 input string inFileName = ""; #include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577 const bool Init = VIRTUAL::SelectByHandle(VIRTUAL::Create(inFileName)); #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID) #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define extern input #define MACROS_OBJECT(A, B) A B( const string Name ) { return(B(0, Name)); } MACROS_OBJECT(bool, ObjectDelete) MACROS_OBJECT(int, ObjectFind) #include "DrawOrders.mq4" // https://www.mql5.com/ru/code/40419
Ссылка на блог автора.