어제 검토해주신것 감사드립니다.
추가적으로 오늘 출력된 일봉상이평과 볼린져밴드의
마지막값을 다음날장에 표시할려면 어떻게 해야하나요 부탁합니다.
input : Period(20),Dv(2);
var : sum(0),cnt(0),mav(0),SumSqrt(0),Stdv(0);
var : BBup(0),BBdn(0),Counter(0);
If DayClose(Period) > 0 Then {
#일봉 이동평균 계산
sum = 0;
for cnt = 0 to Period-1{
sum = sum + DayClose(cnt);
}
mav = sum/Period;
#표준편차 계산
SumSqrt = 0;
For Counter = 0 To Period - 1 {
SumSqrt = SumSqrt + (DayClose(Counter) - mav)^2;
}
Stdv = SquareRoot(SumSqrt / Period);
# 일봉 볼린져밴드 계산
BBup = mav + (Dv * Stdv);
BBdn = mav - (Dv * Stdv);
plot1(BBup ,"상단");
plot2(mav,"중단");
plot3(BBdn,"하단");
}
답변 1
예스스탁
예스스탁 답변
2020-08-12 13:42:37
안녕하세요
예스스탁입니다.
외부변수 n으로 이전일 기준 일봉 볼밴을 당일에 그리게 변경해 드립니다.
n이 0이면 당일, 1이면 전일, 2이면 전전일 순서입니다.
input : Period(20),Dv(2),N(1);
var : sum(0),cnt(0),mav(0),SumSqrt(0),Stdv(0);
var : BBup(0),BBdn(0),Counter(0);
If DayClose(Period) > 0 Then
{
#일봉 이동평균 계산
sum = 0;
for cnt = n+0 to n+Period-1{
sum = sum + DayClose(cnt);
}
mav = sum/Period;
#표준편차 계산
SumSqrt = 0;
For Counter = n+0 To n+Period - 1
{
SumSqrt = SumSqrt + (DayClose(Counter) - mav)^2;
}
Stdv = SquareRoot(SumSqrt / Period);
# 일봉 볼린져밴드 계산
BBup = mav + (Dv * Stdv);
BBdn = mav - (Dv * Stdv);
plot1(BBup ,"상단");
plot2(mav,"중단");
plot3(BBdn,"하단");
}
즐거운 하루되세요
> e편한신호 님이 쓴 글입니다.
> 제목 : 추가 부탁드립니다.
> 어제 검토해주신것 감사드립니다.
추가적으로 오늘 출력된 일봉상이평과 볼린져밴드의
마지막값을 다음날장에 표시할려면 어떻게 해야하나요 부탁합니다.
input : Period(20),Dv(2);
var : sum(0),cnt(0),mav(0),SumSqrt(0),Stdv(0);
var : BBup(0),BBdn(0),Counter(0);
If DayClose(Period) > 0 Then {
#일봉 이동평균 계산
sum = 0;
for cnt = 0 to Period-1{
sum = sum + DayClose(cnt);
}
mav = sum/Period;
#표준편차 계산
SumSqrt = 0;
For Counter = 0 To Period - 1 {
SumSqrt = SumSqrt + (DayClose(Counter) - mav)^2;
}
Stdv = SquareRoot(SumSqrt / Period);
# 일봉 볼린져밴드 계산
BBup = mav + (Dv * Stdv);
BBdn = mav - (Dv * Stdv);
plot1(BBup ,"상단");
plot2(mav,"중단");
plot3(BBdn,"하단");
}