Discussão do artigo "Criar Critérios Personalizados de Otimização de Expert Advisors"

 

Novo artigo Criar Critérios Personalizados de Otimização de Expert Advisors foi publicado:

O terminal do cliente MetaTrader 5 oferece uma ampla gama de possibilidades de otimização dos parâmetros de Expert Advisor. Além dos critérios de otimização inclusos no provador de estratégia, os desenvolvedores têm a possibilidade de criar os seus próprios critérios. Isto leva a um número quase ilimitado de possibilidades de teste e otimização dos Expert Advisors. Este artigo descreve formas práticas, tanto simples como complexas, de criação desses critérios.

Selecionar critério de otimização para o Expert Advisor

Autor: Dmitriy Skub

 
Você sabe, o EA de vários pares tem resultados de teste diferentes em símbolos diferentes. Testei o EA em EURUSD, ele não abre negociações longas para AUDUSD e, depois, testei-o em AUDUSD, ele não abre negociações curtas para EURUSD! Como resolver isso? Muito obrigado
 

Obrigado pelo excelente artigo, Dmitriy,

Existe alguma maneira ou espaço para encaixar os critérios de Lucro Perfeito de Pardo http://www.breakoutfutures.com/Newsletters/Newsletter0605.htm em cima de seus critérios?

 

Artigo muito útil, tudo é fácil de usar.....

Mas ele descreve apenas os critérios para chamar a função OnTester(), ou seja, quando a otimização termina com esse parâmetro.

É possível abortar a otimização antecipadamente? Por exemplo, se o drawdown for superior a 50% ou o saldo for inferior ao valor n, para não desperdiçar o tempo da CPU!

 
sigma7i:

Artigo muito útil, tudo é fácil de usar.....

Mas ele descreve apenas os critérios para chamar a função OnTester(), ou seja, quando a otimização termina com esse parâmetro.

Por exemplo, quando o drawdown for superior a 50% ou o saldo for inferior ao valor n, para não desperdiçar o tempo da CPU!

ExpertRemove
 
MetaDriver:
ExpertRemove
Muito bem!!! Obrigado!
 

Você poderia me dizer se existe a possibilidade de filtrar resultados desnecessários após o fim da otimização (chamada OnTester), por exemplo, com um resultado negativo, para não sobrecarregar a guia"resultados da otimização"? ?

 

A classificação pode ser feita clicando em...

em qualquer coluna.

PS: Nem sempre os resultados são conscientemente distorcidos; no processo de otimização genética, você pode "arrancar" o ExpertRemove().

Também pode ser redefinido em OnTester().

Eu, pessoalmente, às vezes a genética foi para o lado errado.

 
Karlson:

A classificação pode ser feita clicando no...

em qualquer coluna.

Você também pode zerá-la em OnTester().

Para mim, pessoalmente, a genética às vezes deu errado.

Então, é a classificação, quero que os resultados indesejados não sejam exibidos....

Com a classificação, é simples, por exemplo:

double  OnTester()
double  balance = TesterStatistics(STAT_PROFIT);
double  trades_number = TesterStatistics(STAT_TRADES);

if(balance < 5000 || trades_number < 20) return(-777);

....бла бла return(свой критерий оптимизации);

e depois classificamos...

mas é um pouco "desajeitado", quero que os resultados indesejáveis não sejam exibidos de forma alguma.

 

Karlson:

PS: Nem sempre é possível "derrubar" ExpertRemove() no processo de otimização genética.

Você tem razão quando diz que eu não consigo "remover" os resultados durante a otimização (não apenas genética) usando ExpertRemove()....

talvez eu não saiba como prepará-lo:) ...eu o coloquei no manipulador OnTick() com uma condição...

 

Você está dizendo que um código como :

if (balance < 3000) ExpertRemove();

não funciona?

Mas não foi isso que eu disse. Que essa quebra (funcionou no passado, pelo menos) levou à fuga genética no final.