インディケータ: MACD発散 - ページ 2

 

しかし、元のMACDとこのMACDを重ね合わせると、なぜか両者の主線とシグナル線が 一致していないことがわかる。

 

こんにちは、アラン、

この素晴らしいインジケーターを提供してくれてありがとう。

しかし、少し問題があります。EAに実装しようとしているのですが、バッファをコピーし、シグナルを作成するために意味のある値を取得することに問題があります。

バッファ0と1は、ダイバージェンスが検出されるとすぐに値を出すバッファです。ダイバージェンスがない場合、これらのバッファはデータウィンドウに値を返しません。

ここまでは良いのですが、両方のバッファをコピーすると、返される値は常に両方のバッファで同じで、データウィンドウで返される値を反映しません。

これがバッファをコピーする方法です:

         if(CopyBuffer(macddiv_handle,0,1,1,macddiv_value1)<0 || CopyBuffer(macddiv_handle,1,1,1,macddiv_value2)<0)
            {
               Alert("Error Copying Buffer macddivergence - error:",GetLastError());
               ResetLastError();
               return;
            }     

その後、値をジャーナルに印刷すると、すべてのローソク足でこのような奇妙な結果が得られます:

2013.11.18 13:33:36 2013.01.02 02:20:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:20:00 val1:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:15:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:15:00 val1:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:10:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:10:00 val1:1.797693134862316e+308

意味のある値を得るために私を助けることができますか?

 
Klammeraffe:

こんにちは、アラン、

この素晴らしいインジケーターを提供してくれてありがとう。

しかし、少し問題があります。EAに実装しようとしているのですが、バッファをコピーし、シグナルを作成するために意味のある値を取得することに問題があります。

バッファ0と1は、ダイバージェンスが検出されるとすぐに値を出すバッファです。ダイバージェンスがない場合、これらのバッファはデータウィンドウに値を返しません。

ここまでは良いのですが、両方のバッファをコピーすると、返される値は常に両方のバッファで同じで、データウィンドウで返される値を反映しません。

これがバッファをコピーする方法です:

その後、値をジャーナルに印刷すると、すべてのローソク足でこのような奇妙な結果が得られます:

2013.11.18 13:33:36 2013.01.02 02:20:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:20:00 val1:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:15:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:15:00 val1:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:10:00 val2:1.797693134862316e+308
2013.11.18 13:33:36 2013.01.02 02:10:00 val1:1.797693134862316e+308

意味のある値を得るのを手伝ってくれますか?

これは意味のある値で、デフォルトでは DBL_MAX に等しい EMPTY_VALUE に 相当します。チャート上に描画する必要のないインジケータのバッファ値に使用するのがよい方法です。

EAでは以下の方法で管理できます:

if(macddiv_value1[index] != EMPTY_VALUE) ...
 
angevoyageur:

これは意味のある値で、デフォルトでは DBL_MAX と等しい EMPTY_VALUE に 相当します。チャート上に描画する必要のないインジケータのバッファ値として使用するのが良いでしょう。

EAでは以下の方法で管理できます:

ご協力ありがとうございました。ありがとうございます!

わかりました。

しかし、問題は、シグナルを出すローソク足でさえ、データ・ウィンドウが別の値を出しているにもかかわらず、この値を出してしまうことです。


   if (entry_signal==2)
      {
         Print("val1: ",macddiv_value1[0]);
         Print("val2: ",macddiv_value2[0]);
         
         buy_condition_1 = macddiv_value1[0] != EMPTY_VALUE;
         
         sell_condition_1 = macddiv_value2[0] != EMPTY_VALUE; 
      }
 
Klammeraffe:

助けてくれてありがとう。とても感謝している!

わかりました。

しかし、問題は、シグナルを出すローソク足でさえ、データ・ウィンドウが別の値を出しているにもかかわらず、この値を出していることです。


2013.01.02 13:50:00のval2の値はログのどこにありますか?表示されません。
 
angevoyageur:
2013.01.02 13:50:00のval2の値はログのどこにありますか?表示されません。

いい質問ですね。私はそれに気づいていない。しかし、これはまさにシグナルを生成するために欠落している値ではないでしょうか?

なぜならvalue2は弱気ダイバージェンスを 示すバッファ1の値だからです。

奇妙だ。

 
Klammeraffe:

いい質問だね。私はそれに気づいていない。しかし、これはまさにシグナルを出すために欠けている値ではないでしょうか?

なぜならvalue2は弱気ダイバージェンスを示すバッファ1の値だからだ。

奇妙だ。

そう、奇妙だ。とにかく、このトピックの上の「役に立たない答え」を読みましたか?

フォーラム

インジケーターMACDダイバージェンス

angevoyageur, 2013.11.05 19:14

とてもフレンドリーですね。

シグナルはローソク足の終値で表示されます。それは正常であり、それが動作するように持っている方法です。ダイバージェンスは、極端(トップ/ボトム)の研究に基づいています。もし現在のローソク足で極値を検出する方法をお持ちでしたら、プログラミングを学び、私たちに無料でこの素晴らしい技術革新を提供することをお勧めします。

ご意見ありがとうございました。

私はあなたがそれを読み、理解し、あなたのコードを修正するためにそれを使用することができます。あなたが見つからなければ、私は明日あなたに答えを与えるだろう
 
angevoyageur:

そう、奇妙なことだ。とにかく、このトピックの上にある「役に立たない答え」を読みましたか?

それを読んで理解し、あなたのコードを修正するのに使ってください。もし読まなかったら、明日答えを教えてあげよう。
読んでいない。しかし、その答えは全く無駄ではありません。助けてくれてありがとう。直しました :)
 

MACDインジケーターとは?どのように使用するのですか? (dailyforexの記事に 基づく)

金融市場でデイトレーダーが使用する最も一般的なテクニカル指標の1つは、移動平均収束乖離(Moving Average Convergence Divergence)で、より一般的にはMACDと呼ばれています。しかし、多くの新米トレーダーが犯す間違いの1つは、このインディケータの機能や計算方法をよく理解しないまま、単に使い始めてしまうことです。これは、完全に避けることができるはずの、コストのかかるミスにつながる可能性があります。そこで、デイトレードのポジションをより正確に設定し、一貫して利益を生み出すために、MACD(および他のすべての指標)の背後にあるロジックと計算を勉強することは理にかなっています。




移動平均収束ダイバージェンス(MACD)の定義

外為市場やテクニカル分析戦略の経験者なら、移動平均収束ダイバージェンス(MACD) について聞いたことがあるでしょう。しかし、MACDは具体的に何を教えてくれるのでしょうか?このあたりを理解していないと、売買シグナルを見極めることが難しくなります。ここでは、MACDインディケータを分解し、それが一般的に使用される方法と理由を説明します。

「最も基本的な形として、MACDはモメンタム指標であり、既存のトレンドに追随し、新たなトレンドを発見するように設計されている」と、マーケットアナリストのハリス・コンスタンティノウは言う。MACDは、2レベルの移動平均線の組み合わせと価格活動そのものの差異と関係を示すことで、これを実現する。

MACDの計算

MACDを決定し計算するには、12期間のEMAから26期間の指数平 均移動平均(EMA)を引く必要があります。次に、MACDの9期間EMAをプロットし、これがインディケータの シグナル・ラインとなります。シグナルラインはMACDの上にプロットされ、これが売買シグナ ル(買いシグナルと売りシグナルの両方)のトリガーとなります。こ れ ら の 要 素 が M A C D の 構 成 の 基 本 で あ り 、日 常 の 取 引 に M A C D を 使 用 す る 予 定 で あ れ ば 、こ れ ら の 要 素 を 十 分 理 解 し て お く こ と が 重 要 で す 。

MACD

MACDの計算方法の基本を理解したところで、トレーダーがMACDをどのように見 ているかを知るために、MACDの一般的な見方を見てみましょう。MACDを解釈する方法はいくつかありますが、トレーダーにとって最も有 効であることが証明されている最も一般的な方法は、
の3つです。

  • クロスオーバー
  • ダイバージェンス
  • そして、買われすぎ/売られすぎの状態の識別です。
インジケータはテクニカルトレーディングの主要な部分となっているため、これらのアプ ローチのいくつかをより深く見てみることをお勧めします。しかし、その前に、基本を理解することが不可欠です。これを怠ると、始めたばかりの多くのトレーダーが多くの損失を被ることになります。