Controllo automatico dei prodotti nel mercato (domande e suggerimenti) - pagina 5

 
Rashid Umarov:

Questo è già stato corretto.

Grazie.

 
Ancora una volta vorrei far notare ai rappresentanti di MetaQuotes che sarebbe auspicabile rendere la validazione automatica più intelligente e flessibile. Non c'è senso o giustificazione nel raggruppare tutti i prodotti. In particolare, questo si applica all'errore "il tester impiega troppo tempo". Non avendo né criteri chiaramente dichiarati, né una descrizione del processo e dell'infrastruttura di test (cosa che è stata fatta almeno durante i precedenti campionati di trading algoritmico), né informazioni diagnostiche più o meno complete, gli sviluppatori di applicazioni devono telepaticamente o a tentoni scoprire come stipare il prodotto nel letto procusteo dell'autovalidatore.

Per esempio, è chiaro che nel caso degli indicatori il numero di buffer calcolati e il loro scopo diretto influenzano oggettivamente il limite di velocità di esecuzione. Se l'indicatore è destinato al calcolo delle statistiche sui tick su decimi di buffer/livelli (tutti i tick senza gap, cioè tutto ciò che è stato ricevuto dall'evento precedente OnCalculate viene letto attraverso CopyTicksRange), non può avere gli stessi requisiti, come il prezzo di chiusura MAC.

Certo, il profiler e i metodi di calcolo economico sono già in atto, il refactoring richiede giorni, ma il "tester ci mette troppo tempo" rimane in vigore. Utilizzando le informazioni minime disponibili sulle coppie e i timeframe testati (EURUSD H1, XAUUSD D1, GBPUSD M30, EURUSD M1), ho eseguito 4 test specifici su un computer di medie dimensioni e ho ottenuto tempi di esecuzione nell'ordine di 1,5-2 minuti per coppia. Perché l'autovalidatore manca un'ora, non lo so e non ho modo di saperlo. La mancanza di feedback (moderatori umani precedentemente presenti) non permette di risolvere il problema. Prima dell'introduzione dell'autovalidatore, il prodotto veniva moderato con successo.

Affinché il mercato possa convenientemente (anche per lo sviluppatore) aggiornarsi e fornire agli utenti prodotti di qualità con diverse funzionalità, il supporto deve essere presente, imho. Ora la situazione è tale che i prodotti vengono spinti nella zona grigia - fuori dal mercato. Se l'autovalidazione non può essere fatta senza tagliare il prodotto, allora l'unica via d'uscita è offrire una nuova versione del prodotto direttamente ai clienti.

PS. E una piccola aggiunta. Secondo il profiler, l'intera elaborazione di OnCalculate richiede 11 secondi su un minuto e mezzo del test annuale. Quindi, il fattore di passaggio di velocità di un particolare indicatore dipende solo per il 12% dall'indicatore stesso, e in misura molto maggiore - dal tester. Cioè la frase "il tester impiega troppo tempo" dovrebbe essere intesa letteralmente - "il tester rallenta". E di chi è questo problema? Come può lo sviluppatore MQL essere responsabile di velocizzare il tester MQ?
 
Stanislav Korotky:
PS. E una piccola aggiunta. Secondo il profiler, l'intera elaborazione di OnCalculate richiede 11 secondi su un minuto e mezzo del test annuale. Quindi, il fattore di passaggio di velocità di un particolare indicatore dipende solo per il 12% dall'indicatore stesso, e in misura molto maggiore - dal tester. Cioè la frase "il tester impiega troppo tempo" dovrebbe essere intesa letteralmente - "il tester rallenta". E di chi è questo problema? Come può lo sviluppatore MQL essere responsabile dell'accelerazione del tester MQ?

Qualcosa non è chiaro. Anche le vere zecche sono preparate più velocemente. Non c'è niente da fare in un minuto e mezzo.

Nessun oggetto viene creato sul livello principale?

 
Stanislav Korotky:
PS. E una piccola aggiunta. Secondo il profiler, su un minuto e mezzo del test annuale l'intera elaborazione di OnCalculate richiede 11 secondi. Così, il fattore di superamento del test di velocità da parte di un indicatore specifico dipende solo al 12% dall'indicatore stesso, e in misura molto maggiore - dal tester. Cioè la frase "il tester impiega troppo tempo" dovrebbe essere intesa letteralmente - "il tester rallenta". E di chi è questo problema? Come può uno sviluppatore MQL essere responsabile di velocizzare il tester MQ?

I registri dell'autovalidatore hanno mostrato che il test su M1 non può superare l'intervallo mensile in un'ora .

test on EURUSD:M1, from 01.5.2018 to 01.6.2018, deposit 1, model 1, execution delay 1 ms 

Mentre su H1 lo stesso indicatore supera il test in un paio di minuti.

test on EURUSD:H1, from 01.5.2017 to 01.6.2017, deposit 10000, model 1, execution delay 1 ms 

Cercate il motivo nel vostro codice.

 
MetaQuotes Software Corp.:

I registri dell'autovalidatore hanno mostrato che il test su M1 non può superare l'intervallo mensile in un'ora .

Mentre su H1 lo stesso indicatore supera il test in un paio di minuti.

Cercate la causa nel vostro codice.

Sfortunatamente, non vedo un'ora di ritardo nei frammenti di log di cui sopra, ma probabilmente sono necessari solo per evidenziare il mese? Ho controllato io stesso, non vedo nessun inceppamento, posso mandarti il log nel mio messaggio personale.

Ci sono errori nei log (che non sono mostrati nel rapporto sul sito)?

 
Andrey Khatimlianskii:

C'è qualcosa di strano qui. Anche i veri tic si preparano più velocemente. Non c'è niente da fare per un minuto e mezzo.

Nessun oggetto viene creato sul livello principale?

Certo che ci sono degli oggetti, ma il profiler avrebbe dovuto evidenziare anche quelli - non è vero? Tutti i costruttori/distruttori sono presenti. Quando si ordina per runtime, OnCalculate è in cima, come previsto. Gli indicatori sono testati in modalità visiva - c'è una visualizzazione.

Ecco dal test EURUSD M1 per il 2018:

2019.10.10 18:43:30.736 EURUSD,M1: 26463085 ticks, 371934 bars generated. Environment synchronized in 0:00:00.331. Test passed in 0:04:36.710 (including ticks preprocessing 0:00:03.479).

Ed ecco cosa c'è nel profiler (54 secondi):


OnCalculate 449 26463086 54 302 661 99.99%
 
Ciao ho scomparso il mercato nel mio terminale non può installare consiglieri e indicatori da mercato reinstallazione del terminale non ha aiutato così come i prodotti precedentemente acquistati non vengono aggiornati sul mercato chi sa come risolvere il problema
 
Prostocar:
Ciao ho scomparso il mercato nel terminale non posso installare consiglieri e indicatori da mercato reinstallazione del terminale non ha aiutato così come i prodotti precedentemente acquistati non vengono aggiornati sul mercato chi sa come risolvere il problema

Controlla la versione di internet explorer. C'è il sospetto che stia volando via.
 
Stanislav Korotky:

Gli oggetti sono lì, naturalmente, ma il profiler dovrebbe averli evidenziati anche - non è così? Tutti i costruttori/distruttori sono presenti. Quando si ordina per runtime, OnCalculate è in cima, come previsto. Gli indicatori sono testati in modalità visiva - c'è un rendering lì.

Sì, infatti, ho dimenticato "@global_initializations".

Si scopre che il disegno delle barre e dei buffer degli indicatori richiede così tanto tempo?

E se si compila per rilasciare ed eseguire il visualizzatore nello stesso intervallo, scorrendo direttamente fino alla fine ("skip to..."), quanto tempo ci vuole?

 
Andrey Khatimlianskii:

Si scopre che disegnare le barre e i buffer degli indicatori richiede così tanto tempo?

E se si compila per rilasciare ed eseguire il visualizzatore nello stesso intervallo, scorrendo direttamente fino alla fine ("skip to..."), quanto tempo ci vuole?

Accelerato. 2018 da 4 minuti a 1,5 minuti, 2019 da 1,5 minuti a 35 secondi. E il falso indicatore a un buffer, che non conta nulla, prova con il visualizzatore in 53 secondi, e con lo scorrimento in 12 secondi.

Ma poiché dicono che si blocca (il timeout è orario), molto probabilmente non è la velocità di elaborazione, ma alcune circostanze ambientali di cui non siamo a conoscenza (dopo tutto, autovalidator non è un tester di terminale). Ecco perché almeno i registri sono utili.