커뮤니티

함수문의

프로필 이미지
흰둥이아빠
2019-08-14 15:18:22
205
글번호 131164
답변완료
안녕하세요? 가격&BOX 차트 지표를 예스랭귀지로 작성 부탁드립니다. 감사합니다. << BOX 챠트 계산방법>> ma = n 일 이동평균 upper = (종가 - ma) 가 양인 값들로 이루어진 배열(오른 날을 nPlus) lower = (종가 - ma) 가 음인 값들의 배열(내린 날을 nMinus) upperMean = upper의 nPlus 평균 lowerMean = lower의 nMinus 평균 upperstd = upper의 nPlus 표준편차 lowerstd = lower의 nMinus 표준편차 box 챠트의 상위선 = ma + upperMean + (2 * upperstd) box 챠트의 하위선 = ma + upperbox 챠트의 하위선 = ma + lowerMean - (2 * lowerstd)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-08-16 10:34:01

안녕하세요 예스스탁입니다. input: maPeriod(20), stddevPeriod(300); VAR : UPPERSUM(0), UpperNum(0),ii(0),LowerSum(0), LowerNum(0); If index >= MAPeriod - 1 then { Var1 = ma(close, MAPeriod); Var2 = close - Var1; If Var2 >= 0 then { Var3 = Var2; //upper Var7 = 0; //lower //0//값 입력 Var4 = Var4 + Var3; //upper의 합 Var5 = Var5 + 1; //nPlus } If Var2 < 0 then { Var7 = Var2; //lower Var3 = 0 ;//upper //0//값 입력 Var8 = Var8 + Var7; //lower의 합 Var9 = Var9 + 1; //nMinus } If index >= StdDevPeriod - 1 then { If index > StdDevPeriod - 1 then { UpperSum = Var4 - Var4[StdDevPeriod]; UpperNum = Var5 - Var5[StdDevPeriod]; Var6 = UpperSum / UpperNum; //upperMean } Else Var6 = Var4 / Var5; //upperMean Var11 = 0; For ii = index - StdDevPeriod + 1 To index { If Var3[ii] <> 0 then { Var11 = Var11 + (Var6 - Var3[ii]) ^ 2; } } If index == StdDevPeriod - 1 then Var11 = sqrt(Var11 / Var5); //upperstd Else Var11 = sqrt(Var11 / UpperNum); //upperstd If index > StdDevPeriod - 1 then { LowerSum = Var8 - Var8[StdDevPeriod]; LowerNum = Var9 - Var9[StdDevPeriod]; Var10 = LowerSum / LowerNum; //lowerMean } Else Var10 = Var8 / Var9; //lowerMean Var12 = 0; For ii = index - StdDevPeriod + 1 To index { If Var7[ii] <> 0 then Var12 = Var12 + (Var10 - Var7[ii]) ^ 2; } If index == StdDevPeriod - 1 then Var12 = sqrt(Var12 / Var9); //upperstd Else Var12 = sqrt(Var12 / LowerNum); //upperstd Plot1(Var1 + Var6 + (2 * Var11),"upperLine" ); Plot2(Var1 + Var10 - (2 * Var12),"lowerLine"); Plot3(Var1,"MA"); } } 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수문의 > 안녕하세요? 가격&BOX 차트 지표를 예스랭귀지로 작성 부탁드립니다. 감사합니다. << BOX 챠트 계산방법>> ma = n 일 이동평균 upper = (종가 - ma) 가 양인 값들로 이루어진 배열(오른 날을 nPlus) lower = (종가 - ma) 가 음인 값들의 배열(내린 날을 nMinus) upperMean = upper의 nPlus 평균 lowerMean = lower의 nMinus 평균 upperstd = upper의 nPlus 표준편차 lowerstd = lower의 nMinus 표준편차 box 챠트의 상위선 = ma + upperMean + (2 * upperstd) box 챠트의 하위선 = ma + upperbox 챠트의 하위선 = ma + lowerMean - (2 * lowerstd)