선형 회귀 작성 도움말
오래 전에 MQL3에 선형 회귀 지표 를 작성하고 4에 대해 다시 작성하기 시작했지만 작동하지 않습니다. 전문가가 오류를 작성하거나 수정하는 데 도움을 줍니다.
그리고 또 다른 유사한 것: 쌍곡선 회귀(나도 오류를 찾을 수 없습니다)
//+------------------------------------------------------------------+ //| гиперболическая регрессия.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright " Copyright © 2008, MetaQuotes Software Corp. " #property link " http://www.metaquotes.net " //#property indicator_chart_window #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int nn = 21 ; //---- buffers double ExtMapBuffer1 [] ; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init () { //---- indicators SetIndexStyle ( 0 , DRAW_LINE ) ; SetIndexBuffer ( 0 , ExtMapBuffer1 ) ; //---- return ( 0 ) ; } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit () { //---- //---- return ( 0 ) ; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start () { int counted_bars = IndicatorCounted () ; //---- double barr , as , bs , cs , ds , e , f , k , LR , ExtMapBuffer1 [] ; int n , n1 ; // Индикатор Гиперболической Регресии for ( barr = 0 ; barr <= 100 ; barr ++ ){ for ( n = 1 ; n <= nn ; n ++ ){ n1 = barr + n - 1 ; as = as + 1 / n ; bs = bs + 1 / ( n * n ) ; cs = cs + Close [ n1 ] ; ds = ds + Close [ n1 ] / n ; } e = nn * bs - as * as ; f = cs * bs - ds * as ; k = nn * ds - as * cs ; f = f / e ; k = k / e ; LR = f + k / nn ; as = 0 ; bs = 0 ; cs = 0 ; ds = 0 ; ExtMapBuffer1 [ n ] = LR ; } //---- return ( 0 ) ; } //+------------------------------------------------------------------+
검색을보십시오 https://www.mql5.com/ru/code
https://forum.mql4.com/en/10446/page13
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
kvn :
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
맞습니다. 그는 그것에 대해 말했습니다.
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
Rosh :
맞습니다. 그는 그것에 대해 말했습니다.
kvn :
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
맞습니다. 그는 그것에 대해 말했습니다.
유능한 응? 그럼 어딘지 말해줘 그리고 저에게 큰 감사를 드립니다.
kvn :
유능한 응? 그럼 어딘지 말해줘 그리고 저에게 큰 감사를 드립니다.
여기이 주제에 왜건 + 작은 카트가 있습니다. 나는 일반적인 용어로만 할 수 있습니다. 주어진 매개 변수의 수를 사용하여 근사 곡선의 표준 편차 합계에 대한 방정식이 작성됩니다. 그런 다음 각 매개변수의 편도함수를 찾아 0으로 설정합니다. 선형 방정식의 결과 시스템에서 필요한 모든 매개변수를 찾습니다. 보시다시피 알고리즘은 단순하고 전혀 창의적이지 않습니다.
로쉬 :
맞습니다. 그는 그것에 대해 말했습니다.
kvn :
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?
맞습니다. 그는 그것에 대해 말했습니다.
유능한 응? 그럼 어딘지 말해줘 그리고 저에게 큰 감사를 드립니다.
당신이 말하는 것은 정확히 선형 회귀 가 아닙니다. LR 기술은 내 지표에 설명되어 있습니다.
//지시자는 공식에 따라 작성됩니다.LR = at+b
//여기서 LR은 예측된 "평균" 종가입니다.
//t - 시점, Pt - 지난 n 기간 동안의 종가.
//a = (n*SUM (t*Pt) - SUM(t)*SUM(Pt))/(n*SUM(t^2) - (SUM(t))^2) - 회귀선 기울기 ,
//b = 1/n*(SUM(Pt) - a*SUM(t)), - 수평 오프셋}
그러나 실행할 때 먼저 잘못된 데이터(n=1-100일 때)와 함께 제공된 다음 n=22 및 올바른 값을 제공합니다. 어딘가에 작은 실수와 나는 그것을 찾을 수 없습니다.
루프 문에 오류가 있는 것 같습니다.
//지시자는 공식에 따라 작성됩니다.LR = at+b
//여기서 LR은 예측된 "평균" 종가입니다.
//t - 시점, Pt - 지난 n 기간 동안의 종가.
//a = (n*SUM (t*Pt) - SUM(t)*SUM(Pt))/(n*SUM(t^2) - (SUM(t))^2) - 회귀선 기울기 ,
//b = 1/n*(SUM(Pt) - a*SUM(t)), - 수평 오프셋}
그러나 실행할 때 먼저 잘못된 데이터(n=1-100일 때)와 함께 제공된 다음 n=22 및 올바른 값을 제공합니다. 어딘가에 작은 실수와 나는 그것을 찾을 수 없습니다.
루프 문에 오류가 있는 것 같습니다.
Wikipedia를 좋아하지는 않지만 선형 회귀 주제 에 대한 링크를 제공합니다. 나는 또한 그것을 일부 블로그에서 찾았습니다 - http://cmacfm.mazoo.net/archives/000936.html
나는 LR에 대해 논쟁하지 않을 것이다. 표시기 코드의 오류는 어디에 있습니까????????