array is not allowed as input

 

Hi .I want to define an array like this :

input double fibo[4]={0,0.236,0.382,0.618};

when use in optimization i want start this numbers from begin to end .

but i see error "array is not allowed as input "

also i try with enum , but also enum only accept int number not double

enum enum_fibo
  {
   fibo_0_236=0.236,
   fibo_0_382=0.382,
   fibo_0_618=0.618,
   fibo_0_786=0.786,
   fibo_1=1,
   fibo_1_618=1.618,
  };

input enum_fibo fibo_0_236;

error : "'=' - constant expression is not integral"

please guide me .

 

Use integers in enum, and then cast them to type 'double'

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2022, Vladimir Karputov |
//|                      https://www.mql5.com/en/users/barabashkakvn |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2022, Vladimir Karputov"
#property link      "https://www.mql5.com/en/users/barabashkakvn"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Enum Fibo                                                        |
//+------------------------------------------------------------------+
enum ENUM_FIBO
  {
   fibo_0_236=236,   // 0.236
   fibo_0_382=382,   // 0.382
   fibo_0_618=618,   // 0.618
   fibo_0_786=786,   // 0.786
   fibo_1=1000,      // 1.0
   fibo_1_618=1618,  // 1.618
  };
//--- input parameters
input ENUM_FIBO   InpFibo  = fibo_0_236; // Fibo ... 
//---
double   dbl_fibo;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   dbl_fibo=InpFibo/1000.0;
   Print("ENUM: ",IntegerToString(InpFibo),", ENUM to double: ",DoubleToString(dbl_fibo,3));
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+


Result:

Test (USDJPY,H1)        ENUM: 236, ENUM to double: 0.236
Files:
Test.mq5  5 kb
 
Vladimir Karputov #:

Use integers in enum, and then cast them to type 'double'


Result:

thanks .