記事「MQL5での取引戦略の自動化(第1回):Profitunityシステム(ビル・ウィリアムズ著「Trading Chaos」)」についてのディスカッション

 

新しい記事「MQL5での取引戦略の自動化(第1回):Profitunityシステム(ビル・ウィリアムズ著「Trading Chaos」)」はパブリッシュされました:

この記事では、ビル・ウィリアムズのProfitunityシステムを詳しく分析し、その核心となる構成要素や、市場の混乱の中での独自の取引アプローチを解説します。MQL5用いたシステムの実装方法を、主要なインジケーターやエントリー/エグジットシグナルの自動化に焦点を当てながら説明します。さらに、戦略のテストと最適化をおこない、さまざまな市場環境におけるパフォーマンスについて考察します。

ビル・ウィリアムズが考案したProfitunityシステムは、市場の混沌とした動きを理解し、それに対応するための特殊なインジケーター群を活用します。この戦略は、トレンドフォロー型のインジケーターとモメンタムインジケーターを組み合わせることで、柔軟かつ高い応答性を持つ取引手法を実現します。Profitunityシステムの主な目的は、トレンドの反転や市場の加速を識別し、高確率の取引チャンスを見つけることです。本戦略で使用される主要なインジケーターは以下の4つです。

  • Fractals(フラクタル)
  • Alligator(アリゲーター)
  • Awesome Oscillator (AO)
  • Accelerator Oscillator (AC)

これらのインジケーターは相互に連携しながら、市場環境に関する重要な情報を提供し、エントリーおよびエグジットのシグナルを示します。次に、それぞれのインジケーターの詳細な設定と役割について詳しく見ていきましょう。

作者: Allan Munene Mutiiria

 
ありがとう。非常によく説明されており(プログラムコード内の多くのコメントのおかげで)、MQL5の初心者でも理解しやすい。MQL5の初心者にはうってつけです。このシリーズの他の記事にも目を通し、自分のEAを実装できるようになりたいと思います。
 

この部分について、記事の著者に質問があります:

В частности, мы инициализируем четыре переменные типа integer: "handle_Fractals", "handle_Alligator", "handle_AO" и "handle_AC» со значением INVALID_HANDLE.

MQL5プログラミングの初心者としては、なぜすべてのインジケーターのハンドルを一度にINVALID_HANDLE 値で初期化する必要があるのかがよくわかりません。初期化せずにインジケーターのハンドルを宣言するとどうなるのでしょうか?Expert Advisorは動作しないのでしょうか?

よろしくお願いします。

 
Lagge #:
ありがとう。非常によく説明されており(プログラムコード内の多くのコメントのおかげで)、MQL5の初心者でも理解しやすい。MQL5の初心者にはうってつけです。このシリーズの他の記事にも目を通し、自分のEAを実装できるようになりたいと思います。

ご丁寧なフィードバックをありがとうございます。もちろんです。

 
MrBrooklin プログラミングの 初心者としては、なぜすべてのインジケーターのハンドルを一度にINVALID_HANDLE 値で初期化する必要があるのかがよくわかりません。初期化せずにインジケーターのハンドルを宣言するとどうなるのでしょうか?Expert Advisorは動作しないのでしょうか?

よろしくお願いします。

ご丁寧なフィードバックありがとうございます。ハンドルを初期化することは必須ではありませんが、定義した後に初期化されたかどうかをチェックすることで、潜在的なエラーを避けることができます。これはセキュリティ・チェックのためです。例えば、このようにします:

//--- グローバルスコープ
int m_handleRsi; // ハンドルが初期化されていない
OR
int m_handleRsi = INVALID_HANDLE; // ハンドルの初期化


//--- 初期化時
m_handleRsi = iRSI(m_symbol, RSI_TF, RSI_PERIOD, RSI_APP_PRICE); // 初期化して次に進むこともできる
OR
m_handleRsi = iRSI(m_symbol, RSI_TF, RSI_PERIOD, RSI_APP_PRICE); // 初期化してチェックすることもできる。この方が良い
if (m_handleRsi == INVALID_HANDLE) {
   Print("Failed to initialize RSI indicator");
   return false;
}

// これで、どんなものでも機能するようになった。まれにですが、インジケータの初期化に失敗する例を見てみましょう。
// チェックがなかった場合、インジケーターは追加されず、ストラテジーロジックは改ざんされる。
// チェックした人は、プログラムが終了し、偽の戦略を避けることができる。OnInitイベントハンドラでは、初期化に失敗したことを返し、プログラムは実行されません。
// つまり、ユーザーは何かが失敗し、チェックが必要であることを知ることができる。チェックしなかった場合、プログラムは実行されますが、失敗したインジケータが必要な場所では、ロジックは失敗します。これでわかった?
// 初期化ロジックは以下のようになる:

int OnInit() {
   if (!(YOUR LOGIC) e.g. m_handleRsi == INVALID_HANDLE) {
      return INIT_FAILED;
   }
   return INIT_SUCCEEDED;
}

これで理解できましたか?ありがとう。

 
とても詳細な内容で、素晴らしいシェアをしてくれてありがとう!
 

引用元:この記事では、ビル・ウィリアムズによるProfitunityシステムを検証し、その中核となるコンポーネントと、市場の混乱の中で取引するためのユニークなアプローチについて説明します。

答え損益欄が存在するのは、あなたのバックテスト商品 または 平坦な市場が、この注文ラインに続くポートフォリオまたはインデックスのバスケットに対して使用しているフォワード市場と同程度に優れている場合のみです。

このような用途のために作られたインデックスや新しく設立されたETFがあり、ダウ・ジョーンズ30インデックスや他の多くのインデックスのように、このような結果や利益率を生み出すでしょう。 ピーター・マティ

Productivity - USA - Fundamental Analysis - Price Charts, Technical and Fundamental Analysis - MetaTrader 5 Help
Productivity - USA - Fundamental Analysis - Price Charts, Technical and Fundamental Analysis - MetaTrader 5 Help
  • www.metatrader5.com
The productivity index measures the output produced for each hour of labor worked. This indicator is useful for predicting inflation and output...
 
peter matty #:

この記事は、損益「コラム」や市場指数/ETFに関するものではない。ビル・ウィリアムズによるProfitunityシステムと、その指標(フラクタル、アリゲーター、AO、AC)をMQL5で実装する方法に焦点を当てている。

ここでの議論は、コーディングの実践と戦略の自動化に関するものであるため、これらのポイントを守ることが読者にとって最も役に立つだろう。

 
Miguel Angel Vico Alba #:

この記事は、損益「コラム」や市場指数/ETFに関するものではない。ビル・ウィリアムズによるProfitunityシステムと、その指標(フラクタル、アリゲーター、AO、AC)をMQL5で実装する方法に焦点を当てている。

ここでの議論は、コーディングの実践と戦略の自動化に関するものであるため、これらのポイントを守ることが読者にとって最も役に立つだろう。

もちろん