오류, 버그, 질문 - 페이지 1721

 
Alexey Da :

항상 10억 틱을 요구합니까? 어레이의 경우에만 49GB입니다. 1월부터 지금까지 15789962 조각의 Si-12.16을 확인합니다.

귀하의 스크립트를 기반으로 한 작은 스크립트는 월별 틱 수를 계산합니다.


이 결과를 제공합니다


디스크에 표시되는 내용은 다음과 같습니다.


얼마나 주문하느냐는 중요하지 않습니다. 20,000틱(2만) 주문시에도 10개월분의 파일은 기가바이트 단위로 측정됩니다.

스크립트, 요청 시 20000

 //+------------------------------------------------------------------+
//|                                                    CopyTicks.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.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int   ticks= 200000000 ;   // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- запросим тики
   int copied= CopyTicks ( _Symbol ,ExTicks, COPY_TICKS_ALL , 0 ,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print ( "Получено тиков: " ,copied, " код ошибки: " , GetLastError ());
   if (copied> 1 )
     {
       Print ( "Тик: " ,ExTicks[ 0 ].time, " bid: " ,ExTicks[ 0 ].bid, " ask: " ,ExTicks[ 0 ].ask, " last: " ,ExTicks[ 0 ].last, " [0]" );
       Print ( "Тик: " ,ExTicks[copied- 1 ].time, " bid: " ,ExTicks[copied- 1 ].bid, " ask: " ,ExTicks[copied- 1 ].ask, " last: " ,ExTicks[copied- 1 ].last, " [" ,copied- 1 , "]" );
     }
   Print ( "Size " ,(( long )copied* sizeof ( MqlTick ))>> 20 , " Mb" );
  }
//+------------------------------------------------------------------+

10개월 동안 엄청난 파일 증가를 보였습니다 . 크기는 기가바이트로 측정되었습니다.


터미널을 끈 상태에서 10개월(약 7.5GB 크기) 동안 틱 파일을 삭제했습니다.

그런 다음 스크립트를 실행했습니다.

 void OnStart ()
  {
   MqlTick Ticks[];
   int Amount= CopyTicks ( _Symbol ,Ticks, COPY_TICKS_ALL , D'2016.01.01' * 1000 , ulong ( 100000000 ));
   MqlDateTime str;
   TimeToStruct ((Ticks[ 0 ].time_msc-Ticks[ 0 ].time_msc% 1000 )/ 1000 ,str);
   char m=( char )str.mon;
   long n= StringToTime ( StringFormat ( "01.%d.2016" ,m+ 1 ))* 1000 ;
   int pos= 0 ;
   for ( int i= 0 ;i<Amount;i++)
     {
       if (Ticks[i].time_msc>=n || i==Amount- 1 )
        {
         PrintFormat ( "Month %d: %d ticks, %d Mb" ,m,i- 1 -pos,( sizeof ( MqlTick )*(i- 1 -pos))>> 20 );
         m++;
         n= StringToTime ( StringFormat ( "01.%d.2016" ,m+ 1 ))* 1000 ;
         pos=i;
        }
     }
  }

모든 것이 정상으로 판명되었고, 크기의 gigantomania는 언급되지 않았습니다. 매우 이상합니다.

그런 다음 다시 스크립트(입력 매개변수 20000에서). 모든 것이 안정화되었지만 파일이 아침에 엄청난 크기로 커졌습니다! 보고 실험했습니다!


요청해야 하는 틱 수에 대해(최소 100000000000000) 터미널은 발행하지 않습니다.

 
Karputov Vladimir :

모든 것이 안정화되었지만 파일이 아침에 엄청난 크기로 커졌습니다! 보고 실험했습니다!

현재 시점과의 차이점은 실험이 닫힌 시장에서 수행되었다는 것입니다.
 

이제 스크립트를 실행합니다 .

결과

 2016.10 . 05 11 : 05 : 03.374 Test (Si- 12.16 ,M5)      (Amount* sizeof ( MqlTick ))>> 20 = 72 Mb Ticks[ 0 ].time = 2016.10 . 03 09 : 45 : 02 Ticks[Amount- 1 ].time = 2016.10 . 05 11 : 05 : 55 

모든 것이 제대로 작동합니다. 72/5 ~ 15x 압축 형식에 대한 명예와 찬사.

폐쇄된 시장에 왜 그런 불쾌한 버그가 나타나는지 알아내야 합니다.

그런데 Alexey Da , 왜 나보다 201610.tkc가 더 많습니까?

 
fxsaber :

이제 스크립트를 실행합니다 .

결과

모든 것이 제대로 작동합니다. 72/5 ~ 15x 압축 형식에 대한 명예와 찬사.

폐쇄된 시장에 왜 그런 불쾌한 버그가 나타나는지 알아내야 합니다.

그런데 Alexey Da , 왜 나보다 201610.tkc가 더 많습니까?

개봉시 스샷.

BCS에서 크기는 귀하와 비슷합니다.

하지만 일대일 아닙니다.

어떤 액세스를 통해 연결되어 있습니까? 나는 가지고있다


 

fxsaber :

폐쇄된 시장에 왜 그런 불쾌한 버그가 나타나는지 알아내야 합니다.

Karputov Vladimir fxsaber

엄청난 요청입니다. 가장 완전한 설명, 로그, 스크린샷 및 시간이 포함된 서비스 데스크 티켓을 만드십시오.

 
Alexey Da :

개봉시 스샷.

BCS에서 크기는 귀하와 비슷합니다.

그러나 일대일 아닙니다.

나는 오프닝에서 201609.tkc가 36Mb이고 BCS - 32인 것을 알아차렸다. 그러나 이야기는 동일하다! 왜 그런 겁니까?

글쎄요, 9월에 서버 업데이트가 있었다고 해도 10월에 - 확실히 아닙니다. 10월 오프닝이 더 큰 이유는?

어떤 액세스를 통해 연결되어 있습니까? 나는 가지고있다

항상

authorized on BCS-MetaTrader5 through Access Server # 1 (ping: 49.30 ms)
 
Alexey Da :

Karputov Vladimir fxsaber

엄청난 요청입니다. 가장 완전한 설명, 로그, 스크린샷 및 시간이 포함된 서비스 데스크 티켓을 만드십시오.

불행히도 로그는 손실됩니다. 그래서 정보를 드릴 수가 없습니다.

내가 확실히 기억하는 유일한 것은 버그가 발생하는 동안 스크립트가 생성한 첫 번째 틱이 2016.10이었다는 것입니다. 04 09:45.

그리고 모든 것이 제대로 작동했을 때 2016.10을 발행하기 시작했습니다. 03 09:45.

살아남은 유일한 라인

NE       0        08 : 43 : 43.928     Test (Si- 12.16 ,M1)      (Amount* sizeof ( MqlTick ))>> 20 = 0 Mb Ticks[ 0 ].time = 2016.10 . 04 09 : 45 : 04 Ticks[Amount- 1 ].time = 2016.10 . 04 10 : 02 : 38 
JP       0        11 : 03 : 37.815     Test (Si- 12.16 ,M5)      (Amount* sizeof ( MqlTick ))>> 20 = 0 Mb Ticks[ 0 ].time = 2016.10 . 03 09 : 45 : 02 Ticks[Amount- 1 ].time = 2016.10 . 03 10 : 02 : 18 

어퍼 - 버그는 힘과 메인으로 나타납니다.

낮음 - 버그가 진정되었습니다.

 
Alexey Da :

Karputov Vladimir fxsaber

엄청난 요청입니다. 가장 완전한 설명, 로그, 스크린샷 및 시간이 포함된 서비스 데스크 티켓을 만드십시오.

내부 응용 프로그램 .../view/1580221
 

MT4에서는 Navigator->Favorites가 위치 경로와 함께 프로그램을 표시하는 것이 매우 편리합니다.

예: fxsaber\Test.

그러나 MT5에는 그러한 편리함이 없습니다. 추가하십시오.

 
이 주제와 관련이 없는 댓글은 " 채우기 모드 질문 "으로 이동되었습니다.