Trabalhando com Resultados de Otimização

Funções para organizar processamento personalizado da otimização resultando no testador de estratégia. Elas podem ser chamadas durante a otimização de agentes de teste, bem como localmente em Expert Advisors e scripts.

Quando você executa um Expert Advisor no testador de estratégia, você pode criar seu próprio conjunto de dados com base nos tipos simples ou estruturas simples (não contêm strings, objetos de classe ou objetos de arrays dinâmicas). Este conjunto de dados podem ser salvos utilizando a função FrameAdd() numa estrutura especial chamando um quadro. Durante a otimização de um Expert Advisor cada agente pode enviar uma série de quadros para o terminal. Todos os quadros recebidos são gravados no arquivo *.MQD na pasta terminal_directory/MQL5/Files/Tester expert nomeada igual ao Expert Advisor. Eles são escritos na ordem em que são recebidas dos agentes. O recebimento de um quadro no terminal do cliente a partir de um agente de teste gera o evento TesterPass.

Os quadros podem ser armazenados na memória do computador e num arquivo com o nome especifico. A linguagem MQL5 não estabelece limitações sobre o número de quadros.

Limitações de memória e de espaço em disco na MQL5 Cloud Network

Ao executar a otimização na MQL5 Cloud Network, há uma restrição: o Expert Advisor testado não pode gravar mais de 4 GB de informações no disco e usar mais de 4 GB de RAM. Se o limite for excedido, o agente de rede não conseguirá concluir o cálculo corretamente e você não receberá o resultado do teste. Além disso, você será cobrado pelo tempo já gasto nos cálculos.

Se você precisar obter informações de cada passagem da otimização, use enviar quadros sem gravar no disco. Para não usar operações de arquivo nos Expert Advisors durante os cálculos na MQL5 Cloud Network, você pode aplicar essa verificação:

   int handle=INVALID_HANDLE;
   bool file_operations_allowed=true;
   if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
      file_operations_allowed=false;
 
   if(file_operations_allowed)
     {
      ...
      handle=FileOpen(...);
      ...
     }

 

Função

Ação

FrameFirst

Move um ponteiro de leitura de quadro para o início e redefine previamente um conjunto de filtros

FrameFilter

Define a estrutura do filtro de leitura e move o ponteiro para o início

FrameNext

Lê um quadro e move o ponteiro para o próximo

FrameInputs

Recebe parâmetros de entrada, no qual o quadro é formado

FrameAdd

Adiciona um quadro com dados

ParameterGetRange

Recebe os dados na faixa de valores e o passo de alteração para uma variável de entrada ao otimizar um Expert Advisor no Testador de Estratégia

ParameterSetRange

Especifica o uso de variável de entrada ao otimizar um Expert Advisor no Testador de Estratégia: valor, mudança de passo, os valores iniciais e finais

Também Veja

Testando Estatísticas, Propriedades de Execução do Programa MQL5