MT4インディケーター作成講座 チャートにスプレッドを表示するインディケーター

キャプチャ

FXトレードをする上で、重要なスプレッド
スプレッド変動型の業者を使っていればリアルタイムのスプレッドは気になると思います。

指標時など、がっと広がっている時にエントリーしないよう、すぐ確認できるといいですよね
今回はスプレッドをチャート上に表示するインディケーターの作り方を紹介します。

今回作ったものはこちら→Spread_ATR_info.zip

個人的にATRの値もほしかったので、文字でpipsで表示できるものも足しています。

こちらが今回のソースコードです

ObjectCreateでラベルエリアを作る

17行目からの初期化関数で、ObjectCreate()関数を使い、ラベルを作っています

ObjectCreate()は、トレンドラインや、ラベル、フィボナッチライン、矢印などをチャート上に表示させることができます。

ObjectCreate()の引数

ObjectCreate()を使うときのパラメーターは

chart_id’チャートのID
string object_name * オブジェクトの名前
object_type, *オブジェクトの種類
sub_window *オブジェクトを書くウインドウ番号

ここから下は線を描く時に指定する
それぞれ、オブジェクトの点の場所を指定します。 今回は使わないので、説明は省きます。
今回のように全部使わない場合は、全部書く必要はなく 0、0と2個入れておけば大丈夫です。
time1 ,
price1,
time2,
price2,
time3,
price3,

chart_idは実はMT4なら指定しなくても大丈夫ですが、0としておけば特段問題ないです。

object_nameは、オブジェクトに名前をつけます。 今回はスプレッドを表示するので”SPRED”としています。
object_typeは描画するオブジェクトの種類を指定します。 今回はラベルを表示するのでOBJ_LABELとしています。

sub_windowですが、今回はメインチャートに表示するので0としています。

ObjectSetで調整する

objectset関数は、作成したオブジェクトのプロパティを設定できます。
今回は表示位置の設定に使っています オブジェクトのプロパティで表示できるこの部分をMQLのコードで捜査します。

sp2

 

ObjcetSet()のパラメーターは

name  オブジェクトの名前

index オブジェクトの何を調整するか

value 調整する新しい値です。

の三つです
つまり、nameでオブジェクトを選択して、indexで何を調整するかを指定、valueに新しい値を指定 という流れです。

今回は、OBJPROP_CORNERでどの角を基準にするか、で1(右上コーナーを基準にする)

OBJPROP_YDISTANCEで右上から下方向にどれだけずらすかを指定しています

MQLでスプレッドの取得方向

MQLではスプレッドは、Marketinfo関数を使えば簡単に取得できます

aiu MarketInfo()の引数はsymbolとtypeの二つです 通貨を指定することもできますがsymbol()としておけば、現在のチャートのペアを使用することができます

 

StringConcatenateで文字列に変換

ラベルに表示するためには、数値を文字列に変換しなければなりません。 そこで使用するのがStringConcatenate()関数です。 コンマで区切った値を連結させることができます。

ObjectSetTextで表示させる文字を設定する

スプレッドを計算し、文字列に変換できたら、実際にチャート上に表示させるために、作成したlabelに文字をいれます。
ラベルプロパティでいうところのテキストの所を設定するのがObjcetSet Textです

sp3

ObjcetSetText()の引数は、

name, 文字を表示させるオブジェクトの名前を指定する

text,  実際に表示させる文字を指定する

font-size, フォントのサイズを指定する

font, フォントを指定する NULLでデフォルト

color 色を指定する

となっています

今回は、最初に作成したSPREADオブジェクトを指定し、
表示させる文字はStringConcatenate()関数で作成したスプレッドを
フォントサイズは10としました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です