EnoughOrderPanel概要
MT4版をテスト稼働させているEnoughOrderPanelですが、現在MT5対応版を開発中です。
機能に関してはMT4版を参考に見ていただくとして、なぜ開発しようかと考えたかというとFXGTさんでの仮想通貨取引や、株価指数取引で低ロットの取引が実現できるXMのMT5口座などで利用したかったからです。
シンプルにそれだけ、おそらく仮想通貨でのロット管理機能を備えている注文ツールは世界初になるんじゃないでしょうか?(大して調べていませんが)
MT4からMT5への移植
これがなかなか厄介な話になりまして、書き方のお作法が全然違います。
正確にいうと一部同様のコードは利用できますが、多くの場合書き直しになります。
いっそのこと共用で使えるコードにしたかったのですが、共用化のためのライブラリを一つずつ完成させていかないといけなかったために見送りに。
実際にどうやったのか?
最初に思い付いたのが、こちらの書籍のライブラリを利用すること方法も考えられます。
どうやら前提がEAとしてのライブラリのため、オブジェクト類が全滅、またオーダー類も固定の処理しかなかったため今回の移植にはいまいち利用できませんでした。
基本的な知識については非常に役に立つ書籍となっています。
で、今回覚えるのはこれだけ
#ifdef __MQL4__
//MT4での処理を記述
#endif
#ifdef __MQL5__
//MT5での処理を記述
#endif
以上です。
力技で処理を分岐させていきます。
面倒がってライブラリ化もしていなかったため、およそ5000行のコードをひたすら書き直し書き直し。
極力共用の処理にしたかったのですが、処理の検証等の時間も考えてひたすら力技で分岐していく作業。
mql5でのコンパイルエラーを確認し、エラー個所を修正、mql4での正常処理を確認といった感じに。
この作業の際にはこちらのコード対応表が非常に役立ちました。
現状表示とロット管理で数値が移動していること、通常の注文については動作すること確認しています。
まだpipsの内部処理、表示処理や、分割注文の処理などがうまく動作していないようなので、このあたりのを修正したらまた配布を考えています。
最終的にはコードの共通化をしてスマート化したいですが、まだまだ先のことになりそうです。
まずは動いただけでも良かったとしましょう。
続報をお待ちください。簡潔ですが以上となります。