Currency Strength Oscillator MT5
- インディケータ
-
Narayanan Mohanan Mohanan Krishnan
MT5/MQL5向けのExpert Advisor、カスタムインジケーター、およびバックテスト・検証ツールの開発を行っています。私が重視しているのは、クリーンで十分に文書化されたリペイントしない(No Repaint)コードです。確定足ベースのロジック、検証済みバッファ、適切なハンドル管理とメモリ管理など、信頼できるツールと壊れやすいツールを分けるエンジニアリング品質を大切にしています。 - バージョン: 1.0
- アクティベーション: 10
本インジケーターは、主要8通貨の相対的な強弱を28の主要通貨ペアから分解し、その推移として描画します。パネルが示すのは「現在の状況」です。本インジケーターが示すのは「そこに至るまでの経緯」——どの通貨が強含んできたか、どの通貨がすでに反転したか、そして順位がどこで入れ替わったかです。
8本すべての系列は仕様が公開されたインジケーターバッファとして提供されるため、エキスパートアドバイザーから通貨の強弱を直接読み取れます。
分解の仕組み
8通貨のそれぞれは、28ペアのうち7ペアに登場します。その通貨の強さは、この7つの値の平均であり、当該通貨が決済通貨となる場合には符号を反転させます。AUDJPYの下落は円安ではなく円高を意味します。
各ペアはちょうど2つの通貨に影響し、基軸通貨には正、決済通貨には負として寄与します。したがって28ペア全体ではこれらの寄与が相殺され、8つの強弱値の合計はゼロになります。本インジケーターはこれを内部的な検証に用いています。値が釣り合わなければ、分解が誤っていることになるからです。またこれは、読み取り値が絶対値ではなく相対値であることも意味します。通貨はそれ自体で強いのではなく、この組の他の通貨に対して強いだけです。
計算がチャートではなく通貨を読み取るため、インジケーターをどの銘柄に適用しても同じ8本のラインが表示されます。
推移が示し、スナップショットでは示せないこと
順位が示すのは今日の並び順です。推移が示すのは、その並びがどれだけ続いているか、首位が依然として上昇中なのかすでに反転しているのか、そして2つの通貨がいつ入れ替わったかです。交差した箇所が、順位の入れ替わった地点です。
個々の通貨は表示をオフにできます。8本すべてを追うよりも、そのほうが有用な場合が少なくありません。チャートの銘柄を構成する2通貨だけを描画すれば、どちら側が相場を動かしているかを明快に読み取れます。
強弱を測る2つの方法
変化率は、参照期間における変動率です。相対値であるため、ペア間で直接比較できます。
平均からの標準化距離は同じ変動を標準偏差で表すもので、ボラティリティが大きく異なる銘柄を一つの尺度に収めます。
参照期間が長い場合、両者の挙動は異なります。参照期間200では、変化率は持続的な偏りを蓄積し、いくつかの通貨は期間全体にわたってゼロを一度も横切らずに上または下にとどまります。一方、標準化された指標は中心に保たれます。どちらが誤りというわけではありません。変化率は実際に起きた変動を表し、標準化指標はその変動がどれほど異例であったかを表します。参照期間が短ければ差はわずかです。
ペアモード
ペアモードでは1本のラインのみを描画します。ある通貨の強さから別の通貨の強さを引いた値です。同じ分解を1つの関係に絞ったもので、どのチャートでも機能します。EURAUDを取引しながらCHFマイナスJPYを見ることもできます。
これはCHFJPYの価格とは異なります。価格は単一市場の気配値ですが、こちらはそれぞれがマトリクス全体に対して測定された2通貨の差です。
主要通貨以外での利用
本インジケーターはFXに限らず、あらゆるチャートで動作します。ゴールドや株価指数のチャートでも、ラインが表すのは引き続き通貨そのものであり、多くの場合それこそが求められているものです。ドル建ての銘柄は、ドル自体が隣に見えているほうが読み取りやすくなります。参照期間を変えた複数のインスタンスを適用し、速い視点と遅い視点を比較することもできます。
ここで主張していることと、していないことにご留意ください。ゴールドは28ペアのマトリクスに含まれておらず、それ自体の強弱値を持ちません。チャートが示しているのは、FXマトリクスから測定されたドルを、ゴールドの価格と並べて表示したものです。正確な読み方は「ゴールドが上昇する一方でドルが弱含んだ」であり、「ゴールドが強かった」ではありません。
エキスパートアドバイザーからの読み取り
10本のバッファが公開され、仕様が明示されています。バッファの並び順はアルファベット順で固定されており、表示スイッチによって変わることはありません。通貨を非表示にしてもチャートから消えるだけでバッファは値を保持し続けるため、EAはユーザーの表示設定の影響を受けません。
int h = iCustom(_Symbol, _Period, "CurrencyStrengthOscillator"); double jpy[]; ArraySetAsSeries(jpy, true); CopyBuffer(h, 5, 0, 100, jpy); // バッファ5は常にJPY
- 0 — AUD
- 1 — CAD
- 2 — CHF
- 3 — EUR
- 4 — GBP
- 5 — JPY
- 6 — NZD
- 7 — USD
- 8 — ゼロライン
- 9 — ペアスプレッド(基軸通貨マイナス決済通貨、ペアモードで値が入ります)
入力パラメータ
- 強弱の指標 — 変化率、または平均からの標準化距離
- 参照期間 — 各値を測定する期間(バー数)。既定値は14
- 平滑化 — 結果に適用する移動平均。既定値は3、1で平滑化なし
- 計算するバー数 — どこまで遡って計算するか。既定値は500、0で利用可能な全履歴
- 銘柄サフィックス — 自動検出されますが、特殊なブローカーの命名規則に合わせて手動指定も可能
- 単一ペアのスプレッドを表示 — ペアモードに切り替え、比較する基軸通貨と決済通貨を指定します
- AUDを表示 〜 USDを表示 — 通貨ごとに1つのスイッチ。既定ではすべて有効で、ペアモードでは無視されます
スクリーンショットの内容
- 3つのチャートを並べた図 — NZDUSD、NZDJPY、USDJPYで、それぞれ自身の2通貨のみを表示しています。共通する通貨のラインはチャートをまたいで完全に一致します。ニュージーランドドルは最初の2つで同一の測定値であり、円は後の2つで同一です。本インジケーターが読み取っているのはチャートではなく通貨です。
- GBPUSD 1時間足での8通貨すべて — 円が他から離れて上昇する一方、ドルとポンドが下げており、それに伴う値動きも併せて確認できます。
- データウィンドウ — 単一のバーにおける10本すべてのバッファが、ラベル付きでエキスパートアドバイザーから読み取り可能な形で表示されています。8つの通貨値の合計は −0.001 であり、ゼロサムの性質が理論上ではなく実際に成り立っていることを示しています。
- 2通貨のみを描画したUSDJPY日足 — ドルと円で、交差が価格の転換と一致し、他に注意をそらすものがありません。
- ドルのみを表示したゴールド1時間足(2つの参照期間) — 別々のウィンドウに2つのインスタンスを配置し、一方は遅く、一方は速い設定です。短い参照期間が先に転換し、長いほうが後から追認します。
- CHFJPY日足でのペアモード — スイスフランマイナス円の1本のラインです。
- 同一のEURGBP H4ウィンドウを2つの指標で表示 — 一方は変化率、もう一方は標準化指標で、それ以外は一切変更していません。参照期間200では、前述の偏りが前者では見られ、後者では見られません。
- AUDUSD週足 — 価格は2019年から表示されている一方、オシレーターは2020年終盤から始まっています。この空白がブローカーの最短共通履歴であり、下記で説明しています。
- パラメータ設定画面 — すべての設定項目と、その背後に見えるインジケーター本体です。
どこまで遡って描画されるか
分解が意味を持つには1本のバーに28ペアすべてが必要となるため、利用可能な深さはそのうち最も履歴の短いペアに制限されます。ブローカーはマイナークロスについて主要ペアよりはるかに少ない履歴しか保持していません。利用可能な履歴が要求より短い場合、本インジケーターは描画できる範囲を描画し、その制限をエキスパートログに一度だけ報告します。
短い時間足では気づくことはありません。週足や月足では明らかになります。共通履歴が数百バー以下となることがあり、価格ははるか昔まで遡っているのに、オシレーターはチャートの途中から始まります。これは不具合ではなく制限です。ブローカーのデータに由来する性質であり、あらゆる通貨強弱ツールに当てはまります——ただし、それを伝えるツールはほとんどありません。
計算するバー数の既定値は500です。この値を大きくする、あるいは0にして利用可能な全履歴を対象にすると、より長い期間を確認できますが、新しい時間足での初回読み込みは遅くなります。
計算の挙動
確定したバーの値は最終値です。形成中のバーは確定するまで更新され、最初に触れた時点で固定されるのではなくティックごとに再計算されます。したがってその値は、バーが始まった時点の価格を記録するのではなく、終値において確定します。
各バーは28ペアすべてから分解されるか、まったく分解されないかのいずれかです。各通貨は、想定上の7ペアではなく実際に寄与したペアで平均され、ペアが欠けている場合そのバーは空のままとなります。空白であれば一目で分かりますが、不完全な組から算出された強弱値は本物の値とまったく同じに見え、後から誤りだと判別することができません。
あるペアのバー時刻がチャートと一致しない場合——ブローカーの履歴の欠落で、最小の時間足では実際に発生します——そのペアは誤った位置にずらされるのではなく、該当するバーから除外され、除外された旨がエキスパートログに報告されます。
注意事項
- サブウィンドウに描画し、10本のインジケーターバッファを持ちます。上記のバッファ対応は固定であり、表示スイッチによって変わりません。
- 28の主要通貨ペアすべてがご利用のブローカーで利用可能である必要があります。不足しているペアは名称とともにエキスパートログに報告されます。
- 描画範囲は28ペアのうち最短の履歴によって制限されます。これは週足と月足で確認できます。制限はエキスパートログに一度だけ報告されます。
- 参照期間や指標を変えた複数のインスタンスを同一チャートに適用できます。
- 外部依存はありません。 すべての値はインジケーター内部で計算されます。他のインジケーターを一切呼び出さないため、失敗しうるハンドルは存在せず、併せてインストールするものもなく、標準インジケーターフォルダの状態にも依存しません。
本製品の位置づけ
これはテクニカル分析および相場環境の絞り込みのためのツールです。トレードシステムではなく、売買シグナルを生成せず、投資助言を行わず、ポジションの発注や管理も行いません。
予測ではなく記述を目的としています。8通貨がこれまでどう動いてきたかを測定するものであり、今後どう動くかを予測するものではありません。また、パフォーマンスに関するいかなる主張も行いません。
| この開発者による他のツール 私はMT5のインジケーターとエキスパートアドバイザーを、クリーンで仕様が明示された、リペイントのないコードを重視して開発しています——確定足に基づくロジック、検証済みのバッファ、そして他のインジケーターへの依存がないことです。 28ペアと9つの時間足の現状を一度に把握したい場合は、Multi Timeframe Currency Strength Panel を無料で公開しており、同じ分解方法を用いています。本インジケーターはその推移版です。 計算方法、バッファ、ご自身のEAでの利用についてご質問がありましたら、プライベートメッセージをお送りください。喜んでお答えします。 |
MT5/MQL5開発者 Narayanan Mohanan が開発・保守しています。
本ページの翻訳に誤りがございましたら、ご連絡いただければ修正いたします。
