¿Un error en la función OrderSend()? - página 7

 
tara:
Como no prevé que la variable se inicialice al reiniciar el programa, DEBE.

Una vez más, para los que están en el tanque:

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   static int cc=20;
   Print("cc = ",cc);
   cc++;
   
   return(0);
  }
Ejemplo de obras. La inicialización funciona.
 
hoz:

Aunque este punto(del libro de texto) no me queda muy claro:

"Las variables estáticas se inicializan una vez antes de llamar a la función especializada init(), es decir, el valor de esta variable no se pierde al salir de la función, dentro de la cual se declara una variable estática.

¿Qué tiene que ver esto con "antes de llamar a la función especial init()" y después de "es decir, cuando se sale de una función de usuario (a juzgar por el contenido) en la que se declara una variable estática? "

Una función en la que se declara una variable estática puede estar al final de un programa... es decir, al final del código o en otro lugar. La funcióninit() se ejecuta una vez justo antes de que se inicie el programa. Resulta ser incoherente. ¿Cómo se puede inicializar una variable antes de la funcióninit() ?

No importa en qué parte del programa esté la función, las variables estáticas están fuera de las funciones.
 
PapaYozh:
No importa en qué parte del programa esté la función, las variables estáticas están fuera de las funciones.

¿Qué quieres decir?
 
tara:

No, no lo hará. Es un error :)
Es una mala costumbre confiar en la inicialización por defecto.
 
PapaYozh:

Una vez más, para los que están en el tanque:

El ejemplo funciona. La inicialización funciona.

Clínica...

Sí, la inicialización funciona. Exactamente una vez. Y al reiniciar, no lo hace. Ojalá fuera así. ¿Está más claro?

 
Por el amor de Dios, no utilices la estática en los EA.
 
tara:

Clínica...

Sí, la inicialización funciona. Exactamente una vez. Y al reiniciar, no lo hace. Ojalá fuera así. ¿Está más claro?

Sólo funcionará una vez, cuando reinicie el Asesor Experto.

¿A qué te refieres con reiniciar, entrar en las propiedades del Asesor Experto y salir pulsando OK?

 
TheXpert:
Por el amor de Dios, no utilices la estática en los EA.
No "no usar", sino"usar correctamente" o"no usar incorrectamente".
 

Sí, y también:

1. Cuando se cambia la cuenta;

2. Al cambiar un instrumento;

3. Al cambiar el TF.