MQL4のコーディングでMetaEditorの代わりに使えるものがないかと探していましたら、VSCode (Visual Studio Code) がありました
これのいいところは矩形選択やGrepができるのでファイルを横断して検索できます
(以前は、notepad++ というのもあったのですが、MT4の改変で使いづらくなったようなのでVSCodeにしました)
Visual Studio Code
何年もVSCodeを使っていますが
快適です
日本語コメントも入れやすいし、検索も早い軽い
0. Download
1. Compile Setting
2. Restricted Mode …
3. Tips
3.1 Grepのやり方
3.2 矩形選択
3.3 Indentの設定
3.4 Themeの設定
3.5 ファイルの比較
Download
まずはダウンロードです。
Visual Studio Code こちらから、Windows版をダウンロードします。
MacやLinuxがありますが、コンパイラーと関連付けをしたい場合は MetaEditor が必要なのでWindowsにしたほうが苦労はありません
MetaEditorはMT4をインストールするとついてくるので、
MT4は基本Windows向けなのでMetaEditorもWindowsの枷があります
ダウンロード後はインストールを始めます。
VS-Codeがインストールされました。
Compile Setting
コンパイラーを設定しましょう。
左のアイコン 拡張機能(Extensions) をクリック
「検索窓」に MQL4 を入力すると
いくつか候補が出てきます。
以下をインストール
- MQL4 Syntax Highlight
- compilemql4
READMEを読んでおきましょう。まとめると
- MetaEditorがインストールされている必要がある
- どこかのブローカーのMT4をインストールしておくということです
- Compile After Save にチェックをいれると保存時に自動的にコンパイルできる
- Metaeditor.exeのパスを設定する必要がある
- header ファイルのIncludeのパスを設定することでできる*1
- コンパイルログが出力されるが、出力先を設定することも可能
metaeditor.exe のパスを設定するために、compilemql4の設定アイコンから「拡張機能の設定(Extension Settings)」を開きます。
metaeditor.exeのパス設定
例としてDukascopy のMT4をインストールしたフォルダにありますが他のMT4でも可能
C:\Program Files(x86)\Dukascopy MetaTrader 4\metaeditor.exe
(注: テストデバッグを行うMT4のパスで指定しないとIncludeやLibraryなどが合わなくなる
例として、MT4に既にある MACD sample.mq4 を取り込んでコンパイルしてみます。保存で自動コンパイルできるのでメニューから保存を選択、あるいはCtrl+S
問題なくコンパイルできています。
Restricted Mode …
“Restricted Mode is intended for safe code browsing. Trust the window to enable all features.”
とういう制限付きモードになることがあります
Visual Studio Code Workspace Trust security
この場合は「Manage」をクリックして
「Trust」を選択します
これでコンパイルできるようになります
Tips
Grepのやり方
「Edit」「Find in Files」 あるいは、
Ctrl+Shift+F でファイルをまたいで検索ができます
元々これがやりたかったので
矩形選択
Shift+Alt+マウス左クリックのままで矩形を選択するとできます。
あるいは、
Shift+Alt+Ctrlから矢印を使って範囲を選択
Indentの設定
右下にSpaces: 3
とありますがここをクリックすると設定が出てきます。
TabsとしてあるいはSpacesとして設定が可能
Themeの設定
「File」「Preferences」「Color Theme」から色合いを変更
defaultではDark+になっていますが、明るいテーマ色(Light+等)に変えたりできます。
ファイルの比較
「エクスプローラー」からファイルを「Ctrl」を押しながら選択
右クリックで「選択項目の比較」
英語版では、
「Explorer」からファイルを「Ctrl」を押しながら選択
右クリックで「Comppare Selected」
これで2つのファイル差分を表示される
(*1) #includeのパスに注意
例えばこの例ではmetaeditor.exeのパスを設定 Alpari のMT4で設定しましたが
これは同時にincludeのパスも同じAlpariの作業フォルダに設定されるため、他のMT4でデバッグしようとするとincludeファイルのパスが異なりエラーになりることがあります。
標準ライブラリーならばいいのですがカスタムファイルは場所を移動するか、パスを変える必要があります