커뮤니티

문의 (DayMA)

프로필 이미지
TRF
2013-10-28 15:02:25
158
글번호 68918
답변완료
참조데이타에서 DayClose를 모두 CLOSED로 바꾼후 적용해보았는데, M60D만 지표상에 표기가 안됩니다. 2대의 컴퓨터 모두 동일합니다. 물론 과거데이타가 60일치 이상입니다. 검토해주시면 감사하겠습니다. VARS: M5D(0, DATA2), M13D(0, DATA2), M20D(0, DATA2), M33D(0, DATA2), M60D(0, DATA2); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DAY MA // M5D = DATA2( (CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 5); M13D = DATA2( (CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6)+ CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 13); M20D = DATA2( (CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13)+ CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3)+ CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 20); M33D = DATA2( (CLOSED(32) + CLOSED(31) + CLOSED(30) + CLOSED(29) + CLOSED(28) + CLOSED(27) + CLOSED(26) + CLOSED(25) + CLOSED(24) + CLOSED(23) + CLOSED(22) + CLOSED(21) + CLOSED(20) + CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13) + CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0)) / 33); M60D = DATA2( (CLOSED(59) + CLOSED(58) + CLOSED(57) + CLOSED(56) + CLOSED(55) + CLOSED(54) + CLOSED(53) + CLOSED(52) + CLOSED(51) + CLOSED(50) + CLOSED(49) + CLOSED(48) + CLOSED(47) + CLOSED(46) + CLOSED(45) + CLOSED(44) + CLOSED(43) + CLOSED(42) + CLOSED(41) + CLOSED(40) + CLOSED(39) + CLOSED(38) + CLOSED(37) + CLOSED(36) + CLOSED(35) + CLOSED(34) + CLOSED(33) + CLOSED(32) + CLOSED(31) + CLOSED(30) + CLOSED(29) + CLOSED(28) + CLOSED(27) + CLOSED(26) + CLOSED(25) + CLOSED(24) + CLOSED(23) + CLOSED(22) + CLOSED(21) + CLOSED(20) + CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13) + CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0)) / 60); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // PLOTTING // Plot11(M5D, "M5D", RGB(0,255,0), DEF, 1); Plot12(M13D, "M13D", RGB(0,255,255), DEF, 1); Plot13(M20D, "M20D", RGB(255,102,204), DEF, 1); Plot14(M33D, "M33D", RGB(255,0,102), DEF, 1); Plot15(M60D, "M60D", RGB(255,255,255), DEF, 1);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-10-29 11:39:52

안녕하세요 예스스탁입니다. CloseD함수가 사용자함수로 되어 있는데 수식을 열어 보시면 배열의 방수가 50개로 되어 있어 50일 이전의 데이터는 가지고 올수 없게 되어 있습니다. Array : CloseArray[50](-1); 기본제공함수는 사용자분이 수정을 할수 없으므로 따로 함수를 만들어 배열갯수를 넉넉히 지정하셔서 사용하셔야 합니다. 사용자함수명: CD Inputs : DaysAgo(Numeric); Array : CloseArray[99](-1); If DataCompress <= 2 Then { If Date > Date[1] Then Begin For Var1 = 49 DownTo 1 Begin CloseArray[Var1] = CloseArray[Var1 - 1]; End; CloseArray[0] = Close[1]; End; If DaysAgo < 50 AND DaysAgo > 0 && CloseArray[DaysAgo - 1] != -1 Then CD = CloseArray[DaysAgo - 1]; If DaysAgo == 0 Then CD = Close; } else { CD = Close[DaysAgo]; } 혹은 아래와 같이 직접 수식에서 일봉값 계산해서 사용하시면 됩니다. 위 함수를 이용하시는 것보다 아래와 같이 작성하시면 이평계산이 더욱 편합니다. input : P1(5),P2(13),P3(20),P4(33),P5(60); var : Sum1(0,data2),Sum2(0,data2),Sum3(0,data2),Sum4(0,data2),Sum5(0,data2); VARS: cnt(0),M5D(0, DATA2), M13D(0, DATA2), M20D(0, DATA2), M33D(0, DATA2), M60D(0, DATA2); Array : CC[100](0,data2); // data2 DAY MA if data2(date != date[1]) Then{ for cnt = 0 to 99{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = data2(c); sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; for cnt = 0 to P5-1{ if cnt < P1 and CC[P1-1] > 0 Then sum1 = sum1+CC[cnt]; if cnt < P2 and CC[P2-1] > 0 Then sum2 = sum2+CC[cnt]; if cnt < P3 and CC[P3-1] > 0 Then sum3 = sum3+CC[cnt]; if cnt < P4 and CC[P4-1] > 0 Then sum4 = sum4+CC[cnt]; if cnt < P5 and CC[P5-1] > 0 Then sum5 = sum5+CC[cnt]; } M5D = sum1/P1; M13D = sum2/P2; M20D = sum3/P3; M33D = sum4/P4; M60D = sum5/P5; Plot11(M5D, "M5D", RGB(0,255,0), DEF, 1); Plot12(M13D, "M13D", RGB(0,255,255), DEF, 1); Plot13(M20D, "M20D", RGB(255,102,204), DEF, 1); Plot14(M33D, "M33D", RGB(255,0,102), DEF, 1); Plot15(M60D, "M60D", RGB(255,255,255), DEF, 1); 즐거운 하루되세요 > TRF 님이 쓴 글입니다. > 제목 : 문의 (DayMA) > 참조데이타에서 DayClose를 모두 CLOSED로 바꾼후 적용해보았는데, M60D만 지표상에 표기가 안됩니다. 2대의 컴퓨터 모두 동일합니다. 물론 과거데이타가 60일치 이상입니다. 검토해주시면 감사하겠습니다. VARS: M5D(0, DATA2), M13D(0, DATA2), M20D(0, DATA2), M33D(0, DATA2), M60D(0, DATA2); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DAY MA // M5D = DATA2( (CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 5); M13D = DATA2( (CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6)+ CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 13); M20D = DATA2( (CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13)+ CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3)+ CLOSED(2) + CLOSED(1) + CLOSED(0) ) / 20); M33D = DATA2( (CLOSED(32) + CLOSED(31) + CLOSED(30) + CLOSED(29) + CLOSED(28) + CLOSED(27) + CLOSED(26) + CLOSED(25) + CLOSED(24) + CLOSED(23) + CLOSED(22) + CLOSED(21) + CLOSED(20) + CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13) + CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0)) / 33); M60D = DATA2( (CLOSED(59) + CLOSED(58) + CLOSED(57) + CLOSED(56) + CLOSED(55) + CLOSED(54) + CLOSED(53) + CLOSED(52) + CLOSED(51) + CLOSED(50) + CLOSED(49) + CLOSED(48) + CLOSED(47) + CLOSED(46) + CLOSED(45) + CLOSED(44) + CLOSED(43) + CLOSED(42) + CLOSED(41) + CLOSED(40) + CLOSED(39) + CLOSED(38) + CLOSED(37) + CLOSED(36) + CLOSED(35) + CLOSED(34) + CLOSED(33) + CLOSED(32) + CLOSED(31) + CLOSED(30) + CLOSED(29) + CLOSED(28) + CLOSED(27) + CLOSED(26) + CLOSED(25) + CLOSED(24) + CLOSED(23) + CLOSED(22) + CLOSED(21) + CLOSED(20) + CLOSED(19) + CLOSED(18) + CLOSED(17) + CLOSED(16) + CLOSED(15) + CLOSED(14) + CLOSED(13) + CLOSED(12) + CLOSED(11) + CLOSED(10) + CLOSED(9) + CLOSED(8) + CLOSED(7) + CLOSED(6) + CLOSED(5) + CLOSED(4) + CLOSED(3) + CLOSED(2) + CLOSED(1) + CLOSED(0)) / 60); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // PLOTTING // Plot11(M5D, "M5D", RGB(0,255,0), DEF, 1); Plot12(M13D, "M13D", RGB(0,255,255), DEF, 1); Plot13(M20D, "M20D", RGB(255,102,204), DEF, 1); Plot14(M33D, "M33D", RGB(255,0,102), DEF, 1); Plot15(M60D, "M60D", RGB(255,255,255), DEF, 1);