예스스탁
예스스탁 답변
2022-08-25 14:20:56
안녕하세요
예스스탁입니다.
수식에는 문제가 없습니다.
아래 지표식 적용해 보시면 첨부된 그림과 같이 5분봉의 값이 정상적으로 계산되고 있습니다.
input : 타주기분(5),short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0);
var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0);
var : Bsystem(true);
//타분봉 macd계산
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+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;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx + 1;
Prexma1 = xma1[1];
Prexma2 = xma2[1];
PreMACDS = MACDS[1];
}
if idx <= 1 then
{
xma1 = C;
xma2 = C;
MACDV = xma1-xma2;
MACDS = MACDV;
MACDO = MACDV-MACDS;
}
else
{
xma1 = C * EP1 + Prexma1 * (1-EP1);
xma2 = C * EP2 + Prexma2 * (1-EP2);
MACDV = xma1-xma2;
MACDS = MACDV * EP3 + PreMACDS * (1-EP3);
MACDO = MACDV-MACDS;
}
if MACDS < 0 Then
Bsystem = False;
Plot1(MACDV);
Plot2(MACDS);
}
즐거운 하루되세요
> jshwang2 님이 쓴 글입니다.
> 제목 : 78488 추가질문 드립니다
> 안녕하세요~
지난번에 1분봉차트에서 5분봉 macd로 시스템 오프하는법 문의드려 아래 수식을 작성해주셨습니다
input : 타주기분(5),short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0);
var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0);
var : Bsystem(true);
//타분봉 macd계산
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+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;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx + 1;
Prexma1 = xma1[1];
Prexma2 = xma2[1];
PreMACDS = MACDS[1];
}
if idx <= 1 then
{
xma1 = C;
xma2 = C;
MACDV = xma1-xma2;
MACDS = MACDV;
MACDO = MACDV-MACDS;
}
else
{
xma1 = C * EP1 + Prexma1 * (1-EP1);
xma2 = C * EP2 + Prexma2 * (1-EP2);
MACDV = xma1-xma2;
MACDS = MACDV * EP3 + PreMACDS * (1-EP3);
MACDO = MACDV-MACDS;
}
if MACDS < 0 Then
Bsystem = False;
}
-------------------------
하지만 작동 안하는것 같아 로그 확인해보니
MACDS값이 항상 0으로 뜹니다
이 부분 확인 부탁드립니다
감사합니다