Errori, bug, domande - pagina 2676
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
MT5 (build 2347) Perché un overhead così grande quando si aggiunge un elemento alla volta a un array usando ArrayResize, se la memoria è stata riservata per loro in anticipo?
Si prega di considerare il miglioramento dell'algoritmo interno di prenotazione con ArrayResize.
Per esempio, per le classi possiamo supporre che eseguano qualche tipo di "registrazione interna in liste" oltre a chiamare il costruttore.
E nel quadro della prenotazione con ArrayResize, oltre all'allocazione diretta della memoria, si può cercare di ottimizzare il processo:
- prendere i dati dall'elemento creato adiacente (ad esempio il puntatore a una tabella di funzioni virtuali);
- pre-eseguire o riservare spazio per la "registrazione interna" di classi che non sono ancora state create;
Grazie per il messaggio.
Il codice ArrayResize è protetto dall'essere chiamato vuoto (quando non c'è cambiamento nel numero di elementi), quindi il codice della funzione non funziona.
Mentre un cambiamento reale nel numero di elementi innesca una o l'altra parte della funzione ArrayResize, a seconda dell'array
Grazie al codice che hai presentato, sono riuscito a ridurre la complessità di una parte di ArrayResize a zero, questo accelererà la funzione per gli array di oggetti
Potete dirmi come ridurre il consumo di memoria del terminale? Quando eseguo un EA, richiedo alcuni milioni di tick. Ci faccio dei calcoli e non ne ho più bisogno. Uso le funzioni tick solo per caricare tick freschi, così non ci sono lacune.
A causa di questi milioni di tic il terminale consuma 500 Mb di memoria e non si affretta a liberarla. Per essere più precisi, semplicemente non lo libera. È possibile forzare Terminal a cancellare tutte le sue cache per minimizzare il consumo? Per un VPS, 0,5 GB per terminale è troppo.
Potete dirmi come ridurre il consumo di memoria del terminale? Quando eseguo un EA, richiedo alcuni milioni di tick. Ci faccio dei calcoli e non ne ho più bisogno. Uso le funzioni tick solo per caricare tick freschi, così non ci sono lacune.
A causa di questi milioni di tic il terminale consuma 500 Mb di memoria e non si affretta a liberarla. Per essere più precisi, semplicemente non lo libera. È possibile forzare Terminal a cancellare tutte le sue cache per minimizzare il consumo? Per i VPS, 0,5 GB per terminale è troppo.
ArrayFree
Se il vostro programma ha bisogno di gestire la memoria in ambienti dinamici complessi, la funzione ArrayFree() vi permette di liberare esplicitamente e immediatamente la memoria occupata da un array dinamico che non è più necessario.
ArrayFree
Gratis, ovviamente. Il terminale stesso memorizza i tick nella sua cache, che non mi serve durante il funzionamento.
È meglio per me sollevare di nuovo queste zecche quando ho freddo. Ho bisogno di un meccanismo per "raffreddare" il terminale.
Ciao, ho riscontrato un problema che CopyTicks e CopyTicksRange nel tester non possono ottenere dati da altri strumenti... Quando viene aggiunto al grafico, tutto funziona.
Costruire 2363 (e lo stesso era nel 2361)
Posso aver commesso un errore? Per favore aiutatemi, grazie!
Ciao, ho riscontrato un problema che CopyTicks e CopyTicksRange nel tester non possono ottenere dati da altri strumenti... Quando viene aggiunto al grafico, tutto funziona.
Costruire 2363 (e lo stesso era nel 2361)
Posso aver commesso un errore? Per favore aiutatemi, grazie!
CopyTicks non avvia un caricamento di dati nel tester
Richiedi prima i CopyRate dello strumento desiderato. Almeno 1 bar. Poi il pompaggio e la generazione della sequenza di tick avranno luogo.
Dopo di che, in silenzio la richiesta ticchetta
Grazie per il messaggio.
Grazie al codice che hai presentato, sono riuscito a ridurre la complessità di una parte di ArrayResize a zero, questo accelererà la funzione per gli array di oggettiIl codice ArrayResize ha una protezione contro una chiamata vuota (quando non c'è cambiamento nel numero di elementi), quindi il codice della funzione non funziona.
Mentre un cambiamento reale nel numero di elementi, innesca una o l'altra parte della funzione ArrayResize, a seconda dell'array
Buon pomeriggio, grazie mille.
Non ho mai usato l'operatore new, perché dovrebbe essere più lento per logica di ArrayResize con memoria riservata.
Ma sono impressionato dai risultati ottenuti, si scopre che è viceversa, l'array nativo tramite il nuovo operatore è più veloce.
MT5 (build 2363):
CopyTicks non avvia un caricamento di dati nel tester
Richiedi prima i CopyRate dello strumento desiderato. Almeno 1 bar. Poi il pompaggio e la generazione della sequenza di tick avranno luogo.
Dopo di che, in silenzio la richiesta ticchetta
Grazie mille, mi ha aiutato. Non l'ho trovato nella documentazione... O ho cercato male? Sarebbe bello scriverci sopra :)
Sarebbe meglio fare degli upload automatici come su CopyRates.
Pulito l'elenco dei "vecchi" agenti inattivi nel mio profilo ieri
Un giorno dopo vado sul profilo e vedo che l'elenco degli agenti è stato ripristinato con le voci che erano state cancellate.
E la data di creazione e di attività degli agenti è stata cambiata