![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
La domanda sorge spontanea, qual è l'effetto - naturalmente ho visto dal codice che in effetti il "if" è stato rimosso? Ma vorrei un commento, perché non è chiaro quale sia il guadagno in termini di logica più veloce.
Soluzione intuitiva - spostare il codice di grandi dimensioni in una funzione (ancora meglio sarebbe in include separati), sbarazzarsi di if, increment e break.
Sono anche molto confuso su come ottenere i valori delle variabili da analizzare. Nell'esempio del test, questi sono randomi, ma nella realtà? Lascerei già lì i valori booleani puri per controllare (bool_a > 10.0) invece di (double_a).
Nuova build, nuovo tester, nuovo compilatore... la tabella riassuntiva manca della colonna "build mt5".
Finora il risultato è stabile - controllato ieri, quindi non aspettatevi salti di prestazioni da una build all'altra.
La soluzione intuitiva è di mettere il grande codice in una funzione (o meglio ancora, in un inlude separato) e sbarazzarsi di if, increment e break.
In effetti, è già una funzione, quindi non è chiaro perché ci sia un tale guadagno di prestazioni!
Uso inlude nel mio codice di lavoro, ma è puramente una migrazione di codice, come proponi di organizzarla? Bray aggiunge significativamente alle prestazioni - come posso liberarmene in modo da non perdere velocità?
Sono anche molto confuso nell'ottenere i valori delle variabili analizzate. Nell'esempio del test si tratta di randomi, ma nella realtà? Lascerei già lì i valori booleani puri, così potrei controllare (bool_a > 10.0) invece di (double_a).
In realtà è la stessa cosa del doppio - i dati sono presi da un file esterno, che viene letto completamente nel buffer durante l'inizializzazione. Quindi non ho capito esattamente come fare un bool da loro.
La 3800x ha quasi raggiunto l'i7 8700 in termini di prestazioni in streaming. Ed è venuto fuori dal 2700.
e la 3800X non dovrebbe staccarsi dalla 2700?
Allora assumerò che durante l'ottimizzazione la frequenza scende semplicemente per ideologia. Per interesse, fate una corsa più lunga di qualsiasi EA - non 16 passaggi, ma diciamo 160 - mi chiedo come cambia il tempo di passaggio - la differenza dovrebbe essere minima - entro 1 secondo.
F
PS Forse avete un test che carica la RAM?
F
PS Forse avete un test che carica la RAM?
Grazie, la media era circa la stessa dei 16 passaggi - assumeremo che siano i dati corretti.
Per la memoria, purtroppo, non c'è nulla di adatto nel dominio pubblico.
La 3800X non avrebbe dovuto staccarsi dalla 2700?
Avrei dovuto, ho supposto le ragioni, in modo da avere qualcosa su cui basare la mia scelta del ferro in futuro.
Capito, grazie.
Bray aggiunge significativamente alle prestazioni - come posso liberarmene per non perdere velocità?
Sostituiscilo con un ritorno, come nel mio esempio.
In realtà è anche doppio - i dati sono presi da un file esterno, che viene letto completamente nel buffer durante l'inizializzazione. Ecco perché non ho capito come renderlo esattamente un bool.
Invece di
Fare
Sostituire con un retournee, come nel mio esempio.
Invece di
Fare
Purtroppo non sono intelligente, ma X>=0 può essere più grande di qualsiasi altro numero - ci sono molte combinazioni - non si può prevedere tutto nel codice, e il codice crescerà di molti ordini di grandezza a causa di varie combinazioni.