커뮤니티

수식 문의드립니다

프로필 이미지
탱탱볼
2022-02-25 09:32:31
1046
글번호 156731
답변완료
Input : Period1(12),Period2(24); input : short(24),long(48); var : Didx(0),dEP1(0),dEP2(0); Var : dJISU1(0), PredJISU1(0); Var : dJISU2(0), PredJISU2(0); var : dMACDV(0), predMACDV(0); var : macdv(0); #일봉 MACD계산 dEp1 = 2/(Period1+1); dEp2 = 2/(Period2+1); if bdate != bdate[1] Then { Didx = Didx + 1; PredJISU1 = dJISU1[1]; PredJISU2 = dJISU2[1]; PredMACDV = dMACDV[1]; } if Didx <= 1 then { dJISU1 = C; dJISU2 = C; dMACDV = dJISU1-dJISU2; } else { dJISU1 = C * dEP1 + PredJISU1 * (1-dEP1); dJISU2 = C * dEP2 + PredJISU2 * (1-dEP2); dMACDV = dJISU1-dJISU2; } macdv = macd(short,long); if MarketPosition == 0 and dMACDV > 0 and MACDv > 0 Then Buy(); if MarketPosition == 1 and (dMACDV < 0 or MACDv < 0) Then ExitLong(); 위와 같이 알려수신 수식은 감사하며 잘 사용하고 있습니다. 사용하다 보니 일봉값이 분봉에 표시될때 조금씩 차이가나서 변화를 주려고하니 수식을 알아야 할듯 싶어서요... 위 수식 설명을 좀 달아주세요. 감사합니다~~^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-25 10:34:25

안녕하세요 예스스탁입니다. 지수이동평균 계산공식 EP(평활계수) = 2/(기간 + 1) EMA = 금일 종가 * EP + 전일의 지수 이동평균 * (1-EP) MACD 계산공식 단기지수이평-장기지수이평 위 계산공식과 함꼐 아래 주석 참고하시기 바랍니다. Input : Period1(12),Period2(24); input : short(24),long(48); var : Didx(0),dEP1(0),dEP2(0); Var : dJISU1(0), PredJISU1(0); Var : dJISU2(0), PredJISU2(0); var : dMACDV(0), predMACDV(0); var : macdv(0); #일봉 MACD계산 #단기지수이평 평활계수 #Period1이 12면 현재봉값은 약 15.4%, 전봉값은 84.6%비율로 합산 dEp1 = 2/(Period1+1); #장기지수이평 평활계수 #Period1이 12면 현재봉값은 약 8%, 전봉값은 92%비율로 합산 dEp2 = 2/(Period2+1); #날짜 변경시 if bdate != bdate[1] Then { #차트 날짜수 Didx = Didx + 1; #PredJISU1에 전일 dJISU1(일봉단기지수이평)값 저장 PredJISU1 = dJISU1[1]; #PredJISU2에 전일 dJISU2(일봉장기지수이평)값 저장 PredJISU2 = dJISU2[1]; #PreMACDV에 전일 dMACDV(일봉MACD)값 저장 PredMACDV = dMACDV[1]; } #차트상 첫날까지는 if Didx <= 1 then { #일간단기지수이평값은 종가 dJISU1 = C; #일간장기지수이평값은 종가 dJISU2 = C; #MACD는 장기지수이평-장기지수이평 dMACDV = dJISU1-dJISU2; } else #두번째날부터 { #일간단기지수이평 = 오늘종가의 일정% + 전일단기지수피영의 일정% dJISU1 = C * dEP1 + PredJISU1 * (1-dEP1); #일간장기지수이평 = 오늘종가의 일정% + 전일단기지수피영의 일정% dJISU2 = C * dEP2 + PredJISU2 * (1-dEP2); #일간 MACD = 일간단기지수이평-일간장기지수이평 dMACDV = dJISU1-dJISU2; } #기본차트 MACD값 macdv = macd(short,long); #무포지션일때 일간MACD가 0보다 크고 기본차트 macd가 0보다 크면 매수 if MarketPosition == 0 and dMACDV > 0 and MACDv > 0 Then Buy(); #매수진입후 일간MACD가 0보다 작거나 기본차트 macd가 0보다 작으면 청산 if MarketPosition == 1 and (dMACDV < 0 or MACDv < 0) Then ExitLong(); 즐거운 하루되세요 > 탱탱볼 님이 쓴 글입니다. > 제목 : 수식 문의드립니다 > Input : Period1(12),Period2(24); input : short(24),long(48); var : Didx(0),dEP1(0),dEP2(0); Var : dJISU1(0), PredJISU1(0); Var : dJISU2(0), PredJISU2(0); var : dMACDV(0), predMACDV(0); var : macdv(0); #일봉 MACD계산 dEp1 = 2/(Period1+1); dEp2 = 2/(Period2+1); if bdate != bdate[1] Then { Didx = Didx + 1; PredJISU1 = dJISU1[1]; PredJISU2 = dJISU2[1]; PredMACDV = dMACDV[1]; } if Didx <= 1 then { dJISU1 = C; dJISU2 = C; dMACDV = dJISU1-dJISU2; } else { dJISU1 = C * dEP1 + PredJISU1 * (1-dEP1); dJISU2 = C * dEP2 + PredJISU2 * (1-dEP2); dMACDV = dJISU1-dJISU2; } macdv = macd(short,long); if MarketPosition == 0 and dMACDV > 0 and MACDv > 0 Then Buy(); if MarketPosition == 1 and (dMACDV < 0 or MACDv < 0) Then ExitLong(); 위와 같이 알려수신 수식은 감사하며 잘 사용하고 있습니다. 사용하다 보니 일봉값이 분봉에 표시될때 조금씩 차이가나서 변화를 주려고하니 수식을 알아야 할듯 싶어서요... 위 수식 설명을 좀 달아주세요. 감사합니다~~^^