Testare 'CopyTicks'. - pagina 47

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.10
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

Nessuno lo guarderà e lo smonterà. Finché non c'è un'analisi comparativa dei tick di scambio e di MT5, la conversazione è vuota. Perché si può sempre dire che è la borsa che trasmette dati falsi al broker.

 
fxsaber #:

Nessuno lo guarderà e lo smonterà. Finché non c'è un'analisi comparativa dei tick di scambio e di MT5, la conversazione è vuota. Perché si può sempre dire che è la borsa che trasmette dati falsi al broker.

Ci sono alcune cose che non hanno bisogno di conferme esterne se solo si guarda da vicino...


 
prostotrader #:

Ci sono alcune cose che non hanno bisogno di una convalida esterna se solo si guarda da vicino...

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Testare 'CopyTicks'.

fxsaber, 2021.11.12 08:05

Si può sempre dire che è la borsa che trasmette dati falsi al broker.

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.17
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

Ho capito bene che trovare il tick effettivo in un certo momento è un compito difficile?


Per esempio, è necessario scoprire quale tick era effettivo il 2022.04.29 23:00:00.000. Nello screenshot è evidenziato.


L'unica soluzione che mi è venuta in mente.

bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Amount = 20 )
{
  MqlTick Ticks[];
  
  int Offset = 500;
  int Res = 0;
  
  while (!::IsStopped() && (Res <= 0) && (bool)Amount--)
    Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - (Offset <<= 1), time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 23:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}
 
fxsaber #:

Ho capito bene che trovare il tick effettivo in un certo momento è un compito difficile?


Per esempio, è necessario scoprire quale tick era effettivo il 2022.04.29 23:00:00.000. Nello screenshot è evidenziato.


L'unica soluzione che mi è venuta in mente.

Bellissimo, non mi era mai venuto in mente prima che si potesse fare così.

L'avrei corretto in questo modo, il significato è lo stesso, solo in 1 volta.

 bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Sec = 30 )
{
  MqlTick Ticks[];
   
  int Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - Sec*1000, time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 18:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}  

Ho affrontato un tale compito solo quando si sincronizzano >=2 array di tick e qui. Ma in entrambi i casi, la sincronizzazione viene eseguita utilizzando gli array pronti scaricati in una sola volta. Sia lì che lì, ho sincronizzato spostando gli indici uno per uno. Vedo che ora (in futuro) è più vicina e sposto l'indice con questo strumento ++.

 
Andrey Miguzov #:

Lo correggerei così - il significato è lo stesso, solo in 1 tempo.

Sfortunatamente, è impossibile indovinare l'intervallo tra tick adiacenti. A volte ben oltre il mezzo minuto.