커뮤니티

수식 문의 드립니다.

프로필 이미지
부활
2025-03-07 18:32:58
361
글번호 188899
답변완료
첨부 파일은 문의 후 제가 수정하여 작성한 것인데 주봉 60이평선 이상 부터는 차트에 표시되지 않습니다. 확인 후 수정해 주세요
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-03-10 15:56:10

안녕하세요 예스스탁입니다. 1 주간 시고저종가를 최대 100개만 저장하게 되어 있는데 120주 내용이 계산됩니다. 배열을 200개로 늘려드립니다. 2 차트에 지정한 n주의 데이터를 계산할 만큼 데이터가 충분하지 않으면 해당 기간은 계산되지 못합니다. 3 input : P(5); var : cnt(0); var : sumV1(0),sumV2(0), mav1(0),mav2(0),diff(0),value(0); Array : WC[200](0),WH[200](0),WO[200](0),wl[200](0); if bdate != Bdate[1] and DayOfWeek(Bdate) <= DayOfWeek(Bdate[1]) Then { For cnt = 199 DownTo 1 { WC[cnt] = WC[cnt-1]; WH[cnt] = WH[cnt-1]; WO[cnt] = WO[cnt-1]; WL[cnt] = WL[cnt-1]; } WH[0] = H; WL[0] = L; WO[0] = O; } WC[0] = C; if WH[0] > 0 and H > WH[0] Then WH[0] = H; if WL[0] > 0 and L < WL[0] Then WL[0] = L; if WC[P] > 0 Then { sumV1 = WO[0]; sumV2 = WO[0]; for cnt = 1 to P-1 { sumV1 = sumV1+WC[cnt]; sumV2 = sumV2+WC[cnt+1]; } maV1 = sumV1 / P; maV2 = sumV2 / P; diff = mav2-mav1; } input : P1(10); var : sumV3(0),sumV4(0), mav3(0),mav4(0),diff1(0),value1(0); if WC[P1] > 0 Then { sumV3 = WO[0]; sumV4 = WO[0]; for cnt = 1 to P1-1 { sumV3 = sumV3+WC[cnt]; sumV4 = sumV4+WC[cnt+1]; } maV3 = sumV3 / P1; maV4 = sumV4 / P1; diff1 = mav4-mav3; } input : P2(20); var : sumV5(0),sumV6(0), mav5(0),mav6(0),diff2(0),value2(0); if WC[P2] > 0 Then { sumV5 = WO[0]; sumV6 = WO[0]; for cnt = 1 to P2-1 { sumV5 = sumV5+WC[cnt]; sumV6 = sumV6+WC[cnt+1]; } maV5 = sumV5 / P2; maV6 = sumV6 / P2; diff2 = mav6-mav5; } input : P3(40); var : sumV7(0),sumV8(0), mav7(0),mav8(0),diff3(0),value3(0); if WC[p3] > 0 Then { sumV7 = WO[0]; sumV8 = WO[0]; for cnt = 1 to P3-1 { sumV7 = sumV7+WC[cnt]; sumV8 = sumV8+WC[cnt+1]; } maV7 = sumV7 / P3; maV8 = sumV8/ P3; diff3 = mav8-mav7; } input : P4(60); var : sumV9(0),sumV10(0), mav9(0),mav10(0),diff4(0),value4(0); if WC[P4] > 0 Then { sumV9 = WO[0]; sumV10 = WO[0]; for cnt = 1 to P4-1 { sumV9 = sumV9+WC[cnt]; sumV10 = sumV10+WC[cnt+1]; } maV9 = sumV9 / P4; maV10 = sumV10/ P4; diff4 = mav10-mav9; } input : P5(120); var : sumV11(0),sumV12(0), mav11(0),mav12(0),diff5(0),value5(0); if WC[P5] > 0 Then { sumV11 = WO[0]; sumV12 = WO[0]; for cnt = 1 to P5-1 { sumV11 = sumV11+WC[cnt]; sumV12 = sumV12+WC[cnt+1]; } maV11 = sumV11 / P5; maV12 = sumV12/ P5; diff5 = mav12-mav11; } plot1(DayHigh(1)-(diff+diff1),"전일고 5,10크로스"); plot2(DayHigh(1)-(diff1+diff2),"전일고 10,20크로스"); plot3(DayHigh(1)+(diff2+diff3),"전일고 20,40크로스"); plot4(DayHigh(1)+(diff3+diff4),"전일고 40,60크로스"); plot5(DayHigh(1)+(diff4+diff5),"전일고 60,120크로스"); plot6(DayHigh(1)-(diff1+diff2+diff3+diff4+diff5),"전일고10~120크로스"); plot7(DayHigh(1)+(diff2+diff3+diff4+diff5),"전일고 20~120크로스"); plot8(DayHigh(1)+(diff3+diff4+diff5),"전일고 40~120크로스"); plot9(DayHigh(1)+(diff4+diff5),"전일고 60~120크로스"); plot10(DayHigh(1)+(diff2+diff3+diff4),"전일고20~60크로스"); plot11(DayLow(1)+(diff+diff1),"전저5,10크로스"); plot12(DayLow(1)+(diff1+diff2),"전저10,20크로스"); plot13(DayLow(1)-(diff2+diff3),"전저20,40크로스"); plot14(DayLow(1)-(diff3+diff4),"전저40,60크로스"); plot15(DayLow(1)-(diff4+diff5),"전저60,120크로스"); plot16(DayLow(1)+(diff1+diff2+diff3+diff4+diff5),"전저10~120크로스"); plot17(DayLow(1)-(diff2+diff3+diff4+diff5),"전저20~120크로스"); plot18(DayLow(1)-(diff3+diff4+diff5),"전저40~120크로스"); plot19(DayLow(1)-(diff4+diff5),"전저60~120크로스"); plot20(DayLow(1)-(diff2+diff3+diff4),"전저20~60크로스"); plot21(DayOpen(),"당일시가"); plot22(DayClose(1),"전일종가"); plot23((DayHigh+daylow)/2,"당일중앙선"); 즐거운 하루되세요 > 부활 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 첨부 파일은 문의 후 제가 수정하여 작성한 것인데 주봉 60이평선 이상 부터는 차트에 표시되지 않습니다. 확인 후 수정해 주세요