Pivot指数の見方について
コードの解説
参考リンク(英語)
Pivot指数は人気のあるインディケーターのひとつですが、残念ながらMT4の初期インディケーターの中にはありません。
そこで、今回はオーソドックスなPivot指数のインディケーターを作成し、コードと共に解説していこうと思います。
Pivot指数の見方について
Pivot指数は、別名リアクション・トレンド・システムとも呼ばれており、主に海外のデイトレーダーを中心に普及したテクニカル指標です。前日の高値、安値、終値から算出される値を指標としてトレードポイントを探るのに利用します。Pivot指数は一般的に以下のような見方がされています。
SはSupportの略で支持線を指し、RはResistanceの略で抵抗線を意味します。また、PはPivot(基点)で、これらの基準となる値を意味します。
- S1、R1について
S1に価格が到達したら買い。
R1に価格が到達したら売り。 - S2、R2について
S1、R1を突破してもS2とR2の範囲に収まるだろうと言う考えです。 - S3、R3について
ここを超えたらPivotの予想を超えた動きになっているので、利がない場合ポジションをクローズしたほうがいいと考えている人もいます。
もしくはそのトレンドに乗って新たなエントリーをすることも有効であると言われています。
Pivotには7種類の計算が使われます。
名称と計算式は以下になります (括弧内は略称)
- Resistance Line 3 (R3) = H + 2 (P – L)
- Resistance Line 2 (R2) = P +(R1 – S1)
- Resistance Line 1 (R1) = 2P – L
- Pivot Point (P) = (前日高値(H)+前日安値(L)+前日終値(C))/3
- Support Line 1 (S1) = 2P – H
- Support Line 2 (S2) = P -(R1 – S1)
- Support Line 3 (S3) = L – 2 (H – P)
インディケーター内のプロパティで変更できる箇所
●フォントサイズ
●各線の色
●線のタイプ(0~4)
- 0 STYLE_SOLID
1 STYLE_DASH
2 STYLE_DOT
3 STYLE_DASHDOT
4 STYLE_DASHDOTDOT
MQ4とEX4ファイルをzipしてあります。
Build745で動作確認済みです。
(注意:Zip形式ですので、解凍してご利用ください。)
Topへ
コードの解説
まず、初めに #property indicator_chart_window と書いてあります。
これはメインのチャートウィンドウに描画するという宣言になります。
ここを indicator_separate_window とすることでサブディスプレイに描画する宣言になります。
下の図、オレンジで囲っている箇所がサブウィンドウになります。
また、#property copyright, link descriptionも利用しています。
こちらはインディケーター起動時に表示できる機能になっています。
オレンジの四角内のCopyright欄に記入したCross Bridge Ltd.をクリックするとLinkに記入したページへ飛ぶことが出来ます。
続いて、大量のextern ~というものが並んでいますが、こちらは外部のプロパティウィンドウからアクセスし、設定を変更できるようにするように記述しています。
この記述をすることで、インディケーターを実行した際にこのように編集することができます。
OnInit()では必要なテキストオブジェクトや、横線の初期化をしています。
度々呼び出しているTimeCurrent()は最後に取得したtick時のサーバー時刻を取得します。以前のCurTime()と同じものです。
OnDeinit()ではインディケーターがチャートから削除されたときの振る舞いを記述します。今回はこのインディケーターで生成したすべてのオブジェクトを削除しています。
Start()では計算をし、生成したオブジェクトを移動、コメントの数値を更新しています。
また、文字列であれば、Comment()を利用することによって位置の指定はできませんが、簡単にチャート上に文字列を表示することが出来ます。
左上にあるオレンジの四角内がコメントです。
今回、前日の高値、安値と終値を取得する際に、”ArrayCopyRates”という関数を利用しました。
int ArrayCopyRates(Dest, string symbol, int timeframe);
となっています。
Destは2通りの引数を渡せます。
double double_array[][6]
MqlRates mqlrates_array[]
MqlRatesは新たに追加された構造体です。
戻り値はバーの数で、失敗した場合 -1 が戻ります。
EAの場合はエラーチェックを必ずしましょう。
今回は新しいMqlRatesを利用しました。
構造体なので ”.” (ドット) でデータにアクセスできます。
以前のdouble arrayでは2次元arrayと言う形でデータをコピーしていて、
どのインデックスにデータが入っているか確認しなければなりませんでした。
MqlRatesを利用すると、それの配列をコピーしてくる動作になります。
よって、メンバーが視覚的に見えるのでコーディングもやりやすいと思います。
ObjectMove(“P_Text” ,0,Time[0],P);
では、最新のバーの時間でPという値段の場所に”P_Text”オブジェクトを移動することを記述しています。
また、ObjectMoveは時間と値段で指定する方法 と X,Y軸で指定する方法があります。
軸で指定した場合、チャートを動かしてもオブジェクトは移動しません。
ObjectSet(“P_Line”,OBJPROP_PRICE1,P);
こちらも同様ですが、時間軸の指定はなしで、値段”P”のみ指定しています。
いかがでしたでしょうか。今回はPivot指数そのものとコードの書き方を簡単に解説させていただきました。
※本情報を営利的な目的で加工、再利用及び再配信することは固くお断りいたします。また、万が一この情報に基づいて被ったいかなる被害についても、当社は一切の責任を負いかねます。
Topへ
参考リンク(英語)
property
http://docs.mql4.com/basis/preprosessor/compilation
Comment
http://docs.mql4.com/common/comment
ArrayCopyRates
http://docs.mql4.com/array/arraycopyrates
MqlRates
http://docs.mql4.com/constants/structures/mqlrates
時間軸
http://docs.mql4.com/constants/chartconstants/enum_timeframes
Time[i]
http://docs.mql4.com/predefined/time
Object Functions
http://docs.mql4.com/objects