【FX/EA】MetaTrader/MQLのファイルをGithubで管理する
目的・背景
EA 自動売買システムのファイルをバージョン管理しながら開発したい!
ということで備忘録として作業内容を残します。
開発過程であれこれトレードロジックをいじくりまわすと思うので、
バージョン管理を行いながら開発していくのがベストですよね~
MetaTrader/MQLのファイルをGithubで管理する
全体の流れ
①MetaTraderのデータフォルダのパスをコピー
MetaTraderに関するファイルなどが保存されているフォルダのパスをコピーします②開発用フォルダを作成
開発用フォルダを作成し、このフォルダを後の手順でGithub管理とします③シンボリックリンクを作成
データフォルダと開発用フォルダを関連付けます④開発用フォルダをGithubで管理
開発用フォルダをGithubで管理するように設定します
1. データフォルダのパスをコピーする
データフォルダはMQLで書かれたファイル群が格納されているフォルダです。
お使いのMetaTraderからMetaEditorを開きます。
次に、データフォルダを開きます。「File --> Open Data Folder」とクリックすることで開くことができます。
データフォルダが開かれるので、このフォルダのパスをコピーしておきます。私の環境では、以下のようなフォルダとなっていました。
C:\Users\ユーザ名\AppData\Roaming\MetaQuotes\Terminal\A4F4012CC7C8CFCF1D810350E5100AB4
2. 開発用フォルダの作成
開発用フォルダを作成しておきます。このフォルダは後にデータフォルダと紐づけられます。
開発用フォルダの場所はどこでも大丈夫です。私はデスクトップ配下に作成しました。フォルダの名前も任意で大丈夫です。
mkdir Desktop/RL-Trade/Experts/RL-Expert
(強化学習型のEAを作っているので「RL-」というプレフィックスにしていますが、なんでも大丈夫です。また、途中のExpertsも分かりやすいようにフォルダ分けしているだけなので任意の場所で大丈夫です!)
3. シンボリックリンクの作成
次に、開発用フォルダとMetaTraderのデータフォルダを紐づけます。
管理者権限でコマンドプロンプトを起動します。
シンボリックリンクの作成コマンドを実行します。
cd <1.でコピーしたデータフォルダのパス>
mklink /d MQL5\Experts\RL-Expert <2.で作成した開発用フォルダのパス>
コマンドを実行した後、MetaTraderを確認します。「File --> Open Data Folder」とクリックし、
「MQL5 --> Experts」とフォルダをクリックしていくと、
"RL-Expert"というフォルダが追加されていることが分かります。これでシンボリックリンクの作成は終了です。
4. 開発用フォルダをGithubで管理する
あとは開発用フォルダをGithubで管理するだけです!
①Githubアカウントの作成
アカウントをお持ちでない場合は、GitHubからサインアップします
②リポジトリの作成
Githubのダッシュボードから「New」をクリックします。
リポジトリ名を入力し、Public/Privateを選択し、「Create repositry」をクリックします。
③開発用フォルダのアップロード
画面に表示されている指示に従い、コマンドを実行します。
cd <2.で作成した開発用フォルダのパス>
echo "# repositry name" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/xxxx/yyyy.git
git push -u origin main
これであとは、定期的に変更をGithubにプッシュしてあげることでバージョン管理が可能となります!
まとめ
MetaTraderで扱うファイルをGithubでバージョン管理する方法をお伝えしました!以下、本記事のまとめです。
①MetaTraderのデータフォルダのパスをコピー
MetaTraderに関するファイルなどが保存されているフォルダのパスをコピー②開発用フォルダを作成
開発用フォルダを作成し、このフォルダを後の手順でGithub管理とする③シンボリックリンクを作成
データフォルダと開発用フォルダの関連付けを行う④開発用フォルダをGithubで管理
開発用フォルダをGithubで管理するように設定します
この記事が気に入ったらサポートをしてみませんか?