MetaTrader (MT4/MT5) 用に作成した EA やカスタムインジケーターは大切な資産です。 ここでは、MetaTrader 用のプログラムを GitHub で管理する方法を説明します。
MetaTrader のデータディレクトリ
MetaTrader では、自作した EA やカスタムインジケーター(.mq5
ファイルなど)は、あらかじめ用意されたデータディレクトリに格納することになっています。
このディレクトリのパスは、MetaTrader のデスクトップアプリや MetaEditor のメニューから次のように開いて確認することができます。
ファイル
→データフォルダを開く
(あるいはCtrl + Shift + D
)
データフォルダのパスは環境ごとに異なり、例えば次のような感じになっています。
自作した .mq5
ファイルを保存するディレクトリは、このデータディレクトリ以下の MQL5/Experts
や MQL5/Indicators
ディレクトリになります。
しかし、データディレクトリには MetaTrader のインストーラーによって作成されたファイルなども含まれているため、MQL5
ディレクトリを丸ごと GitHub で管理しようとすると、余計なファイルがコミットされてしまいます。
そこで、自作したプログラムは別のディレクトリで管理して、データディレクトリからそのディレクトリに シンボリックリンク を張ることにします。
シンボリックリンクを作成する
まずは、GitHub で作成したコード格納用のリポジトリを git clone
しておきます。
ここでは、GitHub 上に metatrader
という名前のリポジトリを作成済みで、作業用ディレクトリとして D:\y\gitwork
を使うことを想定しています(パスは環境に合わせて調整してください)。
ローカルに metatrader
というディレクトリが作成されるので、この中に MQL5
ディレクトリを作成して、そこに自作の EA やインジケーターを格納することにします。
シンボリックリンクはディレクトリ単位で作成したいので、実際には次のようにもう一段階ディレクトリ作成します。
ここでは maku77
というディレクトリ名にしてますが、GitHub のユーザー名などにしておけばよいでしょう。
Windows でディレクトリのシンボリックリンクを作成するには、コマンドプロンプトを 管理者として実行 し、mklink /d
コマンドを使用します。
コマンドプロンプトを起動したら、次のように MetaTrader のデータディレクトリに移動して、各ディレクトリのシンボリックリンクを作成します。
MetaEditor のナビゲータに、次のような感じで maku77
ディレクトリが見えていれば成功です。
あとは、いつも通り MetaEditor から maku77
ディレクトリに .mq5
ファイルを新規作成すれば、Git ディレクトリの方にファイルが保存されるようになります。
gitignore を設定する
コンパイル後の .ex4
、.ex5
ファイルは Git では管理したくないので、.gitignore
ファイルで Git 管理しないように除外しておきましょう。
シンボリックリンク作成用のバッチファイルを作成する
上記の説明では、手動でデータディレクトリから Git ディレクトリへのシンボリックリンクを作成しましたが、この処理はバッチファイルなどで自動化しておくと便利です。
これで、別の PC 環境に移行したときでも、次のように実行するだけで一発で環境構築が完了します。
関連記事
- MetaTrader/MQL: 基本データ型一覧
- MetaTrader/MQL: EA のマジックナンバーについて理解する
- MetaTrader/MQL5: シンボル名を取得する (Symbol, ChartSymbol, SymbolsTotal, SymbolName)
- MetaTrader/MQL: 表示しているチャートを列挙する (ChartFirst, ChartNext)
- MetaTrader/MQL: CTrade クラスで注文を出す (MT5)
- MetaTrader/MQL: OrderSend の引数を理解する - MqlTradeRequest/MqlTradeResult 構造体 (MT5)
- MetaTrader/MQL: 通貨(シンボル)のポイントサイズ、Digit 数を調べる (Point, Digits, SymbolInfoDouble)