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_timeend_time で履歴読込期間の絞り込みをしていました。そのため、読込期間を変えても、データが変わらないという結果になってしまいました。

 

  closeTime = OrderCloseTime();
    if(closeTime > start_time && closeTime < end_time )

     {

      }

のif文を追加で、OKでした。

 

 

 

 

エムキューのmy Pick