Testare 'CopyTicks'. - pagina 38

 
Snest:

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

Scrivete loro di nuovo nella domanda e chiedete loro di commentare. Generalmente triste, certo, ma di tanto in tanto colgo anche tic di direzione incerta.

AMP fornisce già i reali per MT5? Hanno aperto online?

 

La domanda non è per noi, ma per datafeed, che non è stato scritto da noi.

 

Sì, ho aperto un reale da AMP su MT5.


Renat, sono le citazioni sbagliate di CQG?

Forniscono la direzione sbagliata del commercio? Oppure non lo forniscono affatto per MT5 e devono determinare la direzione in modo algoritmico?

Ha senso per me confrontare le quotazioni con un altro terminale su CQG?

 

Dati scaricati da un altro terminale collegato al demo CQG. Corrisponde a ritmik e diverge da MT5:

Prezzo Bid Ask

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 2 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 2 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 2 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 2 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:00 1209.7 1209.6 1209.7 1 Comprare

11.07.2017 8:03:01 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:02 1209.7 1209.7 1209.8 3 Vendere

11.07.2017 8:03:02 1209.7 1209.7 1209.8 2 Vendere

11.07.2017 8:03:02 1209.7 1209.7 1209.8 1 Vendere

11.07.2017 8:03:02 1209.7 1209.7 1209.8 1 Vendere


 

COPY_TICKS_INFO-tick history contiene vicini duplicati nella stessa sessione di 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]));      
    }
}

Risultato

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-tick history contiene vicini duplicati nella stessa sessione di trading - bug.

Risultato

Il risultato presentato da voi non è un bug della funzione CopyTicks. CopyTicks dà esattamente quello che c'è nel database delle zecche.

Perché nel database delle zecche tali raddoppiamenti (esattamente raddoppiamenti, non duplicati, perché il tempo è diverso), ora stiamo analizzando

 
fxsaber:

COPY_TICKS_INFO-tick history contiene vicini duplicati nella stessa sessione di trading - bug.

Risultato

Server Fibo?
 
Andrey Dik:
Server Fibo?

Meta-citazioni.

 

Lo script mostra che la cache dei tick non funziona correttamente

// Проверка тикового кеша
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");
  }
}


Risultato su un server

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


E dall'altro

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


Nel primo caso 2,5 secondi, nel secondo caso 27,5 secondi. Perché ci sono dei ritardi così pesanti?

 
fxsaber:

Nel primo caso, 2,5 secondi, nel secondo, 27,5 secondi. Perché ci sono dei ritardi così pesanti?

E pensate che 1.000 query di CopyTicks non dovrebbero richiedere tempo?
Motivazione: