コーシー差は反転や補正の前兆なのか? - ページ 3

 

要求されたインジケータを添付します。

指標例のフォルダにあるCustomMoving Averageが ベースになっています。

SMA計算機能は変更なし。
GMAは別機能で算出されます。
最後にその差を計算します。

ファイル:
Koshi.mq5  6 kb
 
elibrarius:

要求されたインジケータを添付します。

指標例のフォルダにあるCustom Moving Averageがベースになっています。

SMA計算機能は変更なし。
GMAは別機能で算出されます。
最後にその差を計算します。

チャートの写真があるとより良い。
 
 
elibrarius:

要求されたインジケーターを同封します。

これは、インジケータ例のフォルダにあるカスタム移動平均をベースにしています。

SMA計算機能には変更はありません。
GMAは別機能で算出されます。
最後にその差を計算します。

ありがとうございました。上のチャートから、このインジケータがその機能を果たしていることがわかります。それとも違うのでしょうか?もっと理解するためには、まだ多くの作業が必要です。

質問:どのような期間で使用するのですか?

 
elibrarius:

何も見えない、インジケータなしで見えるもの以外は。

M1期間。左隅に書いてある)。

 
Yuriy Asaulenko:
インジケーターがなくても見えるもの以外は、何も見えません。
だって、見たくないじゃないですか。この指標は、実際に価格が下落するよりもさらに早く(上向きに)下落を明確に予測していますね。
 
Yousufkhodja Sultonov:
ありがとうございました。上のグラフから、インジケーターがその機能を果たしていることがわかります。それとも、そうなのか?
インジケータは、数式で与えられたものを読み取ります。しかし、その結果の解釈と、それに基づくTSの開発は、もっと難しい課題である。
ところで、GMAが正しくカウントされているかどうか、ご確認ください。

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:

何も見えない、インジケータなしで見えるもの以外は。

M1期間。左隅に書いてある)。

期間とは、指標線を 計算する際に使用する直近のヒストリーバーの本数を意味します。
 
Yousufkhodja Sultonov:
だって、見たくないじゃないですか。この指標は、実際に価格が下落するよりもさらに早く(上向きに)下落を明確に予測していますね。

そうなんですか?

もう一度見ることさえ。

Zy MAからの誘導体でも同じものが出てきます。それでもって方向も予測した)。

 
elibrarius:
インジケータは、数式で与えられたものをカウントする。しかし、その結果を解釈するのは、もっと難しい課題です。
ちなみに、GMAが正しいかどうか確認してください。

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));
   }
//---
  }
残念ながら、私はコードについてあまり知らないので、どなたか知識のある方に、与えられた数式と比較したり、与えられたテストから元のテーブルに価格を入力したりしてチェックしてもらいましょう。数字の順番からして、正しくカウントしているように感じます。
理由: