커뮤니티
하나만 더 부탁드립니다.
2017-11-13 10:44:01
149
글번호 114095
현재 화면은 1분봉 차트입니다.
몇일전에 부탁드렸는데...다른 지표할려니 잘 안되네요..
1분봉 차트에서 보조지표(Stochastics) 값을
3분, 5분, 10분에 해당하는 StoK, StoD값을 가져오는 수식 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2017-11-13 13:22:09
안녕하세요
예스스탁입니다.
input : Atime1(3),Atime2(5),Atime3(10);
input : sto1(12), Sto2(5), Sto3(5);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),TF3(0),EP1(0),EP2(0);
var : cnt1(0),idx1(0),hv1(0),Lv1(0),FK1(0),StoK1(0), StoD1(0),PreStoK1(0),PreStoD1(0);
var : cnt2(0),idx2(0),hv2(0),Lv2(0),FK2(0),StoK2(0), StoD2(0),PreStoK2(0),PreStoD2(0);
var : cnt3(0),idx3(0),hv3(0),Lv3(0),FK3(0),StoK3(0), StoD3(0),PreStoK3(0),PreStoD3(0);
Array : H1[100](0),L1[100](0),H2[100](0),L2[100](0),H3[100](0),L3[100](0);
Ep1 = 2/(Sto2+1);
Ep2 = 2/(Sto3+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TimeToMinutes(stime)%Atime1;
if bdate != Bdate[1] or
(Bdate == Bdate[1] and TF1 < TF1[1]) or
(TM >= TM[1]+Atime1 and bdate == bdate[1]) Then{
idx1 = idx1 + 1;
H1[0] = H;
L1[0] = L;
for cnt1 = 1 to 99{
H1[cnt1] = H1[cnt1-1][1];
L1[cnt1] = L1[cnt1-1][1];
}
PreStoK1 = StoK1[1];
PreStoD1 = StoD1[1];
}
if H > H1[0] Then
H1[0] = H;
if L < L1[0] Then
L1[0] = L;
hv1 = H1[0];
lv1 = L1[0];
for cnt1 = 0 to sto1-1 {
if H1[cnt1] > hv1 then
hv1 = H1[cnt1];
if L1[cnt1] < lv1 then
lv1 = L1[cnt1];
}
FK1 = (C-lv1)/(hv1-lv1)*100;
if idx1 <= Sto1 then
{
StoK1 = FK1;
StoD1 = StoK1;
}
else
{
StoK1 = FK1 * EP1 + PreStoK1 * (1-EP1);
StoD1 = StoK1 * EP2 + PreStoD1 * (1-EP2);
}
TF2 = TimeToMinutes(stime)%Atime2;
if bdate != Bdate[1] or
(Bdate == Bdate[1] and TF2 < TF2[1]) or
(TM >= TM[1]+Atime1 and bdate == bdate[1]) Then{
idx2 = idx2 + 1;
H2[0] = H;
L2[0] = L;
for cnt2 = 1 to 99{
H2[cnt2] = H2[cnt2-1][1];
L2[cnt2] = L2[cnt2-1][1];
}
PreStoK2 = StoK2[1];
PreStoD2 = StoD2[1];
}
if H > H2[0] Then
H2[0] = H;
if L < L2[0] Then
L2[0] = L;
hv2 = H2[0];
lv2 = L2[0];
for cnt2 = 0 to sto1-1 {
if H2[cnt2] > hv2 then
hv2 = H2[cnt2];
if L2[cnt2] < lv2 then
lv2 = L2[cnt2];
}
FK2 = (C-lv2)/(hv2-lv2)*100;
if idx2 <= Sto1 then
{
StoK2 = FK2;
StoD2 = StoK2;
}
else
{
StoK2 = FK2 * EP1 + PreStoK2 * (1-EP1);
StoD2 = StoK2 * EP2 + PreStoD2 * (1-EP2);
}
TF3 = TimeToMinutes(stime)%Atime3;
if bdate != Bdate[1] or
(Bdate == Bdate[1] and TF3 < TF3[1]) or
(TM >= TM[1]+Atime1 and bdate == bdate[1]) Then{
idx3 = idx3 + 1;
H3[0] = H;
L3[0] = L;
for cnt3 = 1 to 99{
H3[cnt3] = H3[cnt3-1][1];
L3[cnt3] = L3[cnt3-1][1];
}
PreStoK3 = StoK3[1];
PreStoD3 = StoD3[1];
}
if H > H3[0] Then
H3[0] = H;
if L < L3[0] Then
L3[0] = L;
hv3 = H3[0];
lv3 = L3[0];
for cnt3 = 0 to sto1-1 {
if H3[cnt3] > hv3 then
hv3 = H3[cnt3];
if L3[cnt3] < lv3 then
lv3 = L3[cnt3];
}
FK3 = (C-lv3)/(hv3-lv3)*100;
if idx3 <= Sto1 then
{
StoK3 = FK3;
StoD3 = StoK3;
}
else
{
StoK3 = FK3 * EP1 + PreStoK3 * (1-EP1);
StoD3 = StoK3 * EP2 + PreStoD3 * (1-EP2);
}
plot1(StoK1);
plot2(StoD1);
plot3(StoK2);
plot4(StoD2);
plot5(StoK3);
plot6(StoD3);
PlotBaseLine1(20);
PlotBaseLine2(80);
}
즐거운 하루되세요
> 이제광 님이 쓴 글입니다.
> 제목 : 하나만 더 부탁드립니다.
> 현재 화면은 1분봉 차트입니다.
몇일전에 부탁드렸는데...다른 지표할려니 잘 안되네요..
1분봉 차트에서 보조지표(Stochastics) 값을
3분, 5분, 10분에 해당하는 StoK, StoD값을 가져오는 수식 부탁드립니다.
감사합니다.