MQL5

ارزهای مرتبط با یک نماد (پایه، سود، مارجین)

ارزهای یک نماد رو برای یک فیلتر خبری درست‌وحسابی استخراج می‌کنه: روی شاخص‌ها و فلزات، ارز سود (معمولاً USD) تنها کلیدیه که میشه باهاش کار کرد؛ «ارز پایه» اونجا اصلاً یک ارز نیست.

کاربرد

فیلتر خبری درست روی US30 یا XAUUSD: واکنش به اخبار USD، نه گشتن دنبال «US30» توی تقویم.

پیش‌نیازها

MetaTrader 5, MQL5

MQL5
void GetNewsCurrencies(string symbol, string &currencies[])
{
   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

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده