커뮤니티

타주기 이평식 구하기

프로필 이미지
ifwill
2015-10-03 23:44:27
208
글번호 90925
답변완료
항상 많은 도움을 주심에 감사드립니다. 5분봉 차트에 15분봉, 30분봉, 60분봉, 120분봉, 240분봉, 일봉, 주봉, 월봉의 단순20일 이평선을 표시하고 싶습니다. 그리고 차트에 위의 조건으로 만든 지표식을 추가하고 차트에 위 주기의 참조데이타를 모두 불러와야 되는지 궁금합니다. 참조데이타 불러오지 않고 5분차트에 위에서 만든 지표만 추가하면 안되는지,,,,,
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-05 14:55:30

안녕하세요 예스스탁입니다. 1번식은 수식 자체에서 타주기 이평을 계산하는 것은 아래와 같습니다. 다만 차트 자체에서 지정한 주기로 구분해서 값을 저장해 계산하므로 차트에서 해당 주기의 이평을 계산할만큼의 데이터가 충족되지 못하면 이평값을 계산해서 그리질 못합니다. 15분봉에서는 차트의 최대 조회갯수인 10000개봉 띄우셔도 월간20이평까지는 계산을 하진 못합니다. 이럴경우에는 참조데이터로 해당 주기를 차트에 추가하고 지표적용해서 보셔야 합니다. 1번은 수식에서 타주기 이평을 계산하는것이고 2번식은 참조데이터를 이용하는 식입니다. 이용에 참고하시기 바랍니다. 1번 input : P(20); var : cnt(0), TF1(0),TF2(0),TF3(0),TF4(0),TF5(0),TT(0); var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0),sum7(0),sum8(0); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0),mav7(0),mav8(0); Array : C1[50](0),C2[50](0),C3[50](0),C4[50](0),C5[50](0),C6[50](0),C7[50](0),C8[50](0); if date != date[1] Then TT = TimeToMinutes(stime); TF1 = (TimeToMinutes(stime)-TT)%15; TF2 = (TimeToMinutes(stime)-TT)%30; TF3 = (TimeToMinutes(stime)-TT)%60; TF4 = (TimeToMinutes(stime)-TT)%120; TF5 = (TimeToMinutes(stime)-TT)%240; if date != date or (date == date and TF1 < TF1[1]) Then{ for cnt = 0 to 49{ C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if date != date or (date == date and TF2 < TF2[1]) Then{ for cnt = 0 to 49{ C2[cnt] = C2[cnt-1][1]; } } C2[0] = C; if date != date or (date == date and TF3 < TF3[1]) Then{ for cnt = 0 to 49{ C3[cnt] = C3[cnt-1][1]; } } C3[0] = C; if date != date or (date == date and TF4 < TF4[1]) Then{ for cnt = 0 to 49{ C4[cnt] = C4[cnt-1][1]; } } C4[0] = C; if date != date or (date == date and TF5 < TF5[1]) Then{ for cnt = 0 to 49{ C5[cnt] = C5[cnt-1][1]; } } C5[0] = C; if C1[P-1] > 0 then{ sum1 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; } mav1 = sum1/P; plot1(mav1,"15분이평"); } if C2[P-1] > 0 then{ sum2 = 0; for cnt = 0 to P-1{ sum2 = sum2+C2[cnt]; } mav2 = sum2/P; plot2(mav2,"30분이평"); } if C3[P-1] > 0 then{ sum3 = 0; for cnt = 0 to P-1{ sum3 = sum3+C3[cnt]; } mav3 = sum3/P; plot3(mav3,"60분이평"); } if C4[P-1] > 0 then{ sum4 = 0; for cnt = 0 to P-1{ sum4 = sum4+C4[cnt]; } mav4 = sum4/P; plot4(mav4,"120분이평"); } if C5[P-1] > 0 then{ sum5 = 0; for cnt = 0 to P-1{ sum5 = sum5+C5[cnt]; } mav5 = sum5/P; plot5(mav5,"240분이평"); } if date != date[1] Then{ for cnt = 0 to 49{ C6[cnt] = C6[cnt-1][1]; } } C6[0] = C; if C6[P-1] > 0 Then{ sum6 = 0; for cnt = 0 to P-1{ sum6 = sum6+DayClose(cnt); } mav6 = sum6/P; plot6(mav6,"일간이평"); } if DayOfWeek(sdate) < DayOfWeek(date[1]) Then{ for cnt = 0 to 49{ C7[cnt] = C7[cnt-1][1]; } } C7[0] = C; if C7[P-1] > 0 Then{ sum7 = 0; for cnt = 0 to P-1{ sum7 = sum7+C7[cnt]; } mav7 = sum7/P; plot7(mav7,"주간이평"); } if date > date+30 Then{ for cnt = 0 to 49{ C8[cnt] = C8[cnt-1][1]; } } C8[0] = C; if C8[P-1] > 0 Then{ sum8 = 0; for cnt = 0 to P-1{ sum8 = sum8+C8[cnt]; } mav8 = sum8/P; plot8(mav8,"월간이평"); } 2번 input : P(20); plot1(data2(ma(c,P)),"data2 이평"); plot2(data3(ma(c,P)),"data3 이평"); plot3(data4(ma(c,P)),"data4 이평"); plot4(data5(ma(c,P)),"data5 이평"); plot5(data6(ma(c,P)),"data6 이평"); plot6(data7(ma(c,P)),"data7 이평"); plot7(data8(ma(c,P)),"data8 이평"); plot8(data9(ma(c,P)),"data9 이평"); 즐거운 하루되세요 > ifwill 님이 쓴 글입니다. > 제목 : 타주기 이평식 구하기 > 항상 많은 도움을 주심에 감사드립니다. 5분봉 차트에 15분봉, 30분봉, 60분봉, 120분봉, 240분봉, 일봉, 주봉, 월봉의 단순20일 이평선을 표시하고 싶습니다. 그리고 차트에 위의 조건으로 만든 지표식을 추가하고 차트에 위 주기의 참조데이타를 모두 불러와야 되는지 궁금합니다. 참조데이타 불러오지 않고 5분차트에 위에서 만든 지표만 추가하면 안되는지,,,,,