Come può lo script passare programmaticamente attraverso tutti gli strumenti che sono selezionati nella finestra Market Watch?

 
Colleghi, vi prego di consigliarmi su una cosa.

Come posso passare programmaticamente attraverso tutti gli strumenti che sono selezionati nella finestra "Market Watch" nello script?

Grazie in anticipo.
 

Cerca https://www.mql5.com/en/code/mt4 per un tale script che ricordo.

 
Conosci anche almeno alcune parole chiave da cercare.
 
Recentemente ho risolto questo problema per me stesso. Non riesco a ricordare da chi ho preso in prestito l'idea della forza bruta.
//+------------------------------------------------------------------+  
//----
string Currencies[] = {"AED", "AUD", "BHD", "BRL", "CAD", "CHF", "CNY", 
                       "CYP", "CZK", "DKK", "DZD", "EEK", "EGP", "EUR",
                       "GBP", "HKD", "HRK", "HUF", "IDR", "ILS", "INR",
                       "IQD", "IRR", "ISK", "JOD", "JPY", "KRW", "KWD",
                       "LBP", "LTL", "LVL", "LYD", "MAD", "MXN", "MYR",
                       "NOK", "NZD", "OMR", "PHP", "PLN", "QAR", "RON",
                       "RUB", "SAR", "SEK", "SGD", "SKK", "SYP", "THB",
                       "TND", "TRY", "TWD", "USD", "VEB", "XAG", "XAU",
                       "YER", "ZAR"}; 
string Symbols[];
int    SymbolCount = 0; 
//+------------------------------------------------------------------+
//| СОЗДАЁТ СПИСОК ДОСТУПНЫХ ВАЛЮТНЫХ СИМВОЛОВ                       |
//+------------------------------------------------------------------+
int CreateSymbolList()
  {
   int CurrencyCount = ArrayRange(Currencies, 0);
   int Loop, SubLoop;
   string TempSymbol;
   for(Loop = 0; Loop < CurrencyCount; Loop++)
       for(SubLoop = 0; SubLoop < CurrencyCount; SubLoop++)
         {
           TempSymbol = Currencies[Loop] + Currencies[SubLoop];
           if(MarketInfo(TempSymbol, MODE_BID) > 0)
             {
               ArrayResize(Symbols, SymbolCount + 1);
               Symbols[SymbolCount] = TempSymbol;
               SymbolCount++;
             }
         }
   return(0);
  }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
//---------------------
int deinit()
  {
  Comment("");
  return(0);
  }
//---------------------
//---------------------
int init()
  {
  return(0);
  }
//---------------------
int start()
  {
  int handle,i,s;
 
  s=CreateSymbolList();
  string n= "currency.txt";
  handle=FileOpen(n, FILE_CSV|FILE_WRITE,'.');
  if(handle>0)
    {
      for(i=0;i<=SymbolCount-1;i++)
      {
      FileWrite(handle,i+1,Symbols[i]);
      }
     FileClose(handle);
    }   
//----
   return(0);
 
  }
 
VBAG:
Recentemente ho risolto questo problema per me stesso. Non riesco a ricordare da chi ho preso in prestito l'idea della forza bruta.
Probabilmente da me.
'ZZ_Tutte le quotazioni 0-0080'.
 
Grazie per la vostra risposta. Ma non intendevo solo coppie di valute (strumenti). Posso inserire questi strumenti anche manualmente. Intendevo un'enorme varietà di diversi futures, indici, azioni americane, ecc.
 

Ahimè, non ci sono soluzioni semplici...
La variante più interessante era qui:
'Lista di simboli daSet'.
Chiedo agli sviluppatori di introdurre in futuro una funzione che restituisca l'elenco degli strumenti.
Per esempio:
- INSTR (1, D) tutto ciò che è nel trattare
- INSTR (2, D) tutto ciò che è nella finestra del mercato
D sono gruppi, cioè ciò che si trova nella cartella "Symbols".

Questa è già una richiesta, è un grido dal cuore!!!
Perché avere strumenti che contano centinaia non è più un espediente,
ma dovendo passare attraverso di loro a mano... è un po' selvaggio nella nostra epoca di nanotecnologie... ;)))

 
mricos:
Grazie per la vostra risposta. Ma non intendevo solo coppie di valute (strumenti). Posso inserire questi strumenti anche manualmente. Intendevo un'enorme varietà di diversi futures, indici, azioni americane, ecc.
È tutto lì al link.
Una semplice enumerazione di tutto ciò che è attualmente disponibile. Nessuna sintesi del nome.
Le coppie di valute sono sintetizzate.
 
kombat:

Ahimè, non ci sono soluzioni semplici...
La variante più interessante era qui:
'Lista di simboli daSet'.

Questo metodo non è adatto per un indicatore o uno script universale.
 

Sì, e ha raffreddato l'interesse...
Ha anche scritto agli sviluppatori nelle richieste per MKL5.

A proposito già applicato al terminale.
Per aggiungere anche gruppi di strumenti al set di simboli.
Ora sembra che forex e forexall siano presenti di default,
e sappiamo che MT non è solo forex... ;)

 
VBAG:
Recentemente ho risolto questo problema da solo.
Non funziona quando i DC aggiungono qualcosa di proprio al nome della coppia. Per esempio, "m", "!", "." o "_".
Motivazione: