커뮤니티

간단한 질문.

프로필 이미지
sjpapa
2010-12-28 10:23:22
957
글번호 34608
답변완료
분봉에서 일봉의 지수이평 계산식은 아래와 같습니다. 다만 유의하실 부분은 지수이평을 봉의 갯수에 영향을 받는 평균방법입니다. 실제 일봉과 분봉의 날짜수의 차이때문에 서로 다른 값을 리턴받을 수 있습니다. 공식과 함께 올려드립니다. /*************지수이평 계산식************************ EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP) Ep(평활계수)= 2/(Period+1) *****************************************************/ Input : Period(20); Var : Ep(0), JISU(0), DINDEX(0), PreJISU(0); Ep = 2/(Period+1); //평활계수 if date != date[1] then { //날짜가 변경될 경우에(매일의 첫번째 봉) DINDEX = DINDEX + 1; //일봉상의 index를 구한다 PreJISU = JISU[1]; //전봉(전일 마지막 봉)의 JISU값을 preJISU에 저장한다. } if DINDEX <= 1 then //일봉상의 인덱스가 1이하이면(차트 맨 앞 첫구간을 의미) JISU = C; //종가를 지수이동평균값으로 저장한다. else //이외의 경우에는 (두번째 구간 부터는) JISU = C * EP + PreJISU * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다. plot1(JISU,"지수이동평균"); //지수이동평균을 출력한다. 1) 위식 유의사항중에 유의하실 부분은 지수이평을 봉의 갯수에 영향을 받는 평균방법입니다. 실제 일봉과 분봉의 날짜수의 차이때문에 서로 다른 값을 리턴받을 수 있습니다. 유의사항을 즉 다른값(틀린값을)을 피하려면 어떻게 해야하나요? 분봉챠트 조회건수가 작을수 값이 왜곡될수 있으니. 분봉 챠트 오픈시 설정 창에서 조회건수를 5000건(max)로 하면 된다고 이해 했는데 맞나요? 2.) 아래식을 지수이평식으로 변경하여주세요. input : P1(5),P2(20); var : sumV1(0), maV1(0), count(0),sumv2(0),mav2(0); sumV1 = 0; sumv2 = 0; for count = 0 to P2{ If count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumv2 = sumv2+DayClose(count); } maV1 = sumV1/P1; mav2 = sumv2/P2; if CrossUp(C,maV2) Then buy(); if CrossDown(c,mav1) Then exitlong(); 3) data2) 에 일봉챠트를 띄우고 거기에 지수이평을 띄우고 데이타2값으로 식을 작성할수도 있나요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-12-28 14:26:13

안녕하세요 예스스탁입니다. 1. 5000봉까지 띄우고 사용하시는 방법외에는 없습니다. 5000봉까지 조회했지만 데이터의 일수가 모자라는 부분은 더이상 처리가 되지 않습니다. 2. Input : Period1(5),Period2(20); var : DINDEX(0); Var : Ep1(0),JISU1(0),PreJISU1(0); Var : Ep2(0),JISU2(0),PreJISU2(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); if date != date[1] then { DINDEX = DINDEX + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; } if DINDEX <= 1 then{ JISU1 = C; JISU2= C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } if CrossUp(C,JISU2) Then buy(); if CrossDown(c,JISU1) Then exitlong(); 3. 예 있습니다. 다만 참조종목은 완성된 봉까지만 쓰이므로 오늘 만들어지고 있는 일봉의 값을 포함이 되지 않습니다. 수식으로 아래와 같이 표현하시면 됩니다. data2(ema(C,5)) 즐거운 하루되세요 > 휴식 님이 쓴 글입니다. > 제목 : 간단한 질문. > 분봉에서 일봉의 지수이평 계산식은 아래와 같습니다. 다만 유의하실 부분은 지수이평을 봉의 갯수에 영향을 받는 평균방법입니다. 실제 일봉과 분봉의 날짜수의 차이때문에 서로 다른 값을 리턴받을 수 있습니다. 공식과 함께 올려드립니다. /*************지수이평 계산식************************ EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP) Ep(평활계수)= 2/(Period+1) *****************************************************/ Input : Period(20); Var : Ep(0), JISU(0), DINDEX(0), PreJISU(0); Ep = 2/(Period+1); //평활계수 if date != date[1] then { //날짜가 변경될 경우에(매일의 첫번째 봉) DINDEX = DINDEX + 1; //일봉상의 index를 구한다 PreJISU = JISU[1]; //전봉(전일 마지막 봉)의 JISU값을 preJISU에 저장한다. } if DINDEX <= 1 then //일봉상의 인덱스가 1이하이면(차트 맨 앞 첫구간을 의미) JISU = C; //종가를 지수이동평균값으로 저장한다. else //이외의 경우에는 (두번째 구간 부터는) JISU = C * EP + PreJISU * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다. plot1(JISU,"지수이동평균"); //지수이동평균을 출력한다. 1) 위식 유의사항중에 유의하실 부분은 지수이평을 봉의 갯수에 영향을 받는 평균방법입니다. 실제 일봉과 분봉의 날짜수의 차이때문에 서로 다른 값을 리턴받을 수 있습니다. 유의사항을 즉 다른값(틀린값을)을 피하려면 어떻게 해야하나요? 분봉챠트 조회건수가 작을수 값이 왜곡될수 있으니. 분봉 챠트 오픈시 설정 창에서 조회건수를 5000건(max)로 하면 된다고 이해 했는데 맞나요? 2.) 아래식을 지수이평식으로 변경하여주세요. input : P1(5),P2(20); var : sumV1(0), maV1(0), count(0),sumv2(0),mav2(0); sumV1 = 0; sumv2 = 0; for count = 0 to P2{ If count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumv2 = sumv2+DayClose(count); } maV1 = sumV1/P1; mav2 = sumv2/P2; if CrossUp(C,maV2) Then buy(); if CrossDown(c,mav1) Then exitlong(); 3) data2) 에 일봉챠트를 띄우고 거기에 지수이평을 띄우고 데이타2값으로 식을 작성할수도 있나요?