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

 
Slava :

시작하려면 https://www.mql5.com/ru/articles/239 기사를 읽으십시오.

나는 그것을 읽었다. 그러나 대답은 왜 CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time); 테스터에서는 100,000바 대신 30,000바를 보지 못한 것으로 간주되었습니다. 동시에 터미널에서 모든 것이 올바르게 읽힙니다.
 
elibrarius :
나는 그것을 읽었다. 하지만 테스터의 CopyTime 이 10만 막대가 아닌 3만 막대를 계산한 이유에 대한 답변을 보지 못했습니다. 동시에 터미널에서 모든 것이 올바르게 읽힙니다.

사용된 상품의 이력은 이 상품에 처음 액세스할 때 테스터가 클라이언트 터미널(거래 서버가 아닌!)에서 자동으로 다운로드합니다.

테스트 에이전트는 테스트 시 지표를 계산하는 데 필요한 이력 데이터를 제공하기 위해 작은 여백으로 누락된 이력만 업로드합니다. D1 기간 이하의 거래 서버에서 다운로드할 때의 최소 내역은 1년입니다. 따라서 테스트가 2010.11.01-2010.12.01(한 달 간격으로 테스트) 기간에 M15(각 막대는 15분에 해당) 기간에 시작되면 터미널에 기기 기록을 묻는 메시지가 표시됩니다. 2010년 전체. Weekly 타임프레임의 경우 약 2년(1년에 52주)에 해당하는 100개의 막대 기록이 요청됩니다. 월간 기간에 대한 테스트를 위해 에이전트는 8년(12개월 * 8년 = 96개월)에 대한 기록을 요청합니다.


요약

테스트 설정에서 월간 기간을 설정합니다.

 
Slava :

사용된 상품의 이력은 이 상품에 처음 액세스할 때 테스터가 클라이언트 터미널(거래 서버가 아닌!)에서 자동으로 다운로드합니다.

테스팅 에이전트는 테스팅 시 지표 계산을 위한 이력에 필요한 데이터를 제공하기 위해 약간의 여백을 두고 누락된 이력만을 업로드한다. D1 기간 이하의 거래 서버에서 다운로드할 때의 최소 내역은 1년입니다. 따라서 테스트가 2010.11.01-2010.12.01(한 달 간격으로 테스트) 기간에 M15(각 막대는 15분에 해당) 기간에 시작되면 터미널에 기기 기록을 묻는 메시지가 표시됩니다. 2010년 전체. Weekly 타임프레임의 경우 약 2년(1년에 52주)에 해당하는 100개의 막대 기록이 요청됩니다. 월간 기간에 대한 테스트를 위해 에이전트는 8년(12개월 * 8년 = 96개월)에 대한 기록을 요청합니다.


요약

테스트 설정에서 월간 기간을 설정합니다.

분명히 - 자원 절약.

그러나 M15에 대한 테스트가 필요하지만 몇 년 동안의 데이터가 필요하다면(신경망을 훈련하기 위해) 어떻게 될까요? 파일에 막대를 저장합니까?

 
Roman :

Memcpy는 Renata의 예제 문서 에 표시된 대로 사용되었습니다.
다른 복사 기능을 사용하면 유사한 문제가 발생합니다.
이러한 기능의 동작은 이 게시물 게시물에 설명되어 있습니다.
가능한 모든 복사 기능이 이미 시도되었습니다.

여러 스레드에서 데이터를 공유하는 것에 대해 무엇을 알고 있습니까?

 
Ilyas :

여러 스레드에서 데이터를 공유하는 것에 대해 무엇을 알고 있습니까?

코드는 lock_guard 를 사용합니다.
그러나 주석 처리하면 변경 사항이 관찰되지 않습니다.

recursive_mutex mtx;
const wchar_t* data;
bool success ;
                
while (condition)
{
        
   if (DataAvailable())
   {
      lock_guard<recursive_mutex> locker(mtx);
      success = ReadData();
   }
        
   if (success)
   {
      lock_guard<recursive_mutex> locker(mtx);
      data = getData();
                
      memcpy( out , data, wcslen(data) * ( sizeof ( char )* 3 ));
   }
        
   Sleep( 1 );
}
그래도 흐르기 시작했어 뭐, 왜 그런지는 이해가 간다. 왜냐하면 잘못된 크기 때문에
파일:
222.PNG  13 kb
 
elibrarius :

분명히 - 자원 절약.

그러나 M15에 대한 테스트가 필요하지만 몇 년 동안의 데이터가 필요하다면(신경망을 훈련하기 위해) 어떻게 될까요? 파일에 막대를 저장합니까?

기다리기만 하면 됩니다:

 input int InpBars = 100000 ;

void OnTick ()
{   int bars = Bars ( _Symbol , _Period );
   if (bars < InpBars) return ;

}
 
elibrarius :

분명히 - 자원 절약.

그러나 M15에 대한 테스트가 필요하지만 몇 년 동안의 데이터가 필요하다면(신경망을 훈련하기 위해) 어떻게 될까요? 파일에 막대를 저장합니까?

어떤 문제들? 모든 시간대의 데이터에 액세스할 수 있습니다.
 
Slava :
어떤 문제들? 모든 시간대의 데이터에 액세스할 수 있습니다.

M15에서 테스트를 시작하면 테스터의 거래가 M15에서 이루어지면 역사에서 100,000 바를 셀 수 없을 것입니다. 그리고 М15에서 거래를 테스트해야 합니다.

8년의 이력을 가지고 월간을 실행하면 한 달에 한 번 이상 거래할 수 없습니다.

 
elibrarius :

M15에서 테스트를 시작하면 테스터의 거래가 M15에서 이루어지면 역사에서 100,000 바를 셀 수 없을 것입니다. 그리고 М15에서 거래를 테스트해야 합니다.

8년의 히스토리가 있기 위해 Monthly를 실행 하면 한 달에 한 번 이상 거래할 수 없습니다 .

왜요?

 
Alexey Viktorov :

왜요?

시가로 테스트 입니다. 틱은 한 달에 한 번 올 것입니다.
모든 실제 틱에서 실행하면 강력한 제한과 코드 복잡도를 사용할 수 있습니다. 리소스 오버런도 발생합니다. 파일에서 막대를 읽는 것이 더 쉽다고 생각합니다.