Библиотеки: Report - страница 3

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Советники: Quantum 103

fxsaber, 2017.09.26 09:55

Результат бэктеста по реальным тикам на MT5

Стандартный MT5-отчет

Кастомный отчет (MT4-стиль)


Прикрепил MT4-стиль отчета MT5-бэктеста, потому как стандартный отчет читается с трудом - см. оба в прицепе.

Хорошо видно величины влияния на результат MT5-бэктеста данного советника проскальзываний и комиссии.

 
Корректно ли это чудо работает с неттинг счетами?
 
Aleksey Vyazmikin:
Корректно ли это чудо работает с неттинг счетами?

Если присутствуют in/out-сделки - нет. Это текущее ограничение MT4Orders, не Report.

 
fxsaber:

Если присутствуют in/out-сделки - нет. Это текущее ограничение MT4Orders, не Report.

Печально. А развивать MT4Orders в данном направлении планируется, или пока этого в планах нет?

 
Aleksey Vyazmikin:

Печально. А развивать MT4Orders в данном направлении планируется, или пока этого в планах нет?

Ограничение касается только истории, не торговли. Обещать не могу.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Советники: Quantum 103

fxsaber, 2017.09.26 09:55


Прикрепил MT4-стиль отчета MT5-бэктеста, потому как стандартный отчет читается с трудом - см. оба в прицепе.

Хорошо видно величины влияния на результат MT5-бэктеста данного советника проскальзываний и комиссии.


Казус, что в КБ больше года лежала старая версия. Обновил.


Рекомендую запустить на MT4 (и особенно на MT5-Hedge) этот скрипт

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
#include <Report.mqh>

void OnStart()
{
  REPORT::ToFile("Report.htm");
}


и посмотреть Report.htm. Сразу будет понятна причина.

 
Объяснение цифр

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Virtual

fxsaber, 2018.11.13 16:01

1663332018.11.09 21:47:21.837buy0.10 (22 672.50)EURUSD1.133661.133592018.11.09 22:00:00.1571.13359-0.40-0.70tp 1.13359-700:12:38.320
1673352018.11.09 22:00:00.157sell0.10 (22 671.00)EURUSD1.133591.133512018.11.09 22:00:09.2021.13351-0.40+0.80tp 1.13351+800:00:09.045
1683372018.11.09 22:00:09.202buy0.10 (22 670.00)EURUSD1.133511.133492018.11.09 22:05:14.3341.13349-0.40-0.20tp 1.13349-200:05:05.132
1693392018.11.09 22:05:14.334sell0.10 (22 668.50)EURUSD1.133491.133382018.11.09 22:06:33.6221.13336-0.40+1.30 (+1.10)tp 1.13338+13 (+11)0, +200:01:19.288
1703412018.11.09 22:06:33.622buy0.10 (22 666.70)EURUSD1.133361.133292018.11.09 22:29:56.8061.13331-0.40-0.50 (-0.90)tp 1.13329-5 (-9)+2, +200:23:23.184
1713432018.11.09 22:29:56.806sell0.10 (22 664.60)EURUSD1.133311.133162018.11.09 22:40:39.0051.13315-0.40+1.60 (+1.30)tp 1.13316+16 (+13)+2, +100:10:42.199
1723452018.11.09 22:40:39.005buy0.10 (22 665.90)EURUSD1.133151.133422018.11.09 22:56:02.9151.13344-0.40+2.90 (+2.60)tp 1.13342+29 (+26)+1, +200:15:23.910
1733472018.11.09 22:56:02.915sell0.10 (22 670.90)EURUSD1.133441.133662018.11.09 23:50:03.2451.13365-0.40-2.10 (-2.40)tp 1.13366-21 (-24)+2, +100:54:00.330
1743492018.11.09 23:50:03.245buy0.10 (22 671.40)EURUSD1.133652018.11.09 23:54:57.4461.13349-0.40-1.60 (-1.70)end of test-16 (-17)+1, 000:04:54.201
1753492018.11.09 23:51:11.960sell limit0.10EURUSD1.133771.133612018.11.09 23:54:57.4461.1334900:03:45.486
17.40 (3 947 682.20)-69.600.00-48.60 (-73.50)-486 (-735)+249 (+24.90)


выделенные "+2, +1" - было скольжение на +2 пипса при открытии и на +1 пипс при закрытии. Выделенные в этой же строке "-21 (-24)" говорит о том, что прибыль -21 за счет скольжения, но если бы не скользило, было бы -24. Т.е. MT5-тестер нам просто подарил 3 пипса. Выделенные "-2.10 (-2.40)" показывают, что прибыль в валюте счета был -2.1 за счет скольжения, но без скольжения было бы -2.4. Т.е. подарок на 0.3.


Наконец, нижняя красная строка показывает, что прибыль -485 пипсов, но это со скольжением. А вот если бы без него, то было бы -735 пипсов. В отчтете показано, что суммарное скольжение +249 пипсов.

 
// Кроссплатформенный скрипт создает отчет истории торгов с фильтрами по символу, мэджику, времени и других параметров.

// MQL4&5-code
#property strict
#property script_show_inputs

input string inFileName = "Report.htm"; // FileName
input bool inSymbolFilter = true;       // true - Current Symbol, false - All Symbols
input long inMagicFilter = -1;          // MagicFilter (negative - All Magics)
input bool inPending = false;           // Pending (true - include)
input bool inBalance = false;           // Balance (true - include)
input datetime inStartTime = 0;         // OrderCloseTime >= this time
input datetime inEndTime = INT_MAX;     // OrderCloseTime <= this time

input bool inOpenBrowser = true; // Open Browser with Report - DLL!

#import "shell32.dll"
  int ShellExecuteW( int hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd );
#import

#ifdef __MQL5__
  #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

  #define BASEPATH (TerminalInfoString(TERMINAL_PATH) + "\\MQL5\\Files\\")
#else // __MQL5__
  #define BASEPATH (TerminalInfoString(TERMINAL_PATH) + "\\MQL4\\Files\\")
#endif // __MQL5__

#include <Report.mqh> // https://www.mql5.com/ru/code/18801

void OnStart()
{
  REPORT_FILTER Filter;

  Filter.Symb = inSymbolFilter ? _Symbol : NULL;
  Filter.Magic = inMagicFilter < 0 ? -1 : inMagicFilter;
  Filter.Pending = inPending;
  Filter.Balance = inBalance;
  Filter.StartTime = inStartTime;
  Filter.EndTime = inEndTime;

  if (REPORT::ToFile(inFileName, Filter) && inOpenBrowser && MQLInfoInteger(MQL_DLLS_ALLOWED))
    ShellExecuteW(0, "Open", BASEPATH + inFileName, NULL, NULL, 3); // https://www.mql5.com/ru/forum/23223#comment_1741093
}
Теперь удобно.
Файлы:
 

Просто мысли, а почему бы не сделать возможность скидывания отчета раз в сутки (по требованию) и скрипт к обработке этих отчетов, в том числе сведения с разных аккаунтов в один?

Задача актуальная для анализа результатов работы советников на разных счетах, в том числе с одинаковыми магиками, и для решения проблемы затирания истории некоторыми ДЦ.

 
Aleksey Vyazmikin:

Просто мысли, а почему бы не сделать возможность скидывания отчета раз в сутки (по требованию) и скрипт к обработке этих отчетов, в том числе сведения с разных аккаунтов в один?

Задача актуальная для анализа результатов работы советников на разных счетах, в том числе с одинаковыми магиками, и для решения проблемы затирания истории некоторыми ДЦ.

Выше скрипт делает анализ, как ***. Только все очень быстро и нагляднее. Это для реала, конечно. Сам же библу использую в Тестере и в виртуалке.

Сведения по проскальзываниям (только MT5-Hedge) - аналогов не видел. Возможно, созрею и для Netting-а сделать. Но это задача уже не Report, а другой библы...

Причина обращения: