예스스탁
예스스탁 답변
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]에 따라서도 값이 다르던데 어떤 차이가 있는지 궁금합니다.