Bibliotecas: Report - página 3

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Consultores especializados: Quantum 103

fxsaber, 2017.09.26 09:55 pm.

Resultado do backtest em ticks reais no MT5

Relatório padrão do MT5

Relatório personalizado (estilo MT4)


Relatório de backtest MT5 estilo MT4 em anexo, porque o relatório padrão é difícil de ler - veja ambos no trailer.

Você pode ver claramente o impacto das derrapagens e das comissões no resultado do backtest do MT5 desse EA.

 
Esse milagre funciona corretamente com contas de compensação?
 
Aleksey Vyazmikin:
Esse milagre funciona corretamente com contas de compensação?

Não se houver negociações de entrada/saída. Essa é uma limitação atual do MT4Orders, não do Report.

 
fxsaber:

Se houver negociações de entrada/saída presentes, não. Essa é uma limitação atual do MT4Orders, não do Report.

É triste. Há algum plano para desenvolver o MT4Orders nessa direção ou isso ainda não está nos planos?

 
Aleksey Vyazmikin:

Triste. Há algum plano para desenvolver o MT4Orders nessa direção ou isso ainda não está nos planos?

A restrição diz respeito apenas ao histórico, não à negociação. Não posso fazer nenhuma promessa.

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Consultores especializados: Quantum 103

fxsaber, 2017.09.26 09:55 pm.


Relatório de backtest MT4 estilo MT5 em anexo, porque o relatório padrão é difícil de ler - veja ambos no trailer.

Você pode ver claramente o impacto das derrapagens e comissões no resultado do backtest MT5 deste EA.


Foi um acidente que eu tinha uma versão antiga na KB por mais de um ano. Atualizei-a.


Recomendo que você execute esse script no MT4 (e especialmente no MT5-Hedge) e veja o Report.htm.

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

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


e dê uma olhada no Report.htm. O motivo ficará claro imediatamente.

 
Explicação dos números

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

Bibliotecas: Virtual

fxsaber, 2018.11.13 16:01

1663332018.11.09 21:47:21.837comprar0.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.157vender0.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.202comprar0.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.334vender0.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.622comprar0.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.806vender0.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.005comprar0.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.915vender0.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.245comprar0.10 (22 671.40)EURUSD1.133652018.11.09 23:54:57.4461.13349-0.40-1.60 (-1.70)fim do teste-16 (-17)+1, 000:04:54.201
1753492018.11.09 23:51:11.960limite de venda0.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" destacado - houve um deslizamento de +2 pip na abertura e um deslizamento de +1 pip no fechamento. O destaque"-21 (-24)" na mesma linha indica que o lucro é de -21 devido ao deslizamento, mas se não houvesse deslizamento, teria sido de -24. Ou seja, o MT5-tester nos deu apenas 3 pips. O destaque"-2,10 (-2,40)" mostra que o lucro na moeda da conta foi de -2,1 devido ao deslizamento, mas, sem deslizamento, teria sido de -2,4, ou seja, um presente de 0,3.


Finalmente, a linha vermelha inferior mostra que o lucro é de -485 pips, mas isso é com o deslizamento. Por outro lado, se não houvesse o deslizamento, o lucro seria de -735 pips. O relatório mostra que o deslizamento total é de +249 pips.

 
// O script multiplataforma cria um relatório de histórico de negociação com filtros por símbolo, majic, tempo e outros parâmetros.

// Código MQL4&5
#property strict
#property script_show_inputs

input string inFileName = "Report.htm"; // FileName
input bool inSymbolFilter = true;       // true - Símbolo atual, false - Todos os símbolos
input long inMagicFilter = -1;          // MagicFilter (negativo - todas as mágicas)
input bool inPending = false;           // Pendente (verdadeiro - incluir)
input bool inBalance = false;           // Equilíbrio (verdadeiro - incluir)
input datetime inStartTime = 0;         // OrderCloseTime >= esse horário
input datetime inEndTime = INT_MAX;     // OrderCloseTime <= esse horário

input bool inOpenBrowser = true; // Abra o navegador com o 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/pt/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/pt/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
}
Agora é conveniente.
Arquivos anexados:
 

Apenas uma ideia: por que não possibilitar o despejo de um relatório uma vez por dia (sob demanda) e um script para processar esses relatórios, incluindo informações de diferentes contas em um só?

A tarefa é relevante para analisar os resultados do trabalho dos consultores em diferentes contas, inclusive aquelas com as mesmas imagens, e para resolver o problema de exclusão de histórico por algumas corretoras.

 
Aleksey Vyazmikin:

Apenas uma ideia: por que não tornar possível descontar o relatório uma vez por dia (sob demanda) e um script para processar esses relatórios, incluindo informações de contas diferentes em um só?

A tarefa é relevante para analisar os resultados do trabalho dos EAs em diferentes contas, incluindo aquelas com as mesmas imagens, e para resolver o problema de exclusão de histórico por algumas corretoras.

O script acima faz a análise como ***. Só que tudo é muito rápido e mais claro. Isso é real, é claro. Eu mesmo uso o bibla no Tester e no virtual.

Informações sobre derrapagens (somente MT5-Hedge) - não vi nenhum análogo. Talvez eu crie um para Netting. Mas essa tarefa não é do Report, mas de outra bíblia....