Errori, bug, domande - pagina 2754
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
Il punto è poter passare per riferimento.
Così come con le stringhe, gli sviluppatori hanno l'opportunità (se non l'hanno già fatto) di passare tutto per riferimento senza copiare effettivamente la variabile.
E sarà una soluzione non per una particolare strutturaMqlTick, ma per tutte le occasioni
Il che conferma ancora una volta che non ha sensousare direttamente _Digits,_Point , _Period, _LastError, ecc. (e anche _Symbol può essere sostituito da NULL). Infatti, devono essere dichiarati come const volatile
E voi, al contrario, proponete di allargare questa gamma
Hai ragione, ma sonoquasi volatili, tranne il flag IsStopped - è volatile al 100%, cioè qualsiasi lettura di IsStopped è una lettura della memoria al 100%.
Per altri,quasivollatylе significa che il compilatore PUÒ mettere in cache il valore di una variabile in un registro alla prima chiamata e usare il valore in cache la prossima volta che si accede a tale variabile, ma solo all'interno di una funzione o ramo di chiamate, se sono delineate in una funzione.
Questo è possibile (e necessario) perché cambiare le variabili predefinite (eccetto IsStopped) non può avvenire all'interno di un punto di ingresso MQL (funzione OnXXX)
Per quanto riguarda il MODIFICATORE DIVARIABILI, diciamo che è usato da programmatori di costruttori per programmatori.
Come sappiamo, si può cambiare la costante di una variabile attraverso la conversione, quindi non ci si può fidare del compilatore con il modificatore const.
Se il compilatore vede che la variabile non ha cambiato il suo valore ed è inizializzata come una costante, trasformerà tale variabile in un valore immediato (ImmediateValue) anche senza il modificatore const
. Per quanto riguarda _LastTick, stiamo discutendo ma...
Questa è una struttura, non un semplice tipo atomico e può essere cambiata all'improvviso, in qualsiasi punto del programma MQL, compreso il momento di ottenere il valore.
Si scopre che per affrontare questa struttura è necessario introdurre un sincronizzatore.
Stiamo lavorando costantemente sulle prestazioni, in particolare, a causa di questo alto tasso di rilascio delle build.
Abbiamo in programma di fare molto lavoro per velocizzare il codice MQL
Per quanto riguarda _LastTick, stiamo discutendo, ma...
Questa è una struttura, non un tipo semplice-atomico e può essere cambiata improvvisamente, in qualsiasi punto del programma MQL, compreso il momento di ottenere il valore.
Si scopre che per affrontare questa struttura abbiamo bisogno di introdurre un sincronizzatore.
ma nel tester _LastTick non può cambiare in nessun punto del programma MQL?
se sì, allora date tale soluzione solo per i tester, dove la velocità dei calcoli è più importante
ma nel tester _LastTick non può cambiare in nessun punto del programma MQL?
se sì, allora date una tale soluzione solo per il tester dove la velocità di calcolo è più importante
Quindi, cosa vi impedisce di richiedere questo tick nel gestore OnTick una volta e poi lavorare con i dati ricevuti?
Le basse qualifiche dei creatori di EA con cui Market e Cloud sono caricati sono un ostacolo.
Quindi, cosa impedisce di richiedere il tick una volta nel gestore OnTick, e di lavorare ulteriormente con i dati ricevuti? Non costa praticamente nulla. Perché richiederlo di nuovo 100 volte (come nei test di cui sopra), creando artificialmente dei freni sul posto? Quindi, il problema di un codice EA storto si propone di risolvere complicando il lavoro interno di MT. O hai delle misure normali?
Gli eventi che devono essere gestiti da "OnTick" sono ricevuti esternamente in una coda con priorità. In altri gestori, è utile assicurarsi che non si siano verificati tali nuovi eventi, altrimenti i dati del tick precedente non sono validi/aggiornati.
Quindi cosa ti impedisce di richiedere questo tick una volta nel gestore OnTick e poi lavorare con i dati risultanti? È praticamente inutile. Perché preoccuparsi di richiederlo 100 volte (come nei test di cui sopra), creando artificialmente un freno sul posto.
Questo è esattamente quello che faccio nel tester
Cioè il problema di un codice EA storto dovrebbe essere risolto complicando il funzionamento interno di MT. O hai delle misure normali?
Bene, il codice è determinato dalle comuni pratiche di codifica, guardate QB e l'uso delle linee di sicurezza in questi esempi
Non uso SB, ho misurato con un profilatore e cercato soluzioni per mesi, c'era un thread sui test di velocità, gettando in parte soluzioni alternative
la normalità della misurazione? è un pendio scivoloso che dovrà essere affrontato seriamente, sono contento della mia EA per l'ottimizzazione, c'era un passaggio a 18 mesi 6 sec, ora 2,5 sec , imho ho fatto un buon lavoro su me stesso ))))
non 0 come attualmente, cioè effettivamente REASON_PROGRAM
Quando si riavvia il terminale, scrive continuamente e senza sosta nel registro dei record
Il tempo della barra della cronologia nel registro è in costante aumento. Il grafico giornaliero GBPUSD è aperto e si agita - zero, prima e seconda barra sono cancellate/create. E così gira e rigira.
Sono qui ad aspettare. Riempirà tutto l'SSD con questi registri o si fermerà alla fine...
Il registro di ieri è nel rimorchio.