![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
Nel 2016, la maggior parte dei compilatori C++ sono arrivati agli stessi livelli di ottimizzazione.
MSVC fa dubitare dei miglioramenti ad ogni aggiornamento, e Intel C++ come compilatore si è fuso - non si è ancora ripreso dal suo "errore interno" su grandi progetti.
Un altro dei nostri miglioramenti nel compilatore nella build 1400 è che è più veloce nel compilare progetti complessi.
In tema. Dovete creare delle alternative alle funzioni standard, perché a volte vi danno l'output sbagliato. Ecco un esempio di alternativa SymbolInfoTick
Potete chiamare SymbolInfoTick su ogni evento NewTick nel tester e sommare il campo volume per conoscere il fatturato delle azioni. Ma no, non si può! Devo rendere molto più logico MySymbolInfoDouble.
Benvenuto nella programmazione, dove tu sei il creatore!
Ti diamo lo strumento più completo, dove puoi fare tutto quello che vuoi.
Puoi ottimizzare tutto ciò che ti circonda.
È un processo senza fine. Ma il 99% delle volte non è economicamente conveniente.
Non si tratta di ottimizzare, ma di portare la vecchia funzione alla nuova realtà. È chiaro che avreste potuto non scrivere affatto NormalizeDouble. E la gente avrebbe fatto la propria variante. Ma l'hai creato per risparmiare tempo. Ora non è stato sufficiente. E sarebbe bene riparare la vecchia bicicletta per soddisfare gli stessi strumenti di stock.
A proposito, non molto tempo fa @iliyas ha suggerito di inserire molte funzioni di sistema in fase di compilazione come codice sorgente MQL5, in modo che potessero prendere parte all'inlining e alla massima ottimizzazione.
All'inizio non ho apprezzato l'idea, ma ora vedo che sarebbe geniale. Lo fa lo stesso MSVC.
Grazie, controlleremo e vedremo se possiamo cambiare la libreria.
Avete frainteso. Non le librerie, ma NormalizeDouble. Per aggiungere un sovraccarico.
Per normalizzare prezzi e lotti quando TickSize = 25, VolumeStep = 0.5
Per esempio, la normalizzazione sarebbe così
A proposito, non molto tempo fa @iliyas ha suggerito di inserire molte funzioni di sistema in fase di compilazione come codici sorgente MQL5, in modo che potessero partecipare all'inlining e massimizzare l'ottimizzazione.
Non ho apprezzato subito l'idea, ma ora vedo che sarebbe fantastico. Lo fa lo stesso MSVC.
Si scopre che #import ex5 è il male dell'ottimizzazione.
Fate attenzione alle caratteristiche del preprocessore
Forum sul trading, sistemi di trading automatico e test di strategia
Come posso passare attraverso l'enumerazione in modo sequenziale?
Alexey Navoykov, 2016.09.01 23:20
Ho già implementato il principio di cui sopra in MQL5, perché le macro hanno un numero fisso di argomenti e il numero di argomenti è limitato a 8. Quindi ho solo 3 valori per enum.
Per quanto riguarda l'aspetto teorico, è probabilmente più veloce creare una funzione interna per l'analisi degli enum. Gli sviluppatori hanno già promesso di creare qualcosa.
Come si scopre, si possono creare costruzioni molto astute e facili da usare.
Avete frainteso. Non le librerie, ma NormalizeDouble. Per aggiungere un sovraccarico.
Per normalizzare prezzi e lotti quando TickSize = 25, VolumeStep = 0.5
Per esempio, la normalizzazione sarebbe così
Non si può sovraccaricare in questo modo. Stesse firme di funzioni.
Ma l'idea è chiara - la funzione di normalizzazione che tiene conto della granulazione delle zecche.
Non si può sovraccaricare in questo modo. Stesse firme di funzioni.
Non sembra esserci un problema. In una variante, il secondo parametro è int (era), nell'altra è double (apparirà).
Ma l'idea è chiara - la funzione di normalizzazione che tiene conto della granulazione delle zecche.
fxsaber
C'è un errore nel tuo codice