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

 
Karputov Vladimir :

오류는 여기에 있습니다(따옴표 사이의 공백).


그리고 사실입니다. 지금 작동합니다. 고맙습니다 ! :-)
 
파일 크기 Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc는 6Gb입니다. 이것은 안됩니다.
 
fxsaber :
Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc 파일 크기는 6Gb입니다. 이것은 안됩니다.

아마 10월에 틱 데이터의 구조가 변경되었을 것입니다(추가 정보가 많이 입력되었을 수 있음). 아니면 활발히 거래되고 있는 진부한 상징일 수도 있습니다.

이제 이러한 스크립트에서 요청할 때:

 //+------------------------------------------------------------------+
//|                                                    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" );
  }
//+------------------------------------------------------------------+

"Open-Broker" 서버에서 틱 크기(게다가 10번째 달에 - 이것은 최종이 아니며 틱은 계속 다운로드됨)

틱 데이터베이스 크기

 2016.10 . 05 07 : 34 : 05.886 Terminal        MetaTrader 5 x64 build 1434 started (MetaQuotes Software Corp.)
2016.10 . 05 07 : 34 : 05.888 Terminal        Windows 10 Pro (x64 based PC), IE 11.00 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 3800 / 8077 Mb, HDD: 57955 / 233310 Mb, GMT+ 02 : 00
2016.10 . 05 07 : 34 : 05.888 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
파일:
CopyTicks.mq5  2 kb
 
Karputov Vladimir :

아마 10월에 틱 데이터의 구조가 변경되었을 것입니다(추가 정보가 많이 입력되었을 수 있음). 아니면 단순히 심볼이 활발히 거래되었기 때문일 수도 있습니다. 이제 이러한 스크립트에서 요청하면:

"Open-Broker" 서버에서 틱 크기(게다가 10번째 달에 - 이것은 최종이 아니며 틱은 계속 다운로드됨)

스크립트

 #define TOSTRING(A) #A + " = " + ( string )(A) + " "

void OnStart ()
{
   MqlTick Ticks[];
  
   const int Amount = CopyTicks ( _Symbol , Ticks, COPY_TICKS_ALL , D'2016.10.01' * 1000 , 1000000000 );
  
   if (Amount > 0 )
     Print (TOSTRING((Amount * sizeof ( MqlTick )) >> 20 ) + "Mb " + TOSTRING(Ticks[ 0 ].time) + TOSTRING(Ticks[Amount - 1 ].time));
}

빈 터미널의 결과(다른 기호에서 실행하면 동일한 결과 제공)(전문가 조언자 및 지표가 없는 차트 하나)

 2016.10 . 05 08 : 16 : 56.824 Scripts script Test (Si- 12.16 ,M1) removed
2016.10 . 05 08 : 16 : 56.821 MemoryException 52000000072 bytes not available
2016.10 . 05 08 : 16 : 56.816 Scripts script Test (Si- 12.16 ,M1) loaded successfully
2016.10 . 05 08 : 10 : 10.408 Terminal        RAM: 81 Mb reserved, 491 Mb committed

 
Karputov Vladimir :

아마 10월에 틱 데이터의 구조가 변경되었을 것입니다(추가 정보가 많이 입력되었을 수 있음). 아니면 활발히 거래되고 있는 진부한 상징일 수도 있습니다.

이제 이러한 스크립트에서 요청할 때:

"Open-Broker" 서버에서 틱 크기(게다가 10번째 달에 - 이것은 최종이 아니며 틱은 계속 다운로드됨)

인내심이 부족 했습니다. 파일 크기가 201610.tkc인 7.5Gb로 틱 다운로드를 중단하기로 결정했습니다.
 

파일을 쾅 치면 재부팅 후에도 오류가 발생합니다.

10월 1일부터 1000틱을 요청하면 해당 tkc 파일은 출시될 때마다 계속 커집니다. 한마디로 나쁜 버그입니다.

 
Karputov Vladimir :
인내심이 부족했습니다. 파일 크기가 201610.tkc인 7.5Gb로 틱 다운로드를 중단하기로 결정했습니다.

벌레! 10월의 모든 정보는 지표로 표시됩니다. 그리고 파일은 무한정 커집니다.

작업이 불가능하기 때문에 빌드의 중요한 업데이트가 필요합니다. 트래픽은 말할 것도 없고 나사가 막혔습니다.

 

안녕하세요 여러분

그런 이해할 수 없는 오류에 직면한 사람

고문 은 예를 들어 WDOX16에서 거래를 시작하려고 하면 응답을 받습니다 = 0

작업이 성공했다고 쓰는 동안 결과 = 0 기호 WDOX16 볼륨 1.0 작업 1 tp 3264.5 sl 3239.5 유형 0 가격 3250.0 작업이 성공적으로 완료되었습니다.

그러나 아무것도 열리지 않습니다. ?


 
fxsaber :

스크립트

빈 터미널의 결과(다른 기호에서 실행하면 동일한 결과 제공)(전문가 조언자 및 지표가 없는 차트 하나)

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

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

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


이 결과를 제공합니다

 2016.10 . 05 10 : 31 : 51.249 CalcTick (Si- 12.16 ,M1)   Month 1 : 122413 ticks, 6 Mb
2016.10 . 05 10 : 31 : 51.249 CalcTick (Si- 12.16 ,M1)   Month 2 : 78627 ticks, 3 Mb
2016.10 . 05 10 : 31 : 51.252 CalcTick (Si- 12.16 ,M1)   Month 3 : 758652 ticks, 37 Mb
2016.10 . 05 10 : 31 : 51.253 CalcTick (Si- 12.16 ,M1)   Month 4 : 388578 ticks, 19 Mb
2016.10 . 05 10 : 31 : 51.254 CalcTick (Si- 12.16 ,M1)   Month 5 : 181053 ticks, 8 Mb
2016.10 . 05 10 : 31 : 51.255 CalcTick (Si- 12.16 ,M1)   Month 6 : 408080 ticks, 20 Mb
2016.10 . 05 10 : 31 : 51.257 CalcTick (Si- 12.16 ,M1)   Month 7 : 458366 ticks, 22 Mb
2016.10 . 05 10 : 31 : 51.260 CalcTick (Si- 12.16 ,M1)   Month 8 : 867396 ticks, 43 Mb
2016.10 . 05 10 : 31 : 51.297 CalcTick (Si- 12.16 ,M1)   Month 9 : 10973162 ticks, 544 Mb
2016.10 . 05 10 : 31 : 51.301 CalcTick (Si- 12.16 ,M1)   Month 10 : 1555625 ticks, 77 Mb


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


 
Alexey Da :

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

아니요, 이 경우에만. 1조 틱을 요청했는데 실제로 2천만 틱 미만이라면 왜 1조 틱에 메모리를 할당하려고 합니까?!

1조는 여유가 있습니다. 그러나 그것이 내가 그렇게 많은 것을 요구한다는 것을 의미하지는 않습니다. "지정된 날짜 이후의 모든 틱 제공"만 표시됩니다.

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

이 결과를 제공합니다

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

당신은 오프닝에서 실험을 하고 있고, 나는 BCS를 가지고 있습니다. 귀하의 화면은 나와 Karputov의 화면(동일한 오프닝)과 아무 관련이 없습니다. 둘 다 10월-tkc가 훨씬 더 많습니다. 그리고 계속 성장하고 있습니다!

사유: