MQL4のコーディングでMetaEditorの代わりに使えるものがないかと探していましたら、VSCode(Visual Studio Code) がありました。
これのいいところは矩形選択やGrepができるのでファイルを横断して検索できます。
notepad++ というのもあったのですが、MT4の改変で使いづらくなったようなのでVSCodeにしました。
Visual Studio Code
VSCodeを使い始めて1年以上経ちましたが
快適です
日本語コメントも入れやすいし、検索も早い軽い
というかMetaEditorがダメダメなのでね~
0. Download
1. Compile Setting
2. Tips
2.1 Grepのやり方
2.2 矩形選択
2.3 Indentの設定
2.4 Themeの設定
2.5 ファイルの比較
Download
まずはダウンロードです。
Visual Studio Code こちらから、Windows版をダウンロードします。
MacやLinuxがありますが、コンパイラーと関連付けをしたい場合はMetaEditorが必要なのでWindowsにしたほうが苦労はありません。(Mac版もあるにはありますが…)
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
問題なくコンパイルできています。
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ファイルのパスが異なりエラーになりることがあります。
標準ライブラリーならばいいのですがカスタムファイルは場所を移動するか、パスを変える必要があります