가장 낮은 함수와 가장 높은 함수가 반환하는 것 - 페이지 3

 
솔직히, 나는 작업의 불안정성을 설명하려고 노력할 것입니다.

하나의 옵션입니다. 다른 사람들이 있습니다.
첫 번째 빔이 있습니다. 단순함을 위해 - 제로 바에서 왔습니다. 제로 바에는 높고 낮음이 있습니다. 가격은 극한값을 변경하지 않고 막대 내부에서 움직입니다. 극한값은 변하지 않기 때문에 첫 번째 광선도 움직이지 않고 정지해 있어야 합니다. 그러나 그것은 거기에 없었습니다. 첫 번째 광선이 흔들리고 있습니다. 위치를 변경합니다. 이것은 불안정성의 외적 표현에 대한 설명일 뿐입니다. 알고리즘이 안정적으로 작동하면 ZigZag의 작동이 의존하는 시장 매개변수(마지막 막대의 높음 및 낮음)가 변경되지 않고 첫 번째 빔도 트위치하지 않아야 합니다. 나는이 문제로 스스로 고심했다. 그러나 검색 기능의 주목할만한 기능으로 인해 포럼에 가야했습니다.
===========================
지표를 계산하는 과정에서 창을 이동할 때(shift,shift+ExtDepth) 새로운 극값의 출현은 새로운 가격과 이전 극값이 창을 떠났다는 사실 모두와 연관될 수 있습니다. - 명확하게 표기하는 것이 좋을 것입니다. 확실하게. 언어 설명에서. 언어의 숨겨진 가능성을 탐구하지 않기 위해.

이렇게 하려면 내 삽입에서 if(highpos!=shift) val=0.0; . 이것이 표준 코드에서 어떻게 수행되는지 이해하지 못했습니다. 내 버전에서 매달린 극값이 사라진 것으로 판단하면 이것은 잘못 수행되거나 전혀 수행되지 않습니다. - 나는 이 순간을 다르게 풀었다: if (High[shift]==val) ZigZagBuffer[shift]=val; 및 if (Low[shift]==val) ZigZagBuffer[shift]=val;
그러나 의미는 동일합니다. 그러나 이것이 모든 문제를 해결하는 것은 아닙니다. 따라서 우리는 이유가 아니라 결과와 씨름합니다. 같은 방식으로 조사를 처리하려고 했습니다. 그러나 첫 번째 광선에서는 작동하지 않습니다. 요점은 지그재그 알고리즘이 분할되지 않는다는 것입니다. 설명하겠습니다. 잘못된 계산은 역사를 통해 수행됩니다. 그리고 어떤 부분에서 오류를 수정하면 제로 바 영역에서 처리 프로세스가 불완전하다고 가정 해 보겠습니다. 적절한 단어를 찾기가 어렵습니다. 따라서 0 막대 영역의 이러한 불완전성은 극한값에 대한 올바른 검색 문제를 밝힙니다.

얼마 전에 창 매개변수(shift, shift + ExtDepth)를 선택하려고 했습니다. 다른 날 나는 또한 창으로 실험을 했다. 그러나 지금까지 결과가 없습니다.
 
요점은 지그재그 알고리즘이 분할되지 않는다는 것입니다. 설명하겠습니다. 잘못된 계산은 역사를 통해 수행됩니다. 그리고 어떤 부분에서 오류를 수정하면 제로 바 영역에서 처리 프로세스가 불완전하다고 가정 해 보겠습니다. 적절한 단어를 찾기가 어렵습니다. 따라서 0 막대 영역의 이러한 불완전성은 극한값에 대한 올바른 검색 문제를 밝힙니다.


이 문제는 알려져 있고 이론적으로 수정되었습니다(알고리즘은 오랫동안 제 머리 속에 있었습니다). 어쨌든 다른 솔루션이 나타나지 않으면 ZigZag 알고리즘을 최적화하겠습니다. 이것은 다음과 같이 수행됩니다.
1) 현재 알고리즘과 같이 전체 히스토리에서 첫 번째 실행이 수행됩니다.
2) 히스토리 깊숙한 제로 바에서 각 틱마다 두 개의 지그재그 극값이 검색되고 마지막 극한이 강제로 종료됩니다.
3) 끝에서 두 번째(지금은 마지막)부터 표준 지그재그 계산 절차를 다시 수행합니다.
4) 현재 끝(지그재그의 꼬리)이 이론적으로 극한값이 될 수 있으면(마지막 저점에서 최고가가 가장 높거나 그 반대의 경우도 마찬가지임) 극값도 됩니다.
5) 새로운 틱으로 포인트 2)부터 다시
 
nen :
그러나 그것은 거기에 없었습니다. 첫 번째 광선이 흔들리고 있습니다. 위치를 변경합니다.

나는 이것을 아직 보지 못했다. 빔의 한쪽 끝이 고정되어 있습니까? 그리고 어느 것. 막대가 0 인 경우 double 유형의 변수가 비교되는 조건을 자세히 살펴보는 것이 좋습니다.

지표를 계산하는 과정에서 창을 이동할 때(shift,shift+ExtDepth), 새로운 극한값의 출현은 새로운 가격과 이전 극값이 창을 떠났다는 사실 모두와 연관될 수 있습니다. - 명확하게 표기하는 것이 좋을 것입니다. 확실하게. 언어 설명에서.

이것은 언어에 적용되는 것이 아니라 알고리즘에 적용되는 것 같습니다. 즉, 논의된 기능은 실제로 극값을 찾는 것이 아니라 구간에 대한 가격의 최대(최소) 값을 찾고 있다는 사실을 상기시키는 것입니다. 책이나 일부 주석에서 더 적절합니다.
이렇게 하려면 내 삽입에서 if(highpos!=shift) val=0.0; . 이것이 표준 코드에서 어떻게 수행되는지 이해하지 못했습니다. 내 버전에서 매달린 극값이 사라진 것으로 판단하면 이것은 잘못 수행되거나 전혀 수행되지 않습니다. - 나는 이 순간을 다르게 풀었다: if (High[shift]==val) ZigZagBuffer[shift]=val; 및 if (Low[shift]==val) ZigZagBuffer[shift]=val;
나는 내 버전이 더 좋아 :). 정수와 함께 작동합니다. 이러한 이중 비교(Low[shift]==val 유형)를 사용하면 비트가 나타날 수 있습니다.
 
로쉬 , 나도 같은 선택을 할 수 있어. 내 머리에 구현에서 모호한 순간을 중지하십시오. 말하자면. 항목 4)는 알고리즘에서 다소 벗어났습니다. 이것은 다른 알고리즘입니다. 그리고 4)에 따라 처리된 구간이 history의 속성이 되면 1)부터 시작하는 알고리즘에 의한 처리가 또 다른 극치를 그릴 수 있다. 즉, 실시간과 히스토리가 다릅니다. 이것은 받아들일 수 없는 일이라고 생각합니다.
 
Rosh , 나도 같은 선택을 할 수 있어. 내 머리에 구현에서 모호한 순간을 중지하십시오. 말하자면. 항목 4)는 알고리즘에서 다소 벗어났습니다. 이것은 다른 알고리즘입니다. 그리고 4)에 따라 처리된 구간이 history의 속성이 되면 1)부터 시작하는 알고리즘에 의한 처리가 또 다른 극치를 그릴 수 있다. 즉, 실시간과 히스토리가 다릅니다. 이것은 받아들일 수 없는 일이라고 생각합니다.


포인트 4) 다음 틱에서 포인트 2)를 통해 파일로 처리됩니다.
 
Дело в том, что алгоритм зигзага, скажем так, не расчленяется. Поясню это. Просчет проводится по всей истории. И если мы в какой-то части исправим ошибки, то в районе нулевого бара процесс обработки остается, скажем так, незавершенным. Затрудняюсь подобрать правильные слова. Так вот эта незавершенность в районе нулевого бара и вытаскивает на свет проблему правильного поиска экстремумов.


이 문제는 알려져 있고 이론적으로 수정되었습니다(알고리즘은 오랫동안 제 머리 속에 있었습니다).
지그재그로 수행해야 하는 작업에 대한 구두 설명이 있습니까? 일종의 청사진 같은 거죠.
 
나는 이것을 아직 보지 못했다. 빔의 한쪽 끝이 고정되어 있습니까? 그리고 어느 것. 막대가 0이면 이중 유형의 변수를 비교하는 조건을 자세히 살펴보는 것이 좋습니다.
요점은 내가 매우 가혹한 조건에서 ZigZag 표시기를 테스트하고 있다는 것입니다. 분 및 매개변수 2-1-1 사용. 이 테스트는 무엇을 위한 것입니까? 이러한 테스트는 숨겨진 모든 결함을 충분히 빠르게 드러냅니다. 또한 지표가 예외 없이 모든 시간대 에 작동하기를 원합니다. 시장은 프랙탈입니다. 순간에 거래하는 사람들이 많이 있습니다. 왜 그들이 짧은 시간에 친숙한 도구로 작업할 기회를 박탈합니까?

나는 내 버전이 더 좋아 :). 정수와 함께 작동합니다. 이러한 이중 비교(Low[shift]==val 유형)를 사용하면 비트가 나타날 수 있습니다.
지금까지 double 로 작업하는 데 어려움이 없었습니다. 메모리에서 이러한 숫자는 변경되지 않고 저장됩니다. 그리고 내 비교는 하나의 메모리 셀에서 값을 가져옵니다. 이 장소에 문제가 나타나면 이것은 이미 하드웨어 인 컴퓨터에 대한 질문입니다. 철로 해야 할 일이 있습니다.

이것은 언어에 적용되는 것이 아니라 알고리즘에 적용되는 것 같습니다. 즉, 논의된 기능은 실제로 극값을 찾는 것이 아니라 구간에서 가격의 최대(최소) 값을 찾는 것이 책이나 일부 주석에서 더 적절하다는 것을 상기시킵니다.

나는 그것을 극단이라고 불렀습니다. 실제로 선택한 영역에서 가장 큰 최대값과 가장 작은 최소값입니다. 오랜만입니다. 그러나 의미는 동일합니다.
 
지그재그로 수행해야 하는 작업에 대한 구두 설명이 있습니까? 사양이란 무엇입니까?
오랫동안 CodeBase.mql4.com에 있었습니다. 그러나 그 설명은 이해하기가 매우 어렵습니다. 그리고 모순적이다. 여름에는 Slava가 지그재그 코드를 수정 한 것 같습니다. 그 후, 이전 설명의 일부만 사이트에 남아있었습니다.
 
nen :
지금까지 double 로 작업하는 데 어려움이 없었습니다. 메모리에서 이러한 숫자는 변경되지 않고 저장됩니다. 그리고 내 비교는 하나의 메모리 셀에서 값을 가져옵니다. 이 장소에 문제가 나타나면 이것은 이미 하드웨어, 즉 컴퓨터에 대한 질문입니다. 철로 해야 할 일이 있습니다.
글쎄, 나는 지점의 코드에서 시작하고 있습니다. 그리고 val 은 매번 계산됩니다. 그리고 double 을 비교할 때 == 를 사용하지 않는 것이 더 안전합니다.
 
글쎄, 나는 지점의 코드에서 시작하고 있다. 그리고 val은 매번 계산됩니다. 맞습니다. 중요합니다. 휴대폰 번호 가 있습니다. 이 셀(시계열)에서 막대의 높거나 낮은 값을 가져옵니다. 예를 들어 이 막대에서 최대값이 발견된 것으로 믿어집니다. 그런 다음 이 값은 발견된 숫자 와 함께 표시기 버퍼 에 배치됩니다. 표시기의 최대값은 막대의 최대값과 일치해야 합니다. 그리고 내 코드에서 최대값은 동일한 발견 번호를 가진 배열(시계열)에서 가져와서 값 val 과 비교합니다. 이 숫자가 있는 버퍼에 숫자 val을 넣어 올바른 일을 하고 있는지 확인합니다. 또한 막대의 최대값과 같아야 합니다. 같은 장소에서 가져온 숫자를 비교하는 것은 매우 정확합니다.