MA 피드 축적 감지를 알고리즘화하는 방법은 무엇입니까? - 페이지 6

 

계산하다   중간 가격   주어진 수의 근사값으로 주어진 간격에서.

안녕하세요, 값 배열이 있습니다.

작업은 함수를 작성하는 것입니다.

로그인 옵션:

- 배열은 중앙값을 계산하는 데 필요한 요소의 수를 포함합니다. - bufInBar[]

- 배열 크기   부프인바[]   - 세다

- 중앙값의 근사값 수 - 초점

 void medianaL0( const int &bufInBar[], int count, int fokus)

즉, 클래스가 있습니다.

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]]. Period ; 

출구에서:

BP[bufInBar[i]].Mediana; 

오름차순으로 채워집니다(예: 0에서 10까지).

즉, focus=10 조건에서 i<count 간격에 10개의 값이 있습니다.

BP[bufInBar[i]].Mediana;

1과 10 사이가 될 것입니다

예를 들어

BP[ 3256 ].Mediana= 0 ;
BP[ 6256 ].Mediana= 1 ;
BP[ 9256 ].Mediana= 2 ;
...
 
어떤 초점 을 맞추는지는 불명
 
이론적으로 중앙값은 정렬된 배열의 중간에 있는 요소의 값입니다. 귀하의 경우에는 무엇입니까?
 
Dmitry Fedoseev :
어떤 초점 을 맞추는지는 불명
알렉세이 스테파넨코 :
이론적으로 중앙값은 정렬된 배열의 중간에 있는 요소의 값입니다. 귀하의 경우에는 무엇입니까?

예시:

30 MA 가격 값의 배열, 우리는 정렬된 배열의 중간을 찾고 있습니다.

우리는 15(L0) 배열의 중간 값을 얻은 다음 L0 아래에서 L0 위로 두 개의 배열을 얻고 이러한 배열의 중간을 찾는 식으로 초점 수를 얻을 때까지 계속합니다(7개의 값은 예시)

                        --------------|--------------
                        -------|--------------|------
                        ---|-------|------|-------|--
fokus= 7
| - значение цены
        

 
Mikhail Toptunov :

예시:

30 MA 가격 값의 배열, 우리는 정렬된 배열의 중간을 찾고 있습니다.

우리는 15(L0) 배열의 중간 값을 얻은 다음 L0 아래에서 L0 위로 두 개의 배열을 얻고 이러한 배열의 중간을 찾는 식으로 초점 수를 얻을 때까지 계속합니다(7개의 값은 예시)

배열에 짝수개의 요소가 있는 경우 어떤 요소가 중앙값이 됩니까 아니면 2의 평균 또는 다른 것으로 계산되어야 합니까?

 
Mikhail Toptunov :

예시:

7개의 백분위수(12.5, 25, 37.5, 50, 62.5, 75, 87.5)를 찾아야 한다는 것을 정확히 이해하고 있습니까?

그렇다면 정렬된 배열의 요소 수를 8(7+1)로 나누고 원하는 백분위수를 곱합니다. 다음 요소 인덱스를 얻습니다: 3, 7, 11, 15, 18, 22, 26.

 int index=ArraySize(bufInBar)*percentile/(fokus+ 1 );

//где percentile - номер нужного перцентиля от 1 до fokus 

double value=bufInBar[index];

그래서, 아니면 내가 거기에 가지 않았습니까? 그렇다면 여기서 가장 중요한 것은 정렬된 배열을 유지 관리하기 위한 경제적인 메커니즘을 만드는 것입니다.

 
MathQuantile() 을 사용할 수 없는 이유는 무엇입니까?
 
Dmitry Fedoseev :

배열에 짝수개의 요소가 있는 경우 어떤 요소가 중앙값이 됩니까 아니면 2의 평균 또는 다른 것으로 계산되어야 합니까?

짝수 정수 값을 취하는 것이 더 쉽다고 생각합니다.

요소가 15개이면 중앙값은 8입니다.

 
Aleksei Stepanenko :

7개의 백분위수(12.5, 25, 37.5, 50, 62.5, 75, 87.5)를 찾아야 한다는 것을 정확히 이해하고 있습니까?

그렇다면 정렬된 배열의 요소 수를 8(7+1)로 나누고 원하는 백분위수를 곱합니다. 다음 요소 인덱스를 얻습니다: 3, 7, 11, 15, 18, 22, 26.

그래서, 아니면 내가 거기에 가지 않았습니까? 그렇다면 여기서 가장 중요한 것은 정렬된 배열을 유지 관리하기 위한 경제적인 메커니즘을 만드는 것입니다.

MA 값의 배열을 사용하여 전체 배열의 중앙값을 찾은 다음 첫 번째 중앙값 위/아래에서 얻은 배열의 중앙값 등을 찾아야 합니다.

 

그러면 모든 것이 올바른 것 같습니다. 배열의 첫 번째 부분의 중앙값은 전체 배열의 1/4이고 이것은 25번째 백분위수입니다. 그리고 두 번째 부분의 중앙값은 75번째 백분위수입니다.

이것은:

                        --------------|---------------
                        -------|--------------|-------
                        ---|-------|------|-------|---

다음과 같습니다.

                        ---|---|---|---|---|---|---|---