インディケータ: Didi指数 - ページ 3

 
collisr350 #:
このインディケータは素晴らしいが、リアルタイムでは正しく機能しない。リアルタイムのシグナルを出すのに正しく反応しません。
リアルタイムでは問題なく動作しています。どのような問題に直面していますか?
 

悪い点もあります。

オリジナルの SMA03 + SMA20 を使用すると、このインジケータとクロスが異なります。
何か秘密のアルゴがあるのでしょうか?
計算バッファが使用されていません。私は知らない。

 
Petr Michalica #:

悪いこともある。

オリジナルの SMA03 + SMA20 を使用すると、このインジケータとクロスが異なります。
何か秘密のアルゴがあるのでしょうか?
計算バッファが使用されていません。私は知らない。

ソースコードは公開されています。

これがその計算です:

   short_handle   = iMA(Symbol(), Timeframe, FastPeriod, Shift, Method, AppliedPrice);
   average_handle = iMA(Symbol(), Timeframe, MeanPeriod, Shift, Method, AppliedPrice);
   long_handle    = iMA(Symbol(), Timeframe, SlowPeriod, Shift, Method, AppliedPrice);

// そして...

   void CalculateDidiIndex(const int shift=0)
  {
//---
   double fast[1],mean[1],slow[1];

   if(CopyBuffer(short_handle, 0, shift, 1, fast)<=0) return;
   if(CopyBuffer(average_handle, 0, shift, 1, mean)<=0) return;
   if(CopyBuffer(long_handle, 0, shift, 1, slow)<=0) return;

   FastBuffer[shift] = fast[0]/mean[0];
   MeanBuffer[shift] = 1;
   SlowBuffer[shift] = slow[0]/mean[0];
//---
  }
 

はい、ソースを読みました、


オリジナルのsma03+sma20の十字の位置が違う。

 
Petr Michalica #:
sma03+sma20

入力によって制御されるaverage_handleが省略されている:

input int                MeanPeriod   =8;               // 平均MA期間
 


OKです。はい、すべて正しいです。
申し訳ありません。
質を測るのは簡単です。
平均は20だと思う。セラは3スマでしょ。

 
Matheus de Oliveira #:
ラインを取り外して修理をすることに問題はないと思いますか?

問題はないはずだ。時々、特定のシンボルやインジケーターのためにコードを書く人がいます。

この桁のコードは、インジケーターではごく標準的なもので、それ以上のものはありません:

IndicatorSetInteger(INDICATOR_DIGITS, _Digits);

この関数を完全に削除してもインジケーターは機能しますが、常にデフォルトで6桁が表示されます。

 
trade_addicted #:
[W]SlowBufferの値を読むには?

バッファ宣言を参照してください:

   SetIndexBuffer(0,FastBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,MeanBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,SlowBuffer,INDICATOR_DATA);

あなたはすでに高速バッファ#0を見つけました。同様に、遅いバッファはバッファ#2である。

個人的には、静的な値として1が割り当てられている平均バッファ#1には、首をかしげざるを得ない。整数を使う方が簡単でクリーンなのだが...。1.🤔
 
Ryan L Johnson # 個人的には、1という静的な値が割り当てられている平均バッファ#1には頭を悩まされる。整数を使う方が簡単でクリーンなのだが...。1.🤔

平均バッファに戸惑うのは正しい。この実装では、常に1の静的な値が割り当てられており(MeanBuffer[shift] = 1)、バー間で変更されることはありません。

つまり、バッファ自体が冗長であるということです。SetIndexBufferを通じてバッファを格納したり、公開したりする必要はありません。

インジケータは、他の2つの系列の計算でリテラル定数1を直接使用するだけでよく、その方がコードが短く、明快で、使用するメモリも少なくて済みます。Fast と Slow バッファは、実データを運ぶ唯一のものです。

 
精度が高いのはいいことだ。