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

 
Владимир Казаков #:
E ditemi, c'è una differenza nella velocità di elaborazione tra un array statico e uno dinamico?

Se si confronta l'elaborazione di due array molto grandi, statici e dinamici, ci può essere o meno una differenza... Nell'uso normale, non c'è praticamente nessuna differenza.

 

Mihail Matkovskij, Andrey Sokolov, grazie amici, per la risposta chiara e veloce!

C'era davvero un errore con OP_SELL, OP_BUY (confuso per disattenzione). Ho normalizzato tutto per nDigits, aggiunto un controllo da OrderSend per gli errori. Spero che tutto funzioni. Non posso controllare ora, il mercato è chiuso )). Ora fino a lunedì

 
Mihail Matkovskij #:

Se si confrontano 2 array molto grandi, statici e dinamici, ci può essere o meno una differenza... Nell'uso normale, non c'è quasi nessuna differenza.

Sfortunatamente, c'è...

La differenza nell'uso delle due funzioni:

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

sarà significativo.

Se si conosce in anticipo la dimensione massima dell'array e non è troppo grande 🚲

è meglio distribuirlo in anticipo

 
Владимир Казаков #:
C'è una differenza nella velocità di elaborazione tra un array statico e uno dinamico?

Cosa si intende per elaborazione?

In ogni caso, l'esistenza di una differenza e la sua dimensione per un caso particolare può essere appresa dal profiling.

 
Maxim Kuznetsov #:

storicamente ci sono state situazioni in cui l'Ask Bid è arrivato non normalizzato

sono arrivati con più caratteri che sul simbolo?

 

Forum sul trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4 e MQL5, consigli e discussioni su algoritmi e codici

Maxim Kuznetsov, 2022.01.15 11:29

c'è purtroppo...

la differenza nell'uso delle due funzioni:

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

sarebbe significativo.

se si conosce in anticipo il volume massimo di un array e non è troppo grande 🚲

è meglio distribuirlo in anticipo.

E chi lo fa quando si ha bisogno di velocità, mi vergogno a chiederlo?

Ecco come si fa:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Tutte le domande dei principianti su MQL4 e MQL5, aiuto e discussione di algoritmi e codici

Mihail Matkovskij, 2022.01.15 10:24

input int     trendSlowCountBar=9;

double  MAslowTrend[];

int OnInit() {
  ArrayResize(MAslowTrend, trendSlowCountBar, 0);
  ...
  return(INIT_SUCCEEDED);
}

Potete usarlo come qualsiasi array e non importa che tipo di array sia.

Sono cose semplici! Ma no. Spiegherò in un centinaio di pagine ciò che è già ovvio...

 
Andrey Sokolov #:

sono venuti con più segni che sul simbolo?

????

che tipo di segni?

 
Maxim Kuznetsov #:

????

Quali segni?

Ora si dimostrerà ancora quello che Ask e Bid arrivano. E nella nuova costruzione ci sarà un fallimento e il prezzo non verrà normalizzato. O forse gli sviluppatori decideranno di cambiare il concetto (dal momento che SL e TP dovrebbero essere normalizzati, è possibile fare prezzi di entrata sullo stesso principio). E scriveranno che ora Ask e Bid devono essere normalizzati. E poi comincerà a correre. Comincerà a riscrivere tutte le sue domande. E quelli a cui ha scritto domande da freelance non saranno soddisfatti (perché gli ordini non si apriranno più normalmente) e chiederanno miglioramenti.

 
Andrey Sokolov #:

quelli sono venuti con più segni che sul simbolo?

Sì, è quello che è successo. In generale, qualsiasi numero in virgola mobile che va al server - deve essere normalizzato - è un assioma di buon tono e funzionamento stabile (indipendentemente da ciò che è stato o non è stato chi-detto, o ciò che è scritto nella documentazione ... (Oggi dice una cosa, domani un'altra)).

Se avete bisogno di costruire un oggetto grafico sul terminale, non avete bisogno di normalizzarlo, ma se lo richiedete sul server, dovete

 
Se il server non accetta valori di prezzo o di dimensione del lotto non normalizzati, non può nemmeno avere valori non normalizzati.