선형 회귀 작성 도움말

 
오래 전에 MQL3에 선형 회귀 지표 를 작성하고 4에 대해 다시 작성하기 시작했지만 작동하지 않습니다. 전문가가 오류를 작성하거나 수정하는 데 도움을 줍니다.
 //+------------------------------------------------------------------+
//|                                          KVNLinearRegression.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright " Copyright © 2008, MetaQuotes Software Corp. "
#property link      " https://www.metaquotes.net "
 
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 MediumBlue
//---- input parameters
extern int       nn = 21 ;
//---- buffers
double LR1 [] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE ) ;
   //SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexBuffer ( 0 , LR1 ) ;
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| пользовательский индикатор                            |
//+------------------------------------------------------------------+
int start ()
  {
  int  n , n1 , n2 ;
      double ssm1 , ssm2 , ssm3 , ssm4 , a , b , LR ;
                  ssm1 = 0 ;
                ssm2 = 0 ;    
                ssm3 = 0 ;
                 ssm4 = 0 ;
 // for(n=0;n<=Bars;n++)
 for ( n = 0 ; n <= 100 ; n ++ )
{
    for ( n1 = 1 ; n1 <= nn ; n1 ++ )    
    {
n2 = n + n1 - 1 ;
ssm1 = ssm1 + n1 * Close [ n2 ] ;
ssm2 = ssm2 + n1 ;
ssm3 = ssm3 + Close [ n2 ] ;
ssm4 = ssm4 + n1 * n1 ;
    }
//Индикатор строится по формуле:LR = at+b
//где LR - прогнозируемая "средняя" цена закрытия,
//t - момент времени,Pt  - цены закрытия за n последних периодов.
//a = (n*СУММА (t*Pt) - СУММА(t)*CУММА(Pt))/(n*СУММА(t^2) - (СУММА(t))^2) - тангенс угла наклона линии регрессии,
//b = 1/n*(СУММА(Pt) - a*СУММА(t)), - смещение по горизонтали}
 
a = ( nn * ssm1 - ssm2 * ssm3 ) / ( nn * ssm4 - ssm2 * ssm2 ) ;
b = ( 1 / nn ) * ( ssm3 - a * ssm2 ) ;
LR = a * nn + b ;
                ssm1 = 0 ;
                ssm2 = 0 ;    
                ssm3 = 0 ;
                 ssm4 = 0 ;
  LR1 [ n ] = LR ;                 
 }
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
 
그리고 또 다른 유사한 것: 쌍곡선 회귀(나도 오류를 찾을 수 없습니다)
 //+------------------------------------------------------------------+
//|                                    гиперболическая регрессия.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 :
로쉬 :
kvn :

감사합니다, 흥미롭습니다. 하지만 표시기에서 내가 어디를 망쳤습니까?

맞습니다. 그는 그것에 대해 말했습니다.

유능한 응? 그럼 어딘지 말해줘 그리고 저에게 큰 감사를 드립니다.
여기이 주제에 왜건 + 작은 카트가 있습니다. 나는 일반적인 용어로만 할 수 있습니다. 주어진 매개 변수의 수를 사용하여 근사 곡선의 표준 편차 합계에 대한 방정식이 작성됩니다. 그런 다음 각 매개변수의 편도함수를 찾아 0으로 설정합니다. 선형 방정식의 결과 시스템에서 필요한 모든 매개변수를 찾습니다. 보시다시피 알고리즘은 단순하고 전혀 창의적이지 않습니다.
 
당신이 말하는 것은 정확히 선형 회귀 가 아닙니다. 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 및 올바른 값을 제공합니다. 어딘가에 작은 실수와 나는 그것을 찾을 수 없습니다.
루프 문에 오류가 있는 것 같습니다.
 
Wikipedia를 좋아하지는 않지만 선형 회귀 주제 에 대한 링크를 제공합니다. 나는 또한 그것을 일부 블로그에서 찾았습니다 - http://cmacfm.mazoo.net/archives/000936.html
 
나는 LR에 대해 논쟁하지 않을 것이다. 표시기 코드의 오류는 어디에 있습니까????????