¿Es la diferencia de Cauchy un precursor de una inversión y/o corrección? - página 3

 

Adjunto el indicador solicitado.

Se basa en la Media Móvil Personalizada de la carpeta con ejemplos de indicadores.

Función de cálculo del SMA sin cambios.
La GMA se calcula en una función separada.
Al final calculamos su diferencia.

Archivos adjuntos:
Koshi.mq5  6 kb
 
elibrarius:

Adjunto el indicador solicitado.

Se basa en la Media Móvil Personalizada de la carpeta con ejemplos de indicadores.

Función de cálculo del SMA sin cambios.
La GMA se calcula en una función separada.
Al final calculamos su diferencia.

Una imagen del gráfico es mejor.
 
 
elibrarius:

Adjunto el indicador solicitado.

Se basa en la Media Móvil Personalizada de la carpeta con ejemplos de indicadores.

La función de cálculo de la SMA no se ha modificado.
El GMA se calcula en una función separada.
Al final calculamos su diferencia.

Gracias. En el gráfico anterior se puede ver que el indicador está cumpliendo su función. ¿O no? Todavía tengo que trabajar mucho en ello para entenderlo mejor.

Pregunta: ¿Qué periodo se utiliza?

 
elibrarius:

No se puede ver nada, excepto lo que se puede ver sin indicadores.

Período M1. Está escrito en la esquina izquierda).

 
Yuriy Asaulenko:
No veo nada, excepto lo que se puede ver sin indicadores.
Porque, no quieres ver. Veo que el indicador predijo inequívocamente un descenso incluso antes (al alza) de lo que el precio realmente bajó.
 
Yousufkhodja Sultonov:
Gracias. En el gráfico anterior se puede ver que el indicador está cumpliendo su función. ¿O no?
El indicador lee lo que se da en la fórmula. Pero la interpretación de los resultados y el desarrollo de la ST sobre su base es una tarea mucho más difícil.
Por cierto, por favor, comprueba si el GMA está contando correctamente.

void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   double powr=1/(double)InpMAPeriod;
   if(prev_calculated==0)// first calculation
     {
      limit=InpMAPeriod+begin;
      //--- set empty value for first limit bars
      for(i=0;i<limit-1;i++) gma[i]=1.0;
      //--- calculate first visible value
      double firstValue=1;
     
      for(i=begin;i<limit;i++)
         firstValue*=price[i];
      firstValue=MathPow(firstValue, powr);
      gma[limit-1]=firstValue;
     }
   else limit=prev_calculated-1;
//--- main loop
   for(i=limit;i<rates_total && !IsStopped();i++){
      gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
   }
//---
  }
 
Yuriy Asaulenko:

No se puede ver nada, excepto lo que se puede ver sin indicadores.

Período M1. Está escrito en la esquina izquierda).

Por periodo me refiero al número de últimas barras históricas utilizadas al calcular la línea del indicador.
 
Yousufkhodja Sultonov:
Porque, no quieres ver. Veo que el indicador predijo inequívocamente un descenso incluso antes (al alza) de lo que el precio realmente bajó.

¿Lo es?

Incluso lo miré de nuevo.

Zy Un derivado de MA daría lo mismo. Incluso todavía predijo la dirección también).

 
elibrarius:
El indicador cuenta lo que se da en la fórmula. Pero la interpretación de los resultados es una tarea mucho más difícil.
Por cierto, ¿podría comprobar si la GMA es correcta?

void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   double powr=1/(double)InpMAPeriod;
   if(prev_calculated==0)// first calculation
     {
      limit=InpMAPeriod+begin;
      //--- set empty value for first limit bars
      for(i=0;i<limit-1;i++) gma[i]=1.0;
      //--- calculate first visible value
      double firstValue=1;
     
      for(i=begin;i<limit;i++)
         firstValue*=price[i];
      firstValue=MathPow(firstValue, powr);
      gma[limit-1]=firstValue;
     }
   else limit=prev_calculated-1;
//--- main loop
   for(i=limit;i<rates_total && !IsStopped();i++){
      gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
   }
//---
  }
Desgraciadamente, no sé mucho del código, que alguien entendido lo compruebe comparando con las fórmulas dadas o introduzca los precios de la prueba dada en la tabla original. Me parece, por el orden de los números, que estás contando correctamente.