MT4で扱える商品の仕様を確認したいときに使えるスクリプトです。ちゃんと保存しておかないのでいつも調べながら作っているのですが、さすがに面倒くさいので動くコードをアップしておきます。

MT4の商品仕様(取引条件)はMT4の「気配値表示」に表示されているペアを選択した状態で右クリックで表示可能です。この仕様はFXとCFDで内容が異なるので細かい違いが分かるようになります。

MarketInfo仕様

Google翻訳したものを置いておきますが、翻訳がおかしいものは公式のMarketInfoでご確認ください。

ID価値説明
MODE_LOW1当日安値
MODE_HIGH2当日高値
MODE_TIME5最後の着信ティック時間(最後の既知のサーバー時間)
MODE_BID9最終入値。現在のシンボルの場合、事前定義された変数Bidに格納されます
MODE_ASK10最後の着信アスク価格。現在のシンボルについては、事前定義された変数Askに格納されます
MODE_POINT11見積もり通貨でのポイントサイズ。現在のシンボルの場合、事前定義された変数Pointに格納されます
MODE_DIGITS12シンボル価格の小数点以下の桁数。現在のシンボルの場合、事前定義された変数Digitsに格納されます
MODE_SPREAD13ポイント単位のスプレッド値
MODE_STOPLEVEL14ポイントでの停止レベル MODE_STOPLEVELのゼロ値は、ストップロス/テイクプロフィットの最小距離に制限がないか、トレードサーバーが動的レベル制御にいくつかの外部メカニズムを利用しているという事実のいずれかを意味します。これはクライアント端末では変換できません。2番目のケースでは、MODE_STOPLEVELが実際にはここで「フローティング」であるため、GetLastError()はエラー130を返す可能性があります。
MODE_LOTSIZE15基本通貨でのロットサイズ
MODE_TICKVALUE16預金通貨でのティック値
MODE_TICKSIZE17ポイント単位のティックサイズ
MODE_SWAPLONG18購入注文の交換
MODE_SWAPSHORT19販売注文の交換
MODE_STARTING20市場開始日(通常は先物に使用されます)
MODE_EXPIRATION21市場の有効期限(通常は先物に使用されます)
MODE_TRADEALLOWED22シンボルの取引は許可されています
MODE_MINLOT23ロットの最小許容量
MODE_LOTSTEP24ロット変更のステップ
MODE_MAXLOT25ロットの最大許容量
MODE_SWAPTYPE26スワップ計算方法。0-ポイントで; 1-シンボル基本通貨で; 2-興味による; 3-証拠金通貨で
MODE_PROFITCALCMODE27利益計算モード。0-外国為替; 1-CFD; 2-先物
MODE_MARGINCALCMODE28マージン計算モード。0-外国為替; 1-CFD; 2-先物; 3-インデックスのCFD
MODE_MARGININIT291ロットの初期証拠金要件
MODE_MARGINMAINTENANCE301ロットで計算された未決済注文を維持するための証拠金
MODE_MARGINHEDGED311ロットで計算されたヘッジマージン
MODE_MARGINREQUIRED321ロットあたりの証拠金
MODE_FREEZELEVEL33凍結レベルをポイントで注文します。執行価格がフリーズレベルで定義された範囲内にある場合、注文を変更、キャンセル、またはクローズすることはできません
MODE_CLOSEBY_ALLOWED34OrderCloseBy()を使用して、指定されたシンボルの反対の注文を閉じることができます

【MQL4】MT4で扱える商品詳細をすべて取得しファイル出力するスクリプト

//+------------------------------------------------------------------+
//|                                             CreateSymbolList.mq4 |
//|                                      Copyright 2022, Greeds Corp |
//|                                  https://fxtrading.greeds.co.jp/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Greeds Corp."
#property link      "https://fxtrading.greeds.co.jp/"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
  int handle=FileOpen("MarketInfoAll.txt", FILE_CSV|FILE_WRITE, ';');
  if(handle== INVALID_HANDLE)
  {
    printf("error.");
  }
  
  string header="SYMBOL,MODE_LOW,MODE_HIGH,MODE_TIME,MODE_BID,,MODE_ASK,MODE_POINT,MODE_DIGITS,MODE_SPREAD,MODE_STOPLEVEL,MODE_LOTSIZE,MODE_TICKVALUE,MODE_TICKSIZE,MODE_SWAPLONG,MODE_SWAPSHORT,MODE_STARTING,MODE_EXPIRATION,MODE_TRADEALLOWED,MODE_MINLOT,MODE_LOTSTEP,MODE_MAXLOT,MODE_SWAPTYPE,MODE_PROFITCALCMODE,MODE_MARGINCALCMODE,MODE_MARGININIT,MODE_MARGINMAINTENANCE,MODE_MARGINHEDGED,MODE_MARGINREQUIRED,MODE_FREEZELEVEL,MODE_CLOSEBY_ALLOWED";
  FileWrite(handle,header);
  
  string body="";  
  for(int i=0;i<SymbolsTotal(false);i++)
  {
    string name = SymbolName(i,false);
    body=name+","
    +DoubleToStr(MarketInfo(name,MODE_LOW))+","
    +DoubleToStr(MarketInfo(name,MODE_HIGH))+","
    +TimeToStr((datetime)MarketInfo(name,MODE_TIME))+","
    +DoubleToStr(MarketInfo(name,MODE_BID))+","
    +DoubleToStr(MarketInfo(name,MODE_ASK))+","
    +DoubleToStr(MarketInfo(name,MODE_POINT))+","
    +DoubleToStr(MarketInfo(name,MODE_DIGITS))+","
    +DoubleToStr(MarketInfo(name,MODE_SPREAD))+","
    +DoubleToStr(MarketInfo(name,MODE_STOPLEVEL))+","
    +DoubleToStr(MarketInfo(name,MODE_LOTSIZE))+","
    +DoubleToStr(MarketInfo(name,MODE_TICKVALUE))+","
    +DoubleToStr(MarketInfo(name,MODE_TICKSIZE))+","
    +DoubleToStr(MarketInfo(name,MODE_SWAPLONG))+","
    +DoubleToStr(MarketInfo(name,MODE_SWAPSHORT))+","
    +DoubleToStr(MarketInfo(name,MODE_STARTING))+","
    +DoubleToStr(MarketInfo(name,MODE_EXPIRATION))+","
    +DoubleToStr(MarketInfo(name,MODE_TRADEALLOWED))+","
    +DoubleToStr(MarketInfo(name,MODE_MINLOT))+","
    +DoubleToStr(MarketInfo(name,MODE_LOTSTEP))+","
    +DoubleToStr(MarketInfo(name,MODE_MAXLOT))+","
    +DoubleToStr(MarketInfo(name,MODE_SWAPTYPE))+","
    +DoubleToStr(MarketInfo(name,MODE_PROFITCALCMODE))+","
    +DoubleToStr(MarketInfo(name,MODE_MARGINCALCMODE))+","
    +DoubleToStr(MarketInfo(name,MODE_MARGININIT))+","
    +DoubleToStr(MarketInfo(name,MODE_MARGINMAINTENANCE))+","
    +DoubleToStr(MarketInfo(name,MODE_MARGINHEDGED))+","
    +DoubleToStr(MarketInfo(name,MODE_MARGINREQUIRED))+","
    +DoubleToStr(MarketInfo(name,MODE_FREEZELEVEL))+","
    +DoubleToStr(MarketInfo(name,MODE_CLOSEBY_ALLOWED));
    FileWrite(handle,body);
  }
}