[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 4

 

Non sorridere

 
Fox_RM: Nelle iterazioni successive tutto va bene. Perché questo è il caso?

una delle due cose:

- Tu usi l'inizializzazione delle variabili nella sezione init(), non tutte le funzioni funzionano correttamente lì

- forse non hai inizializzato qualche variabile, è stato a lungo considerato buona pratica di programmazione inizializzare con almeno qualche valore dopo aver descritto le variabili

ZS: perché hai l'array ArrHigh[i] e usi ArrHigh[0]?

 

E un'altra piccola domanda.

Mi sono imbattuto nella seguente voce:

 void IncArray( int & Array[] )

Tutto sembra avere senso, tranne che cosa significa il segno & in questo caso ?

 
Fox_RM Cosa significa il segno & in questo caso ?
https://docs.mql4.com/ru/basis/variables/formal
 

IgorM:

Una delle due:

- usi l'inizializzazione delle variabili nella sezione init(), non tutte le funzioni funzionano correttamente lì

- forse non hai inizializzato qualche variabile, è stato a lungo considerato buona pratica di programmazione inizializzare con almeno qualche valore dopo aver descritto le variabili

.

Hai assolutamente ragione, " si usa l'inizializzazione delle variabili nella sezione init(),..." - c'è un tale peccato)

"...qualsiasi valore" - viene assegnato 0.

"perché hai l'array ArrHigh[i] e usi ArrHigh[0]..." Il punto è questo.

Ho bisogno di ottenere il valore High[i] per lavorare più avanti nel codice .

Se faccio un'assegnazione a una variabile nel ciclo, sarà sovrascritta durante le prossime iterazioni. Non riesco a pensare a niente di più intelligente che assegnare

High[i] in un array e poi lavorare solo con ArrHigh[0]. La prossima volta che questo ciclo colpisce, tutti i valori vengono reinizializzati.

Forse c'è un'opzione migliore?

 
Fox_RM:
1.Hai assolutamente ragione, "si usa l'inizializzazione delle variabili nella sezione init(),..." - c'è un tale peccato)

2.Forse c'è un'opzione migliore?

1. è possibile e a volte è sufficiente inizializzare nella sezione init(), ho solo prestato attenzione al fatto che le funzioni standard non funzioneranno tutte correttamente, l'accesso alle serie temporali funzionerà correttamente

2. Non capisco perché devi complicare il compito? l'array High[i] non andrà da nessuna parte perché copiarlo di nuovo? se hai paura di "perdere una barra" quando apri una nuova barra, ricorda il tempo della barra - il tempo non cambierà mai, puoi usare questa costruzione High[iBarShift(NULL,0,mytime)]

ZS: dopo la frase: "Se fai un'assegnazione a una variabile nel ciclo, sarà sovrascritta nelle iterazioni successive." Sospetto che il problema sia nell'inizializzazione casuale di qualche variabile, prova a stampare() tutte le variabili nella sezione di codice problematica

 
IgorM:
Grazie Igor, proverò così!
 

Lo sto studiando da una settimana).

Ho bisogno di prescrivergli di aprire due ordini (multidirezionali) con un certo stop e profitto e poi, se li chiudo, apro altri ordini con lo stesso importo esatto + controllo di flusso e solo posizioni aperte con 8 a 8

Grazie in anticipo))

 
vkontakte0:

Lo sto studiando da una settimana).

Ho bisogno di prescrivergli di aprire due ordini (multidirezionali) con un certo stop e profitto e poi, se li chiudo, apro altri ordini con lo stesso importo esatto + controllo di flusso e solo posizioni aperte con 8 a 8

grazie in anticipo)))

Penso che un solo libro di testo non sia sufficiente. La FMI ha molti siti diversi dove vengono date le basi del MQL e le basi della "scrittura esperta" (ti mando i link in privato se ne hai bisogno). Per esempio, ho

Li ho scaricati e convertiti in formato chm. Li tengo sempre a portata di mano. Se ho intenzione di fare trading con gli Expert Advisors penso di avere fretta, ho bisogno di familiarizzare con gli indici e poi complicare la questione IMHO.