TriZone Semafor
- インディケータ
-
Ahmed Hamed Hamed Eadwan
JAPANESE TRANSLATION — 日本語
===============================
TITLE:
MQL5開発者&トレーダー | R protocols創設者
ABOUT:
こんにちは、私はAhmedです。アラブ首長国連邦を拠点とする
トレーダー兼MQL5開発者、R protocolsの創設者です。
1984年からコードを書き、2006年から市場で取引を行っています。
長年にわたり、自分の使用のためにトレーディングツールを開発し、
実市場経験を通じて改良してきました。 - バージョン: 1.0
ZigZagの矢印で埋め尽くされたチャートを見つめ、「どれが本当に重要なのか」と思ったことはありませんか。このインジケーターは、まさにその frustrations を解決するために作られました。
TriZone Semafor は3つの独立したZigZagアルゴリズムを同時に実行します:高速(Period 5)、中速(Period 13)、低速(Period 34)。同じローソク足でピボットを検出した場合、最も重要なシグナルのみが残ります。レベル3は常にレベル2を上書きします。レベル2は常にレベル1を上書きします。方向ごとにローソク足あたり1つのクリーンな矢印 — 重複なし、二重カウントなし。
なぜ1つではなく3つのレベルなのか
単一のZigZagはすべての変動を平等に扱います。同じインジケーターが2本のローソク足のプルバックと大きなトレンド反転を同じ矢印でマークします。TriZoneは各ピボットを重要度で分類し、チャートの階層構造を一目で読み取れるようにします。
- レベル1 — 高速: 小さなプルバックとマイナーピボット。構造の中の構造。
- レベル2 — 中速: 日中の変動と有意義な反応。トレード日記に記録するピボット。
- レベル3 — 低速: 大きな構造的転換点。トレンド継続が本当に疑問視されるポイント。
各レベルには独自の矢印の形状と色があり、凡例を確認せずに階層を即座に見分けられます。
排他的シグナルシステム
すべてのローソク足は1つのルールを通過します:より高いレベルがそのローソク足でピボットを主張した場合、すべての下位レベルの主張は削除されます — 隠されるのではなく、削除されます。これはチャートに表示される前にインジケーターバッファ内で発生します。チャートは実際の状態を反映し、レイヤーされたオーバーレイではありません。
Anti-repaintモード
AntiRepaint = ON の場合、設定された確認ローソク足数が経過した後にのみシグナルが描画されます。表示されている矢印は安定性ウィンドウを既に通過しており、移動することはありません。インジケーターはチャートのタイトルバーに現在のモードと確認深度を表示します — 読み取っている内容の完全な透明性。
AntiRepaint = OFF の場合、シグナルは形成中のローソク足に即座に表示されます。視覚的参考に役立ちます。自動化ロジックには推奨されません。
アラートシステム
アラートは計算中にキューに入れられ、排他性フィルターがシグナルの生存を確認した後にのみ配信されます。数瞬後にレベル3によって上書きされたレベル1シグナルのポップアップを受け取ることは決してありません。確認されたピボット1つ — アラート1つ。レベルごとに独立して設定可能。
含まれるもの
- 完全に独立したパラメータを持つ3つのZigZag検出レベル
- バッファレベルでの排他的シグナル優先 — ローソク足ごとに最高レベルが勝利
- 確認されたピボットのみでのポップアップアラート — ファントムアラートなし
- レベルごとに設定可能な確認ローソク足付きAnti-repaintモード
- 任意のシンボル、任意のタイムフレーム — MetaTrader 5
- 単一ファイル — 外部依存なし、DLLなし、カスタムインクルードなし
推奨スタートポイント
デフォルトパラメータでH1またはH4を開いてください。デフォルトの深度 5 / 13 / 34 は標準的なフィボナッチ数列に従います — ほとんどの銘柄とタイムフレームに自然に適合します。
レベル3のピボットは構造的参照です。レベル2は日中の参照ポイントです。レベル1はその間のマイナー構造を示します。スタイルに合わせて深度(Period)と確認ローソク足(ConfirmBars)を調整してください。
互換性
MetaTrader 5 — 任意のブローカー、任意のシンボル、任意のタイムフレーム。外部ライブラリなし。DLLインポートなし。単一の .ex5 ファイル、完全にスタンドアロン。
iCustomリファレンス — TriZone_Semafor
出力バッファ
ローソク足ごとに最高のアクティブレベルのみが非空です。
EMPTY_VALUE = そのバー/レベルにピボットなし。
AntiRepaint ON の場合、 shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3) で読み取り — デフォルト:shift >= 4。
| バッファ | インデックス | シグナル | 内容 |
|---|---|---|---|
| BufLow1 | 0 | BUY | レベル1安値ピボット価格 — 高速ZigZag |
| BufHigh1 | 1 | SELL | レベル1高値ピボット価格 — 高速ZigZag |
| BufLow2 | 2 | BUY | レベル2安値ピボット価格 — 中速ZigZag |
| BufHigh2 | 3 | SELL | レベル2高値ピボット価格 — 中速ZigZag |
| BufLow3 | 4 | BUY | レベル3安値ピボット価格 — 低速ZigZag |
| BufHigh3 | 5 | SELL | レベル3高値ピボット価格 — 低速ZigZag |
入力パラメータ
# = iCustom() 呼び出し内の位置(0から、Symbol / Period / FileName の後)
| # | 名前 | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|---|
| レベル1 — 高速ZigZag | |||||
| 0 | Period1 | int | 5 | 2-500 | ピボット探索深度(バー数) |
| 1 | Deviation1 | int | 1 | 1-100 | 最小偏差(ポイント) |
| 2 | Backstep1 | int | 3 | 1-(P-1) | 連続ピボット間の最小バー数 |
| 3 | HighSymbol1 | int | 159 | Wingdings | 高値の矢印(159=ドット, 108=円, 116=ダイヤ) |
| 4 | LowSymbol1 | int | 159 | Wingdings | 安値の矢印 |
| 5 | ConfirmBars1 | int | 2 | 1-50 | シグナル確定前の確認バー数 |
| レベル2 — 中速ZigZag | |||||
| 6 | Period2 | int | 13 | 2-500 | ピボット探索深度 |
| 7 | Deviation2 | int | 8 | 1-100 | 最小偏差(ポイント) |
| 8 | Backstep2 | int | 5 | 1-(P-1) | 連続ピボット間の最小バー数 |
| 9 | HighSymbol2 | int | 108 | Wingdings | 高値の矢印 |
| 10 | LowSymbol2 | int | 108 | Wingdings | 安値の矢印 |
| 11 | ConfirmBars2 | int | 3 | 1-50 | 確認バー数 |
| レベル3 — 低速ZigZag | |||||
| 12 | Period3 | int | 34 | 2-500 | ピボット探索深度 |
| 13 | Deviation3 | int | 21 | 1-100 | 最小偏差(ポイント) |
| 14 | Backstep3 | int | 12 | 1-(P-1) | 連続ピボット間の最小バー数 |
| 15 | HighSymbol3 | int | 108 | Wingdings | 高値の矢印 |
| 16 | LowSymbol3 | int | 108 | Wingdings | 安値の矢印 |
| 17 | ConfirmBars3 | int | 4 | 1-50 | 確認バー数 |
| インスタンス管理 | |||||
| 18 | InstanceID | string | "A" | 任意 | ユニークタグ — チャート上のコピーと異なる必要があります |
| 19 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | ジャーナルに診断情報を出力 |
| 20 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | iCustom経由で使用する場合1 (ON) に設定 — すべてのUIとアラートを抑制 |
| アンチリペイント | |||||
| 21 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = 確認済みシグナルのみ — 安定したEAロジックに必須 |
| 22 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = 矢印が完全な遡及安全シフトを使用(より厳格) |
| アラートシステム | |||||
| 23 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=なし 1=ポップアップ 2=プッシュ 3=すべて — EA内では0に設定 |
| 24 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | レベル1ピボット時のアラート |
| 25 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | レベル2ピボット時のアラート |
| 26 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | レベル3ピボット時のアラート |
合計:27パラメータ(インデックス 0-26)
iCustomコード例
int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor", 5, 1, 3, 159, 159, 2, // レベル1 13, 8, 5, 108, 108, 3, // レベル2 34, 21, 12, 108, 108, 4, // レベル3 "EA1", false, true, // インスタンス + Headless true, false, // AntiRepaint + SafeArrows 0, false, false, false // アラートOFF ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; }
よくある間違い
| 間違い | 症状 | 修正 |
|---|---|---|
| チャートコピーと同じ InstanceID | INIT_PARAMETERS_INCORRECT | ユニークID: "EA1" 、 "EA2" … |
| EA内で HeadlessMode = false | インジケーターが各EAインスタンスごとにオブジェクトとアラートを描画 | パラメータ #20 を true に設定 |
| AntiRepaint ON で shift = 0 を読み取り | 常に EMPTY_VALUE — バーがまだ未確認 | shift >= 4 で読み取り |
| EA内で AlertMode != 0 | Alert() ポップアップがテスターの実行をブロック | パラメータ #23 を 0 に設定 |
| iCustomのファイル名が間違っている | INVALID_HANDLE | 正確な名前を使用: "TriZone_Semafor" |
| OnDeinitに IndicatorRelease がない | EAリロード時のメモリリーク | IndicatorRelease(g_tzsHandle) を呼び出す |
