Test des "CopyTicks". - page 38

 
Snest:

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

Écrivez-leur à nouveau dans l'application et demandez-leur de faire des commentaires. Généralement triste, bien sûr, mais il m'arrive aussi de percevoir des signes d'incertitude.

Est-ce que AMP fournit déjà des réals pour MT5 ? Ont-ils ouvert en ligne ?

 

La question ne s'adresse pas à nous, mais à datafeed, qui n'a pas été écrit par nous.

 

Oui, j'ai ouvert un réel d'AMP sur MT5.


Renat, est-ce que ce sont les mauvaises citations de CQG ?

Est-ce qu'ils donnent la mauvaise direction au commerce? Ou bien ils ne le fournissent pas du tout pour MT5 et doivent déterminer la direction de manière algorithmique ?

Est-il judicieux pour moi de comparer les devis avec un autre terminal sur CQG ?

 

Données déchargées d'un autre terminal connecté à la démo CQG. Correspondance avec ritmik et divergence avec MT5 :

Prix de l'offre et de la demande

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 2 Vendre

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 2 Vendre

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209,7 1209,7 1209,8 1 Vente

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:00 1209.7 1209.6 1209.7 2 Acheter

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:00 1209.7 1209.6 1209.7 2 Acheter

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Achat

11.07.2017 8:03:01 1209.7 1209.7 1209.8 1 Vendre

11.07.2017 8:03:02 1209.7 1209.7 1209.8 3 Vendre

11.07.2017 8:03:02 1209,7 1209,7 1209,8 2 Vendre

11.07.2017 8:03:02 1209,7 1209,7 1209,8 1 Vendre

11.07.2017 8:03:02 1209,7 1209,7 1209,8 1 Vendre


 

COPY_TICKS_INFO - l'historique destick contient des voisins en double dans la même session de trading - bug.

#include <TypeToBytes.mqh>

string GetTickFlag( uint tickflag )
{
  string flag = "";

#define  TICKFLAG_MACRO(A) flag += ((bool)(tickflag & TICK_FLAG_##A)) ? " TICK_FLAG_" + #A : "";
  TICKFLAG_MACRO(BID)
  TICKFLAG_MACRO(ASK)
  TICKFLAG_MACRO(LAST)
  TICKFLAG_MACRO(VOLUME)
  TICKFLAG_MACRO(BUY)
  TICKFLAG_MACRO(SELL)
#undef  TICKFLAG_MACRO

  if (flag == "")
    flag = " FLAG_UNKNOWN (" + (string)tickflag + ")";
     
  return(flag);
}

#define  TOSTRING(A) " " + #A + " = " + (string)Tick.A

string TickToString( const MqlTick &Tick )
{
  return(TOSTRING(time) + "." + (string)IntegerToString(Tick.time_msc % 1000, 3, '0') +
         TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + GetTickFlag(Tick.flags));
}

void OnStart()
{  
  MqlTick Ticks[];
  MqlTick Ticks2[];
  
  const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, 0, 1 e4);
  
  ArrayCopy(Ticks2, Ticks);

  for (int i = 0; i < Amount; i++)
  {
    Ticks[i].time = 0;
    Ticks[i].time_msc = 0;
  }

  for (int i = 1; i < Amount; i++)
    if (_R(Ticks[i]) == Ticks[i - 1])
    {
      Print(i);
      Print(TickToString(Ticks2[i - 1]));
      Print(TickToString(Ticks2[i]));      
    }
}

Résultat

Test3 (RTS-9.17,M1)     4906
Test3 (RTS-9.17,M1)      time = 2017.08.31 18:44:59.963 bid = 0.0 ask = 0.0 last = 109330.0 volume = 6 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.08.31 18:55:07.805 bid = 0.0 ask = 0.0 last = 109330.0 volume = 6 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     4908
Test3 (RTS-9.17,M1)      time = 2017.08.31 18:55:50.541 bid = 109270.0 ask = 109380.0 last = 109330.0 volume = 6 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.08.31 19:05:00.324 bid = 109270.0 ask = 109380.0 last = 109330.0 volume = 6 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9198
Test3 (RTS-9.17,M1)      time = 2017.08.31 23:09:18.717 bid = 109380.0 ask = 109390.0 last = 109390.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.08.31 23:10:18.767 bid = 109380.0 ask = 109390.0 last = 109390.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9872
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:13:21.106 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:14:21.108 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9877
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:18:22.071 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:19:28.235 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9884
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:25:47.230 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 16:26:51.723 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9930
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:17:01.369 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:18:26.289 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9941
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:29:41.000 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 2 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:30:42.114 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 2 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9942
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:30:42.114 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 2 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:34:59.000 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 2 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9945
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:37:11.121 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:38:15.898 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9954
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:49:00.026 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:50:01.699 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9955
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:50:01.699 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:51:02.404 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9956
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:51:02.404 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:52:15.775 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9959
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:55:08.919 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 17:56:14.099 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9967
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:05:05.165 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:06:07.867 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9968
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:06:07.867 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:07:20.598 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9974
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:15:18.820 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:16:53.501 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9980
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:23:16.970 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 100 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:24:33.299 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 100 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9987
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:31:49.116 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:32:55.510 bid = 112000.0 ask = 112010.0 last = 112010.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9994
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:40:25.187 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:41:25.813 bid = 112000.0 ask = 112010.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)     9999
Test3 (RTS-9.17,M1)      time = 2017.09.21 18:44:45.546 bid = 0.0 ask = 0.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
Test3 (RTS-9.17,M1)      time = 2017.09.22 09:45:00.446 bid = 0.0 ask = 0.0 last = 112000.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK
 
fxsaber:

COPY_TICKS_INFO - l'historique destick contient des voisins en double dans la même session de trading - bug.

Résultat

Le résultat que vous présentez n'est pas un bug de la fonction CopyTicks. CopyTicks donne exactement ce qui se trouve dans la base de données des ticks.

Pourquoi dans la base de données des tics de tels doublons (exactement des doublons, pas des duplicatas, car l'heure est différente), nous analysons maintenant

 
fxsaber:

COPY_TICKS_INFO - l'historique destick contient des voisins en double dans la même session de trading - bug.

Résultat

Serveur Fibo ?
 
Andrey Dik:
Serveur Fibo ?

Metaquotes.

 

Le script montre que le cache de tique ne fonctionne pas correctement.

// Проверка тикового кеша
void OnStart()
{  
  MqlTick Ticks[];
  
  ArrayResize(Ticks, 0, 1 e5);
  
  // Закачали тики на машину
  const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, 0, 1 e5);
  
  if (Amount > 0)
  {
    const long From = Ticks[0].time_msc;
    const long To = Ticks[Amount - 1].time_msc;
    
    Print(AccountInfoString(ACCOUNT_SERVER) + "\n" + _Symbol);
    Print(Amount);
    
    // Запрашиваем имеющиеся тики
    for (int i = 0; i < 1000; i++)
      if (CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, From, 1 e5) == -1)
      {
        Print(GetLastError());
        
        break;
      }

    Print("End");
  }
}


Résultat sur un serveur

2017.10.17 10:43:00.807 MetaQuotes-Demo
2017.10.17 10:43:00.807 EURUSD
2017.10.17 10:43:00.807 100000
2017.10.17 10:43:02.489 End


Et de l'autre

2017.10.17 10:42:16.027 ICMarkets-Demo
2017.10.17 10:42:16.027 EURUSD
2017.10.17 10:42:16.027 100000
2017.10.17 10:42:43.816 End


Dans le premier cas, 2,5 secondes, dans le second cas, 27,5 secondes. Pourquoi y a-t-il des décalages aussi importants ?

 
fxsaber:

Dans le premier cas, 2,5 secondes, dans le second, 27,5 secondes. Pourquoi y a-t-il des décalages aussi importants ?

Et vous pensez que 1 000 requêtes CopyTicks ne doivent pas prendre du temps ?
Raison: