ارزهای مرتبط با یک نماد (پایه، سود، مارجین)
ارزهای یک نماد رو برای یک فیلتر خبری درستوحسابی استخراج میکنه: روی شاخصها و فلزات، ارز سود (معمولاً USD) تنها کلیدیه که میشه باهاش کار کرد؛ «ارز پایه» اونجا اصلاً یک ارز نیست.
کاربرد
فیلتر خبری درست روی US30 یا XAUUSD: واکنش به اخبار USD، نه گشتن دنبال «US30» توی تقویم.
پیشنیازها
MetaTrader 5, MQL5
MQL5
void GetNewsCurrencies(string symbol, string ¤cies[])
{
string base = SymbolInfoString(symbol, SYMBOL_CURRENCY_BASE);
string profit = SymbolInfoString(symbol, SYMBOL_CURRENCY_PROFIT);
string margin = SymbolInfoString(symbol, SYMBOL_CURRENCY_MARGIN);
ArrayResize(currencies, 0);
string candidates[3];
candidates[0] = base; candidates[1] = profit; candidates[2] = margin;
string majors = "USD,EUR,GBP,JPY,CHF,CAD,AUD,NZD,CNY";
for(int i = 0; i < 3; i++)
{
// Garder uniquement les vraies devises, dédupliquées
if(StringFind(majors, candidates[i]) < 0) continue;
bool dup = false;
for(int j = 0; j < ArraySize(currencies); j++)
if(currencies[j] == candidates[i]) { dup = true; break; }
if(!dup)
{
int n = ArraySize(currencies);
ArrayResize(currencies, n + 1);
currencies[n] = candidates[i];
}
}
}نتیجه
2026.06.10 08:10:00.118 NewsKeys (US30,M5) US30 : base="US30" profit="USD" margin="USD"
2026.06.10 08:10:00.119 NewsKeys (US30,M5) Devises news retenues : USD ("US30" écartée, pas une devise)
2026.06.10 08:10:00.205 NewsKeys (EURUSD,M15) EURUSD -> EUR, USD (margin USD dédupliquée)
2026.06.10 08:10:00.290 NewsKeys (XAUUSD,M5) XAUUSD -> USD ("XAU" non listée dans les majeures)DevisesSymbolInfoNews FilterIndices