6급 폴리 도움말!

 
제 소개를하겠습니다. 저는 데이터베이스(sql, t-SQL, PL/SQL)에 대한 매우 강력한 프로그래밍 기술을 갖고 있고 데이터베이스가 아닌 언어(C, C++, C#, VB /VBA)를 수행합니다. 저는 여러 해 동안 금융 서비스 업계에서 일했으며 Excel에 매우 능숙합니다(2013년을 정말 좋아합니다. 칭찬!).

저는 Excel을 아주 오랫동안 사용해 왔으며 항상 기본 제공 기능과 그래프 도구(그래프 이미지를 잘라내어 붙여넣을 수 있음)에 의존해 왔으며 어느 날 실제(비시각적) 값의 실제 적용을 식별하고 "방법"을 결정하기 위해 프레젠테이션의 표면 아래를 파헤쳐야 합니다. 최근까지 시각적 프레젠테이션(및 그 배후의 논리)은 자체적으로 판매되었습니다.

거기에 내 탐구의 목적이 있다.

다음 차트가 주어지면 6차 다항식 추세선의 안정성을 명확하게 확인할 수 있습니다. 폴리는 SMA 방법이 제공하는 더 넓은 범위에 걸쳐 실질적으로 더 안정적이며 이 모든 것은 명목상의 대기 시간으로 이루어집니다! 간단히 말해서, 폴리는 움츠러들지 않습니다. 08년 부동산 시장의 정점을 확인하기 위해 엑셀 폴리 트렌드 라인을 사용한 날부터 사랑에 빠졌습니다. ) 당시에 (비록 시각적으로) 서비스를 제공하고 있던 모기지 포트폴리오 위험 완화 팀에 심각한 경고를 제공할 수 있는 기능을 제공했습니다!

등사

이제 내 퀘스트가 시작됩니다.

이제 실용적인 응용 프로그램을 찾았으므로 폴리 추세선 공식 뒤에 있는 수학을 배우려고(또는 제 경우에는 다시 배우려고) 노력했습니다. 좋은 성과 있길 바래요. 극도로 복잡한 공식에 최소 제곱 감소와 행렬이 추가되고 다항식 방정식에 의해 도입된 필수 계수 계산은 코드로 변환하기가 너무 어렵습니다. 그래서 Excel을 호출하고(대부분 C++에서), (x,y) 데이터 값의 배열을 제공하고, LINEST()를 사용하여 폴리(x,y) 절편(추세선 값)을 계산하고, 다음을 반환하는 것이 가장 쉬울 것이라고 생각했습니다. 이 값을 내 데스크탑 애플리케이션(제한된 호출 기능을 가진 폐쇄형 독점 소프트웨어 앱)으로 되돌립니다.

LINEST()를 사용하여 수식을 조합하는 것은 상당한 장애물이 되었습니다. 데이터를 제공하는 것은 쉽지만 그래프에 완벽하게 표시된 (x, y) 절편을 어떻게 계산할 수 있습니까? 모든 새 측정값은 공식을 변경하고 새로 계산된 계수를 사용합니까? 왜 이런 일이 발생합니까? 나는 해결책을 찾기 위해 인터넷을 샅샅이 뒤지며 몇 시간을 보냈고 (남자처럼) 마침내 길을 묻기로 결정했습니다.

나는 소스 값을 가지고 있습니다(몇 년 동안). 내가 누락 된 것은 a) poly(x,y) 절편을 생성하는 방법, b) Excel을 외부에서 호출하여 c) 제공된 (x,y) 데이터를 기반으로 poly(x,y)를 반환하는 방법입니다.

누군가 이 주제에 대한 기사나 매우 구체적인 처리를 가지고 있거나 도움을 줄 의향이 있다면 나는 영원히 당신의 빚을 지고 있을 것입니다.

디제이


 

i-regr 표시기는 임의의 다항식 회귀를 어느 정도 수행할 수 있습니다. 저는 3급 이상을 시도한 적이 없지만 코드는 여러분이 볼 수 있는 곳입니다. 6급은 아마도 CPU를 죽일 수 있지만 시도해 볼 수 있습니다.


https://www.mql5.com/en/code/8417

 
rocketman99 :

i-regr 표시기는 임의의 다항식 회귀를 어느 정도 수행할 수 있습니다. 저는 3급 이상을 시도한 적이 없지만 코드는 여러분이 볼 수 있는 곳입니다. 6급은 아마도 CPU를 죽일 수 있지만 시도해 볼 수 있습니다.


https://www.mql5.com/en/code/8417



고마워요 로켓맨! 내 CPU를 전혀 죽이지 않았습니다 - 나는 이것을 사용하여 잠시 동안 작업하고 내가 생각해낸 것을 볼 것입니다.

업데이트:

i-regr은 정확도가 높지 않은 것 같습니다. 해결에 사용된 가우스(i-regr) 및 최소 자승(엑셀) 방법 때문일 수 있습니다. 몰라요 - 아직 찾고 있는데 더 나은 폴리 시술이 있는 사람이 있나요?

 

i-regr은 모든 막대의 Close[] 값에 대해 작업 중이며, 이는 아마도 차이를 만들 것입니다(MT4 및 Excel에서 패턴 길이를 균등화했다고 생각합니다).

Close[]를 Open/High/Low로 변경하거나 weight function 과 같은 다른 분석 표현식으로 변경하여 이를 쉽게 변경할 수 있습니다.

그러나 나는 당신이 이것으로 이익을 얻을 수 있다고 믿지 않습니다. 그것은 다른 다시 그리기 추세 지표와 같습니다.

 

안녕하세요 dennisj2님,

당신은 당신의 공식이 정말로 필요하다고 확신합니까?

Kalman, Ehlers, Gauss, Jurik(JMA), DEMA와 같은 다른 필터를 먼저 검색해 보십시오. 그들 중 대부분은 저역 통과(물리적) 주파수 필터에서 파생되었으며 대부분은 mt4 코드로 이동했습니다.

더 긴 기간 세트가 있는 JMA(많은 변형이 있음)가 원하는 것을 수행할 수 있습니까?


 
또는 AllAverages 표시기 http://www.forexfactory.com/showthread.php?t=418219 로 미쳐버리십시오.
 
dennisj2 :
이제 내 퀘스트가 시작됩니다.

이제 실용적인 응용 프로그램을 찾았으므로 폴리 추세선 공식 뒤에 있는 수학을 배우려고(또는 제 경우에는 다시 배우려고) 노력했습니다. 좋은 성과 있길 바래요. 극도로 복잡한 공식에 최소 제곱 감소와 행렬이 추가되고 다항식 방정식에 의해 도입된 필수 계수 계산은 코드로 변환하기가 너무 어렵습니다. 그래서 Excel을 호출하고(대부분 C++에서), (x,y) 데이터 값의 배열을 제공하고, LINEST()를 사용하여 폴리(x,y) 절편(추세선 값)을 계산하고, 다음을 반환하는 것이 가장 쉬울 것이라고 생각했습니다. 이 값을 내 데스크탑 애플리케이션(제한된 호출 기능을 가진 폐쇄형 독점 소프트웨어 앱)으로 되돌립니다.

LINEST()를 사용하여 수식을 조합하는 것은 상당한 장애물이 되었습니다. 데이터를 제공하는 것은 쉽지만 그래프에 완벽하게 표시된 (x, y) 절편을 어떻게 계산할 수 있습니까? 모든 새 측정값은 공식을 변경하고 새로 계산된 계수를 사용합니까? 왜 이런 일이 발생합니까? 나는 해결책을 찾기 위해 인터넷을 샅샅이 뒤지며 몇 시간을 보냈고 (남자처럼) 마침내 길을 묻기로 결정했습니다.

나는 소스 값을 가지고 있습니다(몇 년 동안). 내가 누락 된 것은 a) poly(x,y) 절편을 생성하는 방법, b) Excel을 외부에서 호출하여 c) 제공된 (x,y) 데이터를 기반으로 poly(x,y)를 반환하는 방법입니다.

누군가 이 주제에 대한 기사나 매우 구체적인 처리를 가지고 있거나 도움을 줄 의향이 있다면 나는 영원히 당신의 빚을 지고 있을 것입니다.

디제이



대수학에 관한 많은 기사가 그리스어로 예시되어 있지만 실제로는 부두교입니다.

예를 들어 선형 회귀 에 대한 Wikipedia 기사는 전혀 이해가 되지 않지만 다른 곳에서 공식을 사용하는 방법을 배웠기 때문에 지금 바로 귀하의 라인의 선형 회귀 버전을 코딩할 수 있습니다.

y=a+bx

그러나 위키피디아 기사 어디에도 그 공식이 언급되어 있지 않습니다. 그것이 어떻게 말이 될까요?

또한 그 공식을 사용할 때 배웠습니다

a == 기울기

b== 가로채기

기울기와 절편을 계산하는 수학은 알려져 있으며 값의 합을 계산하고 일부를 제곱하는 등의 매우 간단한 절차입니다.

나는 또한 2차 회귀(2차)의 공식이 y=ax^2 + bx + c라는 것을 알고 있습니다.

그래서 나는 그것들이 3차 회귀에 대한 방정식을 의미해야 하는 관련이 있다고 생각합니다.

y=ax^3 + bx^2 + cx + d

그래서 나는 6번째 회귀가 될 것이라고 생각한다.

y=ax^6 + bx^5 + cx^4 + dx^3 + ex^2 + fx + g

그러나 기울기이고 b가 절편이면 c는 무엇이며 d는 무엇입니까? 그것이 내가 귀하의 라인을 코딩할 수 없는 유일한 이유입니다. 계수가 무엇인지 또는 계수를 계산하는 방법을 모르겠습니다.

업데이트: 그래, 나는 지금 나를 혼란스럽게 하는 다른 것을 배웠다.

다른 기사에서 이차 다항식은 다음과 같이 설명됩니다.

ax^2 + bx + c = 0

그것은 우리가 기울기 절편에 대한 수학을 전혀 알 필요가 없으며, b 및 c의 값을 찾기 위해 이차방정식을 풀 수 있음을 의미합니까?

그러나 어떻게 ax^2 + bx + c = 0

관련

y=ax^2 + bx + c ?

비슷해 보이지만 하나는 y= 이고 다른 하나는 =0 인 이유는 무엇입니까?

 

SDC,

한 점의 기울기는 함수 의 첫 번째 유도로 계산할 수 있습니다.

y=ax+b와 같은 선형 함수는 어느 지점에서나 동일한 기울기를 갖습니다.

일반적으로 선형 함수 ax^n + bx^n-1 + ... + z = y의 유도는 다음과 같습니다. nax^(n-1) + (n-1)bx^n-2 .. = y ' - 원래 함수의 마지막 상수는 항상 0이 됩니다!

따라서 ax + b = y => y' = a ( <= 1*a^(1-1); b=0 ) 이차 함수는 y' = 2ax + b ( <= 2ax^(2-1)가 됩니다. + 1bx^(1-1), c=0 ).

그러나 필터의 개념을 이해하려면 주파수 필터링에 대해 더 잘 생각하고 읽는 것이 좋습니다. 소리든 그림이든 명언이든..

일반적으로 더 짧은 기간의 주파수에서는 항상 노이즈를 제거하고 싶어합니다. 그리고 선형 함수의 사용은 하나의 접근 방식일 뿐입니다.

 

저에게 설명해주셔서 감사합니다. 하지만 왜 그 방정식이 의미하는지 모르겠습니다. 절차적 방식으로 계수를 개별적으로 계산하는 방법을 알고 있다면 계수를 사용하고 값을 연결할 수 있지만 그게 전부입니다.

나는 필터의 개념을 이해하지만 OP 라인을 코딩하는 방법을 알아내는 데 관심이 있었습니다.

그러나 그렇게 하는 것과 관련하여, 당신이 말할 때,

"따라서 ax + b = y => y' = a ( <= 1*a^(1-1); b=0 ) 이차 함수 는 y' = 2ax + b ( <= 2ax^(2-1 ) + 1bx^(1-1); c=0 )."

나는 당신이 말하는 것이 무엇인지 또는 그것이 어떻게 관련되어 있는지 전혀 알지 못하기 때문에 조만간 폴리 라인 코딩을 하지 않을 것입니다.

 

SDC :

대수학에 대한 많은 기사가 그리스어로 예시되어 있지만 실제로는 부두교입니다.



SDC - 당신은 이제 나와 같은 수준에 있습니다 - 내가 찾은 선형 회귀 공식이 작동합니다 - 그리고 동일한 결과를 생성하는 두 개의 분명히 다른 공식이 있습니다. 이러한 공식은 선형 회귀(직선 추세선)가 우리가 추구했던 것이라면 훌륭합니다.

먼저 참고 자료:

마이크로소프트: http://office.microsoft.com/en-us/excel-help/linest-HP005209155.aspx

IntegralCalc:https://www.youtube.com/watch?v=1pawL_5QYxE&noredirect=1


선형 회귀 방정식 y = mx + b가 주어지면:

여기서 y = 가격(예: 마감[x])

x = 인덱스(예: Bar[x])

m = 기울기(각 (x,y) 쌍에 적용된 계수)

b = Y 절편(각 (x,y) 쌍에 적용된 Y 절편의 기본 값)


방법 A: IntegralCalc에서 방법 B: Microsoft에서 제공(여기서 x(오버바) 및 y(오버바)는 평균임)

IntegralCalc의 선형 회귀선선형 회귀선 - Microsoft


n차 다항식 회귀 추세선 공식도 비교적 쉽게 적용할 수 있습니다.

주어진 공식: y = m1*x1 + m2*x2 + m3*x3 + ... + b

여기서 변수 x, y, m 및 b는 선형 방정식에서 설명한 것과 동일한 정의를 나타냅니다.

나는 모든 것을 가진 것 같은데, 무엇이 부족합니까?

누락된 것은 다항식 회귀에 대한 m(기울기) 및 b(Y 절편)에 대한 계산입니다. 이러한 값을 계산하기 위한 선형 방정식은 다항식 회귀에 적용되지 않습니다. 내가 배운 바에 따르면 다항식 회귀에는 행렬을 사용하는 다항식 방정식 시스템을 기반으로 최소 제곱을 계산하는 공식이 필요합니다. 위의 예시 그래프를 보십시오. 첫 번째 그래프에서 poly(6) 라인은 절대적으로 깨끗합니다. 상단과 하단이 명확하게 표시됩니다. 이 데이터를 사용하면 궁극적으로 거래당 평균 핍을 2배, 잠재적으로 3배로 늘릴 수 있습니다.

두 번째 그래프에서는 가우스 행렬을 사용하여 기울기 계수를 해결하는 poly(6) 대 i-regr 방법의 결과를 보여줍니다. 말할 필요도 없이, 방법. 반면에 단순 이동 평균은 훨씬 더 나쁩니다. SMA는 내 EA의 과잉 반응을 유발할 수 있는 중간 시장 조정 중에 너무 민감합니다.

나는 진정한 다항식 회귀 지표를 개발하기 위해 누군가에게 기꺼이 돈을 지불할 용의가 있습니다. 그러나 결과는 절대적으로 Excel이 생성하는 결과를 반영해야 합니다. LINEST() 함수는 계수를 계산하기 위해 부두를 많이 사용하는 블랙박스입니다. 간단히 말해서, 나는 이 부두교를 이해해야 합니다.

업데이트: Excel에서 구현한 방법을 보여주는 파일을 첨부했습니다.

파일:
linest.zip  15 kb
 
graziani :

i-regr은 모든 막대의 Close[] 값에 대해 작업 중이며, 이는 아마도 차이를 만들 것입니다(MT4 및 Excel에서 패턴 길이를 균등화했다고 생각합니다).

Close[]를 Open/High/Low로 변경하거나 가중치 함수와 같은 다른 분석 표현식으로 변경하여 이를 쉽게 변경할 수 있습니다.

그러나 나는 당신이 이것으로 이익을 얻을 수 있다고 믿지 않습니다. 그것은 다른 다시 그리기 추세 지표와 같습니다.



그라지 -

i-regr을 사용하고 위의 결과를 비교했습니다. Poly(6) 알고리즘 대 i-regr은 i-regr이 동일한 데이터 세트를 기반으로 하는 poly(6)보다 훨씬 더 긴 대기 시간을 가지고 있음을 보여줍니다. 대기 시간은 죽음입니다. 이 시장에서. 내 EA는 장중 변동을 거래하지 않고 오히려 추세를 유지합니다. 그래서, 당신은 착각하고 있습니다. 나는 내 EA에서 이익을 얻고 더 느린 반응 지표를 사용하여 내 EA가 오늘날보다 더 많은 시장을 포착할 것입니다. 특히, 진정한 poly(6) 알고리즘을 통합하고 나면 미결 포지션을 더 오래 유지하고 추세 변화를 3-4주기 더 일찍 예측하여 진입점을 개선 할 수 있습니다.