'CopyTicks' 테스트 - 페이지 47

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

아무도 그것을 보거나 이해하지 않을 것입니다. 주식 틱과 MT5의 비교 분석이 있기 전까지는 대화가 비어 있습니다. 왜냐하면 비뚤어진 데이터를 브로커에게 전송하는 것은 항상 거래소라고 말할 수 있습니다.

 
fxsaber # :

아무도 그것을 보거나 이해하지 않을 것입니다. 주식 틱과 MT5의 비교 분석이 있기 전까지는 대화가 비어 있습니다. 왜냐하면 비뚤어진 데이터를 브로커에게 전송하는 것은 항상 거래소라고 말할 수 있습니다.

자세히 보면 외부 확인이 필요 없는 것들이 있는데...


 
prostotrader # :

자세히 보면 외부 확인이 필요 없는 것들이 있는데...

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

'CopyTicks' 테스트

fxsaber , 2021.11.12 08:05

비뚤어진 데이터를 브로커에게 전송하는 것은 항상 거래소라고 말할 수 있습니다.

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

특정 시점에서 현재 틱을 찾는 것이 어려운 작업이라는 것을 올바르게 이해하고 있습니까?


예를 들어 2022.04.29 23:00:00.000에 어떤 틱이 관련이 있는지 알아내야 합니다. 화면에 강조 표시됩니다.


떠오른 유일한 해결책.

 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 # :

특정 시점에서 현재 틱을 찾는 것이 어려운 작업이라는 것을 올바르게 이해하고 있습니까?


예를 들어, 2022.04.29 23:00:00.000에 어떤 틱이 관련이 있는지 알아내야 합니다. 화면에 강조 표시됩니다.


떠오른 유일한 해결책.

아름답게 완성되었습니다. 그 전에는 이것이 가능하다는 생각을 해본 적이 없었습니다.

이렇게 수정하겠습니다. 의미는 동일하며 한 번만 적용됩니다.

 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);
}  

나는 >=2 틱 배열과 여기 를 동기화할 필요가 있을 때만 역사에서 그러한 작업을 만났습니다. 그러나 두 경우 모두 동기화는 이미 기성품 어레이에서 한 번에 언로드됩니다. 인덱스의 직렬 이동에 의해 동기화됩니다. 나는 몇시(미래)가 가장 가까운지 보고 이 악기의 인덱스를 ++로 이동합니다.

 
Andrey Miguzov # :

이렇게 수정하겠습니다. 의미는 동일하며 한 번만 적용됩니다.

불행히도 인접한 틱 사이의 간격을 추측할 수 없습니다. 때로는 30분 이상.

사유: