Não me diga então que TA não funciona - página 24

 

Em geral, podemos dizer que o segredo da adaptação do TC aos perceptrons está resolvido:


Suponha que tenhamos três seções adjacentes de dados históricos: A, B, C

Se tivermos encaixe em B e C, e OOS em A, então os falsos sinais serão cortados pelo filtro: PerceptronA = signum(signum(PerceptronB) + signum(PerceptronC))

Se tivermos ajuste em A e B e OOS em C, os sinais falsos são cortados pelo filtro: PerceptronC = signum(signum(PerceptronA) - signum(PerceptronB))


As leis da aritmética aplicam-se aqui, ou seja: se A = B + C, então: C = A - B


onde:

signum(x) é uma função signum, ou seja, seu valor é igual, dependendo do argumento:

signum(x) = 0 se x = 0

signum(x) = 1 se x > 0

signum(x) = -1 se x < 0

Isto é, sinais comerciais devem ser consistentes para um teste de OOS bem sucedido no passado e inconsistentes para um teste de OOS bem sucedido no futuro.


Agora está bem claro porque o TS sobre perceptrons, se otimizado apenas para uma única seção da história, terá um ajuste no futuro. Afinal de contas, se dividirmos a parte otimizada em duas partes e levarmos em conta que os sinais nelas devem ser desajustados, obteremos 0 na diferença, ou seja, nenhum sinal, pois lidamos com a incerteza. Como resultado, em vez de um sinal comercial, obtemos SB, o que leva à perda de aproximadamente a propagação.

 

Muito legal!

Suponha que tenhamos três seções vizinhas de dados históricos: A, B, C e uma futura seção D

Se tivermos um ajuste em B e C, então

Para ter lucro no lote A, devemos abrir quando os sinais B e C forem consistentes,

E para ter lucro na área D, devemos abrir quando os sinais B e C forem discordantes.


Que porra é essa, t. Reshetov ? Aqui está a implementação do algoritmo para abrir/fechar posições:

//************************************************************          
void T_SetSignales(int PASS, bool& BUY_Sign, bool& BUY_Stop, bool& SELL_Sign, bool& SELL_Stop, int& LastBar )  
  {      
   BUY_Sign  = false;
   BUY_Stop  = false;
   SELL_Sign = false;
   SELL_Stop = false;
   
   int P1 = perceptron1();
   int P2 = perceptron2();
   
  switch(PASS)
   {
    case 1 : if (P1 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 2 : if (P2 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 3 : if (  (P1 + P2)  > 0)     {BUY_Sign  = true; SELL_Stop = true;} 
             if       (  (P1 + P2)  < 0)     {SELL_Sign = true; BUY_Stop  = true;}
             if         (  P1 > 0 &&  P2 < 0)  {SELL_Stop = true; BUY_Stop  = true;}
             if         (  P1 < 0 &&  P2 > 0)  {SELL_Stop = true; BUY_Stop  = true;}
             break; 
   }  // switch(PASS)
   return;  
  } //  void SetSignales ()       
//************************************************************          

Если вас не затруднит, поправьте.
 

Юрий Васильевич, хотелось бы обратить ваше внимание, что история самого последнего/правого интервала подгонки-оптимизации

не учитывается в вашей программе автоматизации подгонки-оптимизации.

Если я в 23 часа сегодня готовлю программу gold_dust для работы с начала следующего дня, то для Н1 пропадают 23 бара.

 

more:

Yuri Vasilievich, eu gostaria de chamar sua atenção para o fato de que a história do mais recente/intervalo de ajuste-optimização

não é levado em conta em seu programa de automação de otimização de ajuste.

Se estou preparando um programa de pó_de_ouro às 23h de hoje para trabalhar a partir do início do dia seguinte, então faltam 23 barras para o H1.



1. Não Vasilyevich, mas Vyacheslavovich.

2. Não no meu programa, mas no testador de estratégia MT4

 
Reshetov:

1. Não Vasilyevich, mas Vyacheslavovich.

2. Não no meu programa, mas no testador de estratégia MT4

1. peço desculpas pela gralha.

2. Sempre que você carrega o terminal MT4 para execução, é você quem estabelece a data mais correta do intervalo para o testador de estratégia igual à data atual,

excluindo, portanto, o dia atual. Seria mais natural definir o dia seguinte como a borda certa de todo o intervalo de teste,

então o dia atual será incluído no intervalo de testes.

 
Farnsworth:Verifique os novos gráficos de rentabilidade resultantes para verificar a aleatoriedade.
Por favor, aprofunde este ponto, Sergey. O que deve ser verificado e que tipo de aleatoriedade?
 
Mathemat:
Agora, por favor, aprofunde este ponto, Sergei. O que precisa ser verificado e para que tipo de aleatoriedade?
De alguma forma eu também fiquei interessado, mas era muito tímido para perguntar)))) (para não parecer um tolo:)))
 
Mathemat:
A partir deste ponto, por favor, seja mais específico, Sergiy. O que deve ser verificado e para que tipo de aleatoriedade?

Eu posso ter dito algo estúpido, mas não sou matemático, estou apenas aprendendo :o) Meu raciocínio é: o que é comércio? Posso dar muitas definições, mas uma delas, por exemplo, pode ser - é um processo de transformação de "curva de cotação" em "curva de depósito". Afinal, é claro que se pode julgar a qualidade de um processo comercial pela curva de depósito (ou equilíbrio). O processo comercial ideal transforma a curva de cotação em uma linha de equilíbrio ideal com inclinação positiva.

Tomei emprestada a curva de equilíbrio de outros para maior clareza (embora sem permissão):

Se eu, por exemplo, sou um investidor ou um comerciante, e penso em comprar/trustar/verificar um sistema comercial em particular, em outras palavras, fazer algum tipo de avaliação objetiva do próprio processo comercial, provavelmente há muitas opções para realizar isto. Estou apenas tentando examinar a curva resultante para a aleatoriedade do resultado. Afinal de contas, o fato de ter sido obtido um saldo positivo agora não diz realmente nada.

Utilizo o seguinte para investigar a série temporal da curva de equilíbrio:

  • critérios de tendência e aleatoriedade (classificação, série, inversão, critério de autocorrelação, etc., há muitos deles)
  • análise fractal

Sempre verifico desta maneira, exatamente esta verificação e rejeito muitas das minhas belas curvas com saldo positivo, porque há fragmentos aleatórios.

PS: aqui estão minhas dúvidas em relação a tal curva. É muito tortuoso :o)

Adendo

Esqueci de acrescentar, um dos critérios importantes. Se as características fractais de um processo de cotação coincidem com/estão próximas das características fractais de um processo comercial - a estratégia é rejeitada.

 

Hoje encontrei uma característica interessante no EA que está no GD2. Acontece que no futuro você não deverá negociar na 3ª modalidade (passe = 3), mas na 1ª ou 2ª modalidade.

Levamos a EA e a história por 12 meses, ou seja, um ano. Dividimos a história em 4 partes de 3 meses: I, II, III e IV trimestres.

I e IV quartos - isto é OOS, II e III - Amostras.

Etapa 1. Primeiro encontramos valores ótimos de p e sl, ou seja, marcamos datas para II e III trimestres, marcamos o primeiro perceptron x11, x21, x31, x41, e também marcamos p e sl. Passe de modo = 1. Otimizar e definir o melhor resultado.

Etapa 2. Defina datas para Q2, desmarque p e sl e otimize as configurações para o primeiro perceptron. Defina o melhor resultado nos ajustes.

Etapa 3. Definir datas para o terceiro trimestre, remover carrapatos de x11, x21, x31, x41, definir x12, x22, x32, x42, passar = 2 e otimizar as configurações para o segundo perceptron. Definimos o melhor resultado nos ajustes.

4º passo. Trocar o passe = 3, marcar datas para o primeiro trimestre e fazer o teste. Se o teste for bem sucedido, significa que pelo menos um dos perceptrons será robusto.

Isto é, todas as etapas acima como na metodologia GD2.

Passo 5. Defina datas para Q4, passe = 1. Faça o teste.

Passo 6. Datas definidas para o quarto trimestre, passe = 2. Faça o teste.

Pelo menos um dos testes no par. 5 ou paras. 6 devem ser bem sucedidos.

Mas nós fizemos os testes no futuro, ou seja, no quarto trimestre, por assim dizer, para testar. E o GD está administrando tudo no passado, ou seja, os 3 primeiros trimestres. Como sabemos qual passe = 1 ou passe = 2 produzirá melhores resultados? Definimos as datas para os primeiros 3 trimestres e as executamos primeiro no modo 1 e depois no modo 2. E então olhamos para os melhores resultados para todos os 9 meses - a modalidade é a mais robusta.

 
Farnsworth:

Para investigar a série temporal da curva de equilíbrio, utilizo o seguinte:

  • critérios de tendência e aleatoriedade (classificação, série, inversão, critério de autocorrelação, etc., há muitos deles)
  • análise fractal
Sempre verifico desta maneira, exatamente esta verificação rejeita muitas das minhas belas curvas com saldo positivo, porque há fragmentos aleatórios.

Por que é tão difícil (quero dizer, em azul)? Você não acha que pode rejeitar um bom sistema dessa maneira? Sim, entendo: você parece ser um perfeccionista extremo...

imho, a seqüência de ofícios expressa como "sucesso-falha" é, na sua esmagadora maioria, um processo Bernoulli. Então, como você remove a aleatoriedade de lá?