Visual Studio Code による MQL5 の開発環境を設定

MQL5のコードを、MT5付属のMetaEditorではなくVisual Studio Code(VSCode)で書いてコンパイルできるように設定します。

拡張機能「MQL Tools」を使った設定手順に加えて、コンパイルができないときの原因と対処も紹介します。



[PR]


VSCodeでMQL5を開発する

MQL5のコードはMT5に同梱されているMetaEditor 5でコンパイルできますが、エディタとしての使い勝手はあまり良くありません。

VSCodeに拡張機能「MQL Tools」を入れると、MQL5もMQL4も同じVSCodeでコンパイルまでできるようになります。ただし、コンパイル自体は裏側でMetaEditorを呼び出して行うため、MT5(MetaEditor)のインストールは必要です。

まずはVisual Studio Codeの公式サイトからWindows版をダウンロードして、インストールしておきます。

MQL Tools のインストールと設定

VSCode左側の拡張機能(Extensions)アイコンをクリックします(ショートカットは Ctrl+Shift+X)。

検索窓に「MQL」と入力するといくつか候補が出てくるので、MQL Tools をインストールします。

MQL Tools の説明ページに「Quick Setup Guide」があるので、この流れに沿って進めます。

設定の流れをまとめると、次のとおりです。

手順 内容
① MQL5フォルダを開く MT5のデータフォルダ内にある「MQL5」フォルダをVSCodeで開く
② MetaEditorのパス設定 拡張機能の設定で、MetaEditor64.exe の場所を指定する
③ 設定ファイルの作成 コマンドパレットから「MQL: Create configuration」を実行する
④ アイコン設定(任意) 「MQL: Add icons to the theme」でMQLファイルのアイコンを付ける

① MQL5フォルダのパスを取得してVSCodeで開く

最初に、これからメインで使うMT5を決めます。そのMT5のメニューから、次の順に開きます。

  • 「ファイル」
  • 「データフォルダを開く」

開いたフォルダの中にある「MQL5」フォルダに入り、そのパスをコピーします。

例)C:\Users\hoge\AppData\Roaming\MetaQuotes\Terminal\2FA8…7F675\MQL5

VSCodeで開くのは、必ず末尾が「MQL5」になっているフォルダです。MQL Toolsはフォルダ名でMQL4用かMQL5用かを判断するため、フォルダ名が「MQL5」(MQL4用なら「MQL4」)でないと正しく動きません。

次に、VSCodeのメニューから次の順に進み、コピーしたパスを指定して「フォルダーの選択」をクリックします。

  • 「File」
  • 「Open Folder…」

設定が進むと、MT5のMQL5フォルダの下に「.vscode」フォルダが作られます。

VSCodeの「EXPLORER」を開くと、「.vscode」とその中の「settings.json」が確認できます。まだ無い場合も、後の手順③「MQL: Create configuration」で作成されるので問題ありません。

② MetaEditorのパスを設定

拡張機能の画面に戻り、MQL Tools の歯車アイコンから「Settings」を開きます。

Mql_tools.Metaeditor: Metaeditor5 Dir に、MT5のMetaEditorのパスを設定します。

この例では、XMTradingのMT5に入っている次のファイルを指定しています。

C:\Program Files\XMTrading MT5\MetaEditor64.exe

フォルダではなく、MetaEditor64.exe そのもののパスを指定するのがポイントです。

③ MQL: Create configuration

Ctrl+Shift+P でコマンドパレットを開き、「MQL: Create configuration」を選択します。これで設定ファイル「settings.json」が作成されます。

動作確認:サンプルEAをコンパイル

設定ができたら、MT5に最初から入っているサンプルEA「Moving Average.mq5」でコンパイルを試してみます。

VSCodeの「File」→「Open File…」から、MT5のデータフォルダにある次のファイルを開きます。

MQL5\Experts\Examples\Moving Average\Moving Average.mq5

エディタの右上にコンパイルボタンが表示されているので、クリックします。

「0 errors」と表示されれば、コンパイルは成功です。

「Error transferring data to MetaEditor」が出る場合

環境によっては、ここで次のエラーが出てコンパイルできないことがあります。

筆者の場合、別のPCでは問題なくコンパイルできていたので環境を比べてみたところ、MetaEditorのパスに指定していたMT5がHFMのものだったのが原因のようでした。OANDAのMT5のMetaEditorに変更したところ、コンパイルできるようになりました。

同じエラーが出たときは、Metaeditor5 Dir に指定するMT5(ブローカー)を変えて試してみてください。

オプション:MQLファイルのアイコンを設定

Ctrl+Shift+P でコマンドパレットを開き、「MQL: Add icons to the theme」を選択すると、MQLファイル用のアイコンを設定できます。

表示されたテーマの中から、好みのものを選びます(アイコンを追加できるのは、対応している一部のテーマだけです)。

オプション:編集中の自動保存を止める

Mql_tools: Intelli Sense Error Squiggles は、構文エラーや警告をエディタ上に波線で表示する設定です。この設定をオンにしていると、VSCode側の設定に関係なく、編集中のmq4/mq5/mqhファイルが自動的に保存されます。

勝手に保存されるのが困る場合は、このチェックを外しておきましょう。

MQL4もコンパイルしたい場合

VSCodeでMQL4もコンパイルしたい場合は、Mql_tools.Metaeditor: Metaeditor4 Dir にMT4のMetaEditorのパスを設定します。MQL4のコードを扱うときは、MT4のデータフォルダ内にある「MQL4」フォルダをVSCodeで開いて作業します。

なお、MQL Toolsをもとに機能を拡張した派生版として「MQL Clangd」という拡張機能も公開されています。基本的な設定の流れ(MetaEditorのパス指定 → MQL: Create configuration)は同じです。

コンパイルエラー(OneDriveが原因のケース)

最初は問題なくコンパイルできていたのですが、ある時からコンパイルができなくなりました。

「.vscode」があるMT5のMQL5フォルダのパスを設定し直すと一時的には使えるようになるものの、PCを再起動すると、また同じエラーが出てしまいます。

原因を調べた結果、結論から言えばOneDriveが影響していました。

ちょうどPCを増やしていたタイミングだったため、OneDriveの同期によって複数のPCの環境が混ざってしまったようです。そこでOneDriveをすべてクリーンにしてアンインストールしたところ、改善しました。

個人的にはデータ管理をGoogle Driveで行っているので、OneDriveは必要ありませんでした。AppleもiCloudで似たようなことをやっていますが、基本的には余計なお世話というやつです。

設定は合っているはずなのに急にコンパイルが通らなくなったときは、OneDriveなどのクラウド同期が関係していないかも確認してみてください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする