안녕하십니까 수고많으십니다.
시스템 작성 부탁드립니다.
조건
주봉 MACD오실레이터 상승 AND 일봉 MACD오실레이터 상승 AND 60분봉 20 이평 상승
일때 매수
60분봉 20이평 하락 매도
감사합니다.
답변 1
예스스탁
예스스탁 답변
2021-05-10 14:41:32
안녕하세요
예스스탁입니다.
60분에서 주봉과 일봉의 MACD를 계산해야 합니다.
MACD가 과거봉의 갯수에 영향을 받으므로 차트에 가급적 많은 봉을 조회하고 적용하시기 바랍니다.
전략실행차트는 최대 1만개봉까지 조회가 가능합니다.
Input : short(12),long(26),sig(9);
var : widx(0);
Var : wEp1(0), Wema1(0), PreWema1(0);
Var : wEp2(0), Wema2(0), PreWema2(0);
Var : wEp3(0),PreWMACDS(0),WMACDv(0),WMACDs(0),WMACDo(0),PreWMACDo(0);
var : didx(0);
Var : dEp1(0), dema1(0), Predema1(0);
Var : dEp2(0), dema2(0), Predema2(0);
Var : dEp3(0),PredMACDS(0),dMACDv(0),dMACDs(0),dMACDo(0),PredMACDo(0);
wEp1 = 2/(short+1);
wEp2 = 2/(long+1);
wEp3 = 2/(sig+1);
if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then
{
widx = widx + 1;
PreWema1 = Wema1[1];
PreWema2 = Wema2[1];
PreWMACDS = WMACDs[1];
PreWMACDo = WMACDo[1];
}
if widx <= 1 then
{
Wema1 = C;
Wema2 = C;
WMACDv = Wema1-Wema2;
WMACDs = WMACDv;
WMACDo = WMACDv-WMACDs;
}
else
{
Wema1 = C * wEP1 + PreWema1 * (1-wEP1);
Wema2 = C * wEP2 + PreWema2 * (1-wEP2);
WMACDV = Wema1-Wema2;
WMACDS = WMACDV * wEP3 + PreWMACDS * (1-wEP3);
WMACDo = WMACDv-WMACDs;
}
dEp1 = 2/(short+1);
dEp2 = 2/(long+1);
dEp3 = 2/(sig+1);
if Bdate != Bdate[1] Then
{
didx = didx + 1;
Predema1 = dema1[1];
Predema2 = dema2[1];
PredMACDS = dMACDs[1];
PredMACDo = dMACDo[1];
}
if didx <= 1 then
{
dema1 = C;
dema2 = C;
dMACDv = dema1-dema2;
dMACDs = dMACDv;
dMACDo = dMACDv-dMACDs;
}
else
{
dema1 = C * dEP1 + Predema1 * (1-dEP1);
dema2 = C * dEP2 + Predema2 * (1-dEP2);
dMACDV = dema1-dema2;
dMACDS = dMACDV * dEP3 + PredMACDS * (1-dEP3);
dMACDo = dMACDv-dMACDs;
}
var1 = ma(C,20);
if MarketPosition == 0 and
WMACDO > PreWMACDO and
DMACDO > PreDMACDO and
var1 > var1[1] Then
Buy("b");
if MarketPosition == 1 and var1 < var1[1] Then
ExitLong("bx");
즐거운 하루되세요
> 대한이 님이 쓴 글입니다.
> 제목 : 시스템 수식 작성 부탁드립니다.
> 안녕하십니까 수고많으십니다.
시스템 작성 부탁드립니다.
조건
주봉 MACD오실레이터 상승 AND 일봉 MACD오실레이터 상승 AND 60분봉 20 이평 상승
일때 매수
60분봉 20이평 하락 매도
감사합니다.