Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 658

 
Pomeriggio!!!

Ho notato che sto avendo problemi a passare attraverso gli ordini da j=0 a j=OrdersTotal() - il conteggio continua ad andare fuori (vedi pr).
E non può iniziare da 0 e saltare attraverso alcune decine.
Molto probabilmente riprende con ogni nuovo tick, ma non è chiaro perché non inizia con 0, ma salta solo attraverso diversi numeri e come affrontarlo.

Qualcuno ha incontrato questo problema? Qual è la soluzione a questa situazione?
File:
test.jpg  82 kb
 
Algotrader18:
Pomeriggio!!!

Ho notato che non sono in grado di passare attraverso gli ordini da j=0 a j=OrdersTotal() - il conteggio continua ad andare fuori strada (vedi il precedente).
E non può iniziare da 0 e saltare attraverso alcune decine.
Molto probabilmente riprende con ogni nuovo tick, ma non è chiaro perché non inizia con 0, ma salta solo attraverso diversi numeri e come affrontarlo.

Qualcuno ha incontrato questo problema? Qual è la soluzione a questa situazione?

Gli ordini dovrebbero essere enumerati in un ciclo, non ad ogni tick... Per essere più precisi, è arrivato un tick e tutti i vostri ordini sono stati contati nel ciclo: for(j=0;j<OrderTotal;j++)

OrdersTotal() mostra quanti ordini sono aperti (inclusi gli ordini pendenti, inclusi gli ordini su tutti i simboli... in totale... Ecco quanti ordini sono aperti nel terminale - ecco quanti )))).

La numerazione degli ordini è come negli array, da 0 a OrdersTotal()-1 - questo è l'ultimo ordine, e probabilmente hai un numero di biglietto inesistente [OrdersTotal()] o qualche altra informazione che è difficile da indovinare.

 

Buon pomeriggio!


Potete dirmi quanti caratteri può contenere un commento su un ordine?

 
Algotrader18:
Pomeriggio!!!

Ho notato che sto avendo problemi a passare attraverso gli ordini da j=0 a j=OrdersTotal() - il conteggio continua ad andare fuori (vedi pr).
E non può iniziare da 0 e saltare attraverso alcune decine.
Molto probabilmente riprende con ogni nuovo tick, ma non è chiaro perché non inizia con 0, ma salta solo attraverso diversi numeri e come affrontarlo.

Qualcuno ha incontrato questo problema? Qual è la via d'uscita da questa situazione?
E perché abbiamo bisogno di informazioni su tutti gli ordini ogni tick? Non sarebbe meglio introdurre delle restrizioni sugli ordini di visualizzazione, per esempio ogni nuovo minuto, cinque minuti, ..., ora?
 

Su alcuni VPS, il carattere dell'interfaccia EA è molto più grande di quello programmato nel codice MKL.

Come cambiarlo, chi lo sa?


 

Domanda: OnTimer() azzera i calcoli quando arriva un tick?

Nella mia funzione OnTick() ho dei calcoli molto grandi e non vengono prodotti dati, solo dopo un certo tempo, a volte quasi immediatamente, a volte un paio di minuti. Per quanto ne so, questo è dovuto al fatto che se durante il calcolo è arrivato un tick, tutti i calcoli vengono fermati e ricominciano.

Ma non ho bisogno di farli spesso, quindi vorrei metterli in un timer?

 
Roman Sharanov:

Domanda: OnTimer() azzera i calcoli quando arriva un tick?

Nella mia funzione OnTick() ho dei calcoli molto grandi e non vengono prodotti dati, solo dopo un certo tempo, a volte quasi immediatamente, a volte un paio di minuti. Per quanto ne so, questo è dovuto al fatto che se durante il calcolo è arrivato un tick, tutti i calcoli vengono fermati e ricominciano.

Ma non ho bisogno di farli spesso, quindi vorrei metterli in un timer?

Come fa a sapere questo? Non è così.

Finché tutti i calcoli iniziati con l'arrivo del tick non sono completati, tutti i tick successivi vengono saltati.

 
Artyom Trishkin:

Come fa a saperlo? Non è così.

Finché tutti i calcoli iniziati con l'arrivo del tick non sono completati, tutti i tick successivi vengono saltati.

Hmm, ho visto da qualche parte che è il contrario, quindi mi sbaglio.
Mi chiedo, perché con gli stessi calcoli quando posiziono un EA su un grafico, i risultati sono a volte immediati e a volte devo aspettare per molto tempo?

È qui che entrano in gioco i tic.

 
Roman Sharanov:

Hm, ho visto da qualche parte che è viceversa, significa che mi sbaglio
Mi chiedo, perché con gli stessi calcoli, quando metto l'EA sul grafico, i risultati a volte arrivano subito, e a volte devo aspettare molto tempo?

E arrivano i tic.

Nessuno può dirlo senza il codice.

 
Artyom Trishkin:

Nessuno può dirlo senza il codice.

Ho anche trovato un grave inconveniente, ci sono troppe chiamate CopyClose()

Potete dirmi come copiare le quotazioni da un array di coppie di valute in un ciclo?

Sembrerebbe un array doppio, ma MQL non lo supporta, come %.

...
double all_data[N][];
for(int i = 0; i < N; n++){
        CopyClose(Pairs[i], PERIOD_CURRENT, 1, Count, all_data[i]);
}
Motivazione: