MQLのコーディング環境を構築したい
本日はcTraderではなくMT4/5のコーディング環境設定のお話です。
というのもですね、普段使ってるエディタを久しぶりに立ち上げてみたらなんか設定が壊れちゃってたんですよ。
もう久しぶりすぎて自分が何して壊れたのかもよくわからないので、1から設定しなおすことにしました。
そこでついでにMQLコーディング環境の構築についてメモ残しておくことにした次第です。
MetaEditorじゃだめなん?
MT4にはMetaEditorというインジケーター/EA開発環境が付属しています。そこそこ機能も充実しておりデバッグまでできてしまうという、(cTrader付属の開発環境に比べたら)なかなかの優れものなのでこれだけでも十分EA開発は可能です。
ただ個人的にはインテリセンスが微妙だったり、フォーマッターが気に食わなかったり今一つといった印象がぬぐえないのです。そこでEAを作るときはコーディング専用に別のエディタを使っているんです。
VSCodeがお勧め
ここではVSCodeというエディタをお勧めします。まぁajinoriが以前から使用してるからってだけなんですが。
とはいえコードエディタとしては超有名どころですし、MQLも専用の拡張機能があるので設定は楽ちんなので、なんかしらMetaEditor以外のエディタ探してるという方はぜひお試しください。
VSCodeでMQLコーディング環境の構築
「構築」なんていうほどのことはないんですが、一応順を追って説明します。
VSCodeをインストール
VSCodeとか呼んでますが、正式名称はVisual Studio Codeでマイクロソフトが開発しているコーディング用エディタです。
cTraderのcBot開発に使ってる統合開発環境Visual Studioとは別物です。ここからダウンロードして下さい。
Download nowをクリックして自分のOS用のインストーラをダウンロードして、インストールします。(たぶんここ見てる人はWindowsだと思うのでそのつもりで説明します。)
基本的に「次へ」連打で「完了」でいいんですが、私は上記の「エクスプローラーのファイルコンテキスとメニューに・・・」だけチェックを入れてます。ファイル右クリックでVSCodeで開きたい場合は、こちらにチェックを。
インストールできたら起動します。こんな画面が出てると思いますので左側の箱が積まれてるみたいなボタン押しといてください。
こんな感じで拡張機能検索パネルが出てきます。ここから様々な拡張機能をインストールしてコーディング環境を作っていきます。
日本語化
基本英語表記のため、日本語化しておきましょう。cTraderみたいに日本語訳が怪しいということもないので、日本語化お勧め。
拡張機能の検索で"Japanese"と検索してこの拡張機能をインストールします。
青いInstallボタンを押すとインストールされてVSCodeの再起動を促されるので再起動します。
たぶんこれだけで日本語設定になってるはずですが、なってない方はCtrl+Shift+Pを押すとコマンドパレットという機能が立ち上がりますので、"lang"と入力してみてください。
リストから"Configure Display Language"を選択、"ja"と選択すれば日本語になります。
MQL用設定
続いてMQL用の拡張機能を導入します。拡張機能検索で"MQL"と入力してください。
たくさん出てきますが、今回は下の赤四角で囲った2つを使ってみます。
"MQL ExtensionPack"と"complilemql4"を両方ともインストールしておいてください。
compilemql4
これはVSCodeからMQLファイルをコンパイルするための拡張機能です。
最初に設定が必要です。
歯車マークから「拡張機能の設定」を選択します。
設定画面がでるので、ここに必要な項目を入力します。
Compile After Saveはチェックが入ってると、上書き保存と同時にコンパイルします。
一番下のMetaeditor Dirは設定必須です。メタエディター実行ファイルのフルパスを指定します。要はコンパイルに使うメタエディターの設定です。
実行ファイルなんてどこにあるのかわからないという方も、だいたいC:\Program Files(x86)\〇〇〇MT4\metaeditor.exeだと思いますので探してみてください。
Include Dirはインクルードファイルを使う場合は、インクルードファイルがあるフォルダを指定、LogDirはログ出力するフォルダを指定しますが、使わなければ設定不要です。
MQL ExtensionPack
こちらは中身としては4つの拡張機能のパッケージになっており、これらが連携して
・MQLの関数をインテリセンスで表示
・MQLのキーワードをハイライト表示
・MQLソースコードをオートフォーマット (タブ揃えなどコード整形)
といった機能を提供してくれています。
こちらは設定不要で、インストールしたらすでに有効になってると思います。
(追記 2021/8/26)
嘘でした。設定必要です。
Ctrl+Shift+Pを押しコマンドパレットを開いたら"setting"と入力し"Preferences:Open Settings(JSON)"を選択してください。
エディタにjsonファイルが開くので最後の方( { }の内側 )にこれを追記して保存してください。
"files.associations": {
"*.mqh":"cpp",
"*.mq4":"cpp",
"*.mq5":"cpp"
},
"C_Cpp.errorSquiggles":"Disabled",
最初の5行はmqlファイルをC++ファイルとみなして、インテリセンスやエラーチェックを利かせるための設定です。
最後の1行は赤波線のエラーチェックの結果を表示させない設定。表示させたい場合はEnabledにしてください。
エラーは一見表示させた方がよさそうですが、C++としてチェックされてしまうため、MQL特有の文法がエラー扱いになってしまいます。
一つ一つチェックしながら確認するという場合は表示させてもいいのですが、私は常に表示されてうっとうしいので無効にしました。
(2021/11/17追記)
当たり前ですが、この設定するとcファイルやcppファイル編集時にエラーが出なくなります。
CやC++も使う方はMQL用に専用ワークスペースを作成して、ワークスペース用のSettings.json に上記設定を書き込むことをお勧めします。
(追記ここまで)
とりあえずこれで最低限使えるはずです。他の細かい設定はお好みで。
完成
実は前に使ってた拡張機能とは違うのですが、こっちの方が設定が簡単で使いやすい気がし ます。
以前使ってた拡張機能ではオートフォーマットの設定に苦戦した覚えがあるのですが、これはほぼインストールするだけでOK。便利ですね。
ちなみにオートフォーマットのショートカットキーはShift+Alt+Fです。どっかから拾ってきたあまりきれいじゃないMQLファイルもこれで一発で読みやすくなります!
いまいち不満が残る点として
・メタエディターみたいにコンパイル後に適用済みのインジケーターが自動更新されない
・デバッグはメタエディターで行う必要がある
といった部分があり、結局メタエディターも使わざるを得ないんですけどね。
とはいえメタエディター単体で開発を進めていくよりも効率よくコーディングができるようになると思います。
メタエディターのみでEA開発をしている方がいましたら是非お試しください。