Zn_ZigZag_Apex_Arrow(無料インジ)

無料インジケーター

ロジック紹介

MT4に標準搭載されているZigZagインジケーターの頂点と底辺に矢印を表示するインジケーターになります。

以下の動画は通常のZigZagで、ご存知の方も多いと思いますがリペイント(再描画)します。

この動画をご覧いただくと高安値が更新されると最新のラインが引き直される(リペイント)のが分かると思います。

なので、今回のインジは直近に引かれたライン端には矢印は表示させないようにします。
※1つ目の頂点・底辺もリペイントする事はありますが、今回のインジでは対応しませんのでご了承下さい。

作成動画

実際にこのインジケーターを作成動画をYouTubeでもアップしていますので是非ご覧下さい。

以下の記事では動画では書いていない細かい説明も記述していますので、動画でもまだ理解が難しい場合は合わせて読んでみて下さい。

パラメーター

パラメーターは日本語にしていますが、シンプルにZigZagインジケーターと同じです。

【ZigZagの深さ:Depth】初期値:12

【転換率:Deviation】初期値:5

【反転までの判断期間:Backstep】初期値:3

ソースコード

全体コード

チャート挿入時の初期動作(prev_calculated==0)

チャートにインジケーターを適用した時に、過去に向かって処理するコードと、ティック更新される毎に処理するコードの2つ記載しています。

理由は処理の負荷を軽減する為で、ティック更新される度に現在から過去までを毎回処理するよりは、先述の説明の通り2つに分けて更新時は最低限の範囲での処理で済ませた方が良いからです。

では、まず最初だけ処理するコードが以下の抜粋部分です。

チャートに適用された時に現在から過去に向かって頂点と底辺を探して行き、下矢印(dn配列)と上矢印(up配列)に値が入る事でその箇所に矢印が表示されます。

初期動作以降の動作

次にティック更新時の処理は以下の抜粋部分です。

こちらの処理は一言で言うと、1つ目の頂点・底辺を探して価格を矢印配列(up[],dn[])に代入する処理になります。
現在バー(0)から過去に向かって1つ目の価格が見つかって代入されれば処理終了です。

まとめ

ZigZagを表示すれば頂点と底辺はすぐに分かるので、このインジケーターは必要ないかもしれませんが、こうすれば頂点と底辺の値が取得出来る。という所で参考になればと思い作成しました。

これを応用すればZigZagでトレンドラインを引く事や、価格の切上げ切り下げなど沢山の事が可能になります。

以上、皆さんのご参考になれば( ・Д・)

コメント

タイトルとURLをコピーしました