[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 510
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
Non mi piace usare gli operatori continue e break, ma forse possono aiutarti, soprattutto perché un if con 36 nidificazioni in mql potrebbe non "funzionare".
E accelerare Il mio codice può essere suddiviso se, costituito da una complessa condizione di controllo a 36 voci, in 36 if con una semplice condizione! :)))
Penso che il codice accelererà notevolmente, anche se per saperlo con certezza bisogna capire le istruzioni della macchina, che sono il risultato della compilazione.
Ho eseguito il tuo codice in MT5. Ha già implementato (integrato) le valutazioni brevi degli operatori logici, quindi non c'è bisogno di rompere il codice in molti if.
In MT4 è diverso, questa ottimizzazione ha senso lì. Ma ho fatto la valutazione del tempo in MT5, per schema breve.
Accelerato di un fattore 4. Riscritto Validate().
Ora è così:
WorkTime == 200 msOrribile, ma ha senso ottimizzare il codice nel modo seguente. Molte volte più veloce! E qui MT5 non aiuta più.
Non è un'idea, naturalmente. Ma mi chiedo quanto velocemente funzionerà! :))
Inoltre nel codice ho ridotto la gamma dei valori del divisore. 654321/2 = 327160,5...
Accelerato di un fattore 4. Riscritto Validate().
Ora appare così:
WorkTime == 200 msÈ bellissimo! Non come il mio.
Ho un'idea per scrivere un algoritmo di divisione in colonna. Dividi per cifre, scrivi il resto della divisione e quando il risultato è maggiore di 6, fai un'operazione continua. Questo è esattamente quello che ho fatto questo pomeriggio, quando stavo esaminando i cinque, ho diviso tutto in colonne. Ma ci vuole molto tempo! :))
È nella rappresentazione del numero esadecimale che bisogna fare l'ottimizzazione, come hai fatto tu.
Ho un'idea per scrivere un algoritmo di divisione in colonna. Dividi per cifre, scrivi il resto della divisione e se corrisponde o il risultato è maggiore di 6, fai l'operazione continua. Questo è esattamente quello che ho fatto questo pomeriggio, quando stavo esaminando i cinque, ho diviso tutto in colonne. Ma ci vuole molto tempo! :))
È nella rappresentazione dei numeri a sei cifre che bisogna ottimizzare, come avete fatto voi.
О! Non è una cattiva idea. L'ho riscritto di nuovo. WorkTime=125 ms.
О! Non è una cattiva idea. Riscritto di nuovo. WorkTime=125 ms
Ora i giocatori di hockey saranno sicuramente felici! :)))) Non volevo dire questo però! ;D
Quanto mostra il contatore di tempo di My code?
Capisco i cambiamenti. Solo che non l'ho ancora padroneggiato:
"|=" è un OR logico? Il resto è un vicolo cieco...
Ora i giocatori di hockey saranno felici di sicuro! :))))
Sì...
Il tuo nuovo codice è ancora più veloce, ma ci sono alcuni bug.
Il numero di parentesi graffe non quadrava. Ma penso che non sia niente, si può risolvere cancellando l'ultimo.
Spiega il significato delle linee evidenziate. Non capisco.
Sì...
Il tuo nuovo codice è ancora più veloce, ma ci sono alcuni bug.
Il numero di parentesi graffe non quadrava. Ma penso che non sia niente, si può risolvere cancellando l'ultimo.
Spiega il significato delle linee separate. Non capisco.
Esattamente... Stronzate! :))) E le parentesi sembrano essere ok, ho copiato dal codice già pronto.
È così che dovrebbe essere:
Anche in MQL5 accelererà un po' il confronto:
Ma 125 ms non sta chiaramente recuperando.
O forse è tutto in C++?
.
Convalida- una funzione di un parametro.
Che ne dici della vecchia maniera... alloca la memoria e mette in cache un bool
per tutti i valori validi dell'argomento?