Single Arrow MTF
- インディケータ
-
Ahmed Hamed Hamed Eadwan
JAPANESE TRANSLATION — 日本語
===============================
TITLE:
MQL5開発者&トレーダー | R protocols創設者
ABOUT:
こんにちは、私はAhmedです。アラブ首長国連邦を拠点とする
トレーダー兼MQL5開発者、R protocolsの創設者です。
1984年からコードを書き、2006年から市場で取引を行っています。
長年にわたり、自分の使用のためにトレーディングツールを開発し、
実市場経験を通じて改良してきました。 - バージョン: 1.0
- アクティベーション: 5
ファイルひとつ。矢印ひとつ。意思決定ひとつ。
SingleArrow MTF は MetaTrader 5 向けのプロフェッショナルで自己完結型のダイバージェンスシグナルインジケーターです。専用の線形時間 ZigZag エンジン、レッグ分離を伴う Williams %R ダイバージェンスフィルター、任意のピボット保護層、マルチタイムフレーム合意ダッシュボード、自動サポート/レジスタンスを組み合わせ、すべてを単一ファイルにコンパイル。外部インジケーター、ライブラリ、DLL は一切不要です。
こんな方へ
- 生のオシレーターではなく、ルールに基づくクリーンなダイバージェンス矢印を求める裁量トレーダー。
- 機械可読でリペイント透明な信号源(バッファ + GlobalVariable チャネル)を必要とするEA 開発者。
- 確認済みで履歴安定の信号ストリーム(Confirm モード)を必要とするバックテスター/ストラテジスト。
アーキテクチャを一枚で
- 構造層:内蔵 ZigZag エンジンが価格からピボットを抽出。
- 分析層:Williams %R ダイバージェンスフィルターがレッグ分離付きで各ピボットペアを検証。
- 表現層:矢印、MTF ダッシュボード、S/R レベル、アラート、透明性カウンター。
1)内蔵 ZigZag エンジン(なぜプラットフォーム標準ではないのか)
- 線形時間 O(n):ロード済み履歴全体を単一パスで処理。新tickごとのコストは O(1)。高速tick・深履歴でも軽量。
- 古典の三参数、現代的なコア:Deviation / Depth / Backstep は馴染みの意味を保ちつつ、内部ピボット管理(有限 Backstep 抑制、ピボット前部挿入の安全化)はゼロから実装され、エッジケースに対して強化済み。
- iCustom 不要、バッファ欠落なし:エンジン内蔵のため、信号パイプラインはチャート上やターミナルフォルダ内の他インジケーターに一切依存しません。コンパイル済み EX5 は Market レンタルを含むあらゆる環境で動作。
- 決定的:同一パラメータなら、どのチャート・シンボル・ターミナルビルドでも同一のピボットを生成。
2)レッグ分離を伴う Williams %R ダイバージェンス
オシレーターがレベルを交差するだけでは、ここではシグナルになりません。指標は同じ区間で価格レッグ(ピボット間の動き)とオシレーターレッグを比較します:
- 弱気ダイバージェンス:価格がより高い高値をつける一方、Williams %R レッグがより低い高値をつける → 確認済み高値に売り矢印。
- 強気ダイバージェンス:価格がより低い安値をつける一方、Williams %R レッグがより高い安値をつける → 確認済み安値に買い矢印。
- レッグ分離:レッグ内部の揺らぎは比較から除外されるため、レッグ途中のノイズスパイクがダイバージェンスを偽造・隠蔽することはできません。
- ZigZag 構造ルールと WPR ダイバージェンス検査の両方を通過したピボットのみが矢印を生成。すべての矢印は完全な意思決定であり、生のヒントではありません。
3)シグナルモード:Confirm と Live(必読)
Confirm(既定)——履歴安定ストリーム。候補ダイバージェンスは、原因ピボットがその後の価格行動で確認されるまで保留されます。コミット後の矢印は凍結:動かない・消えない・方向が変わらない*。
Live——可能な限り早い読み取り。矢印は形成中のバー内に表示されます。設計上、バー未完成の間は移動・消失し得ます。そのたびに内蔵透明性カウンターが報告します(第7節)。
*非リペイント保証マトリクス(Confirm モード):
- Deviation/Depth/Backstep = マニュアル → 無条件で保証。
- ATR アダプティブ Depth/Backstep + ピボットロック ON → 保証。
- アダプティブ + ロック OFF → 指標がロックを自動有効化し通知します。まさに保証を保つためです。
この条件付き保証は製品メタデータで誠実に明記され、起動時の入力検証により強制されます。
4)ピボットロック
確認済みピボットは内部レジストリで凍結。以降の再計算、ボラティリティスパイク、パラメータ編集もこれを動かせません。アダプティブモードの保証を可能にする機構であり、Live 運用時は常に推奨されます。
5)ATR アダプティブ ZigZag パラメータ
ボラティリティはセッションやシンボル間で変わります。手動再調整の代わりに、アダプティブモードは現在の ATR に応じて Deviation/Depth/Backstep を設定可能な範囲内でスケール(例:DepthMax はアダプティブ Depth の上限)。金・暗号資産・指数・FX を通じ、シンボルごとの手間なしで構造が有効であり続けます。
6)マルチタイムフレームダッシュボード
同一エンジンを設定可能な上位タイムフレーム群(専用 MTF Lookback 窓付き)で実行。チャート上のダッシュボードがタイムフレーム別のダイバージェンス状態を集約し、自分のタイムフレームが大きな絵と合致するときだけトレードできます——例:H1/H4 が強気ダイバージェンス文脈を示すときのみ M15 強気矢印を採用。
7)透明性ツール(EA 開発者向け)
- SA_RepaintBars:バーごとのリペイントイベント(Live での移動/消失)カウンター。
- SA_PostCommitBars:バーごとの確認後調整カウンター。
- GlobalVariable チャネル:同値がターミナルグローバル変数にミラーされ、EA は指標バッファをバインドせずに読取可能。
- バー 0 でカウンターを読めば現在バーのライブ状態が判明。保証条件を満たす Confirm モードでは、コミット済み履歴上で両カウンターは沈黙します。
8)自動サポート/レジスタンス
確認済みピボットは水平レベルとして投影(切替・スタイル設定可)。レベルは即座の文脈を提供:確認済みサポートで形成される強気ダイバージェンス矢印は、何もない場所の矢印より多くの情報を持ちます。
9)アラート
新規確認シグナルで任意のアラートがプラットフォームの alert/push/mail フック経由で発火。アラート文は設計により英語のみ。Market コンプライアンスと整合します。
10)完全設定リファレンス(グループ別)
- シグナルエンジン:モード(Confirm/Live)、ピボットロック、自動ロック通知。
- ZigZag:Deviation / Depth / Backstep、マニュアル vs ATR アダプティブ、アダプティブ上限(例:DepthMax)。
- ダイバージェンス:Williams %R 期間、Lookback — アダプティブかつエンジン内部下限に対して検証済み。無効値は起動時に明確な英語メッセージで拒否されます(無信号のまま黙り込むことはありません)。
- MTF ダッシュボード:タイムフレーム集合、MTF Lookback、表示。
- S/R:描画切替、スタイル。
- アラート:種類ごとの切替。
11)インストールと初回実行
- ターミナルの Market タブからインストール(レンタルと買い切りライセンスは MetaTrader 5 が管理)。
- 任意のチャート・タイムフレームに付加。
- Confirm モードの既定値で開始し、ダッシュボードを観察。その後 ZigZag 三参数の調整または ATR アダプティブモードの有効化を。
12)実践プレイブック
- デイトレ:H1 ダッシュボード合意でフィルターした M15 矢印。投影 S/R への押し目で Confirm エントリー。
- スイング:H4 ピボットを文脈、H1 矢印をトリガーに。
- EA:コミット済み矢印はバー 1 のシグナルバッファから。Live 活動はバー 0 の透明性カウンターで監視。
13)パフォーマンスと要件
- MetaTrader 5、全シンボル・全タイムフレーム。DLL・外部ファイル・追加インジケーター不要。
- 増分tick処理を備えた線形時間コア——高速tickフローでもチャートを固めません。
- クリーンな初期化解除:取外し/TF 変更時にチャートオブジェクトを削除。
14)本製品が「でない」もの
取引は行わず、資金管理もせず、利益保証もしません。ダイバージェンスは確率的・文脈的な読み取りです。Live モードのリペイントは仕様であり、常にカウンターが報告します。
15)変更履歴
- v1.03:Lookback 検証をエンジン内部下限と統一(無信号の隠れたエッジケースを除去)。ピボット前部挿入の強化。S/R 再構築の強化。
- v1.01:Market 初公開版。
16)FAQ
- リペイントしますか? 保証条件(第3節)下の Confirm モードではいいえ。Live モードでの変化は仕様であり、透明に計数されます。
- 全シンボルで使えますか? はい。ATR アダプティブモードはまさにシンボル間で構造を有効に保つために設計されています。
- EA から使えますか? はい——シグナルバッファ、GlobalVariable チャネル、リペイントカウンターにより EA 親和的です。
- なぜ多数のヒントでなく矢印ひとつ? すべての矢印は構造+ダイバージェンス検証を通過。意図的に、少なく高品質なシグナルです。
- プラットフォームの ZigZag をチャートに置く必要は? いいえ。エンジンは内蔵です。
17)iCustom 統合と EA 連携(そのまま使えるコード)
本インジケーターは EA から消費されることを前提に設計されています。最小かつ完全な連携スケルトン:
#define SA_BUF_BUY 0 // bullish arrow buffer (EMPTY_VALUE = no signal) #define SA_BUF_SELL 1 // bearish arrow buffer (EMPTY_VALUE = no signal) #define SA_BUF_REP 2 // SA_RepaintBars counter #define SA_BUF_POST 3 // SA_PostCommitBars counter int g_sa = INVALID_HANDLE; int OnInit() { g_sa = iCustom(_Symbol, _Period, "SingleArrow_MTF"); if(g_sa == INVALID_HANDLE) // Market installs live in the Market folder g_sa = iCustom(_Symbol, _Period, "Market\\SingleArrow_MTF"); if(g_sa == INVALID_HANDLE) { Print("SingleArrow MTF: iCustom handle failed"); return(INIT_FAILED); } return(INIT_SUCCEEDED); } void OnTick() { double buy[1], sell[1], rep[1], post[1]; // committed arrows: read at shift 1 (closed bar), never the forming bar if(CopyBuffer(g_sa, SA_BUF_BUY, 1, 1, buy) <= 0) return; if(CopyBuffer(g_sa, SA_BUF_SELL, 1, 1, sell) <= 0) return; // transparency counters of the forming bar CopyBuffer(g_sa, SA_BUF_REP, 0, 1, rep); CopyBuffer(g_sa, SA_BUF_POST, 0, 1, post); if(buy[0] != EMPTY_VALUE) OnSingleArrow(+1); // your logic here if(sell[0] != EMPTY_VALUE) OnSingleArrow(-1); // your logic here } void OnDeinit(const int reason) { if(g_sa != INVALID_HANDLE) IndicatorRelease(g_sa); }
- ハンドル:OnInit で一度だけ生成し OnDeinit で解放——tickごとの iCustom 呼び出しは不要。
- コミット済みシグナルはバー 1 で:Confirm モードでは確定バーの矢印は凍結済み。バー 1 を読めば、EA はバックテストと整合した安定ストリームを得ます。
- バー 0 のライブ監視:SA_RepaintBars / SA_PostCommitBars が、形成中バーが候補をまだ再検討中かを EA に通知。
- GlobalVariable チャネル:同カウンターがターミナルグローバル変数にミラーされ、他のプログラムが指標ハンドルなしで観察可能。
- バッファマップ:上記インデックスはターミナルの指標バッファ順(データウィンドウ/指標プロパティ)に従います。
