커뮤니티
수식문의 드립니다.
2012-07-12 09:05:46
405
글번호 52818
안녕하세요~ 수고가 많으십니다.
1분봉에서 3분봉의 macd와 william'r의 값을 참조하는 수식을
문의 드립니다.
답변 5
예스스탁 예스스탁 답변
2012-07-12 09:59:35
안녕하세요
예스스탁입니다.
1. MACD
Input : Atime(3),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), PreJISU3(0);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
PreJISU3 = MACDVal[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 {
JISU3 = Jisu1-jisu2;
}
else{
JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3);
}
MACDsig = Jisu3;
MACDOsc = MACDVal-MACDsig;
plot1(MACDVal);
plot2(MACDsig);
plot3(MACDOsc);
2. williamsR
input : Atime(3),Period(14);
var : WR(0),count(0),cnt(0);
Array : HH[50](0),LL[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or var1 < var1[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;
value1 = HH[0];
value2 = LL[0];
for count = 0 to Period-1 {
if HH[count] > value1 then
value1 = HH[count];
if LL[count] < value2 then
value2 = LL[count];
}
if HH[Period] > 0 Then
WR = (value1 - Close) / (value1 - value2) * (-100);
Else
WR = 0;
plot1(WR);
즐거운 하루되세요
> 하얀모래 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다.
> 안녕하세요~ 수고가 많으십니다.
1분봉에서 3분봉의 macd와 william'r의 값을 참조하는 수식을
문의 드립니다.
하얀모래
2012-07-12 10:27:42
하얀모래 님에 의해 삭제된 답변입니다.
하얀모래
2012-07-12 11:03:56
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의 드립니다.
> 안녕하세요
예스스탁입니다.
1. MACD
Input : Atime(3),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), PreJISU3(0);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
PreJISU3 = MACDVal[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 {
JISU3 = Jisu1-jisu2;
}
else{
JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3);
}
MACDsig = Jisu3;
MACDOsc = MACDVal-MACDsig;
plot1(MACDVal);
plot2(MACDsig);
plot3(MACDOsc);
macd sig값과 오실레이터 값이 실제 3분봉의 데이터와 차이가 나는듯 합니다.
혹시 확인 되시면 부탁드립니다.
예스스탁 예스스탁 답변
2012-07-12 13:14:27
안녕하세요
예스스탁입니다.
식을 조금 수정했습니다.
MACD가 지수이평이 기반이 되는 지표라
차트에 봉갯수에 영향을 받고 수식으로
타분봉의 지표를 계산하는 것이므로 약간 오차가 발생할 수 있습니다.
Input : Atime(3),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);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
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);
}
MACDOsc = MACDVal-MACDsig;
plot1(MACDVal);
plot2(MACDsig);
plot3(MACDOsc);
즐거운 하루되세요
> 하얀모래 님이 쓴 글입니다.
> 제목 : Re : Re : 수식문의 드립니다.
>
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의 드립니다.
> 안녕하세요
예스스탁입니다.
1. MACD
Input : Atime(3),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), PreJISU3(0);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
PreJISU3 = MACDVal[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 {
JISU3 = Jisu1-jisu2;
}
else{
JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3);
}
MACDsig = Jisu3;
MACDOsc = MACDVal-MACDsig;
plot1(MACDVal);
plot2(MACDsig);
plot3(MACDOsc);
macd sig값과 오실레이터 값이 실제 3분봉의 데이터와 차이가 나는듯 합니다.
혹시 확인 되시면 부탁드립니다.
하얀모래
2012-07-12 14:13:57
^^;
다음글
이전글