MARKET
MT4ツールを、数字で作る。— Team REI|平日の朝に「相場分析」を更新しています|

エラー4107(ERR_UNKNOWN_SYMBOL)― 存在しない銘柄名を指定した|MQLエラーコード

MQL4 / MQL5 両対応 たまに見るエラーコードERR_UNKNOWN_SYMBOL

エラー4107ERR_UNKNOWN_SYMBOL ― 存在しない・使えない銘柄名を指定した

存在しない、またはいまの端末では使えない銘柄名を指定して関数を呼んだときに出る。他業者の銘柄名をそのまま使い回したときによく起きる。

1主な原因

  • 業者によって銘柄名の綴りが違う(例:GOLDとXAUUSD、末尾に.a等のサフィックスが付く等)
  • 気配値表示に追加していない銘柄を、MarketInfo等でいきなり読もうとした
  • 銘柄名の単純なタイプミス

2対処法

✓ SymbolSelectで存在を確認してから使う

使う前にSymbolSelect(symbol, true)を呼び、戻り値がtrueかを確認する。複数業者への配布を考えるツールでは、銘柄名を決め打ちせず、サフィックスの有無を吸収する仕組みを用意しておく。

3発生する例と直し方

// 悪い例:綴りを決め打ちして使う
double spread = MarketInfo("XAUUSD", MODE_SPREAD);

// 直した例:先に存在を確認する
string sym = "XAUUSD";
if(!SymbolSelect(sym, true))
   Print(sym, " はこの業者では使えない銘柄名です");
else
   double spread2 = MarketInfo(sym, MODE_SPREAD);

4MQL5では

🔁 差分

MQL5でも同じ4107。SymbolSelect自体がMQL4・MQL5共通の関数。

5関連するエラー

REI-FX&BO OFFICIAL LINE

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

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

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

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