MT4 - オブジェクトをサブウインドウに作成・表示する

sitemap
世界最強のFXキャッシュバックサイト
サブウインドウにオブジェクトを作成・表示する
公開日:2018/11/13
少し間が空いてしまいましたが、久しぶりに投稿していきたいと思います。

ここ最近、インジゲーターを量産していたのと、新しいロジックの検証をしていました。

新しいロジックにあったら便利な使いたいインジゲーターを中心に作っていたんですが、

作っているうちにいつもどおり、アイディアがどんどん沸いてきてしまい、

メモに残すのに時間がかかってしまいました...。

ノート1冊分くらい作りたいインジゲーターの構想リストができました。

これ、全部作れるかな...?ってくらいできました。

また機会があったらご紹介していきたいと思います。

さて、今回試してみたかったことは、

「サブウインドウにオブジェクトを表示する」

ということです。

今までは、メインウインドウにいろいろなオブジェクトを表示させるインジゲーターを

たくさん作ってたんですが、メインウインドウだけだと表示しきれないことと、

チャートが見にくくなってしまうという問題がでてきました。

ということで、サブウインドウになるべく表示できるものは表示していこうと思い、

サブウインドウにオブジェクトを表示する方法を試してみました。

それでは、以下から作成過程を説明していきます。
サブウインドウに四角形を表示
今回は、サブウインドウにインジゲーターを表示させるので、プロパティの設定で以下のような記述をしておきます。

#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つの四角を表示させるとこんな感じになります。

サブウインドウ四角3つ

さらに、4隅に四角を表示させるとこんな感じになります。

サブウインドウ4隅に四角

ちなみにメインウインドウもそうですが、画面やサブウインドウを大きくしたり、小さくしたときには、以下のようになります。

■サブウインドウを小さくした場合

サブウインドウ小さく

四角が重なってしまいます。

■サブウインドウを大きくした場合

サブウインドウ大きく

上の四角だけが上に引っ張られて表示されます。

このように基準点と座標をしているので、画面を大きくしたり、小さくしても位置は固定されて、動いていきます。
まとめ
いかがだったでしょうか?

今回は、サブウインドウにオブジェクトを表示させてみましたが、

意外と簡単にできました。

今後、サブウインドウにメーターとか、もっと実用的なインジゲーターを表示できるものを作っていきたいと思います。

それでは、また。
今回使用したMQL一覧
関連ページ
big_candlestick_judgment
スポンサードリンク
Twitter