MQL5フォルダの同期
MT5(MT4)を使っていて、特にEA開発者はデータフォルダを同期して複数PCで同じデータを扱いたいという場面が多々あると思う
MT5で「オプション」の「ストレージ」でデータフォルダのパスという表示があったので変更できるかと思いきや、残念ながらできないらしい
という事でチカラ技使いましょう
インターネット経由で同期するのに、OneDrive・Google Drive・iCloud Drive、他にもいろいろなサービスもあるし、セキュリティ対策に自信があれば自前でやっても良いけど今回はWindowsと親和性の高いOneDriveを使う(OneDriveの同期方法や使い方は公式リファレンス参照)
まず、前提として同期させるのはMQL5(MQL4)フォルダのみとする。
詳しくは追究していないが環境情報やLogなど同期させたくないファイルもありそうなので、余計なファイルは同期しないが吉
手順
- データフォルダにあるMQL5(MQL4)フォルダを一旦無関係な場所に移動し退避させる(データフォルダのMQL5は元の場所からなくなった状態)
- コマンドプロンプトでシンボリックリンクを作成する
- 元のファイルを新しくできたMQL5フォルダの中にコピーして完了
シンボリックリンクはショートカットと違い、実体のある場所は無視され、シンボリックリンク先にあたかも実体があるようにする機能で、いわゆるエイリアスである
シンボリックリンク作成時は既存フォルダが使えないため、実データのあるMQL5フォルダは一旦他の場所に退避させる必要がある
Windowsのタスクバーにある検索窓から”cmd”と入力すると選択肢にコマンドプロンプトがあるので必ず”管理者権限”で開く
※検索窓が無い人はタスクバーの何もないところで右クリックして”検索”⇒”表示”で表示される
黒いコマンドプロンプトの画面が開いたら下記の要領でコマンドを打つ
コマンド
mklink△/D△データフォルダの元あったパス△実体を置くパス(OneDrive内)
△は半角スペース
/Dはオプションでフォルダ指定(オプション無はファイル)
前に元のデータフォルダパスを指定し、あとに移動した実体のある場所を入力。
実際はこんな感じ
mklink /D C:\Users\osamushi\AppData\Roaming\MetaQuotes\Terminal\EE0304F76976584AE0B5EAEFB94213EB\MQL5 C:\Users\osamushi\OneDrive\MQL5
環境によって多少違うが、そこは自分の環境に合わせてカスタマイズが必要
特にTerminal直下の英数字の長いフォルダ名は各社違うし、OneDriveの場所がユーザーフォルダ直下じゃない人は多いかもしれないので、Cドライブからのパスを\で区切って下階層に下がっていく要領で書けばOK
もしCドライブ直下なら
C:\OneDrive\MQL5
となる。
シンボリックリンクができたら、実体のフォルダ(OnDrive内のフォルダ)に元のMQL5内のファイルを全てコピーして完了
これを使用する全てのPCでやればOK
OnDrive設定
OnDrive設定の「ファイルオンデマンド」にチェックが入っていると、必要な時に同期されていない事があるので外した方が良い(容量との兼ね合いだけど、クセのある機能なので要注意)
コメント