여기에 VBAG 는 먼저 1개의 지표를 게시한 다음 다른 지표로 교체했으며(모든 것을 보았습니다 :-)), 세 번째지만 이미 전문가를 게시했습니다. 그리고 나는 여전히 움직이는 그림을 볼 수 없습니다. 그러면 그 수학자가 옳다고 확신할 것입니다. 그런 완고한 "바보"군인 :-) 당신은 맹목적인 믿음을 견딜 수 없습니다 :-)
세르게이, 왜 움직이는 사진이 필요한지 모르겠지만, 두 줄로 표시기를 만들어 드릴 수 있습니다. 하나는 LRMA이고 다른 하나는 3*LWMA-2*MA입니다. 그들은 완전히 호환됩니다. 그들 중 하나는 다른 하나 때문에 보이지 않을 것입니다. 이 다른 색상을 끄면 첫 번째 색상이 표시됩니다. 색상을 켜면 두 번째 만 보입니다.
나는 당신에게 동등성의 증거를 보낼 것입니다. 그것은 짧습니다 - 단지 12줄입니다. 그러나 선형 회귀를 구현하기 위해 분석 형식으로 얻은 공식에 의존합니다. 글쎄, 모든 것을 숫자로 계산하지 않도록 가능한 경우 유한 공식을 사용하십시오. 사이클이 적을수록 더 빨리 고려됩니다. 그러나 이것들은 이미 꽤 긴 계산이며 말씀에서 투덜거리는 것을 꺼립니다.
고맙습니다. 나 자신을 시도합니다. 휴식이 필요합니다. 드디어 칼만 필터가 완성되었습니다. 하지만 지금 일주일 동안 테스터에서 실행할 수 없습니다. 갑자기 그런 일이 생긴 것 같아 걱정입니다.-(. 오류를 찾고 있습니다. 데이터를 더 잘 준비하고, 예측을 더욱 정확하게 하려고 합니다. matcad에서는 작동하지만 실행하기가 두렵습니다. 테스터에서.
VBAG : 체커 또는 회귀를 계산하기 위한 보다 합리적인 알고리즘이 있다면 살펴보는 것이 매우 흥미로울 것입니다!
그것을 알고리즘이라고 부르는 것은 너무 시끄럽지만, 나는 당신에게 아이디어를 줄 수 있습니다. 원칙은 간단합니다. 빠른 속도로 이기면 기억에서 집니다. 첫 번째가 더 필요하므로 메모리를 로드합니다.
예를 들어, 단순 SMA. 기본 제공 알고리즘은 보편적이어야 하며 컨텍스트에 관계없이 어디에서나 계산해야 합니다. 그리고 자신의 프로그램에서 이전 계산의 결과를 사용할 수 있습니다. 새 SMA 값을 계산하려면 이전 N 가격 값의 합계를 가져와서 첫 번째 값을 빼고 새 값(현재 값)을 추가해야 합니다. 그런 다음 이 금액을 N으로 나눕니다. 따라서 이전 N 가격의 합계와 이 N 가격의 배열을 가진 변수를 따라 끌어서 각 막대에서 이 금액과 배열을 업데이트해야 합니다. 결과적으로 각 막대의 SMA를 계산하려면 3개의 연산자(금액 업데이트 , 배열 요소 업데이트, SMA 값 계산)를 실행해야 합니다. 사이클이 없습니다.
예, 그는 자신을 로더라고 불렀습니다. 몸에 올라갑니다. 자, Sergey , 여기 당신을 위한 증거가 있습니다.
시간을 읽도록 합시다 - t = 1, 2, ... N. N - 현재 막대, "0". 이 샘플은 Сlose(1), Сlose(2), ... Сlose(N) 절에 해당합니다. 최소제곱법에 따라 절을 지나는 직선 y = A*t+B를 구성해 봅시다. 그런 다음 A * N + B를 계산합니다. 현재 막대의 LRMA.
제곱 오차의 합을 계산합니다.
Delta^2 = Sum( ( y(i) - Close(i) )^2; i = 1..N ) = Sum( ( A*i + B - Close(i) )^2; i = 1.. N)
우리는 이 shnyaga를 A와 B에 대해 미분하고 최적 집합 A와 B에 대한 방정식 시스템을 얻습니다.
Sum( ( A*i + B - 닫기(i) ) * i ); 나는 = 1..N ) = 0 합계( A*i + B - 닫기(i) ); 나는 = 1..N ) = 0
여기에 VBAG 는 먼저 1개의 지표를 게시한 다음 다른 지표로 교체했으며(모든 것을 보았습니다 :-)), 세 번째지만 이미 전문가를 게시했습니다. 그리고 나는 여전히 움직이는 그림을 볼 수 없습니다. 그러면 그 수학자가 옳다고 확신할 것입니다. 그런 완고한 "바보"군인 :-) 당신은 맹목적인 믿음을 견딜 수 없습니다 :-)
세르게이, 왜 움직이는 사진이 필요한지 모르겠지만, 두 줄로 표시기를 만들어 드릴 수 있습니다. 하나는 LRMA이고 다른 하나는 3*LWMA-2*MA입니다. 그들은 완전히 호환됩니다. 그들 중 하나는 다른 하나 때문에 보이지 않을 것입니다. 이 다른 색상을 끄면 첫 번째 색상이 표시됩니다. 색상을 켜면 두 번째 만 보입니다.
나는 당신에게 동등성의 증거를 보낼 것입니다. 그것은 짧습니다 - 단지 12줄입니다. 그러나 선형 회귀를 구현하기 위해 분석 형식으로 얻은 공식에 의존합니다. 글쎄, 모든 것을 숫자로 계산하지 않도록 가능한 경우 유한 공식을 사용하십시오. 사이클이 적을수록 더 빨리 고려됩니다. 그러나 이것들은 이미 꽤 긴 계산이며 말씀에서 투덜거리는 것을 꺼립니다.
고맙습니다. 나 자신을 시도합니다. 휴식이 필요합니다. 드디어 칼만 필터가 완성되었습니다. 하지만 지금 일주일 동안 테스터에서 실행할 수 없습니다. 갑자기 그런 일이 생긴 것 같아 걱정입니다.-(. 오류를 찾고 있습니다. 데이터를 더 잘 준비하고, 예측을 더욱 정확하게 하려고 합니다. matcad에서는 작동하지만 실행하기가 두렵습니다. 테스터에서.
체커 또는 회귀를 계산하기 위한 보다 합리적인 알고리즘이 있다면 살펴보는 것이 매우 흥미로울 것입니다!
그것을 알고리즘이라고 부르는 것은 너무 시끄럽지만, 나는 당신에게 아이디어를 줄 수 있습니다. 원칙은 간단합니다. 빠른 속도로 이기면 기억에서 집니다. 첫 번째가 더 필요하므로 메모리를 로드합니다.
예를 들어, 단순 SMA. 기본 제공 알고리즘은 보편적이어야 하며 컨텍스트에 관계없이 어디에서나 계산해야 합니다. 그리고 자신의 프로그램에서 이전 계산의 결과를 사용할 수 있습니다. 새 SMA 값을 계산하려면 이전 N 가격 값의 합계를 가져와서 첫 번째 값을 빼고 새 값(현재 값)을 추가해야 합니다. 그런 다음 이 금액을 N으로 나눕니다. 따라서 이전 N 가격의 합계와 이 N 가격의 배열을 가진 변수를 따라 끌어서 각 막대에서 이 금액과 배열을 업데이트해야 합니다. 결과적으로 각 막대의 SMA를 계산하려면 3개의 연산자(금액 업데이트 , 배열 요소 업데이트, SMA 값 계산)를 실행해야 합니다. 사이클이 없습니다.
하지만 지금 일주일 동안 테스터에서 실행할 수 없습니다. 갑자기 일이 생겨서 걱정입니다 :-( .
예, 발생합니다. :-))
물론 주제에서 벗어나지만 여전히 흥미롭습니다. - LeoV 입니다 . 하지만 같은 개발자의 CSSA Cycles 표시기 사진을 보여주실 수 있습니까(주식에서 매우 멋지게 보임)? Forex 시세에 어떻게 보이는지 알고 싶습니다.
드디어 칼만 필터가 완성되었습니다.
추신 : 나는 주제에 대한 파일을 첨부했습니다 - 아마도 누군가가 관심을 가질 것입니다.
시간을 읽도록 합시다 - t = 1, 2, ... N. N - 현재 막대, "0". 이 샘플은 Сlose(1), Сlose(2), ... Сlose(N) 절에 해당합니다. 최소제곱법에 따라 절을 지나는 직선 y = A*t+B를 구성해 봅시다. 그런 다음 A * N + B를 계산합니다. 현재 막대의 LRMA.
제곱 오차의 합을 계산합니다.
Delta^2 = Sum( ( y(i) - Close(i) )^2; i = 1..N ) = Sum( ( A*i + B - Close(i) )^2; i = 1.. N)
우리는 이 shnyaga를 A와 B에 대해 미분하고 최적 집합 A와 B에 대한 방정식 시스템을 얻습니다.
Sum( ( A*i + B - 닫기(i) ) * i ); 나는 = 1..N ) = 0
합계( A*i + B - 닫기(i) ); 나는 = 1..N ) = 0
합계를 확장하면 다음을 얻습니다(표기법을 단순화하기 위해 인덱스 범위를 생략함).
A*Sum( i^2 ) + B*Sum( i ) = Sum( i*Close(i) )
А*Sum( i ) + B*Sum( 1 ) = Sum( 종가(i) )
Prival , 이제 올바른 부분을 살펴보십시오. 첫 번째 방정식의 오른쪽에 있는 합은 정규화 요소 없이 이미 거의 LWMA입니다. 두 번째는 SMA입니다. 역시 SMA가 없습니다. 다음은 이러한 자동차에 대한 정확한 공식입니다.
LWMA = 2/(N*(N+1)) * Sum( i*Close(i) )
SMA = 1/N * 합계( 종가(i) )
이제 우리는 1에서 N까지의 자연수의 제곱의 합이 무엇인지 기억합니다(이것은 N * (N + 1) * (2 * N + 1) / 6입니다). 이를 시스템에 대입하고 다음을 얻습니다.
A * N*(N+1)*(2*N+1)/6 + B * N*(N+1)/2 = LWMA * N*(N+1)/2
A * N * (N + 1) / 2 + B * N \u003d SMA * N
단순화:
A * (2*N+1)/3 + B = LWMA
A * (N+1)/2 + B = SMA
나는 시스템, 게으름을 해결하지 않을 것입니다 (모든 것이 이미 여기에서 분명합니다). 첫 번째 방정식에 3을 곱하고 두 번째 방정식에 2를 곱한 다음 첫 번째 방정식에서 두 번째 1항을 뺍니다.
A * (2*N+1) + 3 * B - A * (N+1) - 2 * B = 3 * LWMA - 2 * SMA
왼쪽에는 단순화 후 A * N + B가 남아 있습니다. 정확히 N 지점에서의 회귀입니다.
이 방법은 아마도 의미가 있지만 기간이 작은 경우에만 가능합니다. 그리고 기억이 주된 이유는 아닙니다. 재부팅하면 뒤로 드래그한 내용이 손실됩니다. 일반적으로 훌륭합니다. 답변 감사합니다.
이 방법은 어떤 기간에도 좋습니다. 재부팅하면 물론 모든 것이 손실됩니다. 그러나 시작 시 항상 먼저 전체 차트에 대해 이 간단한 알고리즘을 실행하여 필요한 정보를 생성할 수 있습니다. 그리고 그것은 모든 것이 아니라 충분한 부분에 대해서만 가능합니다.
이 방법에는 단 하나의 단점이 있습니다. 하나의 iMA 대신 자신의 손으로 특정 수의 코드 줄을 작성해야 합니다. :-)
고마워 알렉세이. 나는 연필로 앉을 것이다. A와 B에 대한 도함수는 다음과 같습니다.
답변이 올바른지 다시 확인했습니다. 그렇습니다. A*N+B=3*LWMA-2*SMA
수학자는 도함수를 취할 때 듀스를 놓쳤지만.
그리고 나는 그것들이 N 지점이 아니라 (N-1)/2 지점에서 일치해야 한다는 막연한 의심으로 괴로워합니다. 불라쇼프 p.156. 처럼. 여기 N 지점과 일치하는 그림이 있습니다. 그래서 제가 오히려 틀렸습니다.