커뮤니티

문의드립니다.

프로필 이미지
일일일백
2012-07-25 13:26:34
309
글번호 53250
답변완료
아래 선을 중심선으로 볼린져밴드를 구현하고 싶습니다. input : x(0); // X = 0 은 종가의 순수 평균, X = 100 은 종가의 평균에 +100%를 한값 var : period(0), N(0), cnt(0), sum(0), av(0); period = 0; n = 0; cnt = 0; sum = 0; av = 0; Period = Interval; if stime == 090000 Then { n = 1; } Else { n = ((TimeToMinutes(sTime) - 540) / period) + 1; } if n > 2 Then { for cnt = 1 to n-1 { sum = sum + c[cnt]; } } Else if n == 1 Then sum = 0; Else if n == 2 Then sum = c[1]; sum = sum + c[0]; av = sum / n * (1 + (x*0.01)); PlotBaseLine1(av, "당일종가평균1"); 그리고 추가 하나더요 저가가 20이평선을 뚫었을때 그 지점을 선으로 나타내고 싶어요 고가가 20이평선을 깻을때 그 지점을 선으로 나타내고 싶어요 수고하세요
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-07-25 13:40:52

안녕하세요 예스스탁입니다. input : x(0),dv(2); // X = 0 은 종가의 순수 평균, X = 100 은 종가의 평균에 +100%를 한값 var : period(0), N(0), cnt(0), sum(0), av(0); period = 0; n = 0; cnt = 0; sum = 0; av = 0; Period = Interval; if stime == 090000 Then { n = 1; } Else { n = ((TimeToMinutes(sTime) - 540) / period) + 1; } if n > 2 Then { for cnt = 1 to n-1 { sum = sum + c[cnt]; } } Else if n == 1 Then sum = 0; Else if n == 2 Then sum = c[1]; sum = sum + c[0]; av = sum / n * (1 + (x*0.01)); Var : SumSqrt(0), Avgv(0), Counter(0),Stdv(0); If av != 0 Then Begin Avgv = av; SumSqrt = 0; For Counter = 0 To n - 1 Begin SumSqrt = SumSqrt + ((c[Counter]* (1 + (x*0.01))) - Avgv) * ((c[Counter]* (1 + (x*0.01))) - Avgv); End; Stdv = SquareRoot(SumSqrt / n); End Else Stdv = 0; plot1(av,"중심"); plot2(av+stdv*dv,"상단"); plot3(av-stdv*dv,"하단"); 작성하신 식은 아래와 같이 간단히 작성해 사용하셔도 됩니다. plot1(ma(C,dayindex+1)); plot2(BollBandUp(dayindex+1,2)); plot3(BollBandDown(dayindex+1,2)); 즐거운 하루되세요 > 일일일백 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래 선을 중심선으로 볼린져밴드를 구현하고 싶습니다. input : x(0); // X = 0 은 종가의 순수 평균, X = 100 은 종가의 평균에 +100%를 한값 var : period(0), N(0), cnt(0), sum(0), av(0); period = 0; n = 0; cnt = 0; sum = 0; av = 0; Period = Interval; if stime == 090000 Then { n = 1; } Else { n = ((TimeToMinutes(sTime) - 540) / period) + 1; } if n > 2 Then { for cnt = 1 to n-1 { sum = sum + c[cnt]; } } Else if n == 1 Then sum = 0; Else if n == 2 Then sum = c[1]; sum = sum + c[0]; av = sum / n * (1 + (x*0.01)); PlotBaseLine1(av, "당일종가평균1"); 그리고 추가 하나더요 저가가 20이평선을 뚫었을때 그 지점을 선으로 나타내고 싶어요 고가가 20이평선을 깻을때 그 지점을 선으로 나타내고 싶어요 수고하세요