'CopyTicks' 테스트 - 페이지 38

 
Snest :

3개월이 지났는데 티켓이 닫히지 않았습니다. 문제.

댓글을 작성하려면 응용 프로그램에서 다시 작성하십시오. 일반적으로 슬픔은 물론이지만 가끔 틱도 잡히지 않는 방향으로 갑니다.

AMP는 이미 MT5용 Reals를 제공하고 있습니까? 온라인 오픈?

 

질문은 우리를 위한 것이 아니라 우리가 작성하지 않은 데이터 피드에 대한 것입니다.

 

예, MT5에서 AMP로 real을 열었습니다.


Renat, 즉 CQG의 잘못된 인용문입니까?

그들이 무역의 방향을 잘못 알려주고 있습니까? 아니면 일반적으로 MT5에는 제공되지 않으며 알고리즘적으로 방향을 결정해야 합니까?

CQG의 다른 터미널과 따옴표를 비교하는 것이 의미가 있습니까?

 

CQG 데모에 연결된 다른 터미널에서 데이터를 업로드했습니다. 리듬과 일치하고 MT5에서 발산:

가격 입찰 요청

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 2 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 2 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:00 1209.7 1209.7 1209.8 1 매도

2017년 7월 11일 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017-07-11 오전 8:03:00 1209.7 1209.6 1209.7 2 매수

2017-07-11 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017-07-11 오전 8:03:00 1209.7 1209.6 1209.7 2 매수

2017년 7월 11일 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017-07-11 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017년 7월 11일 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017년 7월 11일 오전 8:03:00 1209.7 1209.6 1209.7 1 구매

2017-07-11 오전 8:03:01 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:02 1209.7 1209.7 1209.8 3 매도

2017-07-11 오전 8:03:02 1209.7 1209.7 1209.8 2 매도

2017-07-11 오전 8:03:02 1209.7 1209.7 1209.8 1 매도

2017-07-11 오전 8:03:02 1209.7 1209.7 1209.8 1 매도


 

COPY_TICKS_INFO 틱 기록에 한 거래 세션 에 중복 이웃이 포함되어 있습니다. 버그.

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

결과

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 틱 기록에 한 거래 세션 에 중복 이웃이 포함되어 있습니다. 버그.

결과

귀하가 제시한 결과는 CopyTicks 기능의 버그가 아닙니다. CopyTicks는 틱 데이터베이스에 있는 내용을 정확히 반환합니다.

틱 데이터베이스에 왜 그런 더블이 있는지(시간이 다르기 때문에 중복이 아니라 정확히 더블), 지금 조사 중입니다.

 
fxsaber :

COPY_TICKS_INFO 틱 기록에 한 거래 세션 에 중복 이웃이 포함되어 있습니다. 버그.

결과

피보 서버?
 
Andrey Dik :
피보 서버?

메타 따옴표.

 

스크립트에 틱 캐시가 제대로 작동하지 않음이 표시됨

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


하나의 서버에 대한 결과

 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


그리고 다른쪽에

 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


첫 번째 경우에는 2.5초, 두 번째 경우에는 27.5초입니다. 왜 이렇게 강력한 브레이크가 있습니까?

 
fxsaber :

첫 번째 경우에는 2.5초, 두 번째 경우에는 27.5초입니다. 왜 이렇게 강력한 브레이크가 있습니까?

1000 CopyTicks 요청에 시간이 걸리지 않아야 한다고 생각하십니까?