Errori, bug, domande - pagina 2501
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Questo è quello che succede.
ha provato così:
2019.07.07 18:31:02.708 tst (EURUSD,H1) 4294967295 4294967295 4294967295 4294967295
2019.07.07 18:31:02.708 tst (EURUSD,H1) A
2019.07.07 18:31:02.708 tst (EURUSD,H1) 0 4294967295 4294967295 4294967295
2019.07.07 18:31:02.708 tst (EURUSD,H1) B
2019.07.07 18:31:02.708 tst (EURUSD,H1) 0 4294967295 4294967295 4294967295
2019.07.07 18:31:02.708 tst (EURUSD,H1) sizeof(A) = 4 , sizeof(B) = 4
azzeriamo ancora solo i primi 4 byte
ha provato in un altro modo:
ancora nessun risultato - cancella solo i primi 4 byte
ancora nessun risultato - cancella solo i primi 4 byte
Perché fisicamente la struttura è di 4 byte.
Perché fisicamente la struttura è di 4 byte.
sì, abbiamo già capito che pack() non funziona in MQL - non ho altre opzioni per controllarepack()
Ho pensato di controllare in .dll in C# ma c'è un problema anche lì - MQL vede la firma della funzione chiamata (ricordate la chiamata const nelle firme non ha funzionato per C# )
e quando si trasferiscono i dati in C# sarà possibile fare la conversione dei tipi?
ZS: al massimo, scrivi una .dll in C++ - puoi ricevere / inviare dati "puliti" lì
Non ricordo se è nella documentazione.
Grazie, l'ho trovato. Tutto funziona secondo me. Poiché nel tuo esempio c'è solo un tipo nella struttura, non ha senso allinearlo. Ecco perché dà solo la dimensione del tipo. E qui avete
Ecco la struttura
La documentazione lo spiega molto chiaramente in immagini.
Grazie, l'ho trovato. Tutto funziona secondo me. Poiché nel tuo esempio c'è solo un tipo nella struttura, non ha senso allinearlo. Ecco perché dà solo la dimensione del tipo. E qui abbiamo
E questa struttura
La documentazione lo spiega molto chiaramente in immagini.
Sì, è così che funziona:
2019.07.07 19:16:27.100 tst (EURUSD,H1) 4294967295 4294967295 4294967295 4294967295
2019.07.07 19:16:27.100 tst (EURUSD,H1) A
2019.07.07 19:16:27.100 tst (EURUSD,H1) 0 0 0 0 4294967295
2019.07.07 19:16:27.100 tst (EURUSD,H1) B:
2019.07.07 19:16:27.100 tst (EURUSD,H1) 0 0 0 0
2019.07.07 19:16:27.100 tst (EURUSD,H1) sizeof(A) = 12 , sizeof(B) = 16
totale: pack() esegue l'allineamento dei dati nella struttura per la dimensione del campo massimo sizeof() della struttura
sommario: pack() allinea i dati nella struttura per la dimensione del campo massimo sizeof() della struttura
Non esattamente.
Il campo massimo è di 8 byte; impostiamo l'allineamento a 4 e otteniamo 16. Cioè 2+2|4|2+2|2+addshort doubleint
Oppure 2+addizione|4|4|4
Non esattamente.
Il campo massimo è di 8 byte, impostate l'allineamento a 4 e ottenete 16. Quindi 2+2|4|2+2|2+add short doubleint
Oppure 2+addizione|4|4|4
Sì, probabilmente dovrebbe suonare bene:
in sintesi: pack() esegue l'allineamento elemento per elemento dei dati nella struttura; ogni elemento sarà aggiunto con un valore multiplo di pack() tenendo conto della dimensione massima di() dell'elemento della struttura (non più del valore massimo, meno può essere in aggiunta)
pack(4) :
short = 2 + 2 appended = 4=pack(4)
double =8 - non collassare
int =4 - non allineato
sizeof()=16 byte
Sì, probabilmente è così che dovrebbe suonare:
totale: pack() esegue l'allineamento dei dati nella struttura elemento per elemento, ogni elemento sarà un multiplo di pack() tenendo conto della massima sizeof() dell'elemento della struttura (non più del valore massimo, meno può essere in aggiunta)
pack(4) :
short = 2 + 2 appended = 4=pack(4)
double =8 - non collassare
int =4 - non allineato
sizeof()=16 byte
Sembra contorto, ma per me ha senso)).
Sembra contorto, ma ha senso per me.)))
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
fxsaber, 2019.07.07 15:03
L'ordine dei campi influisce sul consumo di memoria e apparentemente sulle prestazioni.
Non sono ancora riuscito a capirlo completamente.