タイトルが入力されていません。
コンテンツがありません。
There have no category
There have no subcategory
先日、EAつくーるWEB版にてMT5のコンパイルを行おうとしたところ、"warning"として”refreshrate"が小さすぎるとの表示が出ました。
私がrefreshrate(120)としたところ、コンパイルには成功しました。
この現象に関する解説と、然るべき解決策を御教示頂きたく存じます。
質問者です。
追記となりますが、上記の「"warning"として”refreshrate"が小さすぎるとの表示が出ました。」とは、「too few arguments for function-like macro ‘RefreshRates’ との表示が"warning"として2か所出ている」ということであります。
「RefreshRates の警告(too few arguments)」についてのご質問ですね。
結論から申し上げますと、これは MT5用の互換マクロ仕様(Tkool.mqh)の影響による警告であり、基本的に無視して問題ありません。
最新版の Tkool.mqh では、以下のような定義になっています。
Tkool.mqh
#define RefreshRates(dummy)
つまり、
RefreshRates()
このため、EA本体側で
RefreshRates();
のように 引数なしで呼び出すと
too few arguments for function-like macro ‘RefreshRates’
という警告が出ます。
これは仕様通りの挙動です。
MT4とMT5では内部の価格更新の仕組みが異なります。
そのため、EAつくーるでは
という設計になっています。
警告は出ますが、
のため そのままでOK です。
どうしても気になる場合は、MQL編集で以下の対応が可能です。
RefreshRates(0);
のように ダミー引数を追加 します。
以下のようになっていませんか?
この警告はあくまで注意表示なので、 動作不良の原因にはならない点が重要です。
原因:Tkool.mqhで RefreshRates(dummy) に置き換えられているため
RefreshRates(dummy)
MT5では本来不要な処理なので問題なし
対応:
RefreshRates(0)
この仕様は「MT4→MT5互換」のためのものなので、 今後も同様の警告が出るケースがありますが、基本的には問題ありません。
コメント文がありません。
質問者です。
追記となりますが、上記の「"warning"として”refreshrate"が小さすぎるとの表示が出ました。」とは、「too few arguments for function-like macro ‘RefreshRates’ との表示が"warning"として2か所出ている」ということであります。
「RefreshRates の警告(too few arguments)」についてのご質問ですね。
結論から申し上げますと、これは
MT5用の互換マクロ仕様(Tkool.mqh)の影響による警告であり、基本的に無視して問題ありません。
■ 現象の原因
最新版の
Tkool.mqhでは、以下のような定義になっています。つまり、
RefreshRates()をこのため、EA本体側で
のように 引数なしで呼び出すと
という警告が出ます。
これは仕様通りの挙動です。
■ なぜこのような仕様になっているか
MT4とMT5では内部の価格更新の仕組みが異なります。
RefreshRates()が必要そのため、EAつくーるでは
という設計になっています。
■ 対処方法
方法①(推奨:そのまま使う)
警告は出ますが、
のため そのままでOK です。
方法②(警告を消したい場合)
どうしても気になる場合は、MQL編集で以下の対応が可能です。
修正例
のように ダミー引数を追加 します。
■ よくある設定ミス
以下のようになっていませんか?
この警告はあくまで注意表示なので、
動作不良の原因にはならない点が重要です。
■ まとめ
原因:Tkool.mqhで
RefreshRates(dummy)に置き換えられているためMT5では本来不要な処理なので問題なし
対応:
RefreshRates(0)に変更この仕様は「MT4→MT5互換」のためのものなので、
今後も同様の警告が出るケースがありますが、基本的には問題ありません。