MARKET
9/25 8:27 時点|ドル円158.78▼-7 pips|ドル円 予想レンジ158.41 〜 159.23|ドル円 上の節目158.90▲|ドル円 下の節目157.80▼|ユーロドル1.1378▼-2 pips|ユーロドル 予想レンジ1.1351 〜 1.1408|ユーロドル 上の節目1.1403▲|ユーロドル 下の節目1.1359▼|きょうの指標重要指標なし|

MQL4→MQL5 差分ノート|MQLリファレンス

MQLリファレンス›MQL4→MQL5 差分ノート
索引ページ随時追加

MQL4→MQL5 差分ノート

MQL4のコードをMQL5に書き直すときに、実際に手が止まった箇所を集めた一覧。理屈上の違いではなく、自社の変換作業で実際に踏んだものだけを載せている。影響度は「書き換えの手間」ではなく「気づかずに動かしたときの怖さ」で付けた。

高:気づかないと動きが変わる/落ちる中:コンパイルは通るが挙動が違う低:書き換えは要るが分かりやすい

高注文が「関数呼び出し」から「構造体」に変わる

OrderSendなど売買系の関数は、MQL5ではMqlTradeRequest/MqlTradeResult構造体を使う形に一新される。引数の並べ替えでは済まない。

実測:自社177本の変換で、最も書き換え量が多かった箇所

高時間足の型が int → ENUM_TIMEFRAMES

iBarShift・iOpenなど時間足を渡す関数はすべて対象。MQL4の「分数の整数」をそのまま渡すコードはコンパイルエラーになる。

実測:時間足の名前を返す関数を「MQL4系はint・MQL5系はENUM」の2系統で持つ実装が複数のツールに残っている

高ボタンとパネルの重なりでMT5だけクリックできない

MT4はボタンを最優先で拾うが、MT5はボタンの上を横切る線を先に拾う(線から約7ドット以内)。目盛り線とボタンを両方持つパネルで発生。

実測:目盛り線付きパネルで MT5 0/10・MT4 10/10 のクリック失敗を確認。OBJPROP_ZORDER=10で解消し、作り直し後は 10/10

高OnCalculateの戻り値の意味が変わる

MQL5は戻り値を「計算済みの本数」として扱う。0を返すと、そのインジケーターをiCustomで読んでいる側が値を取れなくなる。

実測:ある日から自作インジのiCustom呼び出しが値を返さなくなり、原因の切り分けに時間を要した

中EMPTY定数が無い

配列の「未設定」判定に使っていたEMPTYはMQL5に存在しない。代わりの値を自分で決めて置き換える必要がある。

中IndicatorGetIntegerが存在しない

インジケーターのバッファ数などを調べる関数が無い。ChartIndicatorGet系の別APIに置き換える。

中ChartGetDoubleがオフラインのチャートで0を返すことがある

CHART_PRICE_MAX/CHART_PRICE_MINを使って本数や範囲を自動計算する処理は、上限と逃げ道を用意しておく必要がある。

中部分決済のチケット番号の扱いが違う

MQL4は残数量が元のチケット番号のまま。MQL5は部分決済すると新しいチケット番号になる。ポジション管理を番号で追っていると取り違える。

低開発環境の罠:日本語・空白のファイル名でログが出ない

MetaEditor 5は、コンパイル対象が日本語や空白を含むパスにあると、ログファイルそのものを作らないことがある。英数字だけの一時フォルダに写してからコンパイルする。

この一覧は随時追加します。書いてあるのは、実際に手を動かして確認できたものだけです。

MORNING BRIEF平日 毎朝7時までに更新

今日はどこを見ればいいか。

ドル円とユーロドルの主要ライン・予想高値安値を、平日の朝に図1枚にまとめています。

朝刊を見る→
9/25 8:27 時点ドル円158.78▼-7 pipsドル円 予想レンジ158.41 〜 159.23ドル円 上の節目158.90▲ドル円 下の節目157.80▼ユーロドル1.1378▼-2 pipsユーロドル 予想レンジ1.1351 〜 1.1408ユーロドル 上の節目1.1403▲ユーロドル 下の節目1.1359▼きょうの指標重要指標なし
REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。