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

 
Nikolai Semko :

문자열에는 존재하지 않는 것처럼 void가 있습니다. 메모리도 할당되지 않습니다.

다른 유형에는 이것이 있습니다. 변수가 선언되면 메모리가 이미 할당된 것입니다.
그러나 결국 문자열은 기본 유형이 아니라 참조 유형입니다.

어때요? 힙에 있는 문자열 개체에 대한 메모리가 할당되고 텍스트 자체가 시작되는 메모리 주소는 0x00입니다.
 
Igor Makanu :

PrintFormat 을 확인하는 방법을 알 수 없습니다.

메모

최적화 모드의 전략 테스터에서 작업할 때 PrintFormat() 함수 는 실행되지 않습니다.

생각이 있는 사람이 있습니까?

그리고 StringFormat 과 결과 문자열이 파일에 있다면? (각 패스에 대해 테스터가 파일을 덮어쓰지 않도록 공유 폴더에 고유한 파일을 만드십시오.)

 
Vladimir Simakov :
어때요? 힙에 있는 문자열 개체에 대한 메모리가 할당되고 텍스트 자체가 시작되는 메모리 주소는 0x00입니다.

메모리는 이름과 참조에만 할당되지만 객체 자체에는 할당되지 않습니다. 그는 아직 거기에 없습니다. 초기화를 하지 않아도 변수 생성 시 메모리가 할당되는 프리미티브 타입은 없습니다.
용어를 혼동하고 싶지 않습니다. 그래서 모두가 서로를 이해합니다.
이 모든 것이 분명합니다.

 
Vladimir Karputov :

그리고 StringFormat 과 결과 문자열이 파일에 있다면? (각 패스에 대해 테스터가 파일을 덮어쓰지 않도록 공유 폴더에 고유한 파일을 만드십시오.)

좋은 생각이네요 테스트해보겠습니다

추신: 다시 한 번 옵티마이저에서 더 빠르게 작동하도록 코드를 다시 작성합니다(결과는 5시간, 이제 1.5시간 !!!)

방금 도움말에서 printf()를 발견하고 모든 인쇄물을 확인하기로 결정했습니다. 어디를 교체해야 하는지 .... 글쎄, 교체하고 최적화가 22시간 동안 시작되었습니다.... 제가 망친 곳을 찾았습니다. 하지만 자연스럽게 나는 그것이 모두 printf( )에 관한 것이라고 즉시 생각했습니다 !!!

)))


다음과 같이 옵티마이저에서 printf() 작업을 확인하려고 했습니다.

 int xx= 10 ;
void OnTick ()
{   printf ( "1/x = %f" , 1 /(xx--));
....

지금까지 나는 내가 기대했던 것을 얻었다:

2019.09.20 11:29:16.611 코어 1 0:00:00.048에서 "OnTick 기능(제로 나누기, 모듈 Experts\)의 중요한 런타임 오류 503" 오류로 테스트된 유전적 패스(0, 607)


" PrintFormat()이 실행되지 않았습니다. "라고 표시되면 이를 가져와야 합니다.

 
코드 최적화 로 실행 속도가 450배 빨라졌습니다. :)
 
Igor Makanu :

좋은 생각이네요 테스트해보겠습니다

추신: 다시 한 번 옵티마이저에서 더 빠르게 작동하도록 코드를 다시 작성합니다(결과는 5시간, 이제 1.5시간 !!!)

방금 도움말에서 printf()를 발견하고 모든 인쇄물을 확인하기로 결정했습니다. 어디를 교체해야 하는지 .... 글쎄, 교체하고 최적화가 22시간 동안 시작되었습니다.... 제가 망친 곳을 찾았습니다. 하지만 자연스럽게 나는 그것이 모두 printf( )에 관한 것이라고 즉시 생각했습니다 !!!

)))


다음과 같이 옵티마이저에서 printf() 작업을 확인하려고 했습니다.

지금까지 나는 내가 기대했던 것을 얻었다:

2019.09.20 11:29:16.611 코어 1 0:00:00.048에서 "OnTick 기능(제로 나누기, 모듈 Experts\)의 중요한 런타임 오류 503" 오류로 테스트된 유전적 패스(0, 607)


" PrintFormat()이 실행되지 않았습니다. "라고 표시되면 이를 가져와야 합니다.

아하. 그리고 단일 테스트와 최적화 중에 xx 변수의 다른 값을 얻습니다.

printf 함수 호출만 실행되지 않습니다.

 
Slava :

아하. 그리고 단일 테스트와 최적화 중에 xx 변수의 다른 값을 얻습니다.

printf 함수 호출만 실행되지 않습니다.

예, 사용자가 이 작업을 수행할 수 있음이 분명합니다.

그러나 printf() 방법을 확인합니까?

추신 : 개발자가 실행되고 있지 않다고 말하면 확인할 수 없습니다.

 
Igor Makanu :


그러나 printf() 방법을 확인합니까?

최적화의 단일 패스 시간과 단일 패스 시간 비교

 
Slava :

나는 복제할 것이다:

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

오류, 버그, 질문

알렉세이 코지친 , 2019.09.18 09:34

플랫폼에 대한 몇 가지 질문:

1. MOEX(예: EURRUB_TOM)를 통해 VP에 대해 허용되는 거래 범위가 추가됩니까? 이제 한도가 설정되는지 여부를 확실히 알 수 없기 때문입니다. 범위에 대한 액세스 권한이 없습니다(최대 및 최소 가능한 가격). 추가하십시오.

2. 터미널과 메타에디터에 N분마다 자동저장 상태를 추가할 수 있나요? 많이 부족하다, tk. 갑자기 연결이 끊긴 경우 모든 변경 사항이 손실된 상태로 프로그램이 시작된 시점으로 돌아갑니다! 매우 짜증나!

첫 번째 요점 : 한도를 모르면 정상적인 거래가 불가능하다는 것을 이해하십시오! 일부 도구에는 이러한 제한이 적용되지만 다른 도구에는 적용되지 않는 이유는 무엇입니까?

 

도움말이 다시 잘못되었습니다. https://www.mql5.com/en/docs/math/mathmax 를 읽었습니다.

Функция возвращает максимальное из двух числовых значений.

 double    MathMax (
   double   value1,     // первое число
   double   value2       // второе число
   );

옵션이 없다는 것을 알았습니다. 함수 유형은 fmax() double 입니다. 나는 분수 값을 잃을 수 있는 곳을 찾고 있습니다. 모든 것을 검색한 후 테스트를 수행합니다.

 void OnStart ()
{
   long slvl = SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_STOPS_LEVEL );
   int sl = 300 ;
   Print ( typename ( fmax (slvl,sl)));
}

2019.09.20 18:06:34.194 tst (EURUSD,H1)

추신: 바로 대답합니다. 도움말을 끝까지 읽고 "반환된 값의 유형은 이전 유형에 해당합니다."라는 문구를 봅니다. ... IMHO, 이것은 심각하지 않습니다. 99%의 경우 도움말에서 함수 설명을 보는 것보다 줄 사이에 숨겨진 의미를 찾는 것으로 충분합니다. 결과 유형은 fmin()으로 작성됩니다. -> double - 옵션이 없음을 의미합니다.