Divisas implicadas en un símbolo (base, profit, margen)
Extrae las divisas de un símbolo para un filtrado de noticias pertinente: en los índices y metales, la divisa de profit (a menudo USD) es la única clave aprovechable, ya que la base currency no es una divisa.
Requisitos
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];
}
}
}Resultado
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