커뮤니티
검토 부탁합니다.
2016-05-24 09:28:59
112
글번호 98402
47851번 수식 변경 문의에 답변해 주신 아래의 수식을 지표로 차트에 표시하였습니다.
수식을 참조차트에서 일봉으로 열고 적용하면 일봉차트 스토캐스틱과 정확히 같습니다.
그러나 참조차트를 분봉으로 열고 적용하면 모양은 일봉 스토캐스틱과 비슷하게 움직이는데 수치는 차이가 많습니다.
타종목 참조의 한계인지 저로서는 정확히 알 수가 없어 검토를 부탁드리겠습니다.
input : Period(10), Period1(6), Period2(6),sto1(5),sto2(3),sto3(3);
var : cnt(0,data2),cond1(false,data2),cond2(false,data2);
var : shighVal(0,data2), slowVal(0,data2), sFK(0,data2), sSK(0,data2), sSD(0,data2);
var : sEp1(0,data2), sEp2(0,data2), sPreSK(0,data2), sPreSD(0,data2);
var : highVal(0,data2), lowVal(0,data2), FK(0,data2), SK(0,data2), SD(0,data2);
var : Ep1(0,data2), Ep2(0,data2), PreSK(0,data2), PreSD(0,data2);
Array : HH[100](0,data2),LL[100](0,data2),CC[100](0,data2);
if data2(date != date[1]) Then{
HH[0] = data2(H);
LL[0] = data2(L);
for cnt = 1 to 99{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
sPreSK = sSK[1];
sPreSD = sSD[1];
PreSK = SK[1];
PreSD = SD[1];
Cond1 = false;
Cond2 = false;
}
if HH[sto1-1] > 0 then{
#일봉 스토 5-3-3
shighVal = HH[0];
slowVal = LL[0];
for cnt = 0 to sto1-1 {
if HH[cnt] > shighVal then
shighVal = HH[cnt];
if LL[cnt] < slowVal then
slowVal = LL[cnt];
}
sfK = data2((C-slowVal)/(shighVal-slowVal)*100);
sEp1 = 2/(sto2+1);
sEp2 = 2/(sto3+1);
sSK = sFK * sEP1 + sPreSK * (1-sEP1);
sSD = sSK * sEP2 + sPreSD * (1-sEP2);
}
if HH[Period-1] > 0 then{
#일봉 스토 10-6-6
highVal = HH[0];
lowVal = LL[0];
for cnt = 0 to Period-1 {
if HH[cnt] > highVal then
highVal = HH[cnt];
if LL[cnt] < lowVal then
lowVal = LL[cnt];
}
fK = data2((C-lowVal)/(highVal-lowVal)*100);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if Cond1 == false and sk > Sd and preSK < preSD and PreSK > 0 and PreSD > 0 Then{
Cond1 = true;
sell("sP10");
}
if MarketPosition == -1 and ssk < sSd and spreSK > spreSD and sPreSK > 0 and sPreSD > 0 Then
exitshort("xP5");
답변 1
예스스탁 예스스탁 답변
2016-05-24 14:14:36
안녕하세요
예스스탁입니다.
스토케스틱과 같이 계산식 안에 지수이평과 같은 내용이 사용되는 경우에는
차트에 과거데이터가 몇개인지에 따라 현재값에 차이가 있습니다.
과거의 값이 시간이 갈수록 영향력이 작아져 봉이 많으면 차이가 거의 없지만
해당 식은 분봉에서 일봉의 값을 계산하는 내용이므로
차트 전체에서 날짜수가 많이 않으므로 실제 일봉차트에서 과거데이터를
충분히 둔 상태에서 보시는 값과 차이가 있습니다.
이는 지수이평을 기본이평방법으로 사용하는 모든 지표식에서
발생하는 내용입니다.
즐거운 하루되세요
> 코스모 님이 쓴 글입니다.
> 제목 : 검토 부탁합니다.
> 47851번 수식 변경 문의에 답변해 주신 아래의 수식을 지표로 차트에 표시하였습니다.
수식을 참조차트에서 일봉으로 열고 적용하면 일봉차트 스토캐스틱과 정확히 같습니다.
그러나 참조차트를 분봉으로 열고 적용하면 모양은 일봉 스토캐스틱과 비슷하게 움직이는데 수치는 차이가 많습니다.
타종목 참조의 한계인지 저로서는 정확히 알 수가 없어 검토를 부탁드리겠습니다.
input : Period(10), Period1(6), Period2(6),sto1(5),sto2(3),sto3(3);
var : cnt(0,data2),cond1(false,data2),cond2(false,data2);
var : shighVal(0,data2), slowVal(0,data2), sFK(0,data2), sSK(0,data2), sSD(0,data2);
var : sEp1(0,data2), sEp2(0,data2), sPreSK(0,data2), sPreSD(0,data2);
var : highVal(0,data2), lowVal(0,data2), FK(0,data2), SK(0,data2), SD(0,data2);
var : Ep1(0,data2), Ep2(0,data2), PreSK(0,data2), PreSD(0,data2);
Array : HH[100](0,data2),LL[100](0,data2),CC[100](0,data2);
if data2(date != date[1]) Then{
HH[0] = data2(H);
LL[0] = data2(L);
for cnt = 1 to 99{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
sPreSK = sSK[1];
sPreSD = sSD[1];
PreSK = SK[1];
PreSD = SD[1];
Cond1 = false;
Cond2 = false;
}
if HH[sto1-1] > 0 then{
#일봉 스토 5-3-3
shighVal = HH[0];
slowVal = LL[0];
for cnt = 0 to sto1-1 {
if HH[cnt] > shighVal then
shighVal = HH[cnt];
if LL[cnt] < slowVal then
slowVal = LL[cnt];
}
sfK = data2((C-slowVal)/(shighVal-slowVal)*100);
sEp1 = 2/(sto2+1);
sEp2 = 2/(sto3+1);
sSK = sFK * sEP1 + sPreSK * (1-sEP1);
sSD = sSK * sEP2 + sPreSD * (1-sEP2);
}
if HH[Period-1] > 0 then{
#일봉 스토 10-6-6
highVal = HH[0];
lowVal = LL[0];
for cnt = 0 to Period-1 {
if HH[cnt] > highVal then
highVal = HH[cnt];
if LL[cnt] < lowVal then
lowVal = LL[cnt];
}
fK = data2((C-lowVal)/(highVal-lowVal)*100);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if Cond1 == false and sk > Sd and preSK < preSD and PreSK > 0 and PreSD > 0 Then{
Cond1 = true;
sell("sP10");
}
if MarketPosition == -1 and ssk < sSd and spreSK > spreSD and sPreSK > 0 and sPreSD > 0 Then
exitshort("xP5");