解決済み

MT5における refreshrate に関して

2026/04/06 02:12
31

先日、EAつくーるWEB版にてMT5のコンパイルを行おうとしたところ、"warning"として”refreshrate"が小さすぎるとの表示が出ました。

私がrefreshrate(120)としたところ、コンパイルには成功しました。

この現象に関する解説と、然るべき解決策を御教示頂きたく存じます。

コメント

IYOMO
2026/04/06 02:17

質問者です。

追記となりますが、上記の「"warning"として”refreshrate"が小さすぎるとの表示が出ました。」とは、「too few arguments for function-like macro ‘RefreshRates’ との表示が"warning"として2か所出ている」ということであります。

GogoJungle
2026/04/08 18:09

「RefreshRates の警告(too few arguments)」についてのご質問ですね。

結論から申し上げますと、これは
MT5用の互換マクロ仕様(Tkool.mqh)の影響による警告であり、基本的に無視して問題ありません。


■ 現象の原因

最新版の Tkool.mqh では、以下のような定義になっています。

#define RefreshRates(dummy)

つまり、

  • MT4の RefreshRates()
  • MT5で動かすために「ダミー引数付きマクロ」に置き換えています

このため、EA本体側で

RefreshRates();

のように 引数なしで呼び出すと

too few arguments for function-like macro ‘RefreshRates’

という警告が出ます。

これは仕様通りの挙動です。


■ なぜこのような仕様になっているか

MT4とMT5では内部の価格更新の仕組みが異なります。

  • MT4 → RefreshRates() が必要
  • MT5 → 基本的に不要(Tickで自動更新)

そのため、EAつくーるでは

  • MT4コードをそのまま使えるように
  • MT5では「何もしないマクロ」に置き換え

という設計になっています。


■ 対処方法

方法①(推奨:そのまま使う)

警告は出ますが、

  • 実行には影響なし
  • EA動作にも問題なし

のため そのままでOK です。


方法②(警告を消したい場合)

どうしても気になる場合は、MQL編集で以下の対応が可能です。

修正例

RefreshRates(0);

のように ダミー引数を追加 します。


■ よくある設定ミス

以下のようになっていませんか?

  • 「コンパイルエラー」と思っているが実際は「warning」
  • EAが動かない原因をRefreshRatesと誤認している

この警告はあくまで注意表示なので、
動作不良の原因にはならない点が重要です。


■ まとめ
  • 原因:Tkool.mqhで RefreshRates(dummy) に置き換えられているため

  • MT5では本来不要な処理なので問題なし

  • 対応:

    • 基本は無視でOK
    • 気になる場合は RefreshRates(0) に変更

この仕様は「MT4→MT5互換」のためのものなので、
今後も同様の警告が出るケースがありますが、基本的には問題ありません。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。