커뮤니티

수식 요청

프로필 이미지
부똘이
2019-02-12 14:43:54
195
글번호 126071
답변완료
input으로 설정한 특정시간 구간대에만 적용되는 스토캐스틱과 볼린저밴드를 구하고 싶습니다. 그림으로 표현하면 위와 같이 될 것입니다. 물론 위의 그림은 거래 시간대가 다른 data2를 넣어서 억지로 늘린 겁니다만, 예스글로벌에서 해선 본장만 보는 기능이 제공되지 않기에, 이런 생각을 하게 되었습니다. 다른 지표들에도 적용가능하도록 쉽게 부탁드립니다. 항상 친절한 답변 감사드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-02-12 13:51:08

안녕하세요 예스스탁입니다. 문의하신 내용은 지정한 시간대의 데이타만 이용해서 지표를 계산해야 하므로 각 지표식을 모두 풀어서 작성해야 합니다. 다른 지표들에 모두 가능한 내용은 불가능합니다. 모든 지표에 대해 작성해 드릴수는 없습니다. 언급하신 스토케스틱과 볼린져밴드를 예제로 작성해 드립니다. 1. 스토케스틱 input : starttime(100000),endtime(120000); input : sto1(10),sto2(5),sto3(5); var : Tcond(false),cnt(0),Hv(0),Lv(0),FK(0),idx(0),EP2(0),EP3(0); VAR : SK(0),SD(0); Array : HH[100](0),LL[100](0); Ep2 = 2/(sto2+1); Ep3 = 2/(sto3+1); if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Tcond = true; } if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then { Tcond = false; } if tcond == true then { HH[0] = H; LL[0] = L; for cnt = 1 to 99 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } if HH[sto1] > 0 and LL[sto1] > 0 then { idx = idx+1; Hv = HH[0]; Lv = LL[0]; for cnt = 0 to sto1-1 { if HH[cnt] > Hv Then Hv = HH[cnt]; if LL[cnt] < Lv Then Lv = LL[cnt]; } FK = (C-Lv)/(Hv-Lv)*100; if idx <= 1 then { SK = fk; SD = SK; } else SK = FK * EP2 + SK * (1-EP2); SD = SK * EP3 + SD * (1-EP3); } plot1(sk,"K"); plot2(sD,"D"); PlotBaseLine1(20); PlotBaseLine2(80); } 2 볼린져밴드 input : starttime(100000),endtime(120000); input : P(20),dv(2); var : Tcond(false),cnt(0),sum(0),BBmd(0),SumSqrt(0),BBup(0),BBdn(0),stdv(0); Array : CC[100](0); if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Tcond = true; } if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then { Tcond = false; } if tcond == true then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } CC[0] = C; if CC[P] > 0 then { sum = 0; for cnt = 0 to P { sum = sum + CC[cnt]; } bbmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBup = BBmd + (Dv * Stdv); BBdn = BBmd - (Dv * Stdv); plot1(BBmd); plot2(BBup); plot3(BBdn); } } 즐거운 하루되세요 > 부똘이 님이 쓴 글입니다. > 제목 : 수식 요청 > input으로 설정한 특정시간 구간대에만 적용되는 스토캐스틱과 볼린저밴드를 구하고 싶습니다. 그림으로 표현하면 위와 같이 될 것입니다. 물론 위의 그림은 거래 시간대가 다른 data2를 넣어서 억지로 늘린 겁니다만, 예스글로벌에서 해선 본장만 보는 기능이 제공되지 않기에, 이런 생각을 하게 되었습니다. 다른 지표들에도 적용가능하도록 쉽게 부탁드립니다. 항상 친절한 답변 감사드립니다.