Errori, bug, domande - pagina 2646
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
perché il template emette solo tipi per parametro, non per valore di uscita.
Questo non è esatto.
Non è esatto.
Grazie!
Sì, funzionerà, mi sono confuso nella sintassi
ZS: ora funziona tutto come previsto:
serializzazione Base64 delle strutture PODQuesto non è sicuro.
No, non lo è. Hai notato l'impostazione esplicita dei tipi di parametri template nella funzione, e io stavo parlando dell'output, dell'impostazione esplicita a cui ha risposto fxsaber prima di me. e prima di te
No, è vero. Hai notato l'impostazione esplicita dei tipi di parametri template nella funzione, e io stavo parlando dell'output, dell'impostazione esplicita a cui ha risposto fxsaber prima di me. e prima di te
Non sono riuscito a trovarlo sul forum o nei documenti, quindi ho una domanda:
1. qual è la dimensione massima della stringa che MQL5 può memorizzare?
2. qual è la dimensione massima della stringa che MQL4 può memorizzare?
3. se c'è una carenza di memoria, questa dimensione massima sarà ridotta (o nessuna memoria allocata per la stringa) o ci sarà un errore di runtime?
Difetti:
(non risolto da MT5(build 2319)) bug nell'operazione di cache della classe template: "Si crea un oggetto complesso avvolto con il tipo interno "C" diverse volte, e si scopre che è un tipo di dati molto diverso, forse "B", forse "int", qualsiasi cosa si voglia...".
(non risolto da MT5(build 2319)) bug con la generazione del codice della classe template quando si usa la classe interna.
(non corretto MT5(build 2319)) bug quando si definisce una classe interna - nessuna possibilità di fare esplicitamente riferimento allo spazio dei nomi globale quando si specifica una classe base.
Suggerimenti:
ref - sulla necessità di introdurre la funzionalità delle dichiarazioni typedef in MQL.
Riferimento- per permettere di forzare la generazione di costruttori di copia e operatori di assegnazione predefiniti.
Difetti:
Buon per te che tieni traccia delle tue segnalazioni di bug. Non l'ho fatto, ecco perché tutto si è irrimediabilmente perso nel forum.
Forse dovresti aggiungere alcuni degli stessi record di hash ai tuoi post di segnalazione di bug, in modo da poterli cercare tutti insieme.
Non sono riuscito a trovarlo sul forum o nelle banchine, quindi ho una domanda:
1. qual è la dimensione massima della stringa che MQL5 può memorizzare?
2. qual è la dimensione massima della stringa che MQL4 può memorizzare?
3. se la memoria è insufficiente, questa dimensione massima sarà ridotta (o non sarà allocata memoria per la stringa) o ci sarà un errore di runtime?
provato a testare una stringa in MT4
La memoria perde lentamente (5,1 su 11,9), in MT4 nel log:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
in generale, per compiti ragionevoli, si può usare una grande stringa, forse più tardi copierò il file attraverso una stringa per controllare
UPD: sostituitouchar u_arr[102400]; con uchar u_arr[524224]; per accelerare il processo
In conclusione: in MT4, il massimo approssimativo che può essere messo in stringa è:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: out of memory
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
cioè circa 640 MB
SZZ: MT5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) esaurito la memoria in 'tst_string.mq5' (41,12)
provato a testare la stringa in MT4
La memoria sta perdendo un po' in Win Manager (5.1 su 11.9), in MT4 nel log:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
in generale, per compiti ragionevoli, si può usare una grande stringa, forse più tardi copierò il file attraverso una stringa per controllare
UPD: sostituito uchar u_arr[ 102400 ]; da uchar u_arr[524224]; per accelerare il processo
In conclusione: in MT4 il massimo approssimativo che può essere messo in stringa è:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: out of memory
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
cioè circa 640 MB
SZZ: MT5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) esaurito la memoria in 'tst_string.mq5' (41,12)
Questa è la lunghezza della stringa per Unicode, quindi in MB è almeno il doppio. 1,3 GB per MT4, il che ha senso dato che hai bisogno di un buffer di memoria continuo e MT4 è un'applicazione a 32 bit. Quindi la limitazione di mql4 non è una limitazione in sé, ma è solo limitata dalla memoria disponibile.
Sono un po' sorpreso che MT5 non permetta di più, dato che sembra che tu abbia molta memoria disponibile. Farò del mio meglio dalla mia parte.
Questa è la lunghezza della stringa per Unicode, quindi in MB è almeno il doppio. 1,3 GB per MT4, il che ha senso dato che hai bisogno di un buffer di memoria continuo e MT4 è un'applicazione a 32 bit. Quindi la limitazione di mql4 in sé non è una limitazione, è solo limitata dalla memoria disponibile.
Sono un po' sorpreso che MT5 non permetta di più, dato che sembra che tu abbia molta memoria disponibile. Farò del mio meglio dalla mia parte.
Ho 12gb di memoria, Windows 10, memoria libera circa 8gb
Avevo bisogno di questo test per scoprire la lunghezza massima consentita delle linee nei terminali mt4/ mt5
Ora voglio scambiare tra i terminali attraverso il database Redis
Redis è un database molto semplice e funziona solo con le stringhe (chiave - valore --> strin - string)
Ieri ho serializzato le strutture POD in Base64 e questo aumenta la dimensione dei dati di circa 1/3
Penso che anche in questo caso ho la possibilità di scambiare strutture con dimensioni di 400 Mb per transazione - che è più che sufficiente per qualsiasi scopo! ;)