私たちのファンページに参加してください
- ビュー:
- 2520
- 評価:
- パブリッシュ済み:
- 2016.04.25 15:49
- アップデート済み:
- 2016.11.22 07:34
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
注意事項!このバージョンのZigZagインディケータはZigZagコードに基づいていて、作者のPPCの許可を得てここに発表されています。そのバージョンをテストし、アルゴリズムのエラーを修正しました。
このコードはMetaTrader 4のZigzagインディケータのMQL5バージョンです。
注意事項!AlexSTAL_OutsideBar.mqh ライブラリは MetaTrader 5 クライアント端末の ..\MQL5\Include\ フォルダに位置します。
これで全部ですか?
ZigZagは価格チャートの短縮版みたいなものだと思います。ZigZagはバーの価格(例えば終値) またはバーの高/安値を使って(最も一般的な方法)計算できます。
MetaQuotesによって提案された標準的なZigZagを操作しながら、私はいくつかのエラーを発見しました。主な問題は、標準的なZigZagはバーの外のケースを扱わないということです。
2007年に Rashid Umarov (Rosh) はバー外のケースを扱うZigzag2 Rコードを発表しました( DRAW_SECTIONに代わるDRAW_ZIGZAGスタイル)。
「正しい」ZigZag 実装の特徴を定義しましょう。
- 高値と安値は厳密に交互にする必要があります。
- 高値は、次の(反対)安値までの右側のすべてのバーの中で一番高い(または同等である)必要があります。
- 安値は、次の(反対)高値までの左側のすべてのバーの中で一番低い(または同等である)必要があります。
例(EURUSD、H1、2006、12月8-13)で見てみましょう。ここにはバー外のケースが2つあります。典型的なZigZagは「正しい」図を構築できません。
図1。入力パラメータ [12;5;3] と [12;0;0]を持つ典型的なZigZag
図2。入力パラメータ [12;5;3]を持つ Zigzag2 R
図3。入力パラメータ [12;0;0]を持つ Zigzag2 R
一見、正しい構築はFigure 3に見られますが、幾つかの特徴があります。
- この場合、入力パラメータのためには正しく構築されていますが、一般的アルゴリズムは任意のパラメータで動作する必要があります。
- バーの高/安形成のため、左側のバーの外側が不正です。
ZigZag セグメントはこのように構築される必要があります。
下記のZigZagアルゴリズムは様々な場合にテストされました。 ZigZag MT3, ZigZag, Zigzag R, Zigzag2 R, ZigZag_NK, ZigZag_ZUP89_nen, ZigZag_new_nen4, CZigZag, Swing_ZZ_1, DT_ZZ_nen, ZigZag_Talex, Reverse_ZZ, Points_ZZ_1, i_MF_Fractal_ZZ_3in1, ang_Amp_ZZ, ZigzagFr_v1, NonLagZigZag_v2, ZZ_FF_v3, ZigZag Ensign, ZigZag tauber, SQZZ Товаровед, ZZ_2L_nen wellx, Channel ZZ, Azzx_larryzz_3_0, RPoint, RPoint-m v2, ZigZagTF。これらのいずれも正確に問題を解決していません。
このインディケータの値は以下のとおりです。
図4。入力パラメータ [12;0]を持つプロ向けのZigZag
図5。入力パラメータ[23;0]を持つプロ向けのZigZag
このバージョンの特徴は下記を含みます。
- ワンパスアルゴリズム
- 最後のセグメントのみが再計算・再描画されます(セグメントは、履歴更新を除いてキャンセルすることはできません)。
- バー内部の計算のための最適化アルゴリズムがあります(ティックの再計算を使用されず、価格が0(未完了)バー内で変更したり価格変更がMinMotion入力パラメータで定義された)。
- 高/安の形成の順序には、バーの種類を使うもの(高速だが正確ではない)と下部の時間枠のデータを使うもの(履歴が必要なのでその存在と正確さを確認するか OutsideBarライブラリの編集が必要です)ものの2つのアルゴリズムがあります。
不正なZigZag構成のさらなる例は下記です。
図6。 EURUSD、H1、11月29日-12月7日(赤線:入力パラメータ[7;0;0]を持つZigZag。青線:入力パラメータ [7;0;0]を持つZigzag2 R)
図7。 EURUSD、H1、2010、11月29日-12月7日ZigZagセグメントの政党な構築。
結末
残念ながら、このバージョンは完璧ではありませんが、取り組み中です。
チャンネルアルゴリズム(iHighest/iLowest)のせいで、時には高値がスキップされます。
この指標のバグや機能についてお知らせください。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/263
![SelfGenerator](https://c.mql5.com/i/code/script.png)
このスクリプトは、そのソースコード(MQL5における古典的なプログラムの解決法)を使用してファイルを生成します。プログラムとアルゴリズムを研究するのに有用かもしれません。
![cIntBMP - BMP画像作成ライブラリ](https://c.mql5.com/i/code/library.png)
BMP画像の作成と出力のためのライブラリ