Problemas encontrados durante os testes posteriores e não é possível encontrar a causa raiz! - página 3

 

iHighest() retorna a barra entre o período à esquerda ou à direita do "i"?

 MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];

Além disso, por favor, consulte também o meu posto anterior mesmo em frente a este posto.

 

Caro JollyDragon,

Feliz por você ver que o indicador recalcula.

O código do pescador é sempre o mesmo, é fácil de identificar.

o código apenas re-injeta um dado, como muitos indicadores fazem por algum meio, ( eles armazenam o valor passado dos dados na barra 1 2 3 ), este indicador não faz isso, por isso ele recalcula :

 for(i=limit-1; i>=0; i--)
     {
      MaxH = High[iHighest(NULL,0,MODE_HIGH,Solar_period,i)];
      MinL = Low[iLowest(NULL,0,MODE_LOW,Solar_period,i)];
      price = (High[i]+Low[i])/2;
      Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
      Value=MathMin(MathMax(Value,-0.999),0.999);
      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
     
      if(ExtBuffer0[i]>0) ExtBuffer1[i]=Solar_limit;
      else ExtBuffer1[i]=-Solar_limit;
     }
 
jollydragon:

iHighest() retorna a barra entre o período à esquerda ou à direita do "i"?


À esquerda
 

ffoorr,GumRai, obrigado.

Embora o código armazene os dados de bar1, você pode ver que ele não recalcula as barras à esquerda de bar0.

Portanto, ainda estou confuso com o que causou o re-cálculo, pois não há código para recalcular as barras antes do bar0.

for(i=limit-1; i>=0; i--)
     {
      MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];
      MinL = Low[iLowest(NULL,0,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/2;
      Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
      Value=MathMin(MathMax(Value,-0.999),0.999);
      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
      if(ExtBuffer0[i]>0) ExtBuffer1[i]=10;
      else ExtBuffer1[i]=-10;
     }
 

Não sabemos que valor é dado para limitar.

Eu sugiro fortemente que você clique com o botão direito neste indicador e o mova para a lixeira!

      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];

Assumindo que Fish1 é uma variável global ou estática e a última barra é recalculada

Peixe1 recebe um valor baseado em dados Bar[0] quando i==0

Então quando a barra[1] é recalculada, o valor para o Peixe1, criado em barra[0] é usado para criar um valor para barra[1].

Eu não sei o que o indicador pretende fazer, mas qualquer indicador que usa dados pertencentes à barra i e depois usa que em uma barra anterior é um mau indicador.

 
GumRai:

Não sabemos que valor é dado para limitar.

Favor consultar o post 20 onde todo o arquivo indicador foi anexado. Abaixo foi colado novamente.

Arquivos anexos:
solarjoy.mq4(6.11 KB) apagar
GumRai:

Então quando a barra[1] é recalculada, o valor para o Peixe1, criado em barra[0] é usado para criar um valor para barra[1].

Eu não sei o que o indicador pretende fazer, mas qualquer indicador que usa dados pertencentes à barra i e depois usa que em uma barra anterior é um mau indicador.

Você pode ver mudanças 'i' de 'limite-1' para '0' que é da esquerda para a direita para o cálculo de Barras.

Assim, o valor de Peixe1 calculado em barra[1] é usado para criar um valor para barra[0]. Por que você pensa no contrário?

Portanto, eu não acho que este indicador seja esse tipo de mau indicador de acordo com meu entendimento sobre o código.

De qualquer forma, finalmente observei o redesenho e ele aprova que é esse tipo de indicador ruim.

No entanto, preciso saber como corrigir o código para evitar que o redesenho seja considerado auto-aperfeiçoamento.

for(i=limit-1; i>=0; i--)
     { 
       ...
      }
 

Este pescador não pinta de novo, tem bom aspecto, comparado com o solar_joy, o sinal é uma barra atrasada, mas é o mesmo indicador.

https://www.forex-tsd.com/metatrader-4/474-fisher-14.html#post214965

O problema não são indicadores, eles são perfeitos, é o mercado que sempre muda, nunca é o mesmo.

Um indicador que dá sinal perfeito em algum mercado de tendências, dará apenas sinal falso em outro mercado.

Sempre será necessário filtrar os sinais de um bom oscilador, ou seja, usando StopLoss e TakeProfit,

Quer seja usando um indicador de tendência.


Acho que o indicador de pescador funciona, é apenas uma barra atrasada, recalcula, não pinta de novo, esta pinta de novo, coloca em um EA no provador, e você verá :

https://www.forex-tsd.com/ideas-suggestions/25934-bulletproof-11.html#post351354

 
jollydragon:

Assim, o valor de Peixe1 calculado em barra[1] é usado para criar um valor para barra[0]. Por que você pensa ao contrário?

Ok, é justo, mas o código a que me referi não incluiu nenhum cálculo de limite e eu não ia olhar para trás mais de 3 páginas para ver se estava incluído em outro lugar.

Portanto, este indicador não recalcula a barra[1] em cada tick.

Mas ainda assim

 ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
 Fish1=ExtBuffer0[i];

permitirá cálculos diferentes na primeira execução em barras fechadas para o que faz na barra atual.

O que ele fará na primeira execução de uma nova barra é

ExtBuffer0[0]=0.5*MathLog((1+Value)/(1-Value))+0.5*ExtBuffer0[1];

Em carrapatos subseqüentes da mesma barra, ele calculará

ExtBuffer0[0]=0.5*MathLog((1+Value)/(1-Value))+0.5*ExtBuffer0[0];

O que é uma espécie de composto

 

Isto é negociável, o solar_joy/fischer dá um sinal uma barra mais cedo, comparado a um pescador não recalculado,

Depois pegue o sinal na barra 1 e 2, e vá ver se o sinal ainda está lá na barra 2 e 3.

Se o sinal se desvaneceu, então feche a ordem.

  if(Joy2 <= EA_Limit && Joy1 >= EA_Limit)  open_order( OP_BUY); 
 if( (Joy3 <= EA_Limit && Joy2 >= EA_Limit)== false ) close_order( OP_BUY); 
 
ffoorr:

Este pescador não pinta de novo, tem bom aspecto, comparado com o solar_joy, o sinal é uma barra atrasada, mas é o mesmo indicador.

https://www.forex-tsd.com/metatrader-4/474-fisher-14.html#post214965

Acho que o indicador de pescador funciona, é apenas uma barra atrasada, recalcula, não pinta de novo, esta pinta de novo, coloca em um EA no provador, e você verá :

https://www.forex-tsd.com/ideas-suggestions/25934-bulletproof-11.html#post351354


Caro ffoorr, não consigo abrir as páginas e não consigo acessar o site, www.forex-tsd.com. Talvez minha configuração da Internet tenha algum problema.

Por favor, vamos nos concentrar no meu código. São apenas cerca de 10 linhas de códigos para o conteúdo principal.

No entanto, ainda é muito difícil para nós encontrar a causa raiz para a repintura de barras históricas.