インディケータ: ZigZag

 

ZigZag:

ジグザグは、特定の天井と底の価格を線で結んだものです。

新しい"ジグ"、"ザグ"を成形するために、最小の価格変化パラメーターは、価格が動く比率を決定します。このインジケーターは、特定の値よりも少ない変化は考慮に入れません。したがって、ジグザグは重要な変化局面のみを反映します。

多くの場合、ジグザグが重要な変化や転換のみを反映するように、ジグザグの比率を設定します。ジグザグを使えば、エリオット波動や様々な波形を発見することができます。

ZigZag Indicator

最新のインジケーターのサインは変わる可能性があるということを認識しておくことが重要です。株価の変化がインジケーターの直近の値を変化させてし まうタイプのインジケーターです。ジグザグの価格変化によって値を修正する機能は、過去の価格変化を分析する上で、完璧なツールと言えます。したがって、 ジグザグに基づいてトレードロジックを構築するべきではありません。予想をたてるよりも、過去のデータを分析するのに適しています。

作者: MetaQuotes Software Corp.

 

EAコードで、ジグザグの上と下のバーの終値の 値を取得するにはどうすればよいですか?

 

ジグザグ・インディケータは、価格トレンド、支持線と抵抗線、ヘッド・アンド・ショルダー、ダブル・ボトム、ダブル・トップなどの古典的なチャートパターンを判断するのに非常に便利です。ジグザグ・インディケータは、スイングの高値と安値の両方を計算に使用します:

  • スイングハイ:スウィング高値:ある価格(通常は終値)がその前後の価格より高い場合。
  • スイング安値:ス イ ン グ 高 値:価格(通常は終値)が、その前の価格より高く、そのあとの価格よ りも低いとき。

ジグザグ・インディケータは、パーセンテージとポイントの両方を使用する ことができます。ジグザグ・インディケータを構築するには、スイング高値とスイング安値の間に一定のパーセンテージまたはポイント数がなければ、線は引かれません。E-mini ナ ス ダ ッ ク 100 先 物 の 下 の チ ャ ー ト は 、価 格 リトレースメントが3%のジグザグと5%のジグザグの違いを視覚的に示しています:


上のチャートで、リトレースメント率3%のジグザグは、リトレースメント率5%のジグザグよりも明確な線を描いていることに注目してください。より大きなリトレースメント率のジグザグを使用する目的は、トレーダーの分析にとって重要でない価格ノイズを排除することです。

ジグザグ・インディケータは、短期的な価格ノイズを排除しながら、株価サイクルを明らかにするのに非常に効果的です。

ジグザグ・インディケータは、短期的なノイズを選別し、重要なトレンドや市場価格の重要な変化を特定するのに極めて効果的です。

以下は、E-mini S&P 500先物のチャートで、ジグザグ・インディケータが支持線と抵抗線、価格ブレイクアウトの領域を見つけるのにいかに効果的であったかを示しています:


したがって、5%以上の価格変動のみが表示され、長期トレーダーや投資家が重要な支持線、抵抗線、価格ブレイクアウトの領域を判断するのに役立ちます。

チャートの左側で、S&P500は三角保合いパターンを形成している。価格がレジスタンスをブレイクすると、長期的な買いが入った。チャートの中央部では、ジグザグ・インディケータがS&P500が上 昇チャネルにあることを示すのに効果的でした。下値支持線にタッチした場面で買いを入れ、上値抵抗線にタッチした場面で売 却 す れ ば 、大 き な 利 益 を 得 る こ と が で き た で し ょ う 。

ジグザグ・インディケータは、短期的な取引でも利益を上げることができ ます。インテル (INTC)の下のチャートは、ジグザグ・インジケータで簡単に確認できる古典的なチャートのヘッド・アンド・ショルダー・パターンを示している(1ドルのリトレースメント):


右肩の価格が上向きのトレンドラインをブレイクした時、簡単に識別できるヘッド・アンド・ショルダー・パターンが売りシグナルを 出しました。

ジグザグ・インディケータは、古典的なチャートパターンを識別するための優れたテクニカル分析ツールです。ジグザグ・インディケータは、ノイズを減らし、テクニカルトレーダーが真の相場の方向性を見極めるのにも効果的です。

 
ZZの挙動を理解するのに役立つ
 

他のブロックでは'res'の使い方がわかるが、このブロックではわからない。

//--- 最終的な拒絶
   for(shift=limit;shift<rates_total && !IsStopped();shift++)
     {
      res=0.0;
      switch(whatlookfor)
        {
         case 0: // ピークまたは芝生を探す
            if(lastlow==0 && lasthigh==0)
              {
               if(HighMapBuffer[shift]!=0)
                 {
                  lasthigh=high[shift];
                  lasthighpos=shift;
                  whatlookfor=Sill;
                  ZigzagBuffer[shift]=lasthigh;
                  res=1;
                 }
               if(LowMapBuffer[shift]!=0)
                 {
                  lastlow=low[shift];
                  lastlowpos=shift;
                  whatlookfor=Pike;
                  ZigzagBuffer[shift]=lastlow;
                  res=1;
                 }
              }
            break;
         case Pike: // ピークを探す
            if(LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
              {
               ZigzagBuffer[lastlowpos]=0.0;
               lastlowpos=shift;
               lastlow=LowMapBuffer[shift];
               ZigzagBuffer[shift]=lastlow;
               res=1;
              }
            if(HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
              {
               lasthigh=HighMapBuffer[shift];
               lasthighpos=shift;
               ZigzagBuffer[shift]=lasthigh;
               whatlookfor=Sill;
               res=1;
              }
            break;
         case Sill: // 芝生を探す
            if(HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
              {
               ZigzagBuffer[lasthighpos]=0.0;
               lasthighpos=shift;
               lasthigh=HighMapBuffer[shift];
               ZigzagBuffer[shift]=lasthigh;
              }
            if(LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
              {
               lastlow=LowMapBuffer[shift];
               lastlowpos=shift;
               ZigzagBuffer[shift]=lastlow;
               whatlookfor=Pike;
              }
            break;
         default: return(rates_total);
        }
     }


本当に必要なのでしょうか?

 
soi kawasaki:

このコードでは、以下のブロックに固有の'res'変数が必要なのでしょうか? 他のブロックでは'res'変数の使い方がわかりますが、このブロックではわかりません。


本当に必要ですか?

あなたが示しているコードの前に、この変数で何をしているのか確認して ください。あるいは、resを削除して、ジグザグ・インジケータがどうなるか見てみましょう。
 
Mladen Rakic:
表示されているコードの前に、そのコードで何が行われているかを確認してください。あるいは、それを削除して、ジグザグ・インジケータがどうなるかを見てください。

ご回答ありがとうございました。)

Print()で値を確認 し、どこで使用されているかも確認しましたが、なぜこのブロックに必要なのかわかりませんでした。

また、インジケーターを削除しましたが、削除しなくても問題なく動作しています。

MT5に付属しているデフォルトのインジケーターなので気になりました。

もし、このコードのブロックでの使い方の存在を私が誤解しているのであれば、セカンドオピニオンを求めていました。

 
コミュニティの皆さん、こんにちは!極端な極値間の現在のセグメントの形成が完了したと仮定する(あるいは、事実を確実に述べる方がよい)にはどうすればよいのでしょうか?この問題が複雑であることは十分承知しているので、どんなアイデアでもありがたく頂戴したい。パラメータDepthが極値(最大値または最小値)間の間隔としてのローソク足の最小本数である場合、このパラメータの値12でインジケータが最大値と最小値の間に線を引くと 同時に、最大値と最小値の間でローソク足の本数が12本未満になるのはなぜでしょうか?
 
Andrey Kornishkin #:

EAコードで、ジグザグの上と下のバーの終値の 値を取得するにはどうすればよいですか?

iCustom()を使用して、チャートの右から左へバーを調べ、インジケーターバッファーの空でない値を探します。ここに探しているバーがあります。このバーから任意のローソク足の価格を取得できます。

 

Aleksandr Shirin 線を引くと 同時に、最大と最小の間、つまりローソク足の本数が12より少なくなるのはなぜでしょうか?

また、価格が通過したポイント数(ExtDeviationパラメータ)にも依存します。