画面比較・・

MetaTrader5 用に QQE , RCI , VQ を移植してみたのが下図。

もともとのMetaTrader4 の画面が下図。

よく比較してみると…


上段のツールボタン群が大きい……(°▽°;)


右側の価格メモリの幅が太くなったのは、5 Digits 化の流れから当然の変更かなっと思うんですが、モニタの高解像度化に合わせて、ツールボタンも大きくしてゆくものなんですねぇ...。


さて、MQL4 から MQL5 への移植の話ですが、考え方としては、最小のコスト(手間)で移植するアプローチと、よりMQL5 に最適化した形へ新しく作り直すアプローチがあると思います。
後者の手法は、MQL4 のみを勉強してきた人には、ちょぉっと敷居が高いので、今は、最小の手間で移植する手法を模索中です。


具体的には、

IndicatorShortName(string name);

という関数はMQL4 にあって、 MQL5 にはありません。そこで、

void IndicatorShortName(string name)
{
IndicatorSetString(INDICATOR_SHORTNAME,name);
}

という関数を MQL5 のソースコードに書いてしまえば、IndicatorShortName() を書き換えることなく移植できるわけです。
そんな…一行書き換えるぐらい手間じゃないよ。。。と思われるかもしれませんが、iBars はどう書き換える?iTimeは?TimeDayOfWeekは?...と書き換えるべき関数が増えてゆくと面倒になってきます。


理論上は、こういう互換関数をすべて整備すれば移植の手間は大幅に減る...はずなのですが、iMAOnArray の互換関数を書いたらあまりに処理が遅くて実用的な速度で動きませんでした...orz


iで始まる technical indicators系の関数だけは、MQL5 に最適化した形で書く必要がありそうです。