Assessor para um artigo. Testes para todos os participantes. - página 4

 
Reshetov:


Eu melhorei o Expert Advisor para que ele calcule a probabilidade de uma futura posição curta usando sinais comerciais. Assim, se a probabilidade for maior que 0,5, abrimos uma posição curta, caso contrário, abrimos uma posição longa.



Fiz Take e Losses consertados, ou seja, eles não rolarão pelos sinais. Isto é necessário para poder aplicar o MM.

Aqui está o quadro: as primeiras 136 profissões são otimização, as demais são OOS.


Como este tópico não é interessante para comerciantes e apenas os floodbusters vêm aqui para discutir a personalidade do tema, não estou anexando o código modificado do Expert Advisor.


Yuri, não dê ouvidos a eles. Favor postar a EA modificada.
 
Andru80:
Yuri, não dê ouvidos a eles. Favor postar a EA modificada.

Se você tiver um artigo, você também terá um EA. Vamos ver o que é o que... Com alguma experiência, você não precisa nem mesmo de testes para avaliar a idéia. Vamos esperar.
 
Figar0:

Quando o artigo for escrito, o Consultor Especialista o seguirá. Vamos ver o que é o quê. Você não precisa de testes para estimar a idéia. Vamos esperar.

Estou colocando o Consultor Especialista antes do artigo, para que todos possam testá-lo e dar sua opinião (embora seja possível que eles provavelmente comecem a discutir minha personalidade novamente...).


A essência não está nem mesmo no Expert Advisor, mas no algoritmo anti-fitting que acrescentei a ele.

Agora não temos que procurar por testes futuros bem sucedidos e aprofundar os resultados dos testes, mas olhar através das linhas superiores dos resultados, eles devem estar lá em algum lugar, é bem possível que eles estejam na linha superior.

Os resultados dos testes e da otimização podem ser bem diferentes, pois o anti-instalação só é ativado durante a otimização e desativado durante o resto do tempo.

Aqui está o gráfico da linha superior dos resultados dos testes (as primeiras 404 transações são de otimização, as demais são de teste antecipado):


O Expert Advisor é anexado no arquivo anexo (é compilado antes da publicação, abrirei seu código no artigo).

Os parâmetros de entrada são:

x0, x1, x2, x3, x4, x5, x6, x7 - ajustável de 0 a 100 em incrementos de 1. Otimizado.

sl - Stop Loss e Take Profit in pips. Por exemplo, para EURUSD no H1, para cinco dígitos, pode-se tomar de 100 a 1000 em incrementos de 50 (para quatro dígitos, remover um zero de todos os números). Otimizado.

lotes - volume em lotes, você precisa colocar pelo menos 1 lote para otimizar. Não otimizado.

mn - número mágico. Não otimizado.

d - número de casas decimais no tamanho do lote. Ou seja, se for permitido 0,01, expor d = 2. Ela não será otimizada.

Otimização por Fator de Lucro, os resultados da otimização também são ordenados por este parâmetro.

Por via das dúvidas, estou adicionando ao arquivo ZIP um arquivo com as configurações EA, já que as tenho configuradas.

Arquivos anexados:
rnn_v3_1.ex4  7 kb
rnn_v3.zip  1 kb
 

Resultado interessante!

Yura, você utiliza os dados do instrumento ao qual a EA está anexada na análise?

 
Neutron:

Resultado interessante!

Yura, você usa os dados do instrumento ao qual a EA está anexada na análise?

Sim, ou seja, outros instrumentos não são analisados. O AT é conduzido somente através de preços de abertura.


Basicamente, as entradas não são muito sofisticadas, então posso mostrar os fragmentos de código onde todo este material é calculado:


   // Считываем показания индикаторов
   double a1 = input(9, 0);
   double a2 = input(9, 1);
   double a3 = input(9, 2);

   // Вычисляем вероятность торгового сигнала для короткой позиции
   double result = getProbability(a1, a2, a3);

   ...

// Показания индикаторов, должны быть в диапазоне от 0 до 1
// p - период индикатора
// shift - смещение вглубь истории в периодах индикатора
double input(int p, int shift) { 
  return (iRSI(Symbol(), 0, p, PRICE_OPEN, p * shift) / 100.0);
}
 

Obrigado.

Antifitting... Se você se lembrar dos clássicos da NS, o anti-instalação se resume a encontrar o erro mínimo de previsão no avanço. Isto pode ser conseguido através da execução de estatísticas em uma centena de corridas independentes, com o requalificação NS em cada corrida. Isto é compreensível, mas muito difícil de implementar devido ao comprimento finito da BP inicial e sua não-estacionariedade.

Outra maneira é obter uma estimativa sobre a duração ótima da amostra de treinamento. Tanto quanto sei, ainda ninguém resolveu este problema de uma maneira geral.

Você conseguiu?

 
Neutron:

Outra maneira é obter uma estimativa sobre a duração ótima da amostra de treinamento. Tanto quanto sei, ainda ninguém resolveu este problema de forma geral.

Não é preciso resolvê-lo. Basta encontrar o comprimento certo da amostra de treinamento para um determinado caso, e é muito fácil de fazer.

Sim, e não é um anti-fit. É um encaixe de segundo nível. Para a montagem em nível n, deve haver n+1 amostras para testar, a última é uma amostra de controle.

Este é exatamente o último que Reshetov nunca teve.

 

Que simples!

Para cada ponto da curva, as estatísticas têm que ser recrutadas. E de onde sacar, se a faixa de preços mudar completamente após um mês?

 

Não, não faz nenhum sentido.

No caso da Juri, o treinamento NS é feito simplesmente passando pelos pesos no meu trecho dado de história... certo? Se assim for, então a análise é simplesmente o resultado dos negócios em cada iteração. E a afirmação: "...Agora, os testes de avanço bem sucedidos não precisam pesquisar longa e profundamente os resultados dos testes, mas devemos passar pelas linhas superiores dos resultados, eles devem estar em algum lugar, é bem possível que na linha superior ... ", esteja incorreto - os avanços bem sucedidos podem estar em qualquer lugar e devemos pesquisar em qualquer lugar.

 
Neutron:

Obrigado.

Anti-ajuste... Se você se lembrar dos clássicos da NS, o anti-instalação é reduzido a encontrar o erro mínimo de previsão no avanço. Isto pode ser conseguido através da execução de estatísticas em cerca de uma centena de corridas independentes, com o requalificação NS em cada corrida. Isto é compreensível, mas muito difícil de implementar devido ao comprimento finito da BP inicial e sua não-estacionariedade.

Outra maneira é obter uma estimativa sobre a duração ótima da amostra de treinamento. Tanto quanto sei, ainda ninguém resolveu este problema de uma maneira geral.

Você conseguiu?

Quanto aos sistemas comerciais, só é possível a correspondência da história. As redes neurais têm dois problemas de cada vez: ajuste e requalificação. E a reciclagem também é feita com base em dados estacionários.

Mas com redes neurais com entradas adequadas é um pouco mais fácil quando lidamos com algum pacote de redes neurais ou grelha feita por nós mesmos, se usarmos um método apresentado por Leonid Velichkovski: dividimos os exemplos de treinamento em duas amostras, treinamento e amostras de teste, e no processo de aprendizado calculamos os resultados para ambas as amostras, e ensinamos a grelha somente para a amostra de treinamento. Assim que a melhoria dos resultados na amostra de teste parar, ou seja, os resultados não melhorarem mais, isso significa que a rede foi suficientemente treinada e que devemos parar neste ponto. Assim, obtemos uma rede que foi treinada de forma mais adequada - não vamos melhorar e piorar facilmente. Neste caso, não nos importamos exatamente quanto a rede é reestruturada ou instalada, pois temos um extremo na amostra de teste.

É muito mais difícil com o algoritmo genético incorporado no terminal, pois não podemos calcular os resultados nas seções dianteiras e interromper a otimização a tempo. Por causa disso, é necessário buscar manualmente os resultados da otimização por indicadores.

Eu segui um caminho ligeiramente diferente:

1. Descobriu a causa do supertreinamento da rede neural e a eliminou. Isto é, se os exemplos de treinamento são estacionários e não contêm contradições, então meu algoritmo não está sobretreinado, mas pode facilmente ser subtreinado se o número de exemplos não for suficiente para interpolação.

2. Era mais complicado com o encaixe. Mas o problema acabou sendo resolvido também, pois o ajuste depende principalmente da qualidade do aprendizado, ou seja, da adequação do sistema de recompensas e punições, caso contrário o algoritmo seguirá o caminho de menor resistência e aprenderá da maneira que achar mais fácil, em vez de da maneira que for realmente adequada. Assim, eliminei esses mesmos caminhos de menor resistência, ou seja, forcei o algoritmo genético a avaliar a qualidade do cálculo das probabilidades de resultados, ao invés do número de pips.

3. não-estacionariedade. Não poderia ser superada de forma alguma, pois depende apenas do mercado, não do algoritmo. É a única coisa que é um verdadeiro obstáculo à qualidade das previsões. Mas seu impacto, se eliminarmos os outros inconvenientes do treinamento, não é mais tão grande a ponto de interferir nos ganhos.

Razão: