KimIV의 유용한 기능 - 페이지 47 1...404142434445464748495051525354...128 새 코멘트 Prival 2008.09.10 09:30 #461 그래서 이렇게 부르면 나도 어울리지 for ( int i = 0 ; i < r ; i ++ ) { Y [ i ] = Close [ i + 1 ] ; X [ i ] = i ; } Array_LR ( X , Y ) ; for ( i = 0 ; i < r ; i ++ ) { SetArrow ( 170 , Blue , " arr " + i + r , Time [ i + 1 ] , Y [ i ]) ; } 사실, 두 경우의 포인트는 정확히 겹치지 않습니다. 그러나 이것은 SetArrow()의 기능일 가능성이 큽니다. 여기 사진이 있습니다 Igor Kim 2008.09.10 10:15 #462 Prival писал (а) >> 를 작성했습니다. 사실, 두 경우의 포인트는 정확히 겹치지 않습니다. 그러나 이것은 SetArrow()의 기능일 가능성이 큽니다. 아니오, 이것은 OBJ_ARROW 그래픽 개체의 기능입니다. 그것은 질량 중심이 아니라 상부 경계의 중간에 의해 고정됩니다. Igor Kim 2008.09.15 10:37 #463 ArrayMo() 함수. 분포 밀도 곡선의 최대값인 모드를 반환합니다. 이 함수는 다음과 같은 선택적 매개변수를 허용합니다. x - 숫자 계열 값의 배열입니다. d - 숫자 계열 값의 정확도, 소수 자릿수. //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 21.06.2008 | //| Описание : Возвращает Моду - максимум кривой плотности распределения. | //+----------------------------------------------------------------------------+ //| Параметры: | //| x - массив значений числового ряда | //| d - точность значений числового ряда, количество знаков после запятой | //+----------------------------------------------------------------------------+ double ArrayMo ( double & x [] , int d = 4 ) { double e , s = 0 ; double m [][ 2 ] ; // временный массив: // столбец 1 - количество значений // столбец 2 - значения int i , k = ArraySize ( x ) ; int n ; // номер строки временного массива m int r ; // количество строк во временном массиве m if ( k > 0 ) { for ( i = 0 ; i < k ; i ++ ) { e = NormalizeDouble ( x [ i ] , d ) ; n = ArraySearchDouble ( m , e ) ; if ( n < 0 ) { r = ArrayRange ( m , 0 ) ; ArrayResize ( m , r + 1 ) ; m [ r ][ 0 ] ++; m [ r ][ 1 ] = e ; } else m [ n ][ 0 ] ++; } ArraySort ( m , WHOLE_ARRAY , 0 , MODE_DESCEND ) ; s = m [ 0 ][ 1 ] ; } else Print ( " ArrayMo(): Массив пуст! " ) ; return ( s ) ; } Igor Kim 2008.09.15 10:39 #464 ArrayMo() 함수를 사용하는 예입니다. 현재 차트의 마지막 1000개 막대 중 가장 자주 발생하는 고가 수준 결정: #define R 1000 void start () { double a [ R ] ; for ( int i = 0 ; i < R ; i ++ ) a [ i ] = High [ i ] ; Message ( ArrayMo ( a , 4 )) ; } 추신. ArrayMo() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다. 파일: test_arraymo.mq4 5 kb Igor Kim 2008.09.15 12:13 #465 배열 작업을 위한 b-Array 함수 라이브러리가 완전히 게시되었습니다. Prival 2008.09.15 14:13 #466 또 다른 하나는 공분산 계산입니다. //+----------------------------------------------------------------------------+ //| Автор : Сергей Привалов aka Prival, Skype: privalov-sv | //+----------------------------------------------------------------------------+ //| Версия : 11.09.2008 | //| Описание : Рассчет ковариации массива cvar(X,Y) | //+----------------------------------------------------------------------------+ //| Параметры: | //| X - массив значений числового ряда, ось X | //| Y - массив значений числового ряда, ось Y | //+----------------------------------------------------------------------------+ double cvar ( double & X [] , double & Y []) { double mo_X = 0 , mo_Y = 0 , res = 0 ; int i , N = ArraySize ( X ) ; if ( N > 1 && ArraySize ( Y ) == N ) { for ( i = 0 ; i < N ; i ++ ) { mo_X += X [ i ] - X [ 0 ] ; mo_Y += Y [ i ] ; } mo_X /= N ; mo_Y /= N ; for ( i = 0 ; i < N ; i ++ ) res += ( X [ i ] - mo_X ) * ( Y [ i ] - mo_Y ) ; res /= N ; } else Print ( " cvar(): Недостаточное количество элементов ряда! N= " , N , " или не совпадает размерность " ) ; return ( res ) ; 수정했습니다. TheXpert 2008.09.15 15:09 #467 Prival писал (а) >> 를 썼습니다. 또 다른 하나는 공분산 계산입니다. 라이브러리에 추가하십시오. 배열(행렬)에는 훨씬 더 많은 연산이 있습니다. 하지만 차츰차츰 채워가는 것 같아요. 몇 가지 질문이 있습니다. 1. mo_XY가 무엇인가요? 2. X에 대한 MO 축적 라인에서 mo_X += X [ i ] - X [ 0 ] ; 왜 X[0]을 빼나요? 3. 어레이 X를 주문해야 하는 이유는 무엇입니까? Prival 2008.09.15 15:32 #468 1. mo_XY를 삭제할 수 있으며 다양한 계산 옵션을 테스트했습니다. 잘못된 선택이 남긴 것입니다. 2. 내가 준 이 알고리즘은 Time[]을 X로 사용하면 계산에서 오류가 발생할 가능성이 최소화됩니다. 큰 수를 곱하면 차츰 오차가 누적되어 올라갑니다. 이를 위해 이 오류의 가능한 발생을 제거하고 X[0]을 빼서 X를 (추가로) 원점으로 이동합니다. 3. 너무 똑똑하고 순서가 맞지 않을 수 있습니다. 가장 중요한 것은 X에 입력한 값이 Y에 해당한다는 것입니다. 지금 고칠게 Wma 5/20 - 에마 MathCumulativeDistributionBeta MathCumulativeDistributionNoncentralBeta Prival 2008.09.15 16:53 #469 mo_X += X [ 0 ] ; // 아마도 잊어버렸을 것입니다. 이것은 중복 작업입니다. 재확인할 수 있습니다. Prival 2008.09.15 18:13 #470 TheXpert писал (а) >> 난 동의하지 않는다. 이것은 좋은 규칙입니다 - 불신. 수학 패키지를 체크인하십시오. 결과를 게시하겠습니다. 지금 MathCade에서 해보겠습니다. 1...404142434445464748495051525354...128 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그래서 이렇게 부르면 나도 어울리지
사실, 두 경우의 포인트는 정확히 겹치지 않습니다. 그러나 이것은 SetArrow()의 기능일 가능성이 큽니다.
여기 사진이 있습니다
사실, 두 경우의 포인트는 정확히 겹치지 않습니다. 그러나 이것은 SetArrow()의 기능일 가능성이 큽니다.
아니오, 이것은 OBJ_ARROW 그래픽 개체의 기능입니다. 그것은 질량 중심이 아니라 상부 경계의 중간에 의해 고정됩니다.
ArrayMo() 함수.
분포 밀도 곡선의 최대값인 모드를 반환합니다. 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.
ArrayMo() 함수를 사용하는 예입니다.
현재 차트의 마지막 1000개 막대 중 가장 자주 발생하는 고가 수준 결정:
추신. ArrayMo() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.배열 작업을 위한 b-Array 함수 라이브러리가 완전히 게시되었습니다.
또 다른 하나는 공분산 계산입니다.
수정했습니다.
또 다른 하나는 공분산 계산입니다.
라이브러리에 추가하십시오. 배열(행렬)에는 훨씬 더 많은 연산이 있습니다. 하지만 차츰차츰 채워가는 것 같아요.몇 가지 질문이 있습니다.
1. mo_XY가 무엇인가요?
2. X에 대한 MO 축적 라인에서
1. mo_XY를 삭제할 수 있으며 다양한 계산 옵션을 테스트했습니다. 잘못된 선택이 남긴 것입니다.
2. 내가 준 이 알고리즘은 Time[]을 X로 사용하면 계산에서 오류가 발생할 가능성이 최소화됩니다. 큰 수를 곱하면 차츰 오차가 누적되어 올라갑니다. 이를 위해 이 오류의 가능한 발생을 제거하고 X[0]을 빼서 X를 (추가로) 원점으로 이동합니다.
3. 너무 똑똑하고 순서가 맞지 않을 수 있습니다. 가장 중요한 것은 X에 입력한 값이 Y에 해당한다는 것입니다.
지금 고칠게
이것은 중복 작업입니다. 재확인할 수 있습니다.
난 동의하지 않는다.
이것은 좋은 규칙입니다 - 불신. 수학 패키지를 체크인하십시오. 결과를 게시하겠습니다. 지금 MathCade에서 해보겠습니다.