Comment le script peut-il parcourir de manière programmatique tous les instruments sélectionnés dans la fenêtre Market Watch ?

 
Chers collègues, veuillez me conseiller sur une chose.

Comment puis-je parcourir par programme tous les instruments qui sont sélectionnés dans la fenêtre "Market Watch" dans le script ?

Merci d'avance.
 

Recherchez https://www.mql5.com/en/code/mt4 pour un tel script je me souviens.

 
Connaissez également au moins quelques mots-clés à rechercher.
 
J'ai récemment résolu ce problème pour moi-même. Je ne me souviens plus à qui j'ai emprunté l'idée de la force brute.
//+------------------------------------------------------------------+  
//----
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:
J'ai récemment résolu ce problème pour moi-même. Je ne me souviens plus à qui j'ai emprunté l'idée de la force brute.
Probablement de moi.
"ZZ_Toutes les cotations 0-0080".
 
Je vous remercie de votre réponse. Mais je ne parlais pas seulement des paires de devises (instruments). Je peux également saisir ces instruments manuellement. Je voulais dire une grande variété de contrats à terme, d'indices, d'actions américaines, etc.
 

Hélas, il n'y a pas de solutions simples...
La variante la plus intéressante était ici :
'SymbolList fromSet'.
Je demande aux développeurs d'introduire une fonction qui renvoie la liste des outils à l'avenir.
Par exemple :
- INSTR (1, D) tout ce qui est dans la négociation
- INSTR (2, D) tout ce qui se trouve dans la fenêtre du marché
D sont des groupes, c'est-à-dire ce qui se trouve dans le dossier "Symboles".

C'est déjà une demande, c'est un cri du cœur ! !!
Car avoir des instruments qui se comptent par centaines n'est plus un gadget,
mais devoir les passer en revue à la main... est un peu sauvage à notre époque de nanotechnologies... ;)))

 
mricos:
Je vous remercie de votre réponse. Mais je ne parlais pas seulement des paires de devises (instruments). Je peux également saisir ces instruments manuellement. Je voulais dire une grande variété de contrats à terme, d'indices, d'actions américaines, etc.
Tout est là, sur le lien.
Une simple énumération de tout ce qui est actuellement disponible. Synthèse sans nom.
Les paires de devises sont synthétisées.
 
kombat:

Hélas, il n'y a pas de solutions simples...
La variante la plus intéressante était ici :
'SymbolList fromSet'.

Cette méthode ne convient pas pour un indicateur ou un script universel.
 

Oui, et il a refroidi les intérêts...
J'ai également écrit aux développeurs dans les demandes pour MKL5.

D'ailleurs, j'ai déjà fait une demande pour le terminal.
Pour ajouter également des groupes d'instruments au jeu de symboles.
Il semble maintenant que le forex et le forexall soient présents par défaut,
et nous savons que MT n'est pas seulement le forex... ;)

 
VBAG:
J'ai récemment résolu ce problème pour moi-même.
Cela ne fonctionne pas lorsque les DC ajoutent quelque chose de leur cru au nom de la paire. Par exemple, "m", " !", "." ou "_".