커뮤니티

문의 드립니다2

프로필 이미지
오이도인
2023-01-27 20:12:25
1020
글번호 165777
답변완료
수고 하십니다. 아래 지표식의 의미와 개략적인 사용법에 대한 설명 부탁드립니다. 수고하세요. #### 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); */
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

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); */