티크 역사 - 페이지 5

 

예, 심지어. 오늘의 시작부터 히스토리를 얻으려고 하면 이상한 결과가 나온다. 스크립트는 다음과 같습니다.

         MqlTick array[];
         MqlDateTime sTime;
         TimeToStruct ( TimeCurrent (), sTime );
         sTime.hour = 0 ;
         sTime.min = 0 ;
         sTime.sec = 0 ;
         datetime start = StructToTime ( sTime );
         Print ( "Начало текущего дня: " ,start );
         int num = CopyTicks( _Symbol , array, COPY_TICKS_ALL, start, 1000000 );
         
         int size = ArraySize ( array );
         Print ( __FUNCTION__ , ": num = " ,num, ", arraySize = " ,size );
         for ( int i = 0 ; i < size; i++ )
                {
                 if ( i == 0 )
                        {
                         Print ( __FUNCTION__ , ": Время прихода первого доступного тика: " ,array[ i ].time );
                        }
                 else if ( i == size- 1 )
                        {
                         Print ( __FUNCTION__ , ": Время прихода последнего доступного тика: " ,array[ i ].time );
                        }
                }

결과는 다음과 같습니다.

본사 0 18:38:20.974 test_CopyTicks_1178 (EURUSD,M1) 오늘의 시작: 2015.10.15 00:00:00

제이엠 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) 시작 시작: 숫자 = 1000000, 배열 크기 = 1000000

CF 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: 사용 가능한 첫 번째 틱의 도착 시간: 2011.12.19 00:00:08

RD 0 18:38:22.204 test_CopyTicks_1178 (EURUSD,M1) OnStart: 사용 가능한 마지막 틱의 도착 시간: 2012.01.06 18:41:26

분명히 다음과 같이 작성하는 것은 불가능합니다. CopyTicks( _Symbol , array, COPY_TICKS_ALL, start, 1000000 );

 
Tapochun :

아마도 그가 직접 썼을 것입니다. 음, 이전에 차지한 메모리를 어떻게 비울 수 있습니까?

20,000,000개의 요소가 있는 MqlTick 배열 자체에는 약 800MB의 메모리가 필요합니다. 또한 정보가 축적되어 표시되는 터미널에 동일한 소스 어레이를 저장합니다.

따라서 대용량 데이터로 작업하려면 64비트 버전과 8GB의 메모리만 있으면 됩니다. 다행히 지금은 터무니없는 비용이 듭니다.

 
Karputov Vladimir :
이제 틱 수집기가 필요하지 않습니다. 터미널에서 틱 기록 을 사용할 수 있습니다.

그 가용성은 DC의 선의에 달려 있습니까? 아니면 틱의 보존이 서버 부분에 하드 코딩되어 있습니까?

 
Renat Fatkhullin :

20,000,000개의 요소가 있는 MqlTick 배열 자체에는 약 800MB의 메모리가 필요합니다. 또한 정보가 축적되어 표시되는 터미널에 동일한 소스 어레이를 저장합니다.

따라서 대용량 데이터로 작업하려면 64비트 버전과 8GB의 메모리만 있으면 됩니다. 다행히 지금은 터무니없는 비용이 듭니다.

그리고 당신이 작은 부분을 요구한다면? 100만 틱이라고 할까요? 문제가 없어야 하지 않을까요? 어떤 의미에서 요청 - 처리 - 추적. 요구.

아니면 데이터가 누적되어 작업이 종료됩니까?

 
Alexey Volchanskiy :

그 가용성은 DC의 선의에 달려 있습니까? 아니면 틱의 보존이 서버 부분에 하드 코딩되어 있습니까?

MT5 서버는 처음부터 항상 틱 기록 을 축적하고 저장했습니다.

클라이언트 터미널로 보내는 것은 비활성화할 수 없습니다.

 

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

티크 역사

타포춘 , 2015.10.15 15:08

예, 나머지 Copy.. 함수와 마찬가지로 CopyTicks()의 오버로드를 추가하는 것이 좋습니다. 날짜부터 날짜까지 받을 수 있습니다. 예를 들어, 현재 날짜의 시작 부분에서 현재 순간까지 틱을 얻는 것은 불가능합니다.
이것이 구현될 수 있습니까?
 
Tapochun :
이것이 구현될 수 있습니까?
할 수 있다
 
Renat Fatkhullin :
할 수 있다
감사합니다. 많은 도움이 될 것입니다. 이제 진드기를 얻는 "탐색"이 어렵습니다.
 

틱은 매월 파일에 추가됩니다. 맞죠? 다음은 스크린샷입니다.

틱 파일

이 파일을 읽는 방법은 무엇입니까? 아니면 전략 테스터 를 통해서만?

 
Karputov Vladimir :

틱은 매월 파일에 추가됩니다. 맞죠? 다음은 스크린샷입니다.

이 파일을 읽는 방법은 무엇입니까? 아니면 전략 테스터 를 통해서만?

이마에서 메모장을 통해 작동하지 않았습니다.