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 timer al millisecondo esiste da molto tempo: EventSetMillisecondTimer()
Sei completamente fuori dal giro. Supponiamo che abbiate bisogno di aprire due posizioni in OnTick. Il primo OrderSend è di pochi millisecondi. Dopo di che è necessario fare un'istantanea. E poi dovrebbe essere chiamato il secondo OrderSend.
Solo OnTick può essere eseguito per centinaia di millisecondi. E voi suggerite di scattare qualche OnTimer.
Ci sono anche problemi con la libreria di misurazione stessa. C'è un sacco di roba inutile, comprese le spese generali.
Litigi in studio!
Ecco il mio codice e il tempo di esecuzione stabile: nessuna centinaia o migliaia di microsecondi su 20 grafici in parallelo
Quanti core hai e che tipo di processore? i7-2600?
8 core.
Stress test nascosto di nuovo con milioni di richieste in parallelo?
Ti ho detto molte volte che consigliere di combattimento. Minimizzato il numero di chiamate il più possibile. In teoria (non l'ho misurato) fino a 10 chiamate per OnTick.
Essere più trasparente. Solo perché hai postato un paio di semplici chiamate _B non è una prova delle tue altre affermazioni. Lei dimentica bruscamente il codice e la descrizione reale delle condizioni non appena fa delle affermazioni stravaganti.
Non avete bisogno di immaginare nulla nella vostra mente - raccontate e mostrate ciò che effettivamente chiamate e testate. Non un risultato strappato di "eseguito uno stress test sconosciuto e in attesa di un avviso per mostrare il mondo", ma esattamente il codice completo del test.
Sto pubblicando i risultati dell'EA live. Ci sono 70 file mqh lì, incluso WinAPI. Se non vi limitate a parlarne, ma lo capite davvero, vi darò il codice sorgente. Riprodurrai i freni abbastanza rapidamente.
Sei completamente fuori dal giro. Diciamo che avete bisogno di aprire due posizioni in OnTick. Il primo OrderSend è di pochi millisecondi. Dopo di che è necessario fare un'istantanea. E poi dovrebbe essere chiamato il secondo OrderSend.
Solo OnTick può essere eseguito per centinaia di millisecondi. E voi suggerite di scattare qualche OnTimer.
8 core.
Molte volte ha detto consigliere di combattimento. Minimizzato il numero di chiamate il più possibile. In teoria (non l'ho misurato) fino a 10 chiamate per OnTick.
Sto pubblicando i risultati dell'Expert Advisor. Ci sono 70 file mqh lì, incluso WinAPI. Se non vi limitate a parlarne, ma lo capite davvero, vi darò il codice sorgente. Giocherete i freni abbastanza rapidamente.
Argomenti sul tavolo!
Tutto il tuo benchmark è sovraccarico di spazzatura e infatti qui c'è una versione pulita e comprensibile (a differenza del tuo disordine di codice) di esso:
Quali sono i suoi problemi:
Spero che tu non abbia disabilitato l'ottimizzazione del codice per i test?
Intendo il parametro globale Optimize=0 in metaeditor.ini
Tutto il tuo benchmark è sovraccarico di spazzatura e infatti qui c'è una versione pulita e comprensibile (in contrasto con il tuo disordine di codice) di esso:
La tua versione è, purtroppo, allo stadio iniziale della comprensione della convenienza. Conveniente è quando si può fare così.
Forum sul trading, sistemi di trading automatico e test di strategia
Biblioteche: Benchmark
fxsaber, 2020.10.01 23:49
Ora cerchiamo di scoprire dove si trova l'intoppo nella variante standard. Aggiungiamo alcuni simboli al codice sorgente.
E vedere immediatamente la ragione.
CHART_IS_MAXIMIZED è troppo lento per i grafici di qualcun altro. Il rapporto sui bug è pronto! È stato molto facile con la biblioteca.
Qual è il problema:
L'usabilità prevale sull'esiguità delle spese generali. È miserabile se si guarda da vicino come viene implementato. Per esempio, ArrayResize è un overhead, quindi il suo uso è ridotto al minimo.
Spero che tu non abbia disabilitato l'ottimizzazione del codice per i test?
Intendo il parametro globale Optimize=0 in metaeditor.ini
Non mi interessano le modalità lente. Sto guardando le prestazioni dell'EA da combattimento, prestando attenzione all'ottimizzazione algoritmica e anche all'ottimizzazione del compilatore, naturalmente.
Tutto il tuo benchmark è sovraccarico di spazzatura e infatti qui c'è una versione pulita e comprensibile (a differenza del tuo disordine di codice) di esso:
Qual è il suo problema:
Spero che tu non abbia disabilitato l'ottimizzazione del codice per i test?
Intendo il parametro globale Optimize=0 in metaeditor.ini
Qui è in stile C, è semplice e davvero senza spazzatura. Grazie per l'esempio.
Uno degli insegnanti di linguaggio C ha raccomandato di non usare l'underscore _B nei nomi utente
Perché questo prefisso è usato dagli sviluppatori di librerie, programmi, ecc.
E per non incorrere in sovrapposizioni, ha raccomandato di non usarlo.
In mql5 è possibile sovrapporre i vostri nomi?
O i nomi personalizzati sono completamente schermati dai nomi MQ?
Uno degli insegnanti di C raccomandava di non usare l'underscore _B nei nomi utente
, perché questo prefisso è usato dagli sviluppatori di librerie, software, ecc.
E per evitare sovrapposizioni, raccomandava di non usarlo.
In C, i nomi che iniziano con "_" sono usati come nomi di servizio, di sistema o speciali. In questo caso, penso che sia ammissibile. Poiché questa funzione è utilizzata per la manutenzione e l'esame del codice.
I nomi che iniziano con "_" sono usati in C come nomi di servizio, di sistema o speciali. In questo caso - accettabile, credo. Poiché questa funzione è utilizzata per la manutenzione e l'esame del codice.
Questo è il punto, oltre a mql5, ci sono nomi di servizi MQ per sviluppatori.