커뮤니티
문의
2015-07-16 12:55:13
115
글번호 88526
3분봉에 60분봉의 MACD와 볼린져밴드를 적용코자 합니다. (DATA2를 별도로 사용하지 않고)
늘 감사드립니다.
답변 1
예스스탁 예스스탁 답변
2015-07-16 13:22:32
안녕하세요
예스스탁입니다.
1.
Input : N(30),Period1(12),Period2(26),Period3(9);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0);
Var : Ep3(0), JISU3(0), PreMACDSIG(0),TF(0);
var : MACDVal(0),MACDSig(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
TF = TimeToMinutes(stime)%N;
if dayindex == 0 or (TF < TF[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDSIG = MACDSIG[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
}
MACDVal = JiSu1-Jisu2;
if DINDEX1 <= 2 then {
MACDSIG = Jisu1-jisu2;
}
else{
MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig);
2.
input : Ntime(30),P(20),Dv(2);
var : cnt(0),count(0),sum(0),mav(0),MiBBup(0),MiBBdn(0),SumSqrt(0),Counter(0),Stdv(0);
Array : CC[120](0);
var1 = TimeToMinutes(stime)%Ntime;
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt = 1 to P-1{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
If CC[P-1] != 0 Then{
sum = 0;
for count = 0 to P-1{
sum = sum+CC[count];
}
mav = sum/P;
SumSqrt = 0;
For Counter = 0 To P - 1 {
SumSqrt = SumSqrt + (CC[Counter] - mav) * (CC[Counter] - mav);
}
Stdv = SquareRoot(SumSqrt / P);
MiBBup = mav + (Dv * Stdv);
MiBBdn = mav - (Dv * Stdv);
plot1(MiBBup);
plot2(mav);
plot3(MiBBdn);
}
즐거운 하루되세요
> gt 님이 쓴 글입니다.
> 제목 : 문의
> 3분봉에 60분봉의 MACD와 볼린져밴드를 적용코자 합니다. (DATA2를 별도로 사용하지 않고)
늘 감사드립니다.
다음글
이전글