커뮤니티
타주기 macd
2017-09-11 20:18:02
154
글번호 112671
지난번 보내주신 서식 잘받았습니다. 감사합니다.
더불어 어려우시더라도 타주기 macd도 같이 작성해주시면 감사하겠습니다.
예를들어 15분차트에서 60분,120분,240분,480분, 일봉 등의 타주기의 macd를 겹치고 싶습니다.
번거롭게 해드려 죄송합니다. 항상 감사드립니다.
답변 1
예스스탁 예스스탁 답변
2017-09-12 13:57:37
안녕하세요
예스스탁입니다.
input : P(20),short(12),long(26),sig(9);
var : mav(0),dis(0),SS(0),LL(0),MACDV(0),MACDS(0);
mav = ma(c,P);
dis = (C-mav)/mav*100;#0기준 이격도
SS = ema(C,short);
LL = ema(C,Long);
MACDV = (SS-LL)/LL*100;
MACDS = ema(MACDV,sig);
plot1(dis);
plot2(MACDV);
plot3(MACDS);
input : Atime1(60),Atime2(120),Atime3(240),Atime4(480);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0);
var : TF1(0),ema11(0),ema12(0),idx1(0),Xema11(0),Xema12(0),XMACDS1(0),MACDV1(0),MACDS1(0);
var : TF2(0),ema21(0),ema22(0),idx2(0),Xema21(0),Xema22(0),XMACDS2(0),MACDV2(0),MACDS2(0);
var : TF3(0),ema31(0),ema32(0),idx3(0),Xema31(0),Xema32(0),XMACDS3(0),MACDV3(0),MACDS3(0);
var : TF4(0),ema41(0),ema42(0),idx4(0),Xema41(0),Xema42(0),XMACDS4(0),MACDV4(0),MACDS4(0);
var : Didx(0),ema51(0),ema52(0),idx5(0),Xema51(0),Xema52(0),XMACDS5(0),MACDV5(0),MACDS5(0);
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
Didx = Didx + 1;
Xema51 = ema51[1];
Xema52 = ema52[1];
XMACDS5 = MACDS5[1];
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%Atime1;
TF2 = TM%Atime2;
TF3 = TM%Atime3;
TF4 = TM%Atime4;
if bdate != bdate[1] or (TF1 < TF1[1] and bdate == bdate[1]) Then{
idx1 = idx1 + 1;
Xema11 = ema11[1];
Xema12 = ema12[1];
XMACDS1 = MACDS1[1];
}
if idx1 <= 1 then {
ema11 = C;
ema12 = C;
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1;
}
else{
ema11 = C * EP1 + Xema11 * (1-EP1);
ema12 = C * EP2 + Xema12 * (1-EP2);
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1 * EP3 + XMACDS1 * (1-EP3);
}
plot4(MACDV1);
plot5(MACDS1);
if bdate != bdate[1] or (TF2 < TF2[1] and bdate == bdate[1]) Then{
idx2 = idx2 + 1;
Xema21 = ema21[1];
Xema22 = ema22[1];
XMACDS2 = MACDS2[1];
}
if idx2 <= 1 then {
ema21 = C;
ema22 = C;
MACDV2 = (ema21-ema22)/ema22*100;
MACDS2 = ema22;
}
else{
ema21 = C * EP1 + Xema21 * (1-EP1);
ema22 = C * EP2 + Xema22 * (1-EP2);
MACDV2 = (ema21-ema22)/ema22*100;
MACDS2 = MACDV2 * EP3 + XMACDS2 * (1-EP3);
}
plot6(MACDV2);
plot7(MACDS2);
if bdate != bdate[1] or (TF3 < TF3[1] and bdate == bdate[1]) Then{
idx3 = idx3 + 1;
Xema31 = ema31[1];
Xema32 = ema32[1];
XMACDS3 = MACDS3[1];
}
if idx3 <= 1 then {
ema31 = C;
ema32 = C;
MACDV3 = (ema31-ema32)/ema32*100;
MACDS3 = MACDV3;
}
else{
ema31 = C * EP1 + Xema31 * (1-EP1);
ema32 = C * EP2 + Xema32 * (1-EP2);
MACDV3 = (ema31-ema32)/ema32*100;
MACDS3 = MACDV3 * EP3 + XMACDS3 * (1-EP3);
}
plot8(MACDV3);
plot9(MACDS3);
if bdate != bdate[1] or (TF4 < TF4[1] and bdate == bdate[1]) Then{
idx4 = idx4 + 1;
Xema41 = ema41[1];
Xema42 = ema42[1];
XMACDS4 = MACDS4[1];
}
if idx4 <= 1 then {
ema41 = C;
ema42 = C;
MACDV4 = (ema41-ema42)/ema42*100;
MACDV4 = MACDV4;
}
else{
ema41 = C * EP1 + Xema41 * (1-EP1);
ema42 = C * EP2 + Xema42 * (1-EP2);
MACDV4 = (ema41-ema42)/ema42*100;
MACDS4 = MACDV4 * EP3 + XMACDS4 * (1-EP3);
}
plot10(MACDV4);
plot11(MACDS4);
}
if Didx <= 1 then {
ema51 = C;
ema52 = C;
MACDV5 = (ema51-ema52)/ema52*100;
MACDS5 = MACDV5;
}
else{
ema51 = C * EP1 + Xema51 * (1-EP1);
ema52 = C * EP2 + Xema52 * (1-EP2);
MACDV5 = (ema51-ema52)/ema52*100;
MACDS5 = MACDV5 * EP3 + XMACDS5 * (1-EP3);
}
plot12(MACDV5);
plot13(MACDS5);
PlotBaseLine1(0);
즐거운 하루되세요
> 카카 님이 쓴 글입니다.
> 제목 : 타주기 macd
> 지난번 보내주신 서식 잘받았습니다. 감사합니다.
더불어 어려우시더라도 타주기 macd도 같이 작성해주시면 감사하겠습니다.
예를들어 15분차트에서 60분,120분,240분,480분, 일봉 등의 타주기의 macd를 겹치고 싶습니다.
번거롭게 해드려 죄송합니다. 항상 감사드립니다.
다음글
이전글