mirror of
https://github.com/softwaredevelop/mql5.git
synced 2026-07-27 20:47:44 +00:00
120 lines
7.7 KiB
Plaintext
120 lines
7.7 KiB
Plaintext
//+------------------------------------------------------------------+
|
|
//| SymbolInfoDoubleChecker.mq5 |
|
|
//| Copyright 2025, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2025, MetaQuotes Ltd."
|
|
#property link "https://www.mql5.com"
|
|
#property version "1.00"
|
|
|
|
#include <Trade\SymbolInfo.mqh>
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
string symbol = _Symbol;
|
|
CSymbolInfo m_symbol_info;
|
|
|
|
if(!m_symbol_info.Name(symbol))
|
|
{
|
|
PrintFormat("Error: Failed to initialize CSymbolInfo for symbol '%s'. Error: %d", symbol, GetLastError());
|
|
return;
|
|
}
|
|
|
|
Print("--- Symbol Property Checker Started ---");
|
|
PrintFormat("Checking symbol: %s", symbol);
|
|
Print("--- Double Properties (ENUM_SYMBOL_INFO_DOUBLE) ---");
|
|
|
|
ENUM_SYMBOL_INFO_DOUBLE double_properties[] =
|
|
{
|
|
SYMBOL_BID,
|
|
SYMBOL_BIDHIGH,
|
|
SYMBOL_BIDLOW,
|
|
SYMBOL_ASK,
|
|
SYMBOL_ASKHIGH,
|
|
SYMBOL_ASKLOW,
|
|
SYMBOL_LAST,
|
|
SYMBOL_LASTHIGH,
|
|
SYMBOL_LASTLOW,
|
|
SYMBOL_VOLUME_REAL,
|
|
SYMBOL_VOLUMEHIGH_REAL,
|
|
SYMBOL_VOLUMELOW_REAL,
|
|
SYMBOL_OPTION_STRIKE,
|
|
SYMBOL_POINT,
|
|
SYMBOL_TRADE_TICK_VALUE,
|
|
SYMBOL_TRADE_TICK_VALUE_PROFIT,
|
|
SYMBOL_TRADE_TICK_VALUE_LOSS,
|
|
SYMBOL_TRADE_TICK_SIZE,
|
|
SYMBOL_TRADE_CONTRACT_SIZE,
|
|
SYMBOL_TRADE_ACCRUED_INTEREST,
|
|
SYMBOL_TRADE_FACE_VALUE,
|
|
SYMBOL_TRADE_LIQUIDITY_RATE,
|
|
SYMBOL_VOLUME_MIN,
|
|
SYMBOL_VOLUME_MAX,
|
|
SYMBOL_VOLUME_STEP,
|
|
SYMBOL_VOLUME_LIMIT,
|
|
SYMBOL_SWAP_LONG,
|
|
SYMBOL_SWAP_SHORT,
|
|
SYMBOL_SWAP_SUNDAY,
|
|
SYMBOL_SWAP_MONDAY,
|
|
SYMBOL_SWAP_TUESDAY,
|
|
SYMBOL_SWAP_WEDNESDAY,
|
|
SYMBOL_SWAP_THURSDAY,
|
|
SYMBOL_SWAP_FRIDAY,
|
|
SYMBOL_SWAP_SATURDAY,
|
|
SYMBOL_MARGIN_INITIAL,
|
|
SYMBOL_MARGIN_MAINTENANCE,
|
|
SYMBOL_SESSION_VOLUME,
|
|
SYMBOL_SESSION_TURNOVER,
|
|
SYMBOL_SESSION_INTEREST,
|
|
SYMBOL_SESSION_BUY_ORDERS_VOLUME,
|
|
SYMBOL_SESSION_SELL_ORDERS_VOLUME,
|
|
SYMBOL_SESSION_OPEN,
|
|
SYMBOL_SESSION_CLOSE,
|
|
SYMBOL_SESSION_AW,
|
|
SYMBOL_SESSION_PRICE_SETTLEMENT,
|
|
SYMBOL_SESSION_PRICE_LIMIT_MIN,
|
|
SYMBOL_SESSION_PRICE_LIMIT_MAX,
|
|
SYMBOL_MARGIN_HEDGED,
|
|
SYMBOL_PRICE_CHANGE,
|
|
SYMBOL_PRICE_VOLATILITY,
|
|
SYMBOL_PRICE_THEORETICAL,
|
|
SYMBOL_PRICE_DELTA,
|
|
SYMBOL_PRICE_THETA,
|
|
SYMBOL_PRICE_GAMMA,
|
|
SYMBOL_PRICE_VEGA,
|
|
SYMBOL_PRICE_RHO,
|
|
SYMBOL_PRICE_OMEGA,
|
|
SYMBOL_PRICE_SENSITIVITY
|
|
};
|
|
|
|
double value;
|
|
string result_str;
|
|
|
|
for(int i = 0; i < ArraySize(double_properties); i++)
|
|
{
|
|
ResetLastError();
|
|
// Itt használjuk a CSymbolInfo objektum InfoDouble metódusát
|
|
bool success = m_symbol_info.InfoDouble(double_properties[i], value);
|
|
int error = GetLastError();
|
|
|
|
if(success)
|
|
{
|
|
result_str = StringFormat("Property: %s, Status: SUPPORTED, Value: %.8f",
|
|
EnumToString(double_properties[i]), value);
|
|
Print(result_str);
|
|
}
|
|
else
|
|
{
|
|
result_str = StringFormat("Property: %s, Status: QUERY FAILED (Error: %d)",
|
|
EnumToString(double_properties[i]), error);
|
|
Print(result_str);
|
|
}
|
|
}
|
|
Print("--- Check Completed ---");
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|