Bibliotecas: Report - página 2

 
Stanislav Korotky:

É claro que eles são diferentes. Só me pergunto por que um programa em execução no agente deve retornar o TERMINAL_BUILD do terminal local? Se isso acontecer (embora eu duvide), parece ser um bug.

Não, ele retornará sua própria compilação - o agente.

 
fxsaber:

Não, ela vai recuperar a construção de seus agentes.

Bem, o que você queria? Não o build de agente?

 
Stanislav Korotky:

Bem, do que você precisava? Não de uma construção de agente?

Talvez tenhamos entendido mal um ao outro.

 
fxsaber:

Ela não está disponível, mas você pode fazer isso da seguinte forma

// Relatório com gráfico no MT4
#property strict

// https://www.mql5.com/pt/docs/standardlibrary/graphics/cgraphic
#include <Graphics\Graphic.mqh> // MQL5\Include\Graphics\Graphic.mqh
#include <Report.mqh> // comente as linhas 295, 350, 382, 404, 434, 455.

void OnStart()
{
// REPORT::ToChart(); // envia o gráfico para o gráfico
  REPORT::ToFile("Report.htm"); // salva o relatório junto com o gráfico
}


No compilador MT4, a biblioteca do MT5"Graphic.mqh", bem como "Curve.mqh", que é usada em "Graphic.mqh", não é compilada - incompatibilidade de plataforma.
 
Sergey Kolemanov:
No compilador MT4, a biblioteca do MT5"Graphic.mqh", bem como "Curve.mqh", que é usada em "Graphic.mqh", não é compilada - incompatibilidade de plataforma.

Ela é compilada

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

Recursos da linguagem mql4, sutilezas e técnicas de trabalho

fxsaber, 2017.07.23 12:46 pm.

Na continuação do tópico de lançamento de bibliotecas MQL5 sob MT4

#property strict

// https://www.mql5.com/pt/docs/standardlibrary/graphics/cgraphic
#include <Graphics\Graphic.mqh> // MQL5\Include\Graphics\Graphic.mqh

void OnStart()
{
  double Y[] = {1, 2};
  
  GraphPlot(Y);
}
'Test.mq4'      Test.mq4        1       1
'Graphic.mqh'   Graphic.mqh     1       1
'ArrayObj.mqh'  ArrayObj.mqh    1       1
'Array.mqh'     Array.mqh       1       1
'Object.mqh'    Object.mqh      1       1
'StdLibErr.mqh' StdLibErr.mqh   1       1
'Curve.mqh'     Curve.mqh       1       1
'Canvas.mqh'    Canvas.mqh      1       1
'FileBin.mqh'   FileBin.mqh     1       1
'File.mqh'      File.mqh        1       1
'Rect.mqh'      Rect.mqh        1       1
'Axis.mqh'      Axis.mqh        1       1
'ColorGenerator.mqh'    ColorGenerator.mqh      1       1
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    32
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    34
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    37
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    39
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    42
check operator precedence for possible error; use parentheses to clarify precedence     Canvas.mqh      4329    46
0 error(s), 6 warning(s), compile time: 132 msec                1       7
 
fxsaber:

Como se viu, a biblioteca pode ser útil ao lidar com situações de "Execução única não corresponde ao resultado da otimização".

Atualmente, a única coisa que está faltando são os dados de compilação do agente no relatório em que o cálculo foi feito.

A compilação do agente foi adicionada ao relatório.


Adicione estas linhas ao Expert Advisor

#include <TypeToBytes.mqh> // https://www.mql5.com/pt/code/16280
#define  REPORT_TESTER // O testador registrará automaticamente os relatórios
#include <Report.mqh>

e, logo durante a otimização do Expert Advisor, obteremos relatórios para cada passagem calculada.


Se você notar que uma única execução não coincide com a otimizada, compare a compilação do relatório com a compilação do terminal. Se eles não coincidirem, é muito provável que esse seja o motivo dos resultados diferentes.

 
fxsaber:

Compilado


Dei uma olhada nos seus links, mas não entendi o que preciso fazer para usar o "Graphic.mqh" no MT4.

E mais uma coisa: no relatório HTML criado no MT4 (não verificado no MT5), há uma exibição incorreta do símbolo NZDUSD:


 
Sergey Kolemanov:

Dei uma olhada nos seus links, mas não entendi o que preciso fazer para usar o "Graphic.mqh" no MT4. Você poderia ser mais detalhista?

Instale o MT5 e copie todo o conteúdo (com subpastas) do catálogo MQL5\Include para o MQL4\Include de seu terminal MT4.

Mais uma coisa: no relatório HTML criado no MT4 (não verifiquei no MT5), o símbolo NZDUSD é exibido incorretamente:

Sim, isso é um bug, cuja natureza é clara. Tentei fazer com que o moderador atualizasse a biblioteca hoje. Não quero abusar dela, portanto, postarei a versão corrigida mais tarde.

 
fxsaber:

Instale o MT5 e copie todo o conteúdo (com subpastas) do catálogo MQL5\Include para o MQL4\Include de seu terminal MT4.

Obrigado por sua ajuda, eu resolvi o problema). Tenho o MT5 instalado, apenas copiei não o diretório MQL5/Include, mas apenas uma subpasta MQL5/Include/ Graphics.
 
fxsaber:

Publicarei a versão corrigida mais tarde.

Ela está sob moderação. Ao mesmo tempo, adicionei o nome do símbolo do testador, as configurações de otimização para cada parâmetro de entrada, o nome do servidor (para entender em quais cotações o teste está, se não for um símbolo personalizado) e a moeda da conta.

No momento, o testador MT5 não menciona em nenhum lugar o sinalizador de símbolo personalizado dos símbolos que testa ao compilar os relatórios de teste. Os relatórios da biblioteca contêm essas informações.