前回
おおかたTrimPipsのMT5対応が完成したのですが
ここで問題が。。。
MT5対応でソースをかなり変更したため
元のMT4のソースからだいぶかけ離れて
しまったのです。
これは由々しき問題です。
ソースは1本化しておかないと
保守が大変です。
まず、一本化には2つの課題があります。
- ロジックの一本化
- ソースの配置の一元化
1.ロジックの一本化
これは、かなり大変ですが単純に
1 2 3 4 5 6 7 8 9 |
#ifdef __MQL5__ //MQL5の処理 if(AppWindow.GetErasePips()) return; //PIPS整理中は無視する #else //MQL4の処理 #endif |
こんな感じで、MQL5のソースを
#ifdef __MQL5__
でくくっていけばOKです。
後は、コンパイラがそれぞれ
別々に吐き出してくれます。
2.ソースの配置の一元化
問題はこちらです。
MQL4とMQL5では、開発環境も
異なるのでちょっと問題です。
ソースをMQL4とMQL5にコピーするのでは
間違うリスクがでかすぎます。
せっかく苦労して一元化しても
ヒューマンエラーのリスクに
常にさらされます。
てか、その状態で間違わないのは「無理」です。
・・・・
でググったところ解決策がありました。
ショートカットによる共用
(FX)MQL4とMQL5の両方で動作するファイルを共有する方法
以下のようにソースのショートカットを作成しMQL4から閲覧する
1 |
mklink OnTickDuplications.mq4 (データフォルダ)\MQL5\Experts\Investigation\OnTickDuplications.mq5 |
なるほどすばらしい。
と思いやってみた。
こんな感じでショートカットを作ったのだが
MQLのエディタからクリックしても
開いてくれない。
MQL4、MQL5の両方でやったが
うまく行かないので
諦めました。
わかる方教えてください。
MQL5ストレージ
で、手作業でのコピペは流石に危険なので
MQL5 ストレージ
を使用することにする。
ソース管理ツールだ。
恥ずかしながら私は、Githubを使えていません。
Subversionなら10数年前にちょっと使ったことはあります。
*ここでソース管理ツールについては止まっているのです^^
なんとなくできそうなのでクリックしました。
Setp1.
ナビゲーターウインドウを開き
MQL5ストレージを有効にしました。
すばらしい、
これで安定してソース管理が行える。
今までのコピペ管理が嘘のようだ。
早くやればよかった。
差分の表示方法
Step1.
①差分を見たいソースを右クリックし「ストレージログを表する」をクリックする
Step2.
①差分を確認したいリビジョンのソースをクリックする。
Step3.
①ソースを右クリックする
②「以前の改訂と比較する」をクリックする
Step4.
差分がわかりやすく表示されます。
これでokです。
後は、物理的にファイルをコピーするのではなく
エディタを開いて全選択コピペを
行えばok
最後までご覧いただきありがとうございます。
つぎはこちら
⇒「ついに販売!?TrimPips」(閉鎖中)