Ajuda para o MetaTrader 5Trading algorítmico, robôs comerciaisTipos de otimização

Tipos de otimização

No testador de estratégias estão previstos dois modos de otimização, a mudança entre eles ocorre na guia "Configuração".

Lenta (busca completa de combinações possíveis de parâmetros)

Nesse modo, há uma busca completa de todas as combinações possíveis dos valores de variáveis de entrada selecionados para a otimização na guia correspondente.

Esse modo é o mais preciso, embora as execuções do expert, com todas as combinações de parâmetros, ocupem bastante tempo.

Rápida (algoritmo genético)

Na base desse tipo otimização reside o algoritmo genético da combinação dos melhores valores de parâmetros de entrada. Esse tipo de optimização é significativamente mais rápido do que a busca completa de combinações possíveis de parâmetros e a qualidade do seu resultado é praticamente igual. A otimização da busca completa de combinações possíveis de parâmetros, que levaria alguns anos, é efetuada em algumas horas ao utilizar o algoritmo genético.

Cada indivíduo possui um determinado conjunto de genes que corresponde a um conjunto de parâmetros. A otimização genêtica é baseada em uma constante seleção dos parâmetros mais "aptos" (valores que dão o melhor resultado). Em termos gerais, o algoritmo pode ser representado do seguinte modo:

  • São selecionadas aleatoriamente duas populações (espécies) a partir do número total de combinações possíveis de parâmetros;
  • Ambas espécies são testadas, e delas é deixada apenas a espécie que tiver os melhores resultados (segundo o critério de otimização);
  • Os membros dessa espécie são aleatoriamente cruzados entre si, daí que sejam submetidos a mutações aleatórias e parâmetros de inversão;
  • Os descendentes são classificados por melhores resultados e o cruzamento se repete;
  • As operações de classificação e cruzamento continuam até que haja uma melhoria dos resultados (se o melhor resultado entre os descendentes exceder o melhor resultado entre os ascendentes). Para finalizar a otimização, é preciso que não haja nenhuma melhoria do critério de otimização no decorrer de vários cruzamentos (gerações).

Número de testes realizados

Durante a otimização genética o número de testes é significativamente mais baixo, graças a isso a otimização se torna mais rápida. Após começar a otimização genética, na guia "Configurações" é exibido o número estimado de execuções de teste que serão efetuadas. Esse número é calculado segundo a seguinte fórmula:

Tamanho da população * (Número absoluto de gerações + Número de gerações para a avaliação da convergência)

Onde:

  • O tamanho da população é calculado com base no número de possíveis combinações de parâmetros otimizados e pode adotar valores de 64 a 256;
  • O número absoluto de gerações pode adotar valores de 15 a 31. É determinado pela manifestação de uma melhoria do critério de otimização. Há sempre 15 gerações sendo testadas. Se uma geração entre 15 a 31 não mostrar qualquer melhoria do critério de otimização, serão executados testes adicionais das gerações seguintes para avaliar a convergência.
  • O número de gerações para a avaliação da convergência é calculado como um terço do número absoluto de gerações. Se o número absoluto de gerações for igual a 18 (melhor resultado na geração 17 e sem melhoria na 18), adicionalmente serão testadas 5 gerações: na geração 18 não houve nenhuma melhoria e para testar a convergência é necessária uma ausência de melhoria em 18/3 = 6 gerações. O teste é interrompido, se, durante o número condicional de gerações, não houver melhoria.
  • O modo de otimização rápida é automaticamente ativado, se o número total de passos de otimização exceder 1 0000 0000 em um sistema de 32 bits ou 100 0000 0000 em um sistema de 64 bits.
  • Durante a otimização genética os resultados intermediários são armazenados na cache após o cálculo de cada geração (arquivo pasta_de_dados_da_plataforma/tester/cache/*.gen). Assim, o processo de otimização genética pode ser interrompido a qualquer momento. Mesmo que o processo de otimização genética seja interrompido devido a causas externas (por exemplo, uma queda de energia), a otimização será automaticamente continuada a partir da última geração calculada após a seguinte execução. A cache de otimização genética é armazenada até que você altere as configurações de otimização ou até à conclusão do processo de otimização.
  • Ao executar uma suspensão regulamentar da otimização usando o botão "Stop", serão armazenadas todas as execuções calculadas anteriormente. Quando você retomar a otimização, o processo continuará a partir do local em que parou.

Critério de otimização #

O critério de otimização é um fator determinado, cujo valor determina a qualidade de um conjunto testado de parâmetros de entrada. Quanto maior for o valor do critério de otimização, melhor será avaliado o resultado do teste com o conjunto de parâmetros dados. A seleção desse indicador é realizada na guia "configurações" à direita do campo "Otimização".

O critério de otimização é apenas necessário para o algoritmo genético.

Os critérios de otimização são os seguintes:

  • Saldo máximo – esse indicador de otimização é o valor máximo do saldo.
  • Rentabilidade máxima –  esse indicador é o valor máximo de lucratividade.
  • Retorno máximo esperado – esse indicador é o retorno esperado.
  • Rebaixamento mínimo – neste caso, leva-se a em consideração o rebaixamento relativo do saldo em porcentagem.
  • Fator de recuperação máxima – esse indicador é o fator de recuperação.
  • Coeficiente de Sharte máximo – esse indicador é o coeficiente de Sharpe.
  • Critério de otimização do usuário – ao selecionar esse parâmetro, o valor da função OnTester() será calculado como critério de otimização no expert. Esse parâmetro permite que o usuário utilize qualquer indicador próprio para a otimização.

Também está disponível o "Critério Complexo Máximo". Trata-se de um indicador integral e complexo que avalia a qualidade do teste. Ele leva em consideração vários parâmetros simultaneamente:

  • Número de transações
  • Rebaixamento
  • Fator de recuperação
  • Retorno esperado
  • Índice de Sharpe

Este critério permite entender que o valor máximo de um parâmetro (por exemplo, lucro) nem sempre é a melhor opção do ponto de vista de uma análise abrangente. Ele permite que você selecione as melhores passagens de teste passo a passo: primeiro pelo número de negócios, em seguida, a partir dessa amostra por retorno esperado, depois, por fator de recuperação e assim por diante. Assim, como resultado da otimização, você obtém as melhores passagens com base em cada parâmetro, já depois você poderá escolher algum em particular, por exemplo, o de maior lucro.

Todos os símbolos selecionados na janela "Observação do mercado"

Ao contrário dos dois anteriores, esse modo de otimização permite que você teste o expert com os mesmos parâmetros de entrada, mas em diferentes símbolos. Em cada otimização é alterado apenas o símbolo principal do teste do expert, por outras palavras, o símbolo do gráfico ao qual estivesse fixado o expert.

A otimização é efetuada apenas nos símbolos que, no momento atual, são selecionados na janela "Observação do mercado". Assim, ajustando o conjunto de símbolos, você pode controlar a otimização.

  • Você deve ter em mente que baixar os dados dos preços necessários, a partir do servidor, pode levar um longo tempo. No entanto, o retardamento, durante o processo de otimização, como resultado do download de dados, ocorre apenas durante a primeira execução no símbolo, durante a última, são baixados apenas os dados em falta.
  • Ao otimizar através de símbolos, são usados os valores atuais dos parâmetros de entrada indicados na coluna "Valor".