
MQL4 銘柄・レート情報
RefreshRates()
- できること
- Ask・Bid などの定義済み変数を最新の値に更新する
- 対応
- MQL4
RefreshRates() とは
MQL4 で、定義済み変数の Ask・Bid・Close[] などを最新の値に更新する関数です。OnTick() の中で時間のかかる処理をしたあとや、注文をやり直す前に呼びます。
RefreshRates() の書式と引数
bool RefreshRates()引数はありません。
戻り値
データが更新されたら true、変わらなければ false を返します。
RefreshRates() の使い方(コード例)
// 3回まで再試行する(リクオート対策)
for(int i = 0; i < 3; i++)
{
RefreshRates();
int ticket = OrderSend(_Symbol, OP_BUY, 0.1, Ask, 30, 0, 0);
if(ticket >= 0) break;
Print("再試行 ", i + 1, " error=", GetLastError());
Sleep(500);
}OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
RefreshRates() の注意点
- Ask・Bid は OnTick() が呼ばれた時点の値のままです。注文に失敗して再試行するときは、RefreshRates() を呼んでから新しい Ask・Bid で送ります。
MQL4 と MQL5 の違い
MQL5 には Ask・Bid の定義済み変数がないため RefreshRates() も不要です。必要なときに SymbolInfoDouble(_Symbol, SYMBOL_ASK) や SymbolInfoTick() で最新の価格を取得します。












