작가의 대화. 알렉산더 스미르노프. - 페이지 14

 
Yurixx :
비공개 :

여기에 VBAG 는 먼저 1개의 지표를 게시한 다음 다른 지표로 교체했으며(모든 것을 보았습니다 :-)), 세 번째지만 이미 전문가를 게시했습니다. 그리고 나는 여전히 움직이는 그림을 볼 수 없습니다. 그러면 그 수학자가 옳다고 확신할 것입니다. 그런 완고한 "바보"군인 :-) 당신은 맹목적인 믿음을 견딜 수 없습니다 :-)


세르게이, 왜 움직이는 사진이 필요한지 모르겠지만, 두 줄로 표시기를 만들어 드릴 수 있습니다. 하나는 LRMA이고 다른 하나는 3*LWMA-2*MA입니다. 그들은 완전히 호환됩니다. 그들 중 하나는 다른 하나 때문에 보이지 않을 것입니다. 이 다른 색상을 끄면 첫 번째 색상이 표시됩니다. 색상을 켜면 두 번째 만 보입니다.

나는 당신에게 동등성의 증거를 보낼 것입니다. 그것은 짧습니다 - 단지 12줄입니다. 그러나 선형 회귀를 구현하기 위해 분석 형식으로 얻은 공식에 의존합니다. 글쎄, 모든 것을 숫자로 계산하지 않도록 가능한 경우 유한 공식을 사용하십시오. 사이클이 적을수록 더 빨리 고려됩니다. 그러나 이것들은 이미 꽤 긴 계산이며 말씀에서 투덜거리는 것을 꺼립니다.


고맙습니다. 나 자신을 시도합니다. 휴식이 필요합니다. 드디어 칼만 필터가 완성되었습니다. 하지만 지금 일주일 동안 테스터에서 실행할 수 없습니다. 갑자기 그런 일이 생긴 것 같아 걱정입니다.-(. 오류를 찾고 있습니다. 데이터를 더 잘 준비하고, 예측을 더욱 정확하게 하려고 합니다. matcad에서는 작동하지만 실행하기가 두렵습니다. 테스터에서.

 
VBAG :
체커 또는 회귀를 계산하기 위한 보다 합리적인 알고리즘이 있다면 살펴보는 것이 매우 흥미로울 것입니다!

그것을 알고리즘이라고 부르는 것은 너무 시끄럽지만, 나는 당신에게 아이디어를 줄 수 있습니다. 원칙은 간단합니다. 빠른 속도로 이기면 기억에서 집니다. 첫 번째가 더 필요하므로 메모리를 로드합니다.

예를 들어, 단순 SMA. 기본 제공 알고리즘은 보편적이어야 하며 컨텍스트에 관계없이 어디에서나 계산해야 합니다. 그리고 자신의 프로그램에서 이전 계산의 결과를 사용할 수 있습니다. 새 SMA 값을 계산하려면 이전 N 가격 값의 합계를 가져와서 첫 번째 값을 빼고 새 값(현재 값)을 추가해야 합니다. 그런 다음 이 금액을 N으로 나눕니다. 따라서 이전 N 가격의 합계와 이 N 가격의 배열을 가진 변수를 따라 끌어서 각 막대에서 이 금액과 배열을 업데이트해야 합니다. 결과적으로 각 막대의 SMA를 계산하려면 3개의 연산자(금액 업데이트 , 배열 요소 업데이트, SMA 값 계산)를 실행해야 합니다. 사이클이 없습니다.

 
Prival :

하지만 지금 일주일 동안 테스터에서 실행할 수 없습니다. 갑자기 일이 생겨서 걱정입니다 :-( .


예, 발생합니다. :-))
 
Leov 는 다음과 같이 썼습니다.
예를 들어, 기간이 50인 JMA 및 SSA입니다. 사실, 저는 SSA를 기반으로 하는 CSSA가 있지만 다시 그리지는 않습니다. 매우 빠릅니다. 이 알고리즘을 추천합니다...

물론 주제에서 벗어나지만 여전히 흥미롭습니다. - LeoV 입니다 . 하지만 같은 개발자의 CSSA Cycles 표시기 사진을 보여주실 수 있습니까(주식에서 매우 멋지게 보임)? Forex 시세에 어떻게 보이는지 알고 싶습니다.
 
Yurixx :
이 방법은 아마도 의미가 있지만 기간이 작은 경우에만 가능합니다. 그리고 기억이 주된 이유는 아닙니다. 재부팅하면 뒤로 드래그한 내용이 손실됩니다. 일반적으로 훌륭합니다. 답변 감사합니다.
 
Prival :

드디어 칼만 필터가 완성되었습니다.

칼만 테마를 밀었다고? 그리고 저는 이 토론을 놓쳤습니다. 그것에 대해 어디에서 볼 수 있습니까?

추신 : 나는 주제에 대한 파일을 첨부했습니다 - 아마도 누군가가 관심을 가질 것입니다.
 
예, 그는 자신을 로더라고 불렀습니다. 몸에 올라갑니다. 자, 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

합계를 확장하면 다음을 얻습니다(표기법을 단순화하기 위해 인덱스 범위를 생략함).

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 지점에서의 회귀입니다.
 
알렉세이! 또 리핏! 그리고 나는 여전히 내 LRMA(더 정확하게는 Omega) "/6"의 공식에서 내 머리를 긁고 있습니다!
 
VBAG :
이 방법은 아마도 의미가 있지만 기간이 작은 경우에만 가능합니다. 그리고 기억이 주된 이유는 아닙니다. 재부팅하면 뒤로 드래그한 내용이 손실됩니다. 일반적으로 훌륭합니다. 답변 감사합니다.


이 방법은 어떤 기간에도 좋습니다. 재부팅하면 물론 모든 것이 손실됩니다. 그러나 시작 시 항상 먼저 전체 차트에 대해 이 간단한 알고리즘을 실행하여 필요한 정보를 생성할 수 있습니다. 그리고 그것은 모든 것이 아니라 충분한 부분에 대해서만 가능합니다.

이 방법에는 단 하나의 단점이 있습니다. 하나의 iMA 대신 자신의 손으로 특정 수의 코드 줄을 작성해야 합니다. :-)

 

고마워 알렉세이. 나는 연필로 앉을 것이다. A와 B에 대한 도함수는 다음과 같습니다.


답변이 올바른지 다시 확인했습니다. 그렇습니다. A*N+B=3*LWMA-2*SMA

수학자는 도함수를 취할 때 듀스를 놓쳤지만.

그리고 나는 그것들이 N 지점이 아니라 (N-1)/2 지점에서 일치해야 한다는 막연한 의심으로 괴로워합니다. 불라쇼프 p.156. 처럼. 여기 N 지점과 일치하는 그림이 있습니다. 그래서 제가 오히려 틀렸습니다.