Testare 'CopyTicks'. - pagina 37

 

Si prega di indicare quale tipo di bandiera corrisponde al numero 24. Determinato sperimentalmente che

  • TICK_FLAG_BID = 2
  • TICK_FLAG_ASK = 4
  • TICK_FLAG_LAST = 8
  • TICK_FLAG_VOLUME = 16
  • TICK_FLAG_BUY = 32
  • TICK_FLAG_SELL = 64
 
Sergey Gritsay:

Si prega di indicare quale tipo di bandiera corrisponde al numero 24. Determinato sperimentalmente che

  • TICK_FLAG_BID = 2
  • TICK_FLAG_ASK = 4
  • TICK_FLAG_LAST = 8
  • TICK_FLAG_VOLUME = 16
  • TICK_FLAG_BUY = 32
  • TICK_FLAG_SELL = 64

Le bandiere possono essere impilate. Per determinare quali eventi si sono verificati (qui"tick" è un array con tick):

         string flags="";
         if((tick.flags  &TICK_FLAG_BID)==TICK_FLAG_BID)
            flags=" TICK_FLAG_BID ";
         if((tick.flags  &TICK_FLAG_ASK)==TICK_FLAG_ASK)
            flags+=" TICK_FLAG_ASK ";
         if((tick.flags  &TICK_FLAG_LAST)==TICK_FLAG_LAST)
            flags+=" TICK_FLAG_LAST ";
         if((tick.flags  &TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME)
            flags+=" TICK_FLAG_VOLUME ";
         if((tick.flags  &TICK_FLAG_BUY)==TICK_FLAG_BUY)
            flags+=" TICK_FLAG_BUY ";
         if((tick.flags  &TICK_FLAG_SELL)==TICK_FLAG_SELL)
            flags+=" TICK_FLAG_SELL ";
         Comment(flags);
 

Buon pomeriggio, colleghi.

Forse qualcuno sarà interessato a modellare un problema, che ho incontrato - sembra che CopyTicks in strategy tester in modalità "Every tick based on real ticks" in alcuni casi inizia a raddoppiare i tick, che vengono restituiti da una richiesta.

Controllato su MOEX RTS in Expert Advisor, richiedendo nuovi tick nell'evento OnTimer(). Vedere il codice allegato.

IflagTICK_FLAG_BUYTICK_FLAG_SELL dei doppi possono essere ripetuti e possono essere diversi dai record originali (anche se capire quali di essi sono originali e quali sono duplicati, è impossibile senza confrontarli con un'altra fonte di tick).

Ho provato a collegarmi al vero "Opening" e a MetaQuotes-Demo - il risultato è lo stesso.

Controllato anche sulla build 1578. Ho cancellato tutte le cartelle delle zecche sulla mia macchina. Dopo l'autoaggiornamento il risultato è lo stesso.

Ecco un frammento del log che mostra che una richiesta ha improvvisamente iniziato ticchettii ripetuti (con tempi più brevi dei precedenti)


Avvio di MetaTester 5 x64 build 1578 (07 aprile 2017)

Server MetaTester 5 avviato su 127.0.0.1:3000

Avvio inizializzazione finita

127.0.0.1 login (build 1578)

Rete 38520 byte di informazioni sul conto caricate

Rete 1482 byte di parametri del tester caricati

Rete 188 byte di parametri di input caricati

Rete 4192 byte di lista di simboli caricati

Tester file esperto aggiunto: Experts\!sn_err.ex5. 11617 byte caricati

Tester deposito iniziale 10000.00 RUR, leva 1:100

Tester inizializzato con successo

Rete 29 Kb di dati di inizializzazione totali ricevuti

Tester QEMU versione virtuale (cpu64-rhel6), 2047 MB

Simboli RTS-6.17: simbolo da sincronizzare

Simboli RTS-6.17: simbolo sincronizzato, 3784 byte di informazioni sui simboli ricevuti

Storia RTS-6.17: sincronizzazione della storia iniziata

Storia RTS-6.17: caricare 31 byte di dati storici per sincronizzare in 0:00:00.000

Storia RTS-6.17: storia sincronizzata dal 2016.01.20 al 2017.04.07

Ticks RTS-6.17: sincronizzazione dei tick iniziata

Ticks RTS-6.17: caricare 38 byte di dati di tick per sincronizzare in 0:00:00.000

Ticks RTS-6.17: storia ticks sincronizzata dal 2017.04.06 al 2017.04.06

Storia RTS-6.17,M1: cache della storia allocata per 475200 barre e contiene 23851 barre dal 2016.01.20 12:28 al 2017.04.05 23:45

Storia RTS-6.17,M1: la storia inizia dal 2016.01.20 12:28

Tester RTS-6.17,M1 (MetaQuotes-Demo): generazione basata su tick reali

Tester RTS-6.17,M1: test di experts\!sn_err.ex5 dal 2017.04.06 00:00 al 2017.04.07 00:00 iniziato

Ticks RTS-6.17 : i tick reali iniziano da 2017.04.06 00:00:00


...

CICLO: 16 TICK: 2017.04.06 11:06:42;1491476802652;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 16 TICK: 2017.04.06.06 11:06:43;1491476803512;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 16 TICK: 2017.04.06.06 11:06:46;1491476806819;2;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 16 TICK: 2017.04.06.06 11:06:46;1491476806865;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 16 TICK: 2017.04.06.06 11:06:46;1491476806865;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807075;1;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;3;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;10;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;4;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807472;3;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807472;4;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807472;1;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807075;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06.06 11:06:47;1491476807470;3;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807470;10;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807470;4;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807470;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807472;3;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807472;4;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 17 TICK: 2017.04.06 11:06:47;1491476807472;1;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY DOUBLE

CICLO: 19 TICK: 2017.04.06 11:06:49;1491476809747;3;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 19 TICK: 2017.04.06.06 11:06:49;1491476809747;7;88; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_SELL

CICLO: 19 TICK: 2017.04.06.06 11:06:49;1491476809747;3;56; TICK_FLAG_LAST TICK_FLAG_VOLUME TICK_FLAG_BUY

...

File:
jsn_err.mq5  5 kb
 
Snest:

Forse qualcuno sarebbe interessato a simulare un problema che ho incontrato - sembra che CopyTicks in strategy tester in modalità "Every tick based on real" in alcuni casi inizia a raddoppiare i tick restituiti da una richiesta.

Questa è una cosa molto spiacevole nella vostra situazione.

Quindi c'è solo una via d'uscita: rinunciare al tester per un po'.


SZZ Ha guardato il tuo codice e il tuo log. Sicuramente bug CopyTicks nel tester. Interessante, DOUBLE-ticks non inizia con la duplicazione completa. Comunque, copia-incolla il tuo post nella SD. Al momento CopyTicks non può essere usato nel tester e il tester stesso non può essere usato in modalità "per tick reali".

 
fxsaber:

Una cosa molto spiacevole è venuta fuori nella vostra situazione.

Quindi c'è solo una via d'uscita: rinunciare al tester per un po'.


Ho guardato il tuo codice e il tuo log. Sicuramente un bug CopyTicks nel tester. Interessante, DOUBLE-ticks non inizia con la duplicazione completa. Comunque, copia-incolla il tuo post nella SD. Al momento CopyTicks non può essere usato nel tester e il tester stesso non può essere usato in modalità "per tick reali".


Grazie, ho inviato un messaggio a servicedesk. Vi scriverò di nuovo con i risultati.
 
Nella storia, le zecche corrette vanno da una certa data (ne ho scritto prima). Prima di questo, ci sono i doppi. Questo se il conto è in Otkritie.
 
Dmitriy Skub:
Nella storia le zecche corrette vanno da una certa data (ne ho scritto prima). Prima di questo vanno con i duplicati. Questo è se il conto è in Open.


I registri mostrano che il test è stato condotto per il 06 aprile 2017. Risultati simili per aprile 07.

La situazione è simile sia su Opening-Real che su MQ-Demo

 
Snest:


I registri mostrano che il test è stato condotto per il 06 aprile 2017. Risultati simili per il 07 aprile.

La situazione è simile sia su Opening-Real che su MQ-Demo

Tadas all'obitorio. Voglio dire, alla SD))
 
Dmitriy Skub:
All'obitorio, allora. Voglio dire, la SR).

Questa è un'ottima osservazione.
 

Sono passati tre mesi e il biglietto non è ancora stato chiuso. Guai.


Inoltre, ho trovato un altro bug (se il problema non è legato al fornitore di quote), questa volta con una direzione sbagliata della transazione. Sto copiando il testo del biglietto per avvertire la comunità:

Un confronto tra i dati in tick di MT5 ottenuti dallo strumento standard "Price Stack / Show All Trades Table" su un conto reale AMP-Features con le quotazioni di CQG, con i dati di Ritmik ha dimostrato che MT5 in alcuni casi apparentemente abbastanza rari determina in modo errato la direzione del trade.

Scarichiamo la Profondità di mercato per 11.07 usando lo strumento standard "Profondità di mercato / Mostra tabella di tutte le operazioni". Guarda i dati sui futures GCEQ7 alle 00:03 min ora di Chicago (nella tabella qui sotto è GMT, non Chicago)

Risultato.

2017.07.1105:03:00.3241209.71209.81209.71Vendere
2017.07.1105:03:00.3241209.71209.81209.71Vendere
2017.07.1105:03:00.3241209.71209.81209.71Vendere
2017.07.1105:03:00.3241209.71209.81209.71Vendere
2017.07.1105:03:00.3241209.71209.81209.71Vendere
2017.07.1105:03:00.9701209.71209.81209.72Vendere
2017.07.1105:03:00.9701209.71209.81209.71Vendere
2017.07.1105:03:00.9701209.71209.81209.72Vendere
2017.07.1105:03:00.9701209.71209.81209.71Vendere
2017.07.1105:03:00.9701209.71209.81209.71Vendere
2017.07.1105:03:00.9701209.71209.81209.71Vendere
2017.07.1105:03:00.9771209.71209.81209.72Vendere
2017.07.1105:03:00.9771209.71209.81209.71Vendere
2017.07.1105:03:00.9771209.71209.81209.72Vendere
2017.07.1105:03:00.9771209.71209.81209.71Vendere
2017.07.1105:03:00.9771209.71209.81209.71Vendere
2017.07.1105:03:00.9771209.71209.81209.71Vendere
2017.07.1105:03:00.9771209.71209.81209.71Compra
2017.07.1105:03:01.3621209.71209.81209.71Vendere
2017.07.1105:03:02.1171209.71209.81209.73Vendere
2017.07.1105:03:02.1171209.71209.81209.72Vendere
2017.07.1105:03:02.1171209.71209.81209.71Vendere

Risultato atteso

Dati da Rithmic secondo l'ora di Mosca:

2017-07-11 08:03:00.26023314997493802598473291209.71S
2017-07-11 08:03:00.26023314997493802598473291209.71S
2017-07-11 08:03:00.26023314997493802598473291209.71S
2017-07-11 08:03:00.26023314997493802598473291209.71S
2017-07-11 08:03:00.26023314997493802598473291209.71S
2017-07-11 08:03:00.94879814997493809485465951209.72S
2017-07-11 08:03:00.94879814997493809485465951209.71S
2017-07-11 08:03:00.94910014997493809487981271209.72S
2017-07-11 08:03:00.94910014997493809487981271209.71S
2017-07-11 08:03:00.94923314997493809487984631209.71S
2017-07-11 08:03:00.94946614997493809491073051209.71B
2017-07-11 08:03:00.95085414997493809494661771209.72B
2017-07-11 08:03:00.95100914997493809496342611209.71B
2017-07-11 08:03:00.95100914997493809496342611209.72B
2017-07-11 08:03:00.95158814997493809506472211209.71B
2017-07-11 08:03:00.95158814997493809506472211209.71B
2017-07-11 08:03:00.95158814997493809506472211209.71B
2017-07-11 08:03:00.95170114997493809508641431209.71B
2017-07-11 08:03:01.28457614997493812842645651209.71S
2017-07-11 08:03:02.0858251499749382853877211209.73S
2017-07-11 08:03:02.0858251499749382853877211209.72S
2017-07-11 08:03:02.0858251499749382853877211209.71S


Le discrepanze nella direzione delle transazioni sono mostrate in rosso