La différence de Cauchy est-elle un précurseur d'un renversement et/ou d'une correction ? - page 3

 

Je joins l'indicateur demandé.

Il est basé sur la moyenne mobile personnalisée du dossier avec des exemples d'indicateurs.

Fonction de calcul du SMA sans modification.
Le GMA est calculé dans une fonction séparée.
A la fin, nous calculons leur différence.

Dossiers :
Koshi.mq5  6 kb
 
elibrarius:

Je joins l'indicateur demandé.

Il est basé sur la moyenne mobile personnalisée du dossier avec des exemples d'indicateurs.

Fonction de calcul du SMA sans modifications.
Le GMA est calculé dans une fonction séparée.
A la fin, nous calculons leur différence.

Une photo de la carte est préférable.
 
 
elibrarius:

Je joins l'indicateur demandé.

Il est basé sur la moyenne mobile personnalisée du dossier avec les exemples d'indicateurs.

La fonction de calcul du SMA n'a pas été modifiée.
Le GMA est calculé dans une fonction séparée.
A la fin, nous calculons leur différence.

Merci ! Vous pouvez voir sur le graphique ci-dessus que l'indicateur remplit sa fonction. Ou pas ? J'ai encore besoin de travailler beaucoup dessus pour mieux le comprendre.

Question : Quelle période est utilisée ?

 
elibrarius:

On ne voit rien, sauf ce qu'on peut voir sans indicateurs.

Période M1. C'est écrit dans le coin gauche).

 
Yuriy Asaulenko:
Je ne vois rien, sauf ce que vous pouvez voir sans indicateurs.
Parce que, tu ne veux pas voir. Je constate que l'indicateur a prédit sans ambiguïté une baisse encore plus tôt (à la hausse) que le prix n'a effectivement baissé.
 
Yousufkhodja Sultonov:
Merci ! D'après le graphique ci-dessus, vous pouvez constater que l'indicateur remplit sa fonction. Ou pas ?
L'indicateur lit ce qui lui est donné dans la formule. Mais l'interprétation des résultats et le développement de l'AT sur cette base est une tâche beaucoup plus difficile.
Au fait, vérifiez si le GMA compte correctement ?

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:

On ne voit rien, sauf ce qu'on peut voir sans indicateurs.

Période M1. C'est écrit dans le coin gauche).

Par période, j'entends le nombre de barres du dernier historique utilisées pour calculer la ligne de l'indicateur.
 
Yousufkhodja Sultonov:
Parce que, tu ne veux pas voir. Je constate que l'indicateur a prédit sans ambiguïté une baisse encore plus tôt (à la hausse) que le prix n'a effectivement baissé.

C'est le cas ?

Je l'ai même regardé à nouveau.

Zy Un dérivé de MA aurait donné la même chose. Même encore prédit la direction ainsi).

 
elibrarius:
L'indicateur compte ce qui lui est donné dans la formule. Mais l'interprétation des résultats est une tâche beaucoup plus difficile.
Au fait, veuillez vérifier si le GMA est correct ?

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));
   }
//---
  }
Malheureusement, je ne connais pas bien le code, que quelqu'un de bien informé vérifie en comparant avec les formules données ou entre les prix du test donné dans le tableau original. Je sens, par l'ordre des chiffres, que vous comptez correctement.