커뮤니티

88527번 일봉 볼린저 밴드를 분봉에 표시에 대한 추가 질문

프로필 이미지
다니엘87
2024-08-14 16:08:43
669
글번호 182555
답변완료
88527번에 대한 추가 질문입니다. 먼저 수식 알려 주셔서 감사합니다. ^^ 1. 제가 볼린저 밴드 중간값을 단순이동평균이 아닌 지수이동평균을 사용하여 이용하고 있는데, 알려 주신 식의 중간값을 지수이동평균으로 바꾸면 일봉 볼린저 밴드와 다른 값이 나옵니다. 왜 그럴까요? ㅠㅠ 지수이동평균을 이용한 일봉 볼린저 밴드 식 ---------------------------------- Inputs : Period(20), MultiD(2); Variables : Mav(0),BBup(0),BBdn(0); Mav = Ema(Close,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); If MAv[1] < MAv Then Plot1(MAv,"이평", RED); Else If MAv[1] > MAv Then Plot1(MAv,"이평", BLUE); Else Plot1(MAv,"이평",BLACK); If BBup[1] < BBup Then Plot2(BBup,"상단밴드", RED); Else If BBup[1] > BBup Then Plot2(BBup,"상단밴드", BLUE); Else Plot2(BBup,"상단밴드",BLACK); If BBdn[1] < BBdn Then Plot3(BBdn,"하단밴드", RED); Else If BBdn[1] > BBdn Then Plot3(BBdn,"하단밴드", BLUE); Else Plot3(BBdn,"하단밴드",BLACK); 알려주신 일봉-일봉표시 볼린저 밴드를 지수이동평균을 이용하여 분봉에 재구성한 볼린저 밴드 Inputs : Period(20),Dv(2); Variables : SumSqrt(0),Stdv(0); Variables : BBup(0),BBdn(0),cnt(0); Variables : Ep(0),D_Index(0), PreEma_Var(0),Ema_Var(0); #일봉 지수이동평균 계산 Ep = 2/(Period+1); If bDate != bDate[1] then Begin D_Index = D_Index+1; PreEma_Var = Ema_Var[1]; End; If D_Index <= 1 Then Ema_Var = Close; Else Ema_Var = Close*Ep + PreEma_Var*(1-Ep); #표준편차 계산 SumSqrt = 0; For cnt = 0 To Period-1 Begin SumSqrt = SumSqrt + (DayClose(cnt)-Ema_Var)^2; End; Stdv = SquareRoot(SumSqrt/Period); # 일봉 볼린져밴드 계산 BBup = Ema_Var + (Dv*Stdv); BBdn = Ema_Var - (Dv*Stdv); plot1(BBup ,"상단"); plot2(Ema_Var,"중단"); plot3(BBdn,"하단"); 2. 그리고 date != date[1]와 bdate != bdate[1]에 따라서도 값이 다르던데 어떤 차이가 있는지 궁금합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-08-19 13:16:00

안녕하세요 예스스탁입니다. 1 Mav = Ema(Close,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); 올리신 위 수식은 mav는 지수이평이지만 BBup,BBdn은 단순이평입니다. 볼린져밴드는 상하단 함수(BollBandUp,BollBandDown)는 단순이평을 사용합니다. 중단을 지수이평으로 사용하지 않으신다면 아래와 같이 단순이평을 이용해 상하단을 계산하게 하셔야 합니다. 2 Inputs : Period(20),Dv(2); Variables : SumSqrt(0),Stdv(0); Variables : BBup(0),BBdn(0),cnt(0); Variables : Ep(0),D_Index(0), PreEma_Var(0),Ema_Var(0); var : sum(0),mav(0); #일봉 지수이동평균 계산 Ep = 2/(Period+1); If bDate != bDate[1] then Begin D_Index = D_Index+1; PreEma_Var = Ema_Var[1]; End; If D_Index <= 1 Then Ema_Var = Close; Else Ema_Var = Close*Ep + PreEma_Var*(1-Ep); #일봉 이동평균 계산 sum = 0; for cnt = 0 to Period-1{ sum = sum + DayClose(cnt); } mav = sum/Period; #표준편차 계산 SumSqrt = 0; For cnt = 0 To Period-1 Begin SumSqrt = SumSqrt + (DayClose(cnt)-mav)^2; End; Stdv = SquareRoot(SumSqrt/Period); # 일봉 볼린져밴드 계산 BBup = mav + (Dv*Stdv); BBdn = mav - (Dv*Stdv); plot1(BBup ,"상단"); plot2(Ema_Var,"중단"); plot3(BBdn,"하단"); 즐거운 하루되세요 > 다니엘87 님이 쓴 글입니다. > 제목 : 88527번 일봉 볼린저 밴드를 분봉에 표시에 대한 추가 질문 > 88527번에 대한 추가 질문입니다. 먼저 수식 알려 주셔서 감사합니다. ^^ 1. 제가 볼린저 밴드 중간값을 단순이동평균이 아닌 지수이동평균을 사용하여 이용하고 있는데, 알려 주신 식의 중간값을 지수이동평균으로 바꾸면 일봉 볼린저 밴드와 다른 값이 나옵니다. 왜 그럴까요? ㅠㅠ 지수이동평균을 이용한 일봉 볼린저 밴드 식 ---------------------------------- Inputs : Period(20), MultiD(2); Variables : Mav(0),BBup(0),BBdn(0); Mav = Ema(Close,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); If MAv[1] < MAv Then Plot1(MAv,"이평", RED); Else If MAv[1] > MAv Then Plot1(MAv,"이평", BLUE); Else Plot1(MAv,"이평",BLACK); If BBup[1] < BBup Then Plot2(BBup,"상단밴드", RED); Else If BBup[1] > BBup Then Plot2(BBup,"상단밴드", BLUE); Else Plot2(BBup,"상단밴드",BLACK); If BBdn[1] < BBdn Then Plot3(BBdn,"하단밴드", RED); Else If BBdn[1] > BBdn Then Plot3(BBdn,"하단밴드", BLUE); Else Plot3(BBdn,"하단밴드",BLACK); 알려주신 일봉-일봉표시 볼린저 밴드를 지수이동평균을 이용하여 분봉에 재구성한 볼린저 밴드 Inputs : Period(20),Dv(2); Variables : SumSqrt(0),Stdv(0); Variables : BBup(0),BBdn(0),cnt(0); Variables : Ep(0),D_Index(0), PreEma_Var(0),Ema_Var(0); #일봉 지수이동평균 계산 Ep = 2/(Period+1); If bDate != bDate[1] then Begin D_Index = D_Index+1; PreEma_Var = Ema_Var[1]; End; If D_Index <= 1 Then Ema_Var = Close; Else Ema_Var = Close*Ep + PreEma_Var*(1-Ep); #표준편차 계산 SumSqrt = 0; For cnt = 0 To Period-1 Begin SumSqrt = SumSqrt + (DayClose(cnt)-Ema_Var)^2; End; Stdv = SquareRoot(SumSqrt/Period); # 일봉 볼린져밴드 계산 BBup = Ema_Var + (Dv*Stdv); BBdn = Ema_Var - (Dv*Stdv); plot1(BBup ,"상단"); plot2(Ema_Var,"중단"); plot3(BBdn,"하단"); 2. 그리고 date != date[1]와 bdate != bdate[1]에 따라서도 값이 다르던데 어떤 차이가 있는지 궁금합니다.