커뮤니티
문의 (DayMA)
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);
다음글
이전글