Errori, bug, domande - pagina 212

 
Urain:
Sì, è vero, solo sotto forma di funzioni standard per ottimizzare la velocità di accesso.

Non credo che si possa ancora parlare di velocità, soprattutto perché MQL5 elabora rapidamente la serie di dati di notizie esistenti. E questo con la speranza che MQL sia ancora più veloce.


Ma vorrei approfondire questo argomento. Mi sto chiedendo cosa pensate di fare dopo con questi dati?

 
sergeev:

Non credo che si possa ancora parlare di velocità, soprattutto perché MQL5 elabora rapidamente la serie di dati di notizie esistenti. E speriamo che MQL sia ancora più veloce.


Ma vorrei approfondire questo aspetto. Mi chiedo cosa pensano di fare con questi dati in seguito? esempi concreti di utilizzo?

E quello che viene dopo è un campo caldo, le notizie non erano disponibili normalmente prima, e poi la codifica delle strategie di notizie farà boom.

Ho intenzione di usarlo per tutti i comitati NS, ma vorrei sviluppare ulteriormente l'argomento.

ZZZY Ma fino a quando le notizie nel tester non apparirà (cioè, storie di notizie), dovrà fare attraverso i file, e notizie parser su risorse di terze parti.

 

Il tester rallenta all'aumentare del numero di scambi.

Periodo Mestieri Offerte Zecche Bar Ticchettii generati entro, ms Dimensione del rapporto .xlsx, KB Tempo di generazione del rapporto
04.10.2010-05.10.2010 5 720 46226 1438 27960 126 30 secondi
04.10.2010-06.10.2010 9 1680 99347 2871 240966 275 2 minuti
04.10.2010-07.10.2010 21 2703 149837 4306 382370 430 10 minuti
04.10.2010-10.10.2010 35 4865 253175 7118 1202809 753 35 minuti
04.10.2010-16.10.2010 67 9783 492163 14226 8908720 1463 50 minuti
04.10.2010-01.11.2010 79 13199 1189566 28453 20956134 N/A (errore) 1 ora e 10 minuti
04.10.2010-27.11.2010 79 13199 2863155 56334 16055687

Quando si aprono operazioni con l'intensità di circa 1 operazione ogni 2 minuti si può vedere (scheda Log) che 1 secondo di tempo di test alla fine di un periodo piuttosto lungo ha diverse volte meno operazioni che all'inizio del test. Un'immagine simile quando si producono i risultati dei test in formato Open XML.

 

In realtà, il tempo di test non dipende direttamente dalla quantità di trade. Per essere precisi, una singola esecuzione con 10 trade richiederà ovviamente meno tempo di un'esecuzione con 100 000 trade perché ogni trade nel tester ha bisogno di tempo per l'elaborazione.

Ma è il numero di zecche elaborate in un passaggio che influisce maggiormente sul tempo di prova. Ho eseguito la media mobile standard in modalità tutti i tick a partire da un mese (intervallo 2009.01.01-2009.02.01) e ho aumentato il tempo di prova di un mese ogni volta fino a 22 mesi.


Come si può vedere dal diagramma, la dipendenza del tempo di test dal numero di tick è strettamente lineare.


 
Vigor:
Ciao, rifletti l'aggiunta del costrutto

#proprietà tester_indicator "indicator.ex5"

nella documentazione, nella descrizione della funzione iCustom. Ho passato alcune ore a cercare di capire il motivo per cui iCustom funziona nel grafico, ma non funziona nel tester.

Questo è descritto nella sezione delle proprietà del programma.

indicatore del tester

stringa

Nome dell'indicatore personalizzato nel formato "nome_indicatore.ex5" .Gli indicatori necessari per i test sono determinati automaticamente dalla chiamata della funzione iCustom(), se il parametro corrispondente è specificato come una stringa costante. Per altri casi (uso della funzione IndicatorCreate() o uso di una stringa non costante nel parametro che definisce il nome dell'indicatore) abbiamo bisogno di questa proprietà

file tester

stringa

Nome del file per il tester, specificando la sua estensione, racchiuso tra doppi apici (come una stringa costante). Il file specificato sarà passato al tester per il funzionamento. I file di input per i test, se necessari, devono sempre essere specificati

libreria_tester

stringa

Nome della libreria con estensione, racchiuso tra doppi apici. Una libreria può avere sia un'estensione dll che un'estensione ex5. Le librerie necessarie per i test vengono rilevate automaticamente. Tuttavia, se una libreria è usata da un indicatore personalizzato, si dovrebbe usare questa proprietà


Ma hai ragione, è necessario aggiungere esplicitamente le informazioni su di esso di nuovo nei luoghi pertinenti.

 
Rosh:

In realtà, il tempo di test non dipende direttamente dal numero di scambi. Per essere precisi, una singola esecuzione con 10 operazioni richiederà ovviamente meno tempo di un'esecuzione con 100 000 operazioni, perché ogni operazione nel tester ha bisogno di tempo per essere elaborata.

Ma è il numero di zecche elaborate in un passaggio che influisce maggiormente sul tempo di prova. Ho eseguito la media mobile standard in modalità tutti i tick a partire da un mese (intervallo 2009.01.01-2009.02.01) e ho aumentato il tempo di prova di un mese ogni volta fino a 22 mesi.

Come si vede dal diagramma, la dipendenza del tempo di test dal numero di tick è strettamente lineare.

Probabilmente, dovrei leggere "una singola esecuzione con 10 scambi richiederà ovviamente MENO tempo di un'esecuzione con 100 000 scambi perché ogni scambio nel tester ha bisogno di tempo per essere elaborato.

Sono d'accordo sulle zecche. Ma fate attenzione esattamente al numero di affari - la crescita temporale lì non è ovviamente lineare, e formare un rapporto di prova è completamente fuori questione!

 

Qual è il tempo massimo che può essere impostato in EventSetTimer( )?

INT_MAX? Non credo. Non voglio indagare da solo, e non c'è nessun aiuto.

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов - Документация по MQL5
 
Ashes:


Probabilmente si dovrebbe leggere "una singola esecuzione con 10 operazioni richiederà ovviamente MENO tempo di un'esecuzione con 100.000 operazioni, poiché ogni operazione nel tester richiede tempo per essere elaborata.

Corretto.
 
Ashes:


Sono d'accordo sulle zecche. Ma ancora una volta si prega di prestare attenzione al numero di scambi - la crescita del tempo lì non è chiaramente lineare, e la formazione del rapporto di prova è completamente fuori questione!

Fai delle corse con lo stesso numero di tick e un numero diverso di trade. Poi si può confrontare.
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 

Nel processo di test, sono sorte alcune domande, mostro le foto scattate allo stesso tempo:

Come si può vedere dalla figura, solo tre core stanno lavorando, affrontato più di una volta una situazione in cui nel corso del test, il numero di core coinvolti nel lavoro gradualmente sceso a zero, poi è entrato in funzione tutti in una volta, cioè, c'è tempo di inattività, perché i core liberati non iniziano a lavorare immediatamente?

Il numero di corse è definito come 287, i risultati dell'ottimizzazione lo mostrano così, comunque:

cosa significano allora questi numeri? Il numero di punti nel grafico di ottimizzazione è anche circa 381...