예스스탁
예스스탁 답변
2023-01-30 10:35:06
안녕하세요
예스스탁입니다.
올리신 수식은 표준오차밴드라는 지표내용인데
Bollinger Bands와 흡사하나 Bollinger Bands가 이평선의 위 아래에 표준편차 레벌을 주는 것에 비해서
Standard Error Bands는 Linear regression Line의 위 아래에 표준오차 레벨을 주는 것입니다.
다만 올리신 수식의 내용이 이상한 부분이 있습니다.
잘못된 부분을 수정해 드립니다.
표준오차밴드에 대한 부분은 인터넷 검색하셔서 자세한 내용을 살펴보시기 바랍니다.
inputs: Length(21), SDeg(3);
Vars: LinRegY(0), X(0), StdErr(0), LinRegS(0), SErr(0),calcB(0),calcA(0);
LinRegY = LinearRegValue(Close, Length, 0);
X = CurrentBar;
Value1 = AccumN(X * Close, Length) - (Length * ma(X, Length) *ma(Close, Length));
Value2 = AccumN(Square(X), Length) - (Length * Square(ma(X, Length)));
calcB = Value1/Value2;
calcA = ma(Close, Length) - (calcB * ma(X, Length));
IF CurrentBar > Length then Begin
Value4 = (AccumN(Square(Close), Length)) - ((calcA * AccumN(Close, Length))) - ((calcB * AccumN(X * Close, Length)));
Value5 = Length - 2;
StdErr = SquareRoot(Value4 / Value5);
LinRegS = Ma(LinRegY, SDeg);
SErr = 2 * ma(StdErr, SDeg);
Plot21(LinRegS, "LinRegS");
Plot22(LinRegS + SErr, "+StdErrS");
Plot23(LinRegS - SErr, "-StdErrS");
End;
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 문의 드립니다2
> 수고 하십니다.
아래 지표식의 의미와 개략적인 사용법에 대한 설명 부탁드립니다.
수고하세요.
####
inputs: Length(21), SDeg(3);
Vars: LinRegY(0), X(0), StdErr(0), LinRegS(0), SErr(0), inx(0),calcB(0),calcA(0);
inx = inx+1;
Value1 = AccumN(inx * Close, Length) - (Length * ma(inx, Length) *ma(Close, Length));
Value2 = AccumN(Square(inx), Length) - (Length * Square(ma(inx, Length)));
calcB = Value1/Value2;
calcA = Average(Close, Length) - (calcB * ma(inx, Length));
LinRegY = LinearRegValue(Close, Length, 0);
X = CurrentBar;
IF CurrentBar > Length then Begin
Value4 = (AccumN(Square(Close), Length)) - ((calcA * AccumN(Close, Length))) - ((calcB * AccumN(X * Close, Length)));
Value5 = Length - 2;
StdErr = SquareRoot(Value4 / Value5);
LinRegS = Ma(LinRegY, SDeg);
SErr = 2 * ma(StdErr, SDeg);
Plot21(LinRegS, "LinRegS");
Plot22(LinRegS + SErr, "+StdErrS");
Plot23(LinRegS - SErr, "-StdErrS");
End;
/*
문의하신 식은 다음과 같습니다.
사용자 함수에서 LinearRegValue란 이름으로 저장하시기 바랍니다.
Input: Price(Numeric), Len(Numeric), TargetB(Numeric);
Var: X(0), Num1(0), Num2(0), SumBars(0), SumSqrBars(0), SumY(0), Sum1(0), Sum2(0), Slope(0), Intercept(0);
If Len == 0 Then
LinearRegValue = 0;
SumBars = 0;
SumSqrBars = 0;
SumY = 0;
Sum1 = 0;
Sum2 = 0;
SumY = accumN(Price, Len);
SumBars = Len * (Len - 1) * .5;
SumSqrBars = (Len - 1) * Len * (2 * Len - 1) / 6;
For X = 0 To Len - 1 Begin
Sum1 = Sum1 + X * Price[X];
End;
Sum2 = SumBars * SumY;
Num1 = Len * Sum1 - Sum2;
Num2 = SumBars * SumBars - Len * SumSqrBars;
If Num2 != 0 Then
Slope = Num1 / Num2;
Else
Slope = 0;
Intercept = (SumY - Slope * SumBars) / Len;
LinearRegValue = Intercept + Slope * (Len - 1 - TargetB);
*/