Test des "CopyTicks". - page 37

 

Veuillez indiquer quel type de drapeau correspond au numéro 24. Il a été déterminé expérimentalement que

  • 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:

Veuillez indiquer quel type de drapeau correspond au numéro 24. Il a été déterminé expérimentalement que

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

Les drapeaux peuvent être empilés. Pour déterminer les événements qui se sont produits (ici"tick" est un tableau avec des ticks) :

         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);
 

Bonjour, chers collègues.

Peut-être que quelqu'un sera intéressé à modéliser un problème que j'ai rencontré - il semble que CopyTicks dans le testeur de stratégie en mode "Chaque tick basé sur les ticks réels" dans certains cas commence à doubler les ticks, qui sont retournés par une demande.

Je l'ai vérifié sur le MOEX RTS dans Expert Advisor, en demandant de nouveaux ticks dans l'événement OnTimer(). Voir le code ci-joint.

Les drapeauxTICK_FLAG_BUYet TICK_FLAG_SELL des doublons peuvent être répétés et peuvent être différents des enregistrements originaux (bien qu'il soit impossible de comprendre lesquels sont des originaux et lesquels sont des doublons, sans comparer avec une autre source de ticks).

J'ai essayé de me connecter à la vraie "Ouverture" et à MetaQuotes-Demo - le résultat est le même.

Vérifié également sur la version 1578. J'ai supprimé tous les dossiers de ticks sur ma machine. Après leur mise à jour automatique, le résultat est le même.

Voici un fragment du journal montrant qu'une requête a soudainement commencé à répéter des tics (avec un temps plus court que les précédents)


Démarrage MetaTester 5 x64 build 1578 (07 Apr 2017)

Serveur MetaTester 5 démarré sur 127.0.0.1:3000

Démarrage initialisation terminée

127.0.0.1 login (build 1578)

Réseau 38520 octets d'informations de compte chargées

Réseau 1482 octets de paramètres du testeur chargés

Réseau 188 octets de paramètres d'entrée chargés

Réseau 4192 octets de liste de symboles chargés

Tester expert fichier ajouté : Experts\!sn_err.ex5. 11617 octets chargés

Testeur dépôt initial 10000.00 RUR, effet de levier 1:100

Le testeur a été initialisé avec succès

Réseau 29 Kb de données d'initialisation totales reçues

Testeur Version virtuelle QEMU (cpu64-rhel6), 2047 Mo

Symboles RTS-6.17 : symbole à synchroniser

Symboles RTS-6.17 : symbole synchronisé, 3784 octets d'information sur le symbole reçus.

Historique RTS-6.17 : synchronisation de l'historique commencée

Historique RTS-6.17 : charger 31 octets de données historiques pour synchroniser dans 0:00:00.000

Historique RTS-6.17 : historique synchronisé de 2016.01.20 à 2017.04.07

Ticks RTS-6.17 : début de la synchronisation des ticks

Ticks RTS-6.17 : charger 38 octets de données de tick pour synchroniser dans 0:00:00.000

Ticks RTS-6.17 : historique des ticks synchronisé de 2017.04.06 à 2017.04.06

Historique RTS-6.17,M1 : le cache de l'historique est alloué pour 475200 barres et contient 23851 barres de 2016.01.20 12:28 à 2017.04.05 23:45

Historique RTS-6.17,M1 : l'historique commence à partir de 2016.01.20 12:28

Tester RTS-6.17,M1 (MetaQuotes-Demo) : génération basée sur des ticks réels

Testeur RTS-6.17,M1 : les tests des experts\!sn_err.ex5 de 2017.04.06 00:00 à 2017.04.07 00:00 ont commencé.

Ticks RTS-6.17 : les ticks réels commencent à partir de 2017.04.06 00:00:00


...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...

Dossiers :
jsn_err.mq5  5 kb
 
Snest:

Peut-être que quelqu'un serait intéressé de simuler un problème que j'ai rencontré - il semble que CopyTicks dans le testeur de stratégie en mode "Chaque tick basé sur le réel" dans certains cas commence à doubler les ticks retournés par une requête.

C'est une chose très désagréable dans votre situation.

Il n'y a donc qu'une seule solution : abandonner le testeur pendant un certain temps.


SZZ a regardé votre code et votre journal. Définitivement un bug CopyTicks dans le testeur. Intéressant, DOUBLE-ticks ne commence pas avec une duplication complète. Quoi qu'il en soit, copiez-collez votre message dans le SD. Pour le moment, CopyTicks ne peut pas être utilisé dans le testeur et le testeur lui-même ne peut pas être utilisé en mode "par ticks réels".

 
fxsaber:

Une chose très désagréable est apparue dans votre situation.

Il n'y a donc qu'une seule solution : abandonner le testeur pendant un certain temps.


J'ai regardé votre code et votre journal. Définitivement un bug CopyTicks dans le testeur. Intéressant, DOUBLE-ticks ne commence pas avec une duplication complète. Quoi qu'il en soit, copiez-collez votre message dans le SD. Pour le moment, CopyTicks ne peut pas être utilisé dans le testeur et le testeur lui-même ne peut pas être utilisé en mode "par ticks réels".


Merci, j'ai envoyé un message à Servicedesk. Je vous écrirai pour vous communiquer les résultats.
 
Dans l'histoire, les tics corrects partent d'une certaine date (j'ai déjà écrit à ce sujet). Avant cela, il y a les doubles. Ceci si le compte est en Otkritie.
 
Dmitriy Skub:
Dans l'historique, les tics corrects partent d'une certaine date (j'ai déjà écrit à ce sujet). Avant cela, ils vont avec des doublons. Ceci si le compte est dans l'Open.


Les journaux montrent que le test a été effectué pour le 06 avril 2017. Résultats similaires pour avril 07.

La situation est similaire sur Opening-Real et MQ-Demo.

 
Snest:


Les journaux montrent que le test a été effectué pour le 06 avril 2017. Résultats similaires pour le 07 avril.

La situation est similaire sur Opening-Real et MQ-Demo.

Tadas à la morgue. Je veux dire, à la SD))
 
Dmitriy Skub:
A la morgue, alors. Je veux dire, le SR.)

C'est un très bon point.
 

Cela fait trois mois et le ticket n'a toujours pas été fermé. Des problèmes.


De plus, j'ai trouvé un autre bug (si le problème n'est pas lié au fournisseur de devis), cette fois-ci avec le mauvais sens de la transaction. Je copie le texte du ticket pour avertir la communauté :

Une comparaison des données MT5 obtenues par l'outil standard "Price Stack / Show All Trades Table" sur un compte réel AMP-Features avec des cotations de CQG, avec les données de Ritmik a montré que MT5, dans certains cas apparemment assez rares, détermine incorrectement le sens de la transaction.

Nous déchargeons la profondeur de marché pour 11.07 en utilisant l'outil standard "Profondeur de marché / Afficher le tableau de toutes les transactions". Regardez les données sur les futures GCEQ7 à partir de 00:03 min heure de Chicago (dans le tableau ci-dessous c'est GMT, pas Chicago)

Résultat.

2017.07.1105:03:00.3241209.71209.81209.71Vendez
2017.07.1105:03:00.3241209.71209.81209.71Vendez
2017.07.1105:03:00.3241209.71209.81209.71Vendez
2017.07.1105:03:00.3241209.71209.81209.71Vendez
2017.07.1105:03:00.3241209.71209.81209.71Vendez
2017.07.1105:03:00.9701209.71209.81209.72Vendez
2017.07.1105:03:00.9701209.71209.81209.71Vendez
2017.07.1105:03:00.9701209.71209.81209.72Vendez
2017.07.1105:03:00.9701209.71209.81209.71Vendez
2017.07.1105:03:00.9701209.71209.81209.71Vendez
2017.07.1105:03:00.9701209.71209.81209.71Vendez
2017.07.1105:03:00.9771209.71209.81209.72Vendez
2017.07.1105:03:00.9771209.71209.81209.71Vendez
2017.07.1105:03:00.9771209.71209.81209.72Vendez
2017.07.1105:03:00.9771209.71209.81209.71Vendez
2017.07.1105:03:00.9771209.71209.81209.71Vendez
2017.07.1105:03:00.9771209.71209.81209.71Vendez
2017.07.1105:03:00.9771209.71209.81209.71Acheter
2017.07.1105:03:01.3621209.71209.81209.71Vendez
2017.07.1105:03:02.1171209.71209.81209.73Vendez
2017.07.1105:03:02.1171209.71209.81209.72Vendez
2017.07.1105:03:02.1171209.71209.81209.71Vendez

Résultat attendu

Données de Rithmic à l'heure de Moscou :

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


Les divergences dans le sens des transactions sont indiquées en rouge.