Componer variables para asignarles valor

 
Hola,

En un EA que tengo en desarrollo, se ejecutan ciclos de operaciones de los que necesito, de cada uno de ellos, almacenar una serie de variables con fines estadísticos.
El número de ciclos es indefinido.

Para ello he pensado que podrían crearse variables a través de la programación o por lo menos, asignarles valores construyendo iterativamente su denominación.

Por ejemplo, podría tener las siguientes variables:


int Ciclo1; 
double Ciclo1Pips, Ciclo1NumTrades, Ciclo1Resultado ;

int Ciclo2; 
double Ciclo2Pips, Ciclo2NumTrades, Ciclo2Resultado ;

int Ciclo2; 

double Ciclo2Pips, Ciclo2NumTrades, Ciclo2Resultado ;


..........................

¿Existe alguna forma de asignar un valor a una variable accediendo a ella a partir de la concatenación cadenas?
Por ejemplo, para Ciclo2Pips=7:
     ¿  "Ciclo"+ (string)Num+ "Pips"  ?=7

¿Se puede hacer?

¿Se debiera hacer de otra manera?


Gracias anticipadas,

Juan

 
febrero59:

Hola,

por lo que veo ya hizo la misma pregunta en el foro inglés y ya recibió varias posibles soluciones. También he podido comprobar que usualmente hace las mismas preguntas en el foro español e inglés. De por sí no es ningún problema ni obviamente infringe ninguna norma, pero le agradecería que una vez respuesta/resuelta su duda/problema elimine o edite el hilo (con la solución) donde no haya recibido respuesta a fin de mantener el foro limpio y para no hacer perder el tiempo a nadie contestando algo ya resuelto.

Gracias.

 

Lo tendré en cuenta, como en otras ocasiones. Estoy a la espera de alguna solución complementaria.

 

Planteé también la cuestión en el foro inglés, en el que tuve varias respuestas. Éste es el enlace: https://www.mql5.com/en/forum/438095

En cualquier caso, comentar que he solucionado el desarrollo implantando una estructura de datos, para la que creé este ejemplo: 

struct EstructuraCiclo
   {
      double   CicloPips;
      string   CicloMotivo;
      int      CicloTrades;

   }; 
  #define Num 3 
   EstructuraCiclo mVar[Num];

   int Contador=0;   

//+------------------------------------------------------------------+
void OnTick()
  {
     if(Contador<Num-1)
     { 
         mVar[Contador].CicloPips=0.1; 
         mVar[Contador].CicloMotivo="Buy"; 
         mVar[Contador].CicloTrades=Contador+1; 
        
         Contador+=1;
         
         mFuncion(); 
     }    
  }

//+------------------------------------------------------------------+
   void mFuncion() 
   {
      Print(TimeCurrent()); 
      for( int i = 0; i <= Contador; i++ )
      {
        Print( "Ciclo: ",i," | Pips: ",mVar[ i ].CicloPips," | Motivo: ",mVar[ i ].CicloMotivo, " | Trades: ", mVar[ i ].CicloTrades );
      }
 
   }
Compose variables to assign value to them
Compose variables to assign value to them
  • 2022.12.15
  • www.mql5.com
Hello, In an EA that I have in development, there are cycles of operations that I need, from each one of them, to store a series of variables for s...