MQL5からMQL4への移植
履歴グラフ表示、Graphical Tarminal Motion G mt 4をmt5版よりの移植作業をおこないました。履歴データを主に扱う為、MQL4,MQL5の違いが多く、時間がかなりかかりました。
ユーザーインターフェイス部と履歴計算は別のクラスに分けてはいるので、いつものように、MT5用の履歴計算クラスをいったんMT4に一括コピー、コンパイルしてエラーカ所を修正する方法をとりました。
MQL5の履歴データへのアクセスは、一度
HistorySelect(start_time,end_time);
で履歴読込データを絞り込んでから、各チケットのデータを取得していきます。
if((ticket = HistoryDealGetTicket(i)) > 0)
double profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
HistorySelect はMQL4にはない関数です。其のままコンパイルするとエラーとなる為、削除します。(MQL4では、絞り込まなくても、直接データの取得が出来ます。
if((OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)))
SELECT_BY_POS は履歴順での呼び出し。
SELECT_BY_TICKET にするとチケットナンバーでの呼び出し。
今回ここてstart_time、end_time で履歴読込期間の絞り込みをしていました。そのため、読込期間を変えても、データが変わらないという結果になってしまいました。
closeTime = OrderCloseTime();
if(closeTime > start_time && closeTime < end_time )
{
}
のif文を追加で、OKでした。
エムキューのmy Pick