티크 역사 - 페이지 18

 
Alexander :

지금 재생 중?

우리는하지 않습니다, 우리는 설명에 따라 시도했습니다.

치료 후":

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

티크 역사

카르푸토프 블라디미르 , 2015.10.21 09:24

...

이제 "치료"를 테스트 중입니다. MetaQuotes-Demo 서버의 "history" 및 "ticks" 폴더에서 스토리를 완전히 삭제할 것입니다.


500틱의 기록은 거의 즉시 반환되고 막대의 일반적인 기록은 교체됩니다. 10개월 동안의 틱 파일 크기는 200-400Kb입니다.

 

그리고 테스터가 무엇을 제공하든 테스터에서 진드기를 얻고 싶었습니다. :)

 void OnTick ()
  {
//---
 MqlTick ExTicks[];
 CopyTicks( _Symbol ,ExTicks,COPY_TICKS_ALL, D'2015.10.16 23:59' , 1 );

 

밀리초와 플래그가 추가되는 빌드 1194에서 틱이 어떻게 작동하는지 확인하세요.

테스터에서 다음 릴리스에서 틱을 거래 전략 테스터 에 완전히 통합할 때까지 틱이 반환되지 않습니다.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

인터넷 연결이 끊겼을 때 틱의 스와핑을 확인합니다. 아래의 테스트된 표시기:

 //+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version      "1.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int    InpShowTicks= 50 ;     // клубина истории тиков
//--- parameters
MqlTick      arr_mql_tick[];       // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {
   Print ( __FUNCTION__ );
   Comment ( "" );
   ResetLastError ();
//--- новый размер массива структур тиков
   if ( ArrayResize (arr_mql_tick,InpShowTicks)==- 1 )
     {
       Print ( "Error OnInit #1" , GetLastError ());
       return ( INIT_FAILED );
     }
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   static int count;
   string text  = IntegerToString (count)+ "; " ;
   int copied=CopyTicks( _Symbol ,arr_mql_tick,COPY_TICKS_INFO, 0 ,InpShowTicks);
   text+= "Запрошено " + IntegerToString (InpShowTicks)+ " тиков, скачано " + IntegerToString (copied);
   Comment (text);
   count++;
   return (rates_total);
  }
//+------------------------------------------------------------------+

알고리즘은 다음과 같습니다.

실행 표시기. 다운로드한 틱 수가 요청된 수와 같아질 때까지 기다립니다.

인터넷 연결을 끊습니다(터미널에서 신호음이 울림). 여기서:

  1. 테스트 #1, "카운트" = 40,
  2. 테스트 번호 2, "카운트" = 47,
  3. 테스트 #3, "카운트" = 12.

인터넷을 켭니다.

표시기는 틱을 다운로드하려고 시도하지만 요청은 50이고 21-23을 다운로드했습니다. 이것은 "count"가 100 이상이 될 때까지 계속됩니다.

반복성은 양호하며 3회 이상 테스트되었습니다.

파일:
test.mq5  3 kb
 
Karputov Vladimir :

인터넷 연결이 끊겼을 때 틱의 스와핑을 확인합니다. 아래의 테스트된 표시기:


표시기에서 눈금을 요청하는 것은 Expert Advisor에서 눈금을 요청하는 것과 약간 다르게 작동합니다.

표시기에는 속도를 늦출 권한이 없으므로 표시기에 요청에 사용할 수 있는 틱 수가 즉시 제공됩니다.

EA는 자체 스레드에서 작동하므로 조금 기다릴 수 있습니다. Expert Advisor의 경우 요청당 틱 교환을 여러 번 시도합니다.

 
Slawa :

표시기에서 눈금을 요청하는 것은 Expert Advisor에서 눈금을 요청하는 것과 약간 다르게 작동합니다.

표시기에는 속도를 늦출 권한이 없으므로 표시기에 요청에 사용할 수 있는 틱 수가 즉시 제공됩니다.

EA는 자체 스레드에서 작동하므로 조금 기다릴 수 있습니다. Expert Advisor의 경우 요청당 틱을 교환하기 위해 여러 번 시도합니다.

이것은 분명합니다. 근데 교환하는데 얼마나 걸리나요? 위의 예에서 요청은 50틱이며, 틱이 즉시 로드되지 않으면 30초가 걸립니다.

더 나빠. 나는 500틱을 요청한다 - 틱은 거의 즉시 로드된다(나는 그런 양을 요청했었다는 사실 때문에만 생각한다) 그런 다음 나는 5000틱을 요청한다 - 4분이 지나고 5000틱 중 2000보다 약간 적게 로드되고 이 숫자는 증가하지 않습니다.

 
Renat Fatkhullin :

밀리초와 플래그가 추가되는 빌드 1194에서 틱이 어떻게 작동하는지 확인하세요.

테스터에서 다음 릴리스에서 틱을 거래 전략 테스터에 완전히 통합할 때까지 틱이 반환되지 않습니다.

MT4에도 비슷한 변경 사항이 있습니까?
 

저녁에 다른 컴퓨터에서 확인했습니다.

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+ 02 : 00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

이전에는 스크립트를 사용하여 200,000,000 틱을 다운로드했습니다. 틱은 약 6초 만에 로드됩니다. 그런 다음 모두 동일합니다.

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

티크 역사

카르푸토프 블라디미르 , 2015.10.22 15:07

... 나는 500 틱에 대한 요청을합니다 - 틱은 거의 즉시로드됩니다 (나는 그러한 번호를 요청했던 사실 때문에 만 생각합니다). 그런 다음 5000에 대한 요청을합니다 - 4 분이 지나고 5000개 중 2000개 미만이 로드되었으며 이 숫자는 증가하지 않습니다.

 
불행히도 MT4에는 없습니다.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

MqlTicks 구조 의 플래그 필드에는 종종 "24" 값("모든 틱" 표시 모드)이 포함됩니다.

하나

- 이 값은 무엇을 의미합니까?

파일: