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

 
Rosh :

위치가 있으면 무한 루프가 발생합니다.

에 상당하다

연산자 본문에 중단이 없기 때문에 코드에서 루프를 벗어날 방법이 없습니다.
정말 감사합니다. 거기에 있어서는 안 될 일이었습니다. 수정됨, 모든 것이 작동함
 

실수(빌드 421, 425번째 빌드에서 수정된 사항, Alpari에서 425로의 업데이트가 아직 수신되지 않은 경우):

1. 이미 3D 시각화에 대한 스레드에서 썼습니다. 3D 차트의 캡션(스케일 이름과 나눗셈 값)은 차트에 표시하는 매개변수가 변경되어도 변경되지 않습니다.

2. 빠른 최적화 를 사용하면 그래프가 대략 10600번째 패스에서 충돌합니다. 최적화는 50,51...60세대를 계속하지만 그래프가 더 이상 이동하지 않고 새 패스를 표시하지 않습니다. 동시에 설정 탭에서 패스 수 대신 "최적화 진행률:"이 표시되며 일부 불분명한 상황에서는 여전히 예를 들어 12420/14400(숫자는 대략적인 수치)으로 변경됩니다.

3. 원격 에이전트는 사용 중 상태로 전환되고 이 상태를 유지할 수 있습니다. 최적화가 계속된 후 원격 에이전트를 껐다가 켜야 합니다.

그리고 문제는 최적화 프로세스 중에 그래프 유형(1D/2D/3D)을 변경할 수 있습니까? 완료된 후에는 변경할 수 없습니까?

 
PiramidaR :

실수(빌드 421, 425번째 빌드에서 수정된 사항, Alpari에서 425로의 업데이트가 아직 수신되지 않은 경우):

같은 터미널에서 MetaQuotes에서 계정을 열면 업데이트됩니다. 그런 다음 다른 계정으로 다시 전환합니다.
 
PiramidaR :

실수(빌드 421, 425번째 빌드에서 수정된 사항, Alpari에서 425로의 업데이트가 아직 수신되지 않은 경우):

1. 이미 3D 시각화에 대한 스레드에서 썼습니다. 3D 차트의 캡션(스케일 이름과 나눗셈 값)은 차트에 표시하는 매개변수가 변경되어도 변경되지 않습니다.

2. 빠른 최적화로 그래프는 대략 10600번째 패스에 있습니다. 최적화는 50,51...60세대를 계속하지만 그래프가 더 이상 이동하지 않고 새 패스를 표시하지 않습니다. 동시에 설정 탭에서 패스 수 대신 "최적화 진행률:"이 표시되며 일부 불분명한 상황에서는 여전히 예를 들어 12420/14400(숫자는 대략적인 수치)으로 변경됩니다.

3. 원격 에이전트는 사용 중 상태로 전환되고 이 상태를 유지할 수 있습니다. 최적화가 계속된 후 원격 에이전트를 껐다가 켜야 합니다.

그리고 문제는 최적화 프로세스 중에 그래프 유형(1D/2D/3D)을 변경할 수 있습니까? 완료된 후에는 변경할 수 없습니까?

1.2 수정되었지만 최신 빌드에는 포함되지 않음

3. 우리는 이 문제를 해결하기 위해 노력하고 있습니다.

그런 기회는 없을거야

 
표시기에서는 그려지지 않는 값을 지정할 수 있을 뿐만 아니라
 PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );

그러나 이 값 으로 배열을 자동 초기화 할 수도 있습니다. 표시기에 의해 마지막 막대에 아무 것도 할당되지 않은 경우 기본적으로 표시되는 것을 할당합니다.

 PLOT_EMPTY_VALUE

또는 오히려 빈 값으로 먼저 초기화한 다음 표시자가 원하는 것을 쓰도록 합니다.

그렇지 않으면 이제 기본적으로 0이 되지만 많은 지표에서 0은 그려야 하는 중요한 숫자입니다.

ZY가 이 스레드에 쓴 것은 이것이 해결되지 않았는지 확신할 수 없기 때문에 소원도 질문으로 간주될 수 있습니다. 해결되면 방법을 알려주십시오.

 

Urain :

그렇지 않으면 이제 기본적으로 0이 되지만 많은 지표에서 0은 그려야 하는 중요한 숫자입니다.

사실, 무엇이든 있을 수 있습니다. 일반적으로 0이 있다는 것은 운이 좋습니다. 기사에서 MQL5에 있는 표시기의 표시기는 다음과 같이 직접 말합니다.

표시기 버퍼를 초기화해야 합니까?

MQL5의 배열은 기본적으로 어떤 값으로도 초기화되지 않으며 이는 SetIndexBuffer() 함수에 의해 표시기 버퍼에 할당된 배열에 확실히 적용됩니다. 배열이 표시기 버퍼인 경우 작동 중 배열의 크기는 OnCalculate() 핸들러의 비율 _총계 매개변수에 따라 달라집니다.

ArrayInitialize() 함수를 사용하여 빈 EMPTY_VALUE 값으로 모든 표시기 버퍼를 초기화하고 싶을 수 있습니다(예: OnCalculate() 시작 부분에서 한 번).
 //--- если это первый вызов OnCalculate() 
   if (prev_calculated== 0 )
     {
       ArrayInitialize (TSIBuffer, EMPTY_VALUE );
     }

그러나 다음과 같은 이유로이 작업을 수행하지 않는 것이 좋습니다. 터미널 작업의 전체 시간 동안 표시기가 계산되는 기준에 따라 기호에 대한 따옴표가 수신됩니다. 따라서 막대의 수는 시간이 지남에 따라 증가하고 터미널은 표시기 버퍼에 추가 메모리를 할당합니다.

그러나 새로 연결된 배열 요소의 값은 임의의 값을 갖습니다. 임의의 배열에 대해 메모리가 재할당될 때 초기화가 수행되지 않기 때문입니다. 그리고 초기 초기화는 우리가 명시적으로 값을 할당하지 않은 배열의 모든 요소가 배열을 처음 초기화할 때 사용한 것과 동일한 값으로 채워질 것이라는 기만적인 확신을 줄 수 있습니다. 이것은 물론 사실이 아니며, 어떤 변수나 배열 요소의 값이 우리가 필요로 하는 값으로 초기화된다는 사실에 절대 의존해서는 안 됩니다.

지표 버퍼의 각 요소에 대한 값을 설정해야 하며, 주어진 막대에 대한 지표 값이 정의되지 않은 경우(지표에 내장된 알고리즘에 따라 계산되지 않음) 이러한 경우에 필요합니다. 명시적으로 빈 값을 설정합니다 . 예를 들어, 지시자 버퍼의 값은 나눗셈을 통해 계산되며, 어느 시점에서 제수가 0과 같은 것으로 판명될 수 있습니다.
 
Rosh :

사실, 무엇이든 존재할 수 있습니다. 일반적으로 0이 있다는 것은 운이 좋습니다. 기사에서 MQL5 표시기의 표시기는 다음과 같이 직접 말합니다.


이것은 정확히 내가 언어 수준에서 해결하고 싶은 작업입니다. 그렇지 않으면 마지막 값의 초기화에 오류가 있을 수 있는 추가 코드 줄이 필요합니다.

따라서 정확히 지정된 값이 있다는 확신이 있을 것이며 이를 기반으로 추가 알고리즘을 구축할 수 있습니다.

 
Urain :

이것은 정확히 내가 언어 수준에서 해결하고 싶은 작업입니다. 그렇지 않으면 마지막 값의 초기화에 오류가 있을 수 있는 추가 코드 줄이 필요합니다.

따라서 정확히 지정된 값이 있다는 확신이 있을 것이며 이를 기반으로 추가 알고리즘을 구축할 수 있습니다.

또한 이것을 만났다. 나는 지원합니다: 언어 수준에서 결정을 내리십시오.
 
Lizar :
또한 이것을 만났다. 나는 지원합니다: 언어 수준에서 결정을 내리십시오.
+1
 

빌드 425

테스터의 다음 상황은 저를 혼란스럽게 합니다. EA는 동일한 조건에서 여러 번 실행되지만 실행 결과가 다릅니다. 차이는 적지만...

두 대의 컴퓨터에서 테스트한 결과 거의 같은 확률로 2개의 다른 결과가 나타납니다. 그게 무슨 뜻이야?