【開発裏話】「MT4で動いているからMT5でも大丈夫」……そう思っていた時期が私にもありました(笑)
MT4で動いているツールを、MT5へ移植する。
簡単そうに見えて、実際は約1ヶ月、ほぼ毎日格闘することになりました。
先日、「MT5でインジケーターの表示がおかしくなる」というYahoo!知恵袋の質問を見かけました。
実際の原因はソースコードや発生条件を見なければ分かりません。
ただ、私にもMT5開発で「なんでこうなるの?」と悩まされた経験があります。
■なぜMT5へ開発の軸を移したのか?
私はもともとMT4を中心に開発していました。
しかし、MetaQuotes社の動向やMT5への移行が進む状況を見て、今後を考えるとMT5にも軸足を移す必要があると判断しました。
MT4が嫌いになったわけではありません。
これからも長くツールを開発していくための判断です。
ところが、ここで甘く考えていました。
「MT4版があるんだから、MT5へ移植すればいいでしょ?」
……これが、なかなか大変でした。
■エラー、ローソク足が止まる、直してもまた別の問題が……
最初は、MT4版と同じ機能をMT5でも実現しようと、コードを移すところから始めました。
しかし、単純に移しただけではうまくいかず、途中からMT5に合わせて作り直す方針に変更しました。
- エラーが出る
- ローソク足が止まる
- 直したと思ったら、別の条件で問題が出る
そこを直すと、また別のところが気になる。
バグを1匹退治したら、隣から2匹出てくる(笑)。
そんなことを繰り返していました。
■土日も休めない、約1か月
結局、土日も含めて毎日検証と修正を繰り返しました。そんな中で活躍したのが、BTCなどの24時間動いている銘柄です。
FX市場が休みでも、こちらは動いています。長時間稼働させて問題が出ないか確認できたのは大きな収穫でした。
BTCは「私は動いてますけど?」という感じですが、開発者としては休みたい……(笑)
■「動いた」と「安心して使える」は別の話
この経験で改めて感じたのは、テスターで動くことと、実際の環境で安定して動くことは別だということです。
今回の知恵袋の症状も、私が経験した問題と同じ原因とは限りません。中身を見ずに原因を断定することはできません。
だからこそ、テストで動いたから完成、と簡単には判断しないようにしています。
MT4で培った機能を、MT5という別の環境でどう実現するか。
そんな試行錯誤を経て、Trade ToolboxシリーズのMT5版も開発しています。
派手な機能の話ではありませんが、実際に使う道具だからこそ、こうした地味な検証も大切にしています。
おかげで今は、MT5での開発もだいぶ楽になりました。あの1ヶ月で学んだことが、今の土台になっています。
……とはいえ、今思えば、あの1ヶ月は長かった(笑)
それでは、また次回の開発裏話で!