커뮤니티
질문있습니다.
2016-09-08 22:29:31
135
글번호 101812
안녕하세요?
일봉 지표식을 분봉으로 표현하고 싶은데요
예를 들어,
일봉 차트에 plot1(ma(c,1)) 을 하면 일봉선이 되지만
분봉 차트에 plot1(ma(c,1)) 를 적용하면 분봉선이 되기 때문에
다른 수식(예 : for count = 0 to P5...)으로 분봉차트에 일봉표현할 수 있는 걸로 알고 있습니다.
아래 식을 위의 예처럼 할 수 있도록 수정 부탁드립니다.
1.
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : MACDv(0), MACDs(0),macdo(0) ;
MACDv = MACD(shortPeriod, longPeriod);
MACDs = ema(MACDv,Period);
macdo = MACDv-ema(MACDv,Period);
if macdo > macdo[1] Then
plot1(macdo,"osc",RED);
Else
plot1(macdo,"osc",BLUE);
2.
Input : P(20),Length(20);
Var : 기준선(0),TLen(0),TRIma(0);
기준선 = (Highest(High, P) + Lowest(Low, P)) / 2;
TLen = Ceiling((Length + 1) * .5);
TRIma = ma(ma(C, TLen), TLen);
Plot1(기준선);
Plot2(Trima);
즉 1,2식으로 분봉차트에 적용을 하더라도 일봉차트로 표현되는 방법 부탁드립니다.
그리고 반대로 주봉식으로 변경하여 일봉차트로 표현할 수 있도록 추가 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2016-09-09 12:36:08
안녕하세요
예스스탁입니다.
MACD와 같이 지수이평이 근간이 되는 지표들은
차트과거봉의 갯수에 영향을 받습니다.
수식은 차트의 봉데이터를 이용하므로
해당 주기의 과거 날자수의 부족으로 값의 차이가 있을수 있습니다.
분봉 차트를 최대한 많이 조회하신 후에 적용하셔야 합니다.
1-1 일봉 MACD
Input : 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);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
if bdate != bdate[1] Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDSIG = MACDSIG[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
MACDVal = JiSu1-Jisu2;
MACDSIG = MACDVal;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig);
1-2 주봉 MACD
Input : 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);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
if dayofweek(bdate) != DayOfWeek(bdate[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDSIG = MACDSIG[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
MACDVal = JiSu1-Jisu2;
MACDSIG = MACDVal;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig);
2-1 일봉 기준선과 TRIma
Input : P(20),Length(20);
var : HH(0),LL(0),기준선(0),cnt(0);
Var : TLen(0),cnt1(0),cnt2(0);
var : sum1(0),mav1(0),sum2(0),TRIma(0);
HH = dayhigh(0);
LL = daylow(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if DayLow(cnt) < LL Then
LL = DayLow(cnt);
}
기준선 = (HH+LL) / 2;
TLen = Ceiling((Length + 1) * .5);
TRIma = ma(ma(C, TLen), TLen);
sum2 = 0;
for cnt1 = 0 to TLen-1{
sum1 = 0;
for cnt2 = cnt1 to cnt1+TLen-1{
sum1 = sum1 + DayClose(cnt2);
}
mav1 = sum1/Tlen;
sum2 = sum2+mav1;
}
TRIma = sum2/TLen;
plot2(기준선);
plot1(TRIma);
2-2 주봉 기준선과 TRIma
Input : P(20),Length(20);
var : HH(0),LL(0),기준선(0),cnt(0);
Var : TLen(0),cnt1(0),cnt2(0);
var : sum1(0),mav1(0),sum2(0),TRIma(0);
Array : WH[100](0),WL[100](0),WCC[100](0);
if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then{
WH[0] = H;
WL[0] = L;
for cnt = 1 to 99{
WH[cnt] = WH[cnt-1][1];
WL[cnt] = WL[cnt-1][1];
WCC[cnt] = WCC[cnt-1][1];
}
}
if H > WH[0] Then
WH[0] = H;
if L < WL[0] Then
WL[0] = L;
WCC[0] = C;
if WH[P] > 0 and WL[P] > 0 Then{
HH = WH[0];
LL = WL[0];
for cnt = 0 to P-1{
if WH[cnt] > HH Then
HH = WH[cnt];
if WL[cnt] < LL Then
LL = WL[cnt];
}
기준선 = (HH+LL) / 2;
plot2(기준선);
}
TLen = Ceiling((Length + 1) * .5);
TRIma = ma(ma(C, TLen), TLen);
if WCC[Tlen+TLen] > 0 then{
sum2 = 0;
for cnt1 = 0 to TLen-1{
sum1 = 0;
for cnt2 = cnt1 to cnt1+TLen-1{
sum1 = sum1 + WCC[cnt2];
}
mav1 = sum1/Tlen;
sum2 = sum2+mav1;
}
TRIma = sum2/TLen;
plot1(TRIma);
}
즐거운 하루되세요
> 만들레영토 님이 쓴 글입니다.
> 제목 : 질문있습니다.
> 안녕하세요?
일봉 지표식을 분봉으로 표현하고 싶은데요
예를 들어,
일봉 차트에 plot1(ma(c,1)) 을 하면 일봉선이 되지만
분봉 차트에 plot1(ma(c,1)) 를 적용하면 분봉선이 되기 때문에
다른 수식(예 : for count = 0 to P5...)으로 분봉차트에 일봉표현할 수 있는 걸로 알고 있습니다.
아래 식을 위의 예처럼 할 수 있도록 수정 부탁드립니다.
1.
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : MACDv(0), MACDs(0),macdo(0) ;
MACDv = MACD(shortPeriod, longPeriod);
MACDs = ema(MACDv,Period);
macdo = MACDv-ema(MACDv,Period);
if macdo > macdo[1] Then
plot1(macdo,"osc",RED);
Else
plot1(macdo,"osc",BLUE);
2.
Input : P(20),Length(20);
Var : 기준선(0),TLen(0),TRIma(0);
기준선 = (Highest(High, P) + Lowest(Low, P)) / 2;
TLen = Ceiling((Length + 1) * .5);
TRIma = ma(ma(C, TLen), TLen);
Plot1(기준선);
Plot2(Trima);
즉 1,2식으로 분봉차트에 적용을 하더라도 일봉차트로 표현되는 방법 부탁드립니다.
그리고 반대로 주봉식으로 변경하여 일봉차트로 표현할 수 있도록 추가 부탁드립니다.
다음글