今回は軽めの内容。EA実行時にチャートにメッセージを表示させる関数。エントリーサインやデバッグ用のメッセージを表示させ活用する。
本記事はFXの自動売買に使用されるプログラムについて解説していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。
本記事ではMT4を使用する。
FXDD – MetaTrader
・Version: 4.00 build 1322
・8Feb 2021
MetaEditor
・Version 5.00 build 2375
・7 Jan 2021
チャートにEAからのメッセージを表示
チャートにメッセージを出力できると色々と便利。
エントリータイミング
EAに対応していない証券会社で取引する場合は手動でのエントリーが必要となる。EAでエントリータイミングをレポートすることで手動でのエントリーをサポートすることができる。
レポートの出力
フォワードテストで分析情報などを表示することでデバッグやパラメーターの調整に役立てる。
メッセージ出力
EAの初期化イベントでメッセージを出力する。
EAの実行方法はこちら。
【EA開発ガイド】Part 3 MQL4開発基本 – Chapter 1 EAでHelloWorldを実行する
別ファイル関数の呼び出しはこちら。
【EA開発ガイド】Part 3 MQL4開発基本 – Chapter 2 MQHを使って共通処理を別ファイルで管理する
(1) メッセージ出力関数
引数の文字列をチャートの左上に表示する関数。一種類だけのメッセージを表示する機能だがエントリーのアラートなどに使うことができる。別ファイルにするのでインクルードファイルにする。
example-message.mqh
//+------------------------------------------------------------------+ //| example-message.mqh | //| Copyright 2021, zerokara-blog. | //| https://zerokara-blog.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, zerokara-blog." #property link "https://zerokara-blog.com/" #property strict // メッセージ表示 void viewMessage(string msg) { string objectName = "message"; // すべてのオブジェクトのクリア ObjectsDeleteAll(); // オブジェクトの作成 ObjectCreate( objectName, OBJ_LABEL, 0, 0, 0 ); // X座標の設定 ObjectSet( objectName, OBJPROP_XDISTANCE, 5 ); // Y座標の設定 ObjectSet( objectName, OBJPROP_YDISTANCE, 18 ); // 文字列を設定 ObjectSetText( objectName, msg, 26, "MS ゴシック", clrPink ); }
(2) 呼び出し処理
先ほどの関数を呼び出しチャート画面にメッセージを表示する。
example-message.mq4
//+------------------------------------------------------------------+ //| example-message.mq4 | //| Copyright 2021, zerokara-blog. | //| https://zerokara-blog.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, zerokara-blog." #property link "https://zerokara-blog.com/" #property version "1.00" #property strict #include <example-message.mqh> bool flg; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- flg = true; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- viewMessage("メッセージ出力テスト"); } //+------------------------------------------------------------------+
(3) 実行結果の確認
バックテストが終了するとチャートウインドウが消えてしまうので「ビジュアルモード」にチェックを入れる。EA動作中にチャートの左上にメッセージが表示される。
まとめ
はじめはデバック用に出力するつもりだったがエントリーサインでも利用できそう。
- チャートにメッセージを出せばエントリーサインなどに使える
- 分析情報を表示しデバッグの参考にもなる
- メッセージは設定の都度切り替わる
バイナリーオプションの売買サインにも使えるでしょうか。