커뮤니티

30분봉을 5분봉에서 구현...

프로필 이미지
요한
2006-07-22 19:57:33
1506
글번호 10465
답변완료
커뮤니티-트레이딩 방에 있는 식을 실제로 해봤는데 이평값이 약간 우측으로 치우쳐서(즉, 실제 30분봉에서 일어나는 것보다 느리게) 나타나네요 어떻게 해야 30분봉에서 이평crossup할때 5분봉에서 구현한 30분봉도 crossup되도록 보이게 할까요? 아니면 실제 30분이평값에 더 가까운 값이 나올까요? input:mm(30),p(12),p1(5),p2(10),p3(20); var:j(0), k(0), 월(0), 일(0), 요일(0), endtime(0), sum1(0), sum2(0), sum3(0), ma1(0), ma2(0), ma3(0); array:oo[100](0), hh[100](0), ll[100](0), cc[100](0); 월 = int(date/100)-int(date/10000)*100; //최종거래일 여부를 판단하기 위한 변수들 일 = date - int(date/100)*100; 요일 = DayOfWeek(date); var1 = mm/BarInterval(); //계산할 주기 if dayindex()==0 then var2 = 0; if int(date[1]/10000) == int(date/10000) and //연초개장일에는 10시 장개시, 15시15분 장종료 dayindex()==0 and stime==100000 then var2 = 10000; //수능시험일등 10시 개장시 1시간 연장 반영 if ((월 % 3 == 0 and CodeCategory() == 4) //선물종목일 경우 3,6,9,12월 or CodeCategory() > 4) //옵션종목일 경우 매월 and 일 >= 8 and 일 <= 14 //두번째 and 요일 == 4 //목요일 then endtime = 145000 - (var1 * 100) + 1; //최종거래일의 경우 정확하게 14:50에 끝나지 않음 else endtime = 151500 + var2; //위에서 1시간 연장시 장종료시간 k = k + 1; if (dayindex()+1)%var1 == 0 or time >= endtime then { for j = 99 downto 1 { oo[j] = oo[j-1]; hh[j] = hh[j-1]; ll[j] = ll[j-1]; cc[j] = cc[j-1]; } oo[0] = o[k-1]; hh[0] = highest(h,k); ll[0] = lowest(l,k); cc[0] = c; k = 0; #------------# # 이동평균 # #------------# sum1 = 0; sum2 = 0; sum3 = 0; for j = 0 to max(p1,p2,p3)-1 { if j <= p1-1 then sum1 = sum1 + cc[j]; if j <= p2-1 then sum2 = sum2 + cc[j]; if j <= p3-1 then sum3 = sum3 + cc[j]; } ma1 = sum1 / p1; ma2 = sum2 / p2; ma3 = sum3 / p3; } plot1(ma1); plot2(ma2); plot3(ma3);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2006-07-24 11:20:31

안녕하세요 예스스탁입니다. 먼저 올리신 식에서 보시다 시피 타분봉간의 이평은 여러 조건을 고려해야 하며 트레이딩방의 식이 가장 근접하다고 할 수 있습니다. 여러 변동조건을 무시하고 작성하면 아래와 같습니다. input : P(20); var : cnt(0),count(0),sum(0); array : CC[30](0); var1 = Fracportion(stime/10000)*100; if var1 == 25 or var1 == 55 or Stime == 151500 then{ for cnt = 1 to p-1{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P-1 { sum = sum + CC[count]; } var2 = sum/p; plot1(var2); 참고하시기 바랍니다. 즐거운 하루되세요 > 요한 님이 쓴 글입니다. > 제목 : 30분봉을 5분봉에서 구현... > 커뮤니티-트레이딩 방에 있는 식을 실제로 해봤는데 이평값이 약간 우측으로 치우쳐서(즉, 실제 30분봉에서 일어나는 것보다 느리게) 나타나네요 어떻게 해야 30분봉에서 이평crossup할때 5분봉에서 구현한 30분봉도 crossup되도록 보이게 할까요? 아니면 실제 30분이평값에 더 가까운 값이 나올까요? input:mm(30),p(12),p1(5),p2(10),p3(20); var:j(0), k(0), 월(0), 일(0), 요일(0), endtime(0), sum1(0), sum2(0), sum3(0), ma1(0), ma2(0), ma3(0); array:oo[100](0), hh[100](0), ll[100](0), cc[100](0); 월 = int(date/100)-int(date/10000)*100; //최종거래일 여부를 판단하기 위한 변수들 일 = date - int(date/100)*100; 요일 = DayOfWeek(date); var1 = mm/BarInterval(); //계산할 주기 if dayindex()==0 then var2 = 0; if int(date[1]/10000) == int(date/10000) and //연초개장일에는 10시 장개시, 15시15분 장종료 dayindex()==0 and stime==100000 then var2 = 10000; //수능시험일등 10시 개장시 1시간 연장 반영 if ((월 % 3 == 0 and CodeCategory() == 4) //선물종목일 경우 3,6,9,12월 or CodeCategory() > 4) //옵션종목일 경우 매월 and 일 >= 8 and 일 <= 14 //두번째 and 요일 == 4 //목요일 then endtime = 145000 - (var1 * 100) + 1; //최종거래일의 경우 정확하게 14:50에 끝나지 않음 else endtime = 151500 + var2; //위에서 1시간 연장시 장종료시간 k = k + 1; if (dayindex()+1)%var1 == 0 or time >= endtime then { for j = 99 downto 1 { oo[j] = oo[j-1]; hh[j] = hh[j-1]; ll[j] = ll[j-1]; cc[j] = cc[j-1]; } oo[0] = o[k-1]; hh[0] = highest(h,k); ll[0] = lowest(l,k); cc[0] = c; k = 0; #------------# # 이동평균 # #------------# sum1 = 0; sum2 = 0; sum3 = 0; for j = 0 to max(p1,p2,p3)-1 { if j <= p1-1 then sum1 = sum1 + cc[j]; if j <= p2-1 then sum2 = sum2 + cc[j]; if j <= p3-1 then sum3 = sum3 + cc[j]; } ma1 = sum1 / p1; ma2 = sum2 / p2; ma3 = sum3 / p3; } plot1(ma1); plot2(ma2); plot3(ma3);