Tiki en temps réel - page 9

 
Andrey Khatimlianskii:

J'ai regardé attentivement, plusieurs fois.

A 13:40:50.839 OnTick a reçu des ticks qui n'ont atteint OnBookEvent qu'à 13:40:50.853

Souhaitez-vous faire un commentaire à ce sujet ? )

 
Andrey Khatimlianskii:

Il n'en trouve qu'un seul :

Mais il ne permet pas d'y ouvrir un compte.

Remettez l'investissement à zéro, je vais faire un test sur le mien.

Comment dois-je m'y prendre ?

 
Andrey Khatimlianskii:

Il n'en trouve qu'un seul :

Mais il ne permet pas d'y ouvrir un compte.

Envoyez un investisseur, je ferai un test sur le mien.

Vous devez ouvrir un compte sur leur site web.

 
Andrey Khatimlianskii:

Souhaitez-vous faire un commentaire à ce sujet ? )

Vous feriez mieux de commenter cela.


Il y a des omissions évidentes dans OnTick()

Andrei !

Pourquoi avez-vous besoin d'un compte, j'ai posté le journal, ou pensez-vous que je l'ai modifié?

Ajouté

Et aussi, vous avez une imprécision dans votre code.

if ( CopyTicks( _Symbol, cur_ticks, COPY_TICKS_ALL, 0, 1 ) > 0 )
                {
                        last_tick_time = cur_ticks[0].time_msc;
                        last_tick = cur_ticks[0];
                }

Et si CopyTicks() renvoie "0".

Vous ne gérez pas cette situation, et lorsque vous utilisez OnBookEvent()

Une telle situation se produit souvent lorsqu'un ordre en attente est placé (supprimé) dans la fenêtre de sélection.

Cela se produit lorsqu'un ordre en attente avec un prix déjà existant est placé (supprimé). OnBookEvent() se déclenche mais OnTick() ne le fait pas.

Ma mise en œuvre tient compte de cet aspect

result = CopyTicks(Symbol(), ticks, COPY_TICKS_ALL, last_time, 0);
      if(result > 0)
      {
        if(result > t_cnt)
        {
          mem_cnt = t_cnt;
          t_cnt = 0;
          for(int i= 0; i<(result - int(mem_cnt)); i++)
          {
            if(ticks[i].time_msc == ticks[0].time_msc) t_cnt++;
            Print(GetTickDescription(ticks[i]));
          } 
          if(last_time == ulong(ticks[0].time_msc))
          {
            t_cnt += int(mem_cnt);
          }
          else last_time = ulong(ticks[0].time_msc + 1);
        }
        else
        {
          t_cnt = 0;
          last_time++;
        }
      }
      else
      {
        t_cnt = 0;
        last_time++;
      }
 else
      {
        t_cnt = 0;
        last_time++;
        Print("CopyTicks return ", result);
      }
2020.01.31 15:09:11.824	Ticks_test (GOLD-3.20,M1)	2020.01.31 15:09:05.627 Ask=1585.4 
2020.01.31 15:09:11.872	Ticks_test (GOLD-3.20,M1)	2020.01.31 15:09:05.627 Ask=1585.4 
2020.01.31 15:09:12.118	Ticks_test (GOLD-3.20,M1)	2020.01.31 15:09:05.790 Ask=1585.5 
2020.01.31 15:09:12.463	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:13.135	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:13.556	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:14.496	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:15.482	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:15.674	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0
2020.01.31 15:09:15.696	Ticks_test (GOLD-3.20,M1)	CopyTicks return 0

 
prostotrader:

Vous feriez mieux de commenter ceci


Il y a des omissions évidentes dans OnTick().

Je n'ai pas vu de sauts, mais des retards dans les deux sens.

Mais ce n'est pas moi qui ai fait la thèse que les tics d'OnBook arrivent plus vite, c'est vous. Le journal a montré que c'est l'inverse.

J'attends donc vos commentaires.


prostotrader:

Andrei !

Pourquoi avez-vous besoin du score, j'ai posté le journal, ou pensez-vous que je l'ai modifié?

Non, c'est juste intéressant de comparer mes résultats avec les vôtres dans les mêmes conditions.


prostotrader:

Et vous avez une imprécision dans votre code.

Et si CopyTicks() renvoie "0".

Vous ne gérez pas cette situation, et lorsque vous utilisez OnBookEvent()

Une telle situation est fréquente, elle se produit lorsqu'une affaire en cours

avec un prix déjà existant, OnBookEvent() se déclenche, mais OnTick() ne le fait pas.

Et à quoi sert cette "tique" ? Ce n'est pas un tic, si on utilise la terminologie conventionnelle.

Ma version ignore simplement les ticks qui n'ont pas modifié l'heure ou l'un des prix. Parce qu'ils ne sont pas nécessaires pour l'analyse du flux de tic-tac (ils sont nécessaires pour l'analyse du culbuteur, mais nous n'en parlons pas maintenant).

 
prostotrader:

Comment dois-je m'y prendre ?

Dans l'onglet Courrier, il y a un e-mail concernant l'ouverture d'un compte, il y a un nom d'utilisateur et deux mots de passe - celui d'un trader et celui d'un investisseur.

 
Andrey Khatimlianskii:



Et pourquoi le "tic" ? Ce n'est pas du tout un tic, pour utiliser la terminologie conventionnelle.

Ma version ignore simplement les ticks qui n'ont pas modifié l'heure ou l'un des prix. Parce qu'ils ne sont pas nécessaires pour l'analyse du flux de tiques (ils sont nécessaires pour l'analyse du culbuteur, mais nous n'en parlons pas maintenant).

Il est évident que vous êtes un fan du FOREX,

Et sur le FOREX, l' ensemble du marché est souvent analysé (tous ses changements), c'est important pour trader sur la bourse !

 
Andrey Khatimlianskii:

Il y a un e-mail dans l'onglet Courrier concernant l'ouverture d'un compte, il y a un nom d'utilisateur et deux mots de passe - celui du trader et celui de l'investisseur.

Investisseur : FfiR87ty (mot de passe en lecture seule)

 
Andrey Khatimlianskii:

Je n'ai pas vu de sauts, mais des retards dans les deux sens.


Comment ça, vous n'en avez pas vu ?

Qu'est-ce que c'est ?


De toute façon, c'est une évidence pour moi depuis longtemps, laissez chacun choisir lui-même ce qu'il "aime" !

Ajouté

OnBookEvent() est spécialement conçu pour fonctionner avec tumblr.

Вызывается в индикаторах и экспертах при наступлении события BookEvent.
Функция предназначена для обработки изменений стакана цен (Depth of Market).

Et le verre est la "tête" de tout dans l'échange !

Ajouté

Je pense que vous ne faites pas exprès de ne prendre qu'une seule coche.

if ( CopyTicks( _Symbol, cur_ticks, COPY_TICKS_ALL, 0, 1 ) > 0 )
                {
                        last_tick_time = cur_ticks[0].time_msc;
                        last_tick = cur_ticks[0];
                }

Vous ratez tout ce qui était avant (0, c'est-à-dire le temps actuel) !

Dans ma mise en œuvre, TOUTES les tiques sont prises en compte.

result = CopyTicks(Symbol(), ticks, COPY_TICKS_ALL, last_time, 0);

Votre code n'est pas adapté à de tels tests!

 
prostotrader:

Il est évident que vous êtes un fan du FOREX,

Et sur le FOREX, l' ensemble du marché (tous ses changements) est très souvent analysé, ce qui est important pour négocier sur la Bourse !

Il n'y a qu'un seul fan ici, et c'est vous.

Je travaille avec des informations techniques.

La tâche d'analyser la profondeur du marché dans ce fil n'était pas prévue, dès le départ. Les ticks sans changement de prix ne sont pas nécessaires selon les termes de la tâche.

Raison: