MQL4で環境設定ファイル

 MQL4で環境設定ファイルを扱うためのクラスを作成したので紹介します。
 作成したコードはGithubで公開しているので、興味のある人はダウンロードして使ってみて下さい。
MQL4-Env

使用目的

 MQL4はexternやinputを使用してユーザーが入力可能なパラメータを作成することができますが、時には複数のプログラムで共通した値を使いたい時があります。例えば私はチャットツールのSlackへ取引情報を投稿したり、稼働状況を投稿したりしています。これらは共通のAPIトークンを使用して投稿をおこなっていますが、APIトークンの情報をプログラムを稼働させる毎に入力するのは手間です。かといって、コード内に直接書いてしまうと、汎用性がなくなりますし、コードを公開する時に非常に危険です。
 そこでMT4毎に共通のファイルからAPIトークンなどの情報を取得できないか考えました。そして完成したのがEnv.mqhです。

仕組み

 環境設定ファイルといっても、複雑な処理はおこなっておりません。Filesフォルダに環境設定を記述したテキストファイル保存しておきます。このとき「key=value」の形式で、値とその名前を=で区切ったセットにして記述します。Env.mqhは環境設定ファイルを読み込むと、そこから値を引き出しているだけです。

使い方

 値を引き出すにはgetメソッドを実行します。

Env::get<取り出す値の型>(key, 初期値)

 keyには環境設定ファイルに記述したkeyの名前を指定します。初期値は指定したkeyが存在しなかった場合の値を指定できます。初期値は省略可能で、省略してkeyが存在しなかった場合はNULLが戻り値となります。
 環境設定ファイルにAPI_TOKENというkey名で保存した値をstring型として取り出すには、以下のように書きます。

Env::get<string>("API_TOKEN")

 例外としてbool型で値を取り出す場合には、getBoolValueを使用してください。

arrow_upward