커뮤니티

분봉에서 일봉 지수이평..문의 드립니다.

프로필 이미지
회원
2011-08-08 21:36:37
663
글번호 41755
답변완료
분봉에서 일봉 이평은.. input : P1(5),P2(20),P3(60); var : sumV1(0),maV1(0),count(0),sumV2(0), maV2(0),sumV3(0), maV3(0); sumV1 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); if count < P3 Then sumV3 = sumV3+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; maV3 = sumV3 / P3; plot1(mav1); plot2(mav2); plot3(mav3); 요렇게 라고 답변 주셔서 잘쓰고 있습니다. 혹시 사용자 함수로 input : P1(numeric); var : sumV1(0),count(0); sumV1 = 0; for count = 0 to P1{ if count < P1 Then sumV1 = sumV1+DayClose(count); } dayma = sumV1 / P1; 이렇게 사용해도 되련지요? 사용자함수에서는 for문 안에서 연산이 잘못될수도 있다고 어디서 본것 같아서요.. 그리고.. 지수이평도 구하고 싶습니다..
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-08-09 11:23:08

안녕하세요 예스스탁입니다. 1. 예 해당식은 작성하신것과 같이 사용자 함수로 만들어 사용하셔도 됩니다. 2, 일봉 지수이평 계산식입니다. /*************지수이평 계산식************************ EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP) Ep(평활계수)= 2/(Period+1) *****************************************************/ Input : Period(5); 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,"지수이동평균"); //지수이동평균을 출력한다. 즐거운 하루되세요 > HI_dllee 님이 쓴 글입니다. > 제목 : 분봉에서 일봉 지수이평..문의 드립니다. > 분봉에서 일봉 이평은.. input : P1(5),P2(20),P3(60); var : sumV1(0),maV1(0),count(0),sumV2(0), maV2(0),sumV3(0), maV3(0); sumV1 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); if count < P3 Then sumV3 = sumV3+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; maV3 = sumV3 / P3; plot1(mav1); plot2(mav2); plot3(mav3); 요렇게 라고 답변 주셔서 잘쓰고 있습니다. 혹시 사용자 함수로 input : P1(numeric); var : sumV1(0),count(0); sumV1 = 0; for count = 0 to P1{ if count < P1 Then sumV1 = sumV1+DayClose(count); } dayma = sumV1 / P1; 이렇게 사용해도 되련지요? 사용자함수에서는 for문 안에서 연산이 잘못될수도 있다고 어디서 본것 같아서요.. 그리고.. 지수이평도 구하고 싶습니다..