Библиотеки: MT4Orders QuickReport - страница 8

 
Edgar Akhmadeev #:

Графические файл-менеджеры на любителя, конечно. Дело привычки. Я когда-то с текстового NortonCommander пересел на FarCommander, с кучей плагинов.

В DOS использовал аналоги NC с удовольствием. Однако, FAR сразу вызвал жуткое неприятие без понимания причины. TC без энтузиазма попробовал (прокаченная версия, ничего не настраивал) - зашло на отлично.

И по прежнему хорошо вспоминаю NC и с содроганием FAR. Хотя все программеры, что встречал, пользуются только FAR.

 
fxsaber #:

В TotalCommander по нажатию клавиши сравниваю исходники. Там любые кодировки с любыми другими спокойно сравниваются.

Да, локально им тоже пользуюсь. Но есть софт удобнее и сторонние сервисы. Не везде кодировка "не имеет значения".

 

Обновление: добавлено пара вещей.

1) График TurnOver заменен на график с P/L для покупок, продаж и их суммы. Так можно понять бычья стратегия у вас получилась или медвежья. Возможно решите отключить одно из направлений торговли, если оно невыгодно.


2) Графики прибыли и убытки по часам и дням недели.

В отличие от тестера MQ прибыли и убытки отображаются не на момент их возникновения, а по времени входа в сделку. Так легче понять, что входы в определенном часе в основном убыточные и просто отключить этот час для входов.
Дополнительно сделаны графики по покупкам и продажам.


Если кликнуть на любой из этих графиков, то откроются таблицы с точными суммами по часам и дням. Так же есть чекбоксы, которыми можно отключить часы и дни от входов - графики и таблицы будут перестроены и вы сможете оценить результат без проведения дополнительных тестов. Получился аналог BestInterval  от Fxsaber, но более грубый (с шагом в 1 час) и без автоматизации. Для уменьшения шага добавлен интервал M10.

Какие-то почасовые или подневные всплески прибыли на этих графиках можно увидеть на небольших периодах тестирования. На графиках выше тест за 5 месяцев с трендом вверх. Поэтому покупки в прибыли, а продажи в убытке. Если увеличить тест до года и более, когда пройдет несколько крупных трендов в обоих направлениях, то все станет равномерно размазанным и как правило убыточным, так что что-то отключать и получить значительное изменение прибыли уже вряд ли получится.

Вот что стало на той же стратегии с тестом за 1 год: (отключать надо почти все)

Так что основой вашей стратегии это вряд ли может стать.

BestInterval
BestInterval
  • www.mql5.com
Вычисление лучшего интервала торговли.
 

Предлагаю сделать следующие изменения в коде.

// void QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=0, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){//
bool QuickReport(string file_name, bool is_open_file_in_browser=true, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){//
// ....
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID="+(string)VIRTUAL::GetNumber(VIRTUAL::GetHandle()) + " " + VIRTUAL::GetID() +";");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID=0;");
    #endif // #ifdef __VIRTUAL__ #else
// ....
   return(f!=INVALID_HANDLE);
}


Тогда пример из заголовка.

 for (int v = 1 ; v <= VIRTUAL::Total(); v++)
   _VI(v, QuickReport("report_"+(string)v, true));
 
Forester #:

Обновление: добавлено пара вещей.

В CustomReport добавил выбор Вашего типа отчета. Попробовал через него смотреть Бэктесты/Сигналы - иногда удобно, спасибо.

Возможности анализа не только своей торговой истории.
Возможности анализа не только своей торговой истории.
  • 2022.07.11
  • www.mql5.com
Семейство терминалов MetaTrader позволяет штатно визуализировать историю торговли открытого счета, бэктестов и Сигналов (мониторинг огромного числа торговых счетов). Ниже пойдет речь об использовании
 
fxsaber #:

Предлагаю сделать следующие изменения в коде.

Тогда пример из заголовка.

Сделал

    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" ';");
    #endif // #ifdef __VIRTUAL__ #else

...
return(f!=INVALID_HANDLE);
}

Вызов функции оставил без изменений, для совместимости с старой версией, чтобы рабочие коды не поломались. Т.е. номер виртуалки берется как раньше из переменной virtual_number, а функция сама добавит к нему VIRTUAL::GetID()

 
fxsaber #:

Предлагаю сделать следующие изменения в коде.


Тогда пример из заголовка.

Сделал новый вариант

bool QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=-1, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?VIRTUAL::GetNumber(VIRTUAL::GetHandle()):virtual_number)+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?0:virtual_number)+" ';");
    #endif // #ifdef __VIRTUAL__ #else
...
return(f!=INVALID_HANDLE);
}

virtual_number - номер виртуального тестера (-1 - будет определено автоматически, 0 - тестер MT5, >0 - виртуальные тестеры)

Теперь по умолчанию (если не указан virtual_number), как в этом примере

QuickReport("report_"+(string)v, true))

то номер виртуалки будет определен автоматически.
Если virtual_number указан и >=0, то будет показан он. 

 
Обновление. Добавлены фильтры.

Фильтрация ордеров.

Для отображения ордеров по разным параметрам добавлено множество фильтров.


Buy, Sell, Buy limit, Sell limit, Buy stop, Sell stop, Balance - можно убирать из отчета любой их типов ордеров.
Symbols - покажет весь список использованых инструментов, можно выбрать только нужные.
Magic - можно показать ордера только с указаным Magic
Min Lot, Max Lot - можно выбрать ордера с нужными лотами
Negative Slippage - можно показать ордера с отрицательным проскальзыванием по отдельности для открытия ордеров или для закрытия
Swap - покажет ордера со свопами > 0
Min LengthTime - ордера с длительностью более указанного времени (указывается по числу дней, часов, минут и секунд)
Max LengthTime - ордера с длительностью менее указанного времени
Open Time - время открытия ордера от и до указанных дат
Close Time - время закрытия ордера от и до указанных дат
TP, SL - ордера завершившиеся срабатыванием TP или SL
Profits, Losses - ордера в прибыли или убытке (комиссии и свопы не учтены, они могут сделать итоговую прибыль отрицательной)
Rejects - не исполненные ордеры

Кнопка Reset позволяет сбросить фильтры в значения по умолчанию и показать все ордера без фильтрации.


Исполнившиеся отложенные ордера МТ5

Для них в той же строке сверху темно-синим цветом указан отложенный ордер, срабатывание которого вызвало этот ордер/позицию. Указаны время установки отложенного ордера, время от установки до срабатывания ордера, и тип отложенного ордера (Buy limit, Sell limit, Buy stop или Sell stop). Эта информация показывается только для MT5 терминала или тестера, виртуальные тестеры или MT4 не предоставляют эту информацию.

 
Forester #:

Исполнившиеся отложенные ордера МТ5

Для них в той же строке сверху темно-синим цветом указан отложенный ордер, срабатывание которого вызвало этот ордер/позицию. Указаны время установки отложенного ордера, время от установки до срабатывания ордера, и тип отложенного ордера (Buy limit, Sell limit, Buy stop или Sell stop).

Просьба дать возможность не показывать эту информацию. Никакого толка в ней. Особенно, если ордер модифицировался до исполнения.
 
fxsaber #:
Просьба дать возможность не показывать эту информацию. Никакого толка в ней. Особенно, если ордер модифицировался до исполнения.
По умолчанию скрыл. Включается через #define ORDER_PARENT