Ist die Cauchy-Differenz ein Vorläufer für eine Umkehrung und/oder Korrektur? - Seite 3

 

Ich füge den gewünschten Indikator bei.

Es basiert auf dem Custom Moving Average aus dem Ordner mit Beispielen von Indikatoren.

SMA-Berechnungsfunktion ohne Änderungen.
Die GMA wird in einer separaten Funktion berechnet.
Am Ende berechnen wir ihre Differenz.

Dateien:
Koshi.mq5  6 kb
 
elibrarius:

Ich füge den gewünschten Indikator bei.

Es basiert auf dem Custom Moving Average aus dem Ordner mit Beispielen von Indikatoren.

SMA-Berechnungsfunktion ohne Änderungen.
Die GMA wird in einer separaten Funktion berechnet.
Am Ende berechnen wir ihre Differenz.

Ein Bild der Tabelle ist besser.
 
 
elibrarius:

Ich füge den gewünschten Indikator bei.

Er basiert auf dem Custom Moving Average aus dem Ordner mit den Indikatorbeispielen.

Die SMA-Berechnungsfunktion wurde nicht geändert.
Der GMA wird in einer separaten Funktion berechnet.
Am Ende berechnen wir ihre Differenz.

Ich danke Ihnen! Aus der obigen Grafik können Sie ersehen, dass der Indikator seine Funktion erfüllt. Oder ist es nicht so? Ich muss noch viel daran arbeiten, um es besser zu verstehen.

Frage: Welcher Zeitraum wird verwendet?

 
elibrarius:

Man kann nichts sehen, außer dem, was man ohne Indikatoren sehen kann.

M1-Zeitraum. Es steht in der linken Ecke).

 
Yuriy Asaulenko:
Ich sehe nichts, außer dem, was man ohne Indikatoren sehen kann.
Weil Sie das nicht sehen wollen. Ich sehe, dass der Indikator eindeutig einen Rückgang vorausgesagt hat, und zwar sogar früher (nach oben) als der Kurs tatsächlich gesunken ist.
 
Yousufkhodja Sultonov:
Ich danke Ihnen! Anhand des obigen Diagramms können Sie sehen, dass der Indikator seine Funktion erfüllt. Oder doch?
Der Indikator zeigt an, was er in der Formel angegeben ist. Aber die Interpretation der Ergebnisse und die Entwicklung von TS auf ihrer Grundlage ist eine viel schwierigere Aufgabe.
Übrigens, überprüfen Sie bitte, ob der GMA richtig zählt?

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:

Man kann nichts sehen, außer dem, was man ohne Indikatoren sehen kann.

M1-Zeitraum. Es steht in der linken Ecke).

Mit Periode meine ich die Anzahl der letzten historischen Balken, die für die Berechnung der Indikatorlinie verwendet werden.
 
Yousufkhodja Sultonov:
Weil Sie das nicht sehen wollen. Ich sehe, dass der Indikator eindeutig einen Rückgang vorausgesagt hat, und zwar sogar früher (nach oben) als der Kurs tatsächlich gesunken ist.

Ist es das?

Ich habe es mir sogar noch einmal angesehen.

Zy Ein Derivat von MA hätte dasselbe Ergebnis gebracht. Auch die Richtung wurde noch vorhergesagt).

 
elibrarius:
Der Indikator zählt, was in der Formel angegeben ist. Die Interpretation der Ergebnisse ist jedoch eine weitaus schwierigere Aufgabe.
Übrigens, überprüfen Sie bitte, ob die GMA korrekt ist?

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));
   }
//---
  }
Leider weiß ich nicht viel über den Code, lassen Sie jemanden, der sich damit auskennt, dies überprüfen, indem Sie mit den gegebenen Formeln vergleichen oder die Preise aus dem gegebenen Test in die ursprüngliche Tabelle eingeben. Ich habe den Eindruck, dass die Reihenfolge der Zahlen richtig ist.