TriZone Semafor Pro
- インディケータ
-
Ahmed Hamed Hamed Eadwan
JAPANESE TRANSLATION — 日本語
===============================
TITLE:
MQL5開発者&トレーダー | R protocols創設者
ABOUT:
こんにちは、私はAhmedです。アラブ首長国連邦を拠点とする
トレーダー兼MQL5開発者、R protocolsの創設者です。
1984年からコードを書き、2006年から市場で取引を行っています。
長年にわたり、自分の使用のためにトレーディングツールを開発し、
実市場経験を通じて改良してきました。 - バージョン: 1.0
- アクティベーション: 5
機関投資家レベルのマルチレベルピボット検出、自動市場構造分析、受給合流ゾーン、リアルタイムダッシュボード分析、EA自動化統合を必要とする場合、TriZone Semafor ProはMetaTrader 5ターミナルに最適なフラッグシップソリューションです。
Pro版の主な機能
独自の3レベルZigZagエンジン(ファスト期間5、ミディアム期間13、スロー期間34)をベースに構築されたTriZone Semafor Proは、厳格な排他的優先パス(レベル3がレベル2に優先、レベル2がレベル1に優先)を使用して、3つの独立したタイムスケールで確定したスイングポイントを描画します。
- ATR適応型偏差: ATRに基づく動的なピボットフィルタリングにより、固定ポイントではなく市場のボラティリティに応じて自動的に調整されます。手動の固定ポイントモードも利用可能です。
- 市場構造エンジン: 各時間軸レベルでのBOS(構造破壊)およびCHoCH(特性変化)のリアルタイム自動検出、およびHH / HL / LH / LLスイングラベルの表示。
- 需給合流ゾーン(Supply & Demand): 複数のZigZagタイムスケールが一致する場所に機関投資家の注文ブロックゾーンを自動描画し、強度格付け(L1, L2+L3, L1+L2+L3)と極性反転ロジックを備えています。
- サポート&レジスタンスレイ: 確定したスイング高値および安値から拡張される動的な水平レイで、構造レベルごとにスタイルが分類されます。
- 排他的シグナル優先度: 1本のローソク足につき常に最高レベルが優先されます。シグナルの重複や二重カウントはなく、各方向に1つのクリーンな矢印のみを表示します。
- リアルタイム・チャート上ダッシュボード: 現在のマルチレベル市場統計、アクティブなシグナルレベル、現在のゾーン、構造イベント、レベルごとのトレンド、およびシステムステータスを表示します。
- 完全な通知スイート: ポップアップ、モバイルPush通知、Eメール、およびサウンドアラート — 新しく確定したピボットごとに1回のみ送信されます。
- 100%リペイントなし(Anti-Repaint)モード: シグナルは設定された確定ウィンドウが閉じた後にのみ発行されます。矢印はEAバッファと同じ厳格なリペイントなしの基準に従います。
- EA自動化バッファ(Buffer 6): 単一の iCustom 呼び出しで統合できる専門的なEA読み取り用シグナル強度バッファ(+1.0 = 買い、-1.0 = 売り、0.0 = ニュートラル)を提供します。
- 複数インスタンスに対応: 独自のオブジェクト名前空間、衝突防止機能、およびチャートオブジェクトとターミナルグローバル変数の自動クリーンアップ。
- 外部依存関係ゼロ: MetaTrader 5ネイティブコード、任意のシンボルおよび時間軸で動作し、DLLインポートは不要です。
公式リンクおよびドキュメント
ユーザーマニュアル&設定ガイド: https://www.mql5.com/en/blogs/post/773880
公式MQL5チャンネル: https://www.mql5.com/en/channels/rprotocols
リペイントなしとEA契約(Buffer 6)
Buffer 6は、自動化EAシステム向けにマルチレベルシグナル強度を出力します(+1.0 = 買い、-1.0 = 売り、0.0 = ニュートラル/競合):
- 排他性格付け: Buffer 6は排他処理後の階層構造を反映します(L3 > L2 > L1)。
- リペイントなしシフト契約: Anti-RepaintがONの場合、安全なシフトで読み取られた値は最終的であり改変されません。正確な最小安全シフトはグローバル変数( TZP_<Hash8>_MinShift )経由で取得可能です。
透明性とパフォーマンス
- テスター最適化: ストラテジーテスターでの最適化実行中、アラートは自動的に停止されます。
- ヘッドレスモード: EA内部で HeadlessMode = 1 を有効にすると、描画処理が抑制され、最大の実行速度が実現します。
TriZone Semafor Proがトレードに役立つと感じられた場合は、ぜひ評価とレビューをお願いいたします。ご支援ありがとうございます!
iCustom 参照テーブル — 出力バッファ
| バッファインデックス | シグナル | 説明 |
|---|---|---|
| 0 (BufLow1) | 買い (BUY) | レベル1 安値ピボット価格 — ファストZigZag |
| 1 (BufHigh1) | 売り (SELL) | レベル1 高値ピボット価格 — ファストZigZag |
| 2 (BufLow2) | 買い (BUY) | レベル2 安値ピボット価格 — ミディアムZigZag |
| 3 (BufHigh2) | 売り (SELL) | レベル2 高値ピボット価格 — ミディアムZigZag |
| 4 (BufLow3) | 買い (BUY) | レベル3 安値ピボット価格 — スローZigZag |
| 5 (BufHigh3) | 売り (SELL) | レベル3 高値ピボット価格 — スローZigZag |
| 6 (BufSignal) | 買い / 売り | EAシグナル強度:買い=+1/+2/+3(L1/L2/L3)、売り=-1/-2/-3(L1/L2/L3)、なし=0 |
iCustom コード例
ファイル名: "TriZone_Semafor_Pro" (.ex5拡張子なし)。Expert Advisors内部では常に HeadlessMode = 1 に設定してください。
//+------------------------------------------------------------------+ //| iCustom handle — TriZone_Semafor_Pro v1.0 | //+------------------------------------------------------------------+ int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor_Pro", // Level 1: Fast 5, 1, 3, 159, 159, 2, // Level 2: Medium 13, 8, 5, 108, 108, 3, // Level 3: Slow 34, 21, 12, 108, 108, 4, // Instance "EA1", 0, 1, // Anti-Repaint 1, 0, // Alerts & Dashboard 0, 0, 0, 0, 0, "alert.wav", 0, 20, 30, clrDodgerBlue, clrOrangeRed, C'20,20,30', 9 ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] TriZone_Semafor_Pro handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; } void OnTick() { int safeShift = 4; double sigBuf[1]; if(CopyBuffer(g_tzsHandle, 6, safeShift, 1, sigBuf) != 1) return; int sigValue = (int)sigBuf[0]; if(sigValue > 0) { PrintFormat("買いシグナル検出! レベル %d (シフト %d)", sigValue, safeShift); } else if(sigValue < 0) { PrintFormat("売りシグナル検出! レベル %d (シフト %d)", MathAbs(sigValue), safeShift); } } void OnDeinit(const int reason) { if(g_tzsHandle != INVALID_HANDLE) { IndicatorRelease(g_tzsHandle); g_tzsHandle = INVALID_HANDLE; } }
EA用 グローバル変数によるMinShift自動検出
インジケータはグローバル変数を介して安全な最小読み取りシフトを開示します:
// EA: グローバル変数による安全なシフトの自動検出 int GetMinShift(string instanceID) { string hash = HashToHex8(instanceID); string gvName = "TZP_" + hash + "_MinShift"; if(GlobalVariableCheck(gvName)) return (int)GlobalVariableGet(gvName); return 4; // デフォルト値 }

