ENUM Symbol list as an INPUT

Martin Nohejl  

Hi, I am going to do following:

I want to have symbol as an input parameter, so I want an input variable (enum) from which I will choose the right symbol, like this:

I have done this by this code:

enum ENUM_SYMBOL
   { 
    EURUSD=0, 
    GPBUSD=1, 
    USDCHF=2
   };

That works for me perfectly. But I would like to fullfill the enum dynamicaly by the whole list of symbols (SymbolsTotal(0);).

Somehow probably by code:

int a = SymbolsTotal(0);
for(int i=0; i!=a;i++){
....
}


Do you know how to do that?

Thanks a lot.

fxsaber  

Run the EA in Terminal (!= Tester)

enum ENUM_SYMBOL
 { 
  EURUSD= 0 , 
  GPBUSD= 1 , 
  USDCHF= 2
 };

input ENUM_SYMBOL Symbol;
   
void OnInit()
{
  ChartSaveTemplate(0, __FILE__); // tpl-file
}


tpl-file:

<expert>
name=Test
path=Experts\Test.ex5
expertmode=0
<inputs>
Symbol=0
</inputs>
</expert>

The enumeration is contained in the source, unfortunately.


Real input-types: long, double and string.

Stanislav Korotky  
Martin Nohejl:

I want to have symbol as an input parameter, so I want an input variable (enum) from which I will choose the right symbol, like this:


Your option is to develop a custom settings panel for your EA. This way you can populate input parameters dynamically. Standard EA settings dialog does not support this.

Martin Nohejl  
Stanislav Korotky:

Your option is to develop a custom settings panel for your EA. This way you can populate input parameters dynamically. Standard EA settings dialog does not support this.

Please can you give me a link to some guide?
b.mohammadi  

here is the solution.

enum ENUM_SYMBOL {

   Current = 0,

   USDJPY_i,

   NZDUSD_i,

   CADJPY_i,

   USDCAD_i,

   WSt30_m_i,

   //LTCUSD_i,

   //USDRUR,

   //USDRUR_i,

   //XRPUSD_i,

   EURNZD_i,

   XBNUSD_i,

   USDCHF_i,

   BTCUSD_i,

   GBPUSD_i,

   GER40_m_i,

   XAGUSD_i,

   HSI50_i,

   ETHUSD_i,

   XAUUSD_i,

   EURCHF_i,

   SPX500_m_i,

   NQ100_m_i,

   EURUSD_i,

   AUDUSD_i,

   GBPJPY_i,

   GBPCAD_i,

   EURCAD_i,

   GBPCHF_i,

   NZDCAD_i,

   EURGBP_i,

   AUDCAD_i,

   EURAUD_i,

   AUDNZD_i,

   EURJPY_i,

   CADCHF_i,

   AUDCHF_i,

   NZDJPY_i,

   GBPAUD_i,

   AUDJPY_i,

   CHNA50_m_i,

   GBPNZD_i,

   CHFJPY_i,

   ASX200_i,

   CAC40_i,

   STOXX50_i,

   NQ100_i,

   NFTY50_m_i,

   GBPSGD_i,

   NZDCHF_i,

   GER40_i,

   FTSE100_i,

   SPX500_i,

   NIKK225_i,

   IBEX35_i,

   WTI_i,

   BRN_i,

   NG_i,

   //_BTCEUR,

   //_DXY,

   //USDDKK_i,

   //USDSGD_i

};

input ENUM_SYMBOL SelectedSymbol;

string getSymbol()

{

   if(SelectedSymbol == Current)

      return _Symbol;

   return EnumToString(SelectedSymbol);

}



now use function getSymbol to read the selected symbol by tester

Reason: