Un bug nella funzione OrderSend() ? - pagina 7

 
tara:
Poiché non prevede che la variabile sia inizializzata al riavvio del programma, si DEVE.

Ancora una volta, per quelli nel serbatoio:

//+------------------------------------------------------------------+
//| 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);
  }
Esempi di lavori. L'inizializzazione funziona.
 
hoz:

Anche se questo punto(del libro di testo) non mi è del tutto chiaro:

"Le variabili statiche sono inizializzate una volta prima di chiamare la funzione specializzata init(), cioè, il valore di questa variabile non è perso quando si lascia la funzione, all'interno della quale è dichiarata una variabile statica.

Che cosa ha a che fare questo con " prima di chiamare la funzione speciale init() " e dopo " cioè quando si esce da una funzione utente (a giudicare dal contenuto) in cui è dichiarata una variabile statica? "

Una funzione in cui viene dichiarata una variabile statica può essere alla fine di un programma... cioè alla fine del codice o da qualche altra parte. La funzioneinit() viene eseguita una volta appena prima dell'inizio del programma. Risulta essere incoerente. Come si può inizializzare una variabile prima della funzioneinit() ?

Non importa dove la funzione sia nel programma, le variabili statiche sono al di fuori delle funzioni.
 
PapaYozh:
Non importa dove sia la funzione nel programma, le variabili statiche sono fuori dalle funzioni.

Cosa vuoi dire?
 
tara:

No, non lo farà. È un bug :)
È una cattiva abitudine affidarsi all'inizializzazione di default.
 
PapaYozh:

Ancora una volta, per quelli nel serbatoio:

L'esempio funziona. L'inizializzazione funziona.

Clinica...

Sì, l'inizializzazione funziona. Esattamente una volta. E al riavvio, non lo fa. Vorrei che fosse così. È più chiaro?

 
Per l'amor del cielo, non usate la statica negli EA.
 
tara:

Clinica...

Sì, l'inizializzazione funziona. Esattamente una volta. E al riavvio, non lo fa. Vorrei che fosse così. È più chiaro?

Funzionerà solo una volta, quando si riavvia l'Expert Advisor.

Cosa intendi per riavviare, entrando nelle proprietà di Expert Advisor e uscendo premendo OK?

 
TheXpert:
Per l'amor del cielo, non usate la statica negli EA.
Non "non usare", ma"usare correttamente" o"non usare in modo scorretto".
 

Sì, e anche:

1. Quando l'account viene cambiato;

2. Quando si cambia uno strumento;

3. Quando si cambia il TF.

Motivazione: