オブジェクトの色を取得して売買条件(EA)に組み込む
公開日:2019/01/28
お久しぶりです!
1ヶ月以上、間が空いてしまいましたが、いろいろしておりました。
気づけば、年が明けてますね...。
今年もよろしくお願い致します!
さて、前回の記事で、オブジェクトの色(カラーコード)を取得する方法について少しご紹介しましたが、
今回は、具体的に取得した色を使ってEAに組み込む方法について簡単にご紹介していきたいと思います。
参考記事:
オブジェクトの色(カラーコード)を取得する方法
これは、前回の記事の内容が理解できていればとっても簡単なんですが、
開発のメモとして残しておきたいと思います。
インジゲーターの色が取得できるといろんなことができるようになります。
インジゲーターを作る場合でも、EAを作る場合でも、知っていると便利です。
前回も少し書きましたが、これができるようになると、
インジゲーターの色が変化したときに、エントリーや決済のタイミングとして、
利用することができるようになります。
ということで、今回は取得した色を売買のポイントに組み込んでいく方法について紹介していきたいと思います。
以下から作成過程を説明していきます。
オブジェクトの色を条件文に組み込む
前回の復習になりますが、オブジェクトの色を取得するには、
「ObjectGet(オブジェクト名,OBJPROP_COLOR);」
というようなコードで取得することができます。
参考記事:
オブジェクトの色(カラーコード)を取得する方法
今回は、この方法で取得した色の情報を利用して売買させるタイミングの条件文を作っていきます。
例として、以前作成したインジゲーター「RSI SIGN」を利用していきます。
このインジゲーターは、RSIの値が指定した値以上になったら、青い丸を表示させ、
指定した値以下になったら、赤い丸を表示させるインジゲーターです。
参考記事:
設計図を作って、MQLのオブジェクトでRSIの信号機(ランプ)サインを作る【簡易版】
今回は赤い丸が表示されたら、ログにメッセージを表示するようにします。
赤色は、10進数で「255」になります。
ちなみに16進数で表すと、「#FF0000」になります。
この取得した値を条件文に組み込んでみたいと思います。
今回は、インジゲーターではなくて、EA用として条件文を組み込んでいくので、
EAファイルで以下のコードを書いて作成します。
①color color_code = 255;
②color obj_color = ObjectGet("sign_dwn02",OBJPROP_COLOR);
③if(color_code == obj_color){
④Print("赤色ランプが点灯ました。");
}
①color color_code = 255;
売買条件で利用する色の値を入れておく変数。今回は赤色(255)を変数の代入しています。
②color obj_color = ObjectGet("sign_dwn02",OBJPROP_COLOR);
赤い丸(オブジェクト)の色情報を取得する。赤い丸のオブジェクト名は「sign_dwn02」です。
③if(color_code == obj_color){
取得した色が赤色(255)ならという条件文。
④Print("赤色ランプが点灯しました。");
赤色の丸が表示されたことがわかるようにログに表示する。
これを実行すると以下のような結果になります。
実行結果
赤い丸の表示(インジゲーター)
赤い丸が表示されたときのログ(EA)
このように上記で書いたように、
赤色の丸が表示されたタイミングで、
ログに「赤色ランプが点灯しました。」と表示されます。
今回は、売買のコードは書いていませんが、Printの部分を売買させるコードに変更すれば、
EAとして利用することができます。
ついでに、MT4に入っている色の一覧を表示するインジゲーターを作ってみました。
このページでは見にくいと思いますが、画像をクリックすると拡大して見れます。
四角形のオブジェクトが実際の色で、右側の文字列のオブジェクトが上から、
・色の名前
・10進数
・16進数
というように表示されています。
完全に開発者向けのインジゲーターですが...。
色の値は上記のコードで取得できますが、取得したい色が分かっているときに、
直接、10進数の部分の値を条件文で利用することができます。
よかったら参考にしてみてください。
ちなみに今回使った赤色は、左から8列目の5行目にあります。
このインジゲーターは、別の機会で公開する予定です。
参考MQL:
ObjectGet
参考MQL:
Print
まとめ
いかがだったでしょうか?
今回は、取得したオブジェクトの色を利用して、EAに組み込む方法を簡単に紹介しました。
ザックリとした説明になりましたが、
基本的には、取得したいオブジェクトの色をどういった条件で売買に利用するかがわかっていれば、
それを条件文などに組み込むだけでEAなどに利用することができます。
メーターや矢印などの色を取得するような違った形のインジゲーターの色を取得する方法については、
また次回以降、書いていきたいと思います。
それでは、また。
今回使用したMQL一覧
関連ページ