今回は、サブウインドウにインジゲーターを表示させるので、プロパティの設定で以下のような記述をしておきます。
#property indicator_separate_window
次に定番の四角形をサブウインドウに表示させていきます。
今回は、
ObjectSetTextの「Wingdings Font」で四角を作ります。
①ObjectCreate("01",OBJ_LABEL,1,0,0);
②ObjectSet("01",OBJPROP_CORNER,CORNER_LEFT_UPPER);
③ObjectSet("01",OBJPROP_XDISTANCE,0);
④ObjectSet("01",OBJPROP_YDISTANCE,0);
⑤ObjectSetText("01",CharToStr(110),100,"Wingdings",Red);
今回は、OnInit内で全部書きます。
①ObjectCreate("01",OBJ_LABEL,1,0,0);
オブジェクト名「01」、オブジェクトの種類「ラベル」、表示させるウインドウの番号を「1(サブウインドウ)」、オブジェクトの位置を「0,0」に設定。
②ObjectSet("01",OBJPROP_CORNER,CORNER_LEFT_UPPER);
オブジェクトの原点を画面左上を中心に指定。
③ObjectSet("01",OBJPROP_XDISTANCE,0);
設定した原点からのX軸の画面中央に向かっての距離を「0」に指定。
④ObjectSet("01",OBJPROP_YDISTANCE,0);
設定した原点からのY軸の画面中央に向かっての距離を「0」に指定。
⑤ObjectSetText("01",CharToStr(110),100,"Wingdings",Red);
Wingdings Fontの番号を「110」、オブジェクトの大きさを「100」、フォントの種類を「Wingdings」、色を「赤(Red)」に設定。
こんな短いコードですが、コンパイルして実行してみます。
参考記事:
オブジェクトで四角形を描いて装飾をする
参考記事:
オブジェクトの表示位置を指定する
参考記事:
MQLのオブジェクトで円(丸)を描く
サブウインドウの左上に四角が表示されました。
表示位置は、メインウインドウと同じように、サブウインドウの4隅(左上、左下、右上、右下)のどこを基準にするかを決めて、そこからX座標とY座標で位置を指定することができるみたいです。
位置を指定して、左隅から3つの四角を表示させるとこんな感じになります。
さらに、4隅に四角を表示させるとこんな感じになります。
ちなみにメインウインドウもそうですが、画面やサブウインドウを大きくしたり、小さくしたときには、以下のようになります。
■サブウインドウを小さくした場合
四角が重なってしまいます。
■サブウインドウを大きくした場合
上の四角だけが上に引っ張られて表示されます。
このように基準点と座標をしているので、画面を大きくしたり、小さくしても位置は固定されて、動いていきます。