커뮤니티
문의드립니다~~
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 차트 문의를 메일로 보내주셨던데...
죄송하지만...저도 하나 보내주시길 부탁 드립니다...
예스차트에서 검증가능하고 적용가능한 식으로 부탁드립니다~~~
수고하세요~~~
다음글
이전글