Sélectionnez un symbole dans les paramètres - page 7

 
Aleksey Mavrin:

1. il est déjà disponible.

Pouvez-vous me donner un lien ou un endroit où chercher ?

 
Alexey Viktorov:

C'est la deuxième option que j'ai décrite. Échangez les devises de la liste préparée dans une ligne séparée par des virgules. Seulement dans ma variante, c'est un peu différent. La liste ressemble à ceci

Ensuite, le tableau est rempli à partir de la liste et nous opérons avec le tableau. Et nous définissons également le suffixe de la devise et le joignons automatiquement lors du remplissage du tableau. Cela permet d'éviter de devoir retaper la liste dans différents comptes.

Cela fait si longtemps et je viens seulement de le réaliser.

//+------------------------------------------------------------------+
//|                                            AccountInfoDouble.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| ENUM_FOREX_CROSSES                                                 |
//+------------------------------------------------------------------+
enum Enum_Symbol {EURUSD,GBPUSD,USDCHF,USDJPY,USDCAD,AUDUSD,AUDNZD,AUDCAD,AUDCHF,AUDJPY,
                  CHFJPY,EURGBP,EURAUD,EURCHF,EURJPY,EURNZD,EURCAD,GBPCHF,GBPJPY,CADCHF
                 };
//+------------------------------------------------------------------+
input double      InpLots = 0.1;    // Lots
input Enum_Symbol Symb    = EURUSD; // Forex.crosses
//---
string symb_name[]= {"EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD","AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",
                     "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY","EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"
                    };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double priceL=0.0;
   double marginL=0.0;
//--- select lot size
   if(!SymbolInfoDouble(symb_name[Symb],SYMBOL_ASK,priceL))
      return;
   if(!OrderCalcMargin(ORDER_TYPE_BUY,symb_name[Symb],InpLots,priceL,marginL))
      return;
   if(marginL<=0.0)
      return;
   Alert(symb_name[Symb]," \\  ","price "," =  ",priceL);
   Alert(symb_name[Symb]," \\  ","margin"," =  ",marginL);
   printf("price  =  %G",priceL);
   printf("margin =  %G",marginL);
  }
//+------------------------------------------------------------------+