커뮤니티

문의드립니다

프로필 이미지
에리조나
2014-11-02 23:55:51
129
글번호 80000
답변완료
안녕하세요? 아래의 수식은 분봉에서 일봉의 데이터를 보기 위한 수식입니다. 제가 의도하는 바와 다르게 나오는 것 같아 다시 질문드립니다. 1) 아래의 수식 개략적인 주석부탁합니다. 2) 분봉에서 일봉을 표현할때의 값과 일봉을 참조데이터로 했을때와 같은 값이 나와야 하지 않나요? Input : EmaP(13),P1(12),P2(26),P3(9); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreMACDSIG(0),PreMACDVal(0); var : MACDVal(0),MACDSig(0),EP0(0),PreEmav1(0),emav(0); EP0 = 2/(EmaP+1); Ep1 = 2/(P1+1); Ep2 = 2/(P2+1); Ep3 = 2/(P3+1); if date != date[1] Then{ DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreEmav1 = emav[1]; PreMACDVal = MACDVal[1]; PreMACDSIG = MACDSIG[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal; Emav = C; } else{ Emav = C * EP0 + PreEmav1 * (1-EP0); JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); } if emav > preemav1 and MACDVal > MACDSIG and MACDVal > MACDVal[1] then plot1(H,"1",RED);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-11-03 16:32:34

안녕하세요 예스스탁입니다. 1 지수이평 계산공식과 MACD 계산공식은 아래와 같습니다. /*************지수이평 계산식************************ Ep(평활계수)= 2/(Period+1) EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP) 첫봉의 지수이평값은 해당봉의 종가 *****************************************************/ /*************MACD 계산식************************ MACD = 지수이평1-지수이평2 MACD 시그널 = MACD를 다시 지수이평 ****************************************************/ 2.수식에 주석을 추가했습니다. Input : EmaP(13),P1(12),P2(26),P3(9); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreMACDSIG(0),PreMACDVal(0); var : MACDVal(0),MACDSig(0),EP0(0),PreEmav1(0),emav(0); #지수이평 평활계수 EP0 = 2/(EmaP+1); #MACD에 사용되는 P1,P2지수이평에 대한 평활계수 Ep1 = 2/(P1+1); Ep2 = 2/(P2+1); #MACD시그널 계산에 사용되는 평활계수 Ep3 = 2/(P3+1); #날짜가 변경이 되면 if date != date[1] Then{ //날짜수 카운트 DINDEX1 = DINDEX1 + 1; //JISU1의 전일 마지막값 PreJISU1 = JISU1[1]; //JISU2의 전일 마지막값 PreJISU2 = JISU2[1]; //Emav의 전일 마지막값 PreEmav1 = emav[1]; //MACD의 전일마지막값 PreMACDVal = MACDVal[1]; //MACD시그널의 전일마지막값 PreMACDSIG = MACDSIG[1]; } #차트상 날짜수가 1이하이면 if DINDEX1 < 1 then { // 지수이평은 현재봉의 종가값 Emav = C; JISU1 = C; JISU2 = C; //MACD는 2개 지수이평의 차이 MACDVal = JiSu1-Jisu2; //MACD시그널은 MACD값 MACDSIG = MACDVal; } else{#두번째날 이후부터 //현재봉의 종가 * Ep0 + 전일의 마지막 EMAv * (1-EP0) Emav = C * EP0 + PreEmav1 * (1-EP0); //현재봉의 종가 * Ep1 + 전일의 마지막 JISU1 * (1-EP1) JISU1 = C * EP1 + PreJISU1 * (1-EP1); //현재봉의 종가 * Ep2 + 전일의 마지막 JISU2 * (1-EP2) JISU2 = C * EP2 + PreJISU2 * (1-EP2); MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); } plot1(JISU1); plot2(JISU2); 3 계산식에 사용되는 것은 지수이평입니다. 지수이평은 계산공식과 같이 차트의 봉의 갯수에 영향을 받는 계산법입니다. (즉 과거의 값이 현재에 영향을 주는데 점차 소멸해 가는 이평방법입니다) 분봉차트에서 일봉의 지수이평을 계산을 하면 차트가 최대 5000개봉이므로 날짜수가 한정이 되게 됩니다. 분봉차트가 짧은주기이면 일봉차트에서 많은 봉수를 띄워서 보시는 값과 더 차이가 발생합니다. 즐거운 하루되세요 > 에리조나 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요? 아래의 수식은 분봉에서 일봉의 데이터를 보기 위한 수식입니다. 제가 의도하는 바와 다르게 나오는 것 같아 다시 질문드립니다. 1) 아래의 수식 개략적인 주석부탁합니다. 2) 분봉에서 일봉을 표현할때의 값과 일봉을 참조데이터로 했을때와 같은 값이 나와야 하지 않나요? Input : EmaP(13),P1(12),P2(26),P3(9); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreMACDSIG(0),PreMACDVal(0); var : MACDVal(0),MACDSig(0),EP0(0),PreEmav1(0),emav(0); EP0 = 2/(EmaP+1); Ep1 = 2/(P1+1); Ep2 = 2/(P2+1); Ep3 = 2/(P3+1); if date != date[1] Then{ DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreEmav1 = emav[1]; PreMACDVal = MACDVal[1]; PreMACDSIG = MACDSIG[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal; Emav = C; } else{ Emav = C * EP0 + PreEmav1 * (1-EP0); JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); MACDVal = JiSu1-Jisu2; MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); } if emav > preemav1 and MACDVal > MACDSIG and MACDVal > MACDVal[1] then plot1(H,"1",RED);