Ajuda para a MetaTrader 5

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.

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".

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;
  • Saldo + rentabilidade máxima – esse indicador é o valor máximo da multiplicação do saldo pela rentabilidade;
  • Saldo + retorno máximo esperado – esse indicador é a multiplicação do saldo pelo retorno esperado;
  • Saldo + drawdown mínimo – nesse caso, além do valor do saldo, é calculado o nível de drawdown: Saldo/drawdown de acordo com a eqüidade;
  • Saldo + fator de recuperação máxima – esse indicador é o valor da multiplicação do saldo pelo fator de recuperação;
  • Saldo + coeficiente de Sharpe máximo – esse indicador é o valor da multiplicação do saldo pelo 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.