オブジェクトの説明(文字列)を取得してEAに組み込む
公開日:2018/12/12
前回までで、オブジェクトをEA化するのはいったん終了しようと思ったんですが...
ふと、気がついたことがあったので、再び、オブジェクトのEA化について書いていきます。
インジゲーターを作ってるといろんなこと考えちゃうし、新しいアイディアが出てきちゃいますね...。
今回は、チャート上に表示されているテキスト文字を取得して、
それを元にEAを作る準備をしたいと思います。
今まで作ったインジゲーターは、基本的に矢印などのサインを表示したり、
メーターを作ったりしてきました。
参考記事:
オブジェクトの名前や値を取得する方法
参考記事:
オブジェクトでインジゲーターを作る方法【矢印サイン版】
しかし、世の中にはいろんなインジゲーターがあるわけで、
それをうまく利用してEA化したくなっちゃいました。。
インジゲーターは矢印やメーターだけではなく、
テキスト文字で、エントリーサインを表示したり、
利確値や損切値などを表示させているものもあります。
で、これをなんでEA化したかったかというと、
テキスト文字を取得できると、
テキストで表示されているサインや利確値、損切値をEAに組み込める
からです。
これができると、
エントリーや決済の処理の部分に取得したテキスト文字を数値化して、
組み込むことで、EAが作れてしまうんです。
あまり多くはないと思うんですが、
テキスト文字でサインを表示しているインジゲーターもあると思うので、
ちょこっとだけやってみたいと思います。
今回は、EA化の手前までの処理について紹介していきます。
以下から作成過程を説明していきます。
オブジェクトのテキスト文字を取得する
今回は、新しく作ったインジゲーター「obj_text」を使っていきます。
このインジゲーターは今回の例として使うために作った簡単なインジゲーターですが、
以下のような表示がされます。
エントリーの価格と、利確値、損切値を表示しています。
このテキスト文字を取得してEAに組み込んでいきます。
まず、最初にオブジェクトの名前と値を取得していくんですが、
今回は、オブジェクトの値ではなく、オブジェクトの文字列を取得します。
ちょっとわかりづらいですが、表示されている数値は文字列なので、
この文字列を取得します。
コードは以下のようになります。
①int obj_total = ObjectsTotal();
②int i = 0;
③for(i = 0; i < obj_total; i++)
{
④string obj_name = ObjectName(i);
⑤string obj_text = ObjectDescription(obj_name);
⑥Print("オブジェクト名:"+obj_name+" 説明:"+obj_text);
①int obj_total = ObjectsTotal();
表示されているオブジェクトの数を入れるための変数。
②int i = 0;
変数「i」に0を代入します。
③for(i = 0; i < obj_total; i++)
オブジェクトの総数分、繰り返し処理をします。
④string obj_name = ObjectName(i);
string型の変数「obj_name」にオブジェクト名を代入します。
⑤string obj_text = ObjectDescription(obj_name);
string型の変数「obj_text」にオブジェクトの説明を代入します。ここに今回必要な文字列(数値)が入っています。
⑥Print("オブジェクト名:"+obj_name+" 説明:"+obj_text);
ログにオブジェクト名とオブジェクトの説明を表示します。
これを実行すると以下のような結果になります。
実行結果
表示されているオブジェクトのオブジェクト名とオブジェクトの説明が取得できて、ログに表示されました。
この方法で、チャート上に表示されているすべてのオブジェクトのオブジェクト名とオブジェクトの説明を調べることができます。
あとは、取得した文字列から必要な部分を抜き取って、文字列から数値に変換して注文処理などの部分で利用すればEAを作ることができるようになります。
が、今回はここまでとさせていただきます。
参考MQL:
ObjectsTotal()
参考MQL:
ObjectName
参考MQL:
ObjectDescription
まとめ
いかがだったでしょうか?
今回は、オブジェクトの名前とオブジェクトの説明を取得してみました。
オブジェクトで表示されている数値は、この説明の部分に入っていることが多いと思いますので、
この値を数値に変換すれば、EA化することも可能になります。
今回は、注文と決済の処理については紹介しませんでしたが、
時間ができたら、まとめて紹介していきたいと思います。
それでは、また。
今回使用したMQL一覧
関連ページ