Selezionare un simbolo nelle impostazioni - pagina 7

 
Aleksey Mavrin:

1. È già disponibile.

Puoi darmi un link o dove guardare?

 
Alexey Viktorov:

Questa è la seconda opzione che ho descritto. Scambia le valute dalla lista preparata in una linea separata da virgole. Solo che nella mia variante è un po' diverso. La lista si presenta così

Poi l'array viene riempito dalla lista e si opera con l'array. E definiamo anche il suffisso della valuta e lo uniamo automaticamente quando riempiamo l'array. Questo per evitare di dover ridigitare la lista in diversi account.

È passato così tanto tempo e me ne sono reso conto solo ora.

//+------------------------------------------------------------------+
//|                                            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);
  }
//+------------------------------------------------------------------+