Tiki en temps réel - page 13

 
Roman:

Ou peut-être pour le temps réel, au lieu de

utiliser

Pourquoi copier quand vous pouvez obtenir immédiatement le prix actuel?
En théorie, CopyTicks a dans ses entrailles des vérifications supplémentaires des paramètres, ce qui augmente la longueur du code dans le corps de la fonction.
Mais SymbolInfoTick n'a pas de paramètres supplémentaires, et en théorie, l'implémentation de cette fonction devrait contenir moins de code.
Moins de code signifie une exécution plus rapide.

La seule mauvaise chose est que la fonction SymbolInfoTick ne dispose pas d'une documentation détaillée similaire à celle de CopyTicks et son fonctionnement n'est pas complètement clair.
Est-ce qu'il y a un cache ou est-ce qu'il rend les données brutes immédiatement.

Seul le verre est immédiatement disponible, tout le reste est contrôlé en plus.

Personne ne divulguera la documentation détaillée - c'est un secret qui se cache derrière les 7 sceaux )))).

 
Sergey Chalyshev:

Seul le verre est remis directement, tout le reste est contrôlé en plus.

Personne ne divulguera la documentation détaillée - c'est un secret qui se cache derrière sept sceaux )))).

SymbolInfoTick() ne peut en principe pas donner la pile, je pense que nous voulions dire BestBid, BestAsk.
La structure de MqlTick n'est-elle pas entièrement remplie par BestBid, BestAsk ?
Qu'est-ce qui vous fait penser que d'autres membres de la structure ont besoin d'un contrôle supplémentaire ?

struct MqlTick 
{ 
   datetime     time;          // Время последнего обновления цен 
   double       bid;           // Текущая цена Bid 
   double       ask;           // Текущая цена Ask 
   double       last;          // Текущая цена последней сделки (Last) 
   ulong        volume;        // Объем для текущей цены Last 
   long         time_msc;      // Время последнего обновления цен в миллисекундах 
   uint         flags;         // Флаги тиков 
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью 
};

Si vous voulez obtenir le verre entier pour toutes les banques, vous devez utiliser

bool  MarketBookGet( 
   string        symbol,     // символ 
   MqlBookInfo&  book[]      // ссылка на массив 
   );

Renvoie un tableau de structures MqlBookInfo contenant les entrées du symbole spécifié.

 
Roman:

SymbolInfoTick() ne peut pas donner la coupe, peut-être vous voulez dire BestBid, BestAsk.
La structure de MqlTick n'est-elle pas entièrement remplie par BestBid, BestAsk ?
Pourquoi pensez-vous que les autres membres de la structure ont besoin d'un contrôle supplémentaire ?

Et si vous voulez obtenir le tumblr complet pour tous les gangs, vous devez utiliser

Renvoie un tableau de structures MqlBookInfo, contenant les enregistrements d'une pile de prix d'un symbole spécifié.

Je ne sais pas ce que vous voulez dire.

OnBook et OnTick sont des threads différents, si MQ les synchronise c'est très mauvais.

A en juger par l'image que j'ai donnée ci-dessus, ils ne sont pas totalement synchronisés.

Le test fxsaber inspire également confiance :

Le résultat est mauvais : dans OnTick/OnBookEvent, les ticks reçus à l'aide de différentes méthodes ne coïncident très souvent pas dans une même fonction On. Et vous ne pouvez pas dire quelle méthode d'obtention de la coche est pertinente et laquelle ne l'est pas. Terrible imprécision.

Alors, qui veut quoi :

- si vous avez besoin de meilleurs prix - OnBook,

- si vous avez besoin d'une petite part de marché - CopyTick,

- et si vous n'avez besoin de rien - OnTick, il peut sauter des ticks et retarder le flux d'informations, car il fonctionne dans un seul processus en ligne avec les autres fonctions On.


p.s. Tout ce que j'ai écrit ici ne concerne que les comptes de change, les forexistes s'en fichent (aucune différence), les forexistes passent leur chemin.

fxsaber
fxsaber
  • www.mql5.com
Опубликовал пост TesterPortfolio - портфель ТС Опубликовал пост "Out-Of-Sample" - где расположить, справа или слева? Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации - ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу...
 
Andrey Khatimlianskii:

Pendant un moment, il m'a semblé que vous aviez le désir de comprendre et que cela vous aiderait à dompter votre orgueil.
Non, c'est juste que ça y ressemble.

La question est résolue, et n'importe qui peut regarder vos codes, ceux de fxsaber et les miens et en tirer des conclusions.
Avec vous, j'arrête le dialogue, rien ne vient sauf des cris forts de votre part, et à la réception de l'information, votre cerveau ne fonctionne pas du tout.

Bonne chance avec les FORTS.

Andrey !

Vous êtes à tort offensé par mes remarques sur le FOREX, elles n'ont rien à voir avec vous.

Nous avons toujours eu des dialogues constructifs, mais si cela vous a offensé de quelque manière que ce soit, alors...

Je m'excuse auprès de vous personnellement !

 
Sergey Chalyshev:

Je ne sais pas ce que vous voulez dire.

OnBook et OnTick sont des threads différents, si MQ les a synchronisés c'est dommage.


D'après mes tests récents (après avoir corrigé un bug dans le code),

il est très clair que OnTick() est déclenché soit avant soit en même temps que OnBookEvent(),

mais dans les imprimantes OnTick() est toujours la première.

Il semble que lorsqu'un nouveau lot de tiques arrive,

alors la fonction qui les manipule "tire" d'abord OnTick() et ensuite "faufile" les données

où il doit aller :)

 
Roman:

Ou peut-être pour le temps réel, au lieu de

utiliser

Pourquoi copier quand vous pouvez obtenir le prix actuel immédiatement ?

Quel est le marché qui vous intéresse ?

 
prostotrader:

D'après mes tests récents (après avoir corrigé un bug dans le code),

il est très clair que OnTick() est déclenché soit avant soit en même temps que OnBookEvent(),

mais dans les imprimantes OnTick() est toujours la première.

Il semble que lorsqu'un nouveau lot de tiques arrive,

alors la fonction qui les manipule "tire" d'abord OnTick() puis "envoie" les données

où il doit aller :)

Oui, à peu près la même chose.

Le terminal est asynchrone et monofilaire, il traite tous les événements à tour de rôle.

Pour la pureté de l'expérience, qui est le plus rapide entre OnBook et OnTick, nous devrions utiliser deux terminaux chez un même courtier.

Dans un EA seulementOnBook sansOnTick .

Dans l'autre,seulementOnTick sans OnBook.

Et résumer les prix avec l'heure locale en millisecondes dans un seul fichier. C'est alors que l'on verra la vraie différence.

Sinon, sans temps de stock, il est impossible de comprendre la différence.

 
Sergey Chalyshev:

Oui, c'est à peu près la même chose.

Le terminal est asynchrone et monofilaire, il traite tous les événements à tour de rôle.

Pour la pureté de l'expérience, qui est le plus rapide entre OnBook et OnTick, nous devrions utiliser deux terminaux chez un même courtier.

Dans un EA seulementOnBook sansOnTick .

Dans l'autre,seulementOnTick sans OnBook.

Et résumer les prix avec l'heure locale en millisecondes dans un seul fichier. C'est alors que l'on verra la vraie différence.

Sinon, sans temps de stock, vous ne pouvez pas comprendre la différence.

Pas de problème, j'essaierai de l'exécuter lundi (j'ai trois terminaux en réel).

 
Sergey Chalyshev:

Je ne sais pas ce que vous voulez dire.

OnBook et OnTick sont des threads différents, si MQ les a synchronisés c'est dommage.

A en juger par l'image que j'ai donnée ci-dessus, ils ne sont pas totalement synchronisés.

Le test de fxsaber inspire également confiance :

Alors, qui veut quoi :

- si vous avez besoin de meilleurs prix - OnBook,

- si vous avez besoin d'une petite part de marché - CopyTick,

- et si vous n'avez besoin de rien - OnTick, il peut sauter des ticks et retarder le flux d'informations, car il fonctionne dans un seul processus en ligne avec les autres fonctions On.


p.s. Tout ce que j'ai écrit ici ne concerne que les comptes de change, les traders forex s'en fichent (aucune différence), les traders forex passent leur chemin.

Je faisais référence àSymbolInfoTick, vous avez écrit que " Seule la coupe est donnée immédiatement, tout le reste est vérifié en plus".
Je vous ai donné la structure de MqlTick pour vous montrer en quoi elle consiste, il n'y a pas de coupe, seulement les meilleurs prix. Et il n'y a pas de contrôles supplémentaires.
Je suis donc surpris par ce que vous avez écrit, peut-être avez-vous mal formulé l'idée.
Le OnBook et le OnTick sont des sockets différents, car dans tout protocole d'échange, les transactions ont lieu dans un socket, et le niveau 2 (marché) dans un autre.
Cela signifie que seule la meilleure offre, la dernière demande, etc. est envoyée au socket OnTick. Par conséquent, le OnTick a son propre gestionnaire pour ce socket.
Pour le niveau 2, la prise est différente et, par conséquent, le gestionnaire est différent. En principe, ils ne doivent pas être synchronisés de force du côté du terminal.

Très bien, nous utilisons exactement ce que nous voulons, les transactions dansSymbolInfoTick ou CopyTick, le verre dans MarketBookGet.

 
prostotrader:

Quel est le marché qui vous intéresse ?

Je n'utilise pas de forex de négociation.
Dans l'exemple, vousn'obtenez qu'un dernier élément de la structure de CopyTick, en fait, seulement les meilleurs prix.
Alors j'ai pensé, pourquoi copier des données d'un espace mémoire à un autre,
, quand il y a
SymbolInfoTick qui donne les meilleurs prix sans copier nulle part. Je peux me tromper sur la façon dont les fonctions fonctionnent, c'est juste mon avis.
Bien qu'il soit possible que ces deux fonctions fonctionnent de la même manière, la seule différence est que
CopyTick peut demander une plage de ticks.
Et
il est inutile d'utiliser des boucles pour traiter les ticks.

Raison: