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

 
Aleksey Vyazmikin :

여전히 이해가 되지 않습니다. 예측기에 큰 계산 깊이가 필요합니까? 나는 정말 필요합니다 - 매일 Mashka :) 저는 1년 전에 테스트를 시작했고 이 날짜 이전의 거래는 금지될 수 있습니다...

예 - 역사의 깊이는 1년 이상에 필요합니다. 해결책은 이미 찾았습니다. 이제 저도 3년 일찍 출시하고 건너뛸 것입니다.
 
코드는 KB 단위로 전달되지 않습니다. 다음과 같은 오류를 제공합니다.
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 34 ) : error 279 : 'ToNull' - call non- const method for constant object
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 34 ) : error 279 : 'ToNull' - call non- const method for constant object
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 202 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 202 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 214 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 214 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 225 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 225 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 416 , 33 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 416 , 35 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 435 , 33 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 435 , 35 ) : error 351 : 'ToNull' - access to non- static member or function

KB 컴파일러를 업데이트하십시오.

 
Vladimir Simakov :
나는 휴가에서 돌아올 것이다. 만약 그것이 지렛대에 없다면 나는 그 문제를 연구할 것이다. 그러나 사물의 논리에 따르면 버그는 mql이 아니라 코드에 있습니다.
그건 그렇고, 당신의 라이브러리는 어떤 인코딩으로 작동합니까? utf-16, 그리고 갑자기 모든 동일한 utf-8이 결국 가장 일반적이라고 확신합니다.

그러나이 순간은 아직 확인되지 않았습니다. 팁 감사합니다. 그 방향으로 파고들겠습니다.
내가 일하는 수업인 바다를 위한 도서관은 문자 W로 선택됩니다. 유니코드.

인코딩을 이해하는 것처럼.

const char *Utf8;
const char *안시;
const wchar_t *Utf16;
const wchar_t *Utf32;

utf-16은 wchar_t 유형을 의미하며 문자열을 읽는 라이브러리 함수는 const wchar_t*를 반환합니다.
이로부터 함수가 utf-16 인코딩으로 문자열에 대한 포인터를 반환한다는 것이 분명해집니다.
유니코드 문자 지원도 프로젝트 속성에서 선택됩니다.
mql 문서에는 문자열이 유니코드 형식으로 작동한다고 나와 있습니다.

 

다시 최적화를 시작했는데 실행 속도에 대해 다음 코드를 테스트할 수 있는지 잘 모르겠습니다.

 void OnStart ()
{   datetime m_stoptime = 0 ;
//1.
   if (m_stoptime < TimeCurrent ())
   {
       //расчеты   
   }


//2.
   MqlTick last_tick;
   if ( SymbolInfoTick ( _Symbol , last_tick))
   {   if (m_stoptime < last_tick.time) 
      {
         //расчеты
      }
   }

}

옵션 # 2가 더 빨리 작동한다고 생각합니까?

그렇다면 어디에 "위험"이 있을 수 있습니까? - OnTick()에서 사용합니다. - 거래 시간 최적화 프로그램에서 검색하기 위해 코드를 최적화하는 방법을 찾고 있습니다.


추신: 속도 면에서 1번과 2번 옵션을 확인하는 방법에 대해 질문할 수 있습니다. 컴파일러가 실행 코드를 최적화하고 테스트가 정확하지 않을 가능성이 높습니다. 그래서 질문합니다.

 
Igor Makanu :

속도 면에서 옵션 #1과 #2를 확인하는 방법을 물을 수 있습니다. 컴파일러가 실행 코드를 최적화하고 테스트가 정확하지 않을 가능성이 높습니다. 그래서 묻습니다.

1번과 2번을 따로 일반 테스트를 실행하고 시간을 비교하시겠습니까? )

시간이 무시할 수 있는 경우 옵션 1 및 옵션 2로 동일한 최적화를 실행합니다.

 
Igor Makanu :

추신: 속도 면에서 1번과 2번 옵션을 확인하는 방법에 대해 질문할 수 있습니다. 컴파일러가 실행 코드를 최적화하고 테스트가 정확하지 않을 가능성이 높습니다. 그래서 질문합니다.

https://www.mql5.com/ru/code/18804

TesterBenchmark
TesterBenchmark
  • www.mql5.com
При написании разных версий кода может возникнуть необходимость измерения влияния их на общую производительность советника в тестере. Это позволяет не только понять, насколько оптимален написанный код по сравнению с другим, но и дает предпосылки к будущей быстрой оптимизации советника. Такой подход позволяет выявить "бутылочное горлышко" в...
 
Igor Makanu :

다시 최적화를 시작했는데 실행 속도에 대해 다음 코드를 테스트할 수 있는지 잘 모르겠습니다.

옵션 # 2가 더 빨리 작동한다고 생각합니까?

그렇다면 어디에 "위험"이 있을 수 있습니까? - OnTick()에서 사용합니다. - 거래 시간 최적화 프로그램에서 검색하기 위해 코드를 최적화하는 방법을 찾고 있습니다.


추신: 속도 면에서 1번과 2번 옵션을 확인하는 방법에 대해 질문할 수 있습니다. 컴파일러가 실행 코드를 최적화하고 테스트가 정확하지 않을 가능성이 높습니다. 그래서 질문합니다.

디버그 모드에서 확인하십시오. 이론적으로 컴파일러는 HZ가 있는 그대로 최적화되지 않아야 합니다.
 

ArrayResize 에 대한 질문입니다. 나는 즉시 몇 기가바이트를 예약합니다. 그리고 점차적으로 원래 Reserve보다 작은 Size를 늘립니다.

크기를 늘리는 동안 TaskManager에서 메모리 소비가 증가하는 이유는 무엇입니까?

 
fxsaber :

ArrayResize에 대한 질문입니다. 나는 즉시 몇 기가바이트를 예약합니다. 그리고 점차적으로 원래 Reserve보다 작은 Size를 늘립니다.

크기를 늘리는 동안 TaskManager에서 메모리 소비가 증가하는 이유는 무엇입니까?

메타 트레이더 외에도 Windows가 있기 때문에 궁극적으로 수십 개의 프로세스 중 어떤 프로세스(각 프로세스는 기본적으로 4GB의 주소 공간을 가짐)를 결정합니다. 실제로(얼마나 있나요? ) RAM을 할당합니다.
 
Andrey Khatimlianskii :

1번과 2번을 따로 일반 테스트를 실행하고 시간을 비교하시겠습니까? )

시간이 무시할 수 있는 경우 옵션 1 및 옵션 2로 동일한 최적화를 실행합니다.

내가 뭔가를 잘못하고 있어 여전히 차이점을 볼 수 없었고 결과는 0.1초 영역에서 단일 실행으로 부동