커뮤니티

문의드립니다~~

프로필 이미지
회원
2011-04-19 14:44:44
886
글번호 37756
답변완료
수고하십니다... 일전 과거 질문들을 보니 대신 가격&box 차트 문의를 메일로 보내주셨던데... 죄송하지만...저도 하나 보내주시길 부탁 드립니다... 예스차트에서 검증가능하고 적용가능한 식으로 부탁드립니다~~~ 수고하세요~~~
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-04-19 15:35:40

안녕하세요 예스스탁입니다. 대신 가격&박스 차트의 정확한 산식이 불분명하여 작성된 식이 정확한 식이 아닙니다. 차트에 띄워진 봉의 개수에 따라서 지표가 다르게 그려질 수 있으므로 봉갯수를 충분히 많이 띄워놓고 보셔야 합니다. 이용에 참고하시기 바랍니다. input : MaPeriod(20), StdDevPeriod(300); var : ii(0), UpperSum(0),UpperNum(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 plot1( Var1 + Var6 + (2 * Var11),"upperLine"); 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 plot2( Var1 + Var10 - (2 * Var12),"lowerLine"); plot3( Var1,"MA"); } } 즐거운 하루되세요 > 초심거북 님이 쓴 글입니다. > 제목 : 문의드립니다~~ > 수고하십니다... 일전 과거 질문들을 보니 대신 가격&box 차트 문의를 메일로 보내주셨던데... 죄송하지만...저도 하나 보내주시길 부탁 드립니다... 예스차트에서 검증가능하고 적용가능한 식으로 부탁드립니다~~~ 수고하세요~~~