커뮤니티
수식 문의 드립니다.
2014-09-04 15:24:58
143
글번호 78351
안녕하세요.
1분봉에서 30분봉 적용 스토캐스틱 수식 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2014-09-04 15:36:11
안녕하세요
예스스탁입니다.
input : Atime(30),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[50](0),LL[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
#### Slow StochasticsK ####
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
#### Slow StochasticsD ####
Ep1 = 2/(StoPeriod2+1);
if date != date[1] or var1 < var1[1] then {
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1);
plot1(StoK);
plot2(StoD);
PlotBaseLine1(20);
PlotBaseLine2(80);
즐거운 하루되세요
> 린포체 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
> 안녕하세요.
1분봉에서 30분봉 적용 스토캐스틱 수식 부탁드립니다.