커뮤니티

행복; 수식 작성 바랍니다

프로필 이미지
행복한가방
2011-07-18 03:26:50
815
글번호 40996
답변완료
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 보내주신 < 아래 > 의 답변 잘 받았습니다 보내주신 답변 대로 한 결과 A안, B안, C안은 제대로 지표가 나오는데 D안은 제대로 지표가 나오지 않습니다 D안은 지수이동평균인데 이것 때문에 지표가 틀리는 것인지요? C안은 단순이동평균인데 C안은 지표가 제대로 나오고 있습니다 어떻게 수정해야 하는지요? 참고로 A안, B안, C안, D안에 대하여 배열함수로 plots을 그린 지표와 단순하게 더한 합을 plots으로 그린 지표와 비교할 수 있도록 지표식을 작성하였으니 비교분석 바랍니다 //=========================< A안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var1 = Disparity(P*1)*1; Var2 = Disparity(P*2)*2; Var3 = Disparity(P*3)*3; Var4 = Disparity(P*4)*4; Var5 = Disparity(P*5)*5; Var6 = Disparity(P*6)*6; Var7 = Disparity(P*7)*7; Var8 = Disparity(P*8)*8; Var9 = Disparity(P*9)*9; Var10 = Disparity(P*10)*10; var33 = Var1+Var2+Var3+Var4+Var5+Var6+Var7+Var8+Var9+Var10; Plot1(var1); Plot2(Var2); Plot3(Var3); Plot4(Var4); Plot5(Var5); Plot6(Var6); Plot7(Var7); Plot8(Var8); Plot9(Var9); Plot10(Var10); plot33(Var33); //=========================< B안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var11 = ( Disparity(P*1) + Disparity(P*1)[1] ) * 1; Var12 = ( Disparity(P*2) + Disparity(P*2)[1] ) * 2; Var13 = ( Disparity(P*3) + Disparity(P*3)[1] ) * 3; Var14 = ( Disparity(P*4) + Disparity(P*4)[1] ) * 4; Var15 = ( Disparity(P*5) + Disparity(P*5)[1] ) * 5; Var16 = ( Disparity(P*6) + Disparity(P*6)[1] ) * 6; Var17 = ( Disparity(P*7) + Disparity(P*7)[1] ) * 7; Var18 = ( Disparity(P*8) + Disparity(P*8)[1] ) * 8; Var19 = ( Disparity(P*9) + Disparity(P*9)[1] ) * 9; Var20 = ( Disparity(P*10) + Disparity(P*10)[1] ) * 10; var44 = Var11+Var12+Var13+Var14+Var15+Var16+Var17+Var18+Var19+Var20; Plot11(var11); Plot12(Var12); Plot13(Var13); Plot14(Var14); Plot15(Var15); Plot16(Var16); Plot17(Var17); Plot18(Var18); Plot19(Var19); Plot20(Var20); plot44(Var44); //=========================< C안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var21 = Ma ( Disparity(P*1), 2 ) * 1; Var22 = Ma ( Disparity(P*2), 2 ) * 2; Var23 = Ma ( Disparity(P*3), 2 ) * 3; Var24 = Ma ( Disparity(P*4), 2 ) * 4; Var25 = Ma ( Disparity(P*5), 2 ) * 5; Var26 = Ma ( Disparity(P*6), 2 ) * 6; Var27 = Ma ( Disparity(P*7), 2 ) * 7; Var28 = Ma ( Disparity(P*8), 2 ) * 8; Var29 = Ma ( Disparity(P*9), 2 ) * 9; Var30 = Ma ( Disparity(P*10), 2 ) * 10; var55 = Var21+Var22+Var23+Var24+Var25+Var26+Var27+Var28+Var29+Var30; Plot21(var21); Plot22(Var22); Plot23(Var23); Plot24(Var24); Plot25(Var25); Plot26(Var26); Plot27(Var27); Plot28(Var28); Plot29(Var29); Plot30(Var20); plot55(Var55); //=========================< D안 >============================= // D안 만 count끝을 2까지만 하였습니다 input : P(20), count끝(2); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { // Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var31 = Ema ( Disparity(P*1), 2 ) * 1; Var32 = Ema ( Disparity(P*2), 2 ) * 2; /* Var33 = Ema ( Disparity(P*3), 2 ) * 3; Var34 = Ema ( Disparity(P*4), 2 ) * 4; Var35 = Ema ( Disparity(P*5), 2 ) * 5; Var36 = Ema ( Disparity(P*6), 2 ) * 6; Var37 = Ema ( Disparity(P*7), 2 ) * 7; Var38 = Ema ( Disparity(P*8), 2 ) * 8; Var39 = Ema ( Disparity(P*9), 2 ) * 9; Var40 = Ema ( Disparity(P*10), 2 ) * 10; */ var66 = Var31+Var32/*+Var33+Var34+Var35+Var36+Var37+Var38+Var39+Var40*/; Plot31(var31); Plot32(Var32); /* Plot33(Var33); Plot34(Var34); Plot35(Var35); Plot36(Var36); Plot37(Var37); Plot38(Var38); Plot39(Var39); Plot40(Var40); */ plot66(Var66); ========================< 아래 >========================================= 안녕하세요 예스스탁입니다. 아래와 같이 작성하시면 모든 방에 값이 저장되지 않습니다. Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 아래와 같이 for문을 이용해 각방에 값을 할당하셔야 합니다. for count = 1 to 100{ Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } dis[1]에는 20이격도값 dis[2]에는 40이격도값 ... dis[100]에는 2000 이격도값 아래는 수정한 식입니다. input : P(20); Var : count(0); Array : Dis[101](0),emaDis[101](0); // 방 개수를 (100 + 1)로 하였습니다 // Dis[1] = Disparity(P); // dis[2] = Disparity(P*2); for count = 1 to 100{ Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } // emaDis[1] = ema(Disparity(P),2); // emadis[2] = ema(Disparity(P*2),2); Value5 = 0 ; For Count = 1 To 100 // 1 부터 100 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일*/ 즐거운 하루되세요 > 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 수식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 보내주신 < 아래 > 의 답변 잘 받았습니다 배열변수를 배우게 되어 기쁨니다 근데 < 아래 > 의 답변 중에서 count 가 1 부터 2 가 아니고 1 부터 100 일 때를 대비하여 ---------- ----------- input : P(20); Var : count(0); Array : Dis[101](0),emaDis[101](0); // 방 개수를 (100 + 1)로 하였습니다 // Dis[1] = Disparity(P); // dis[2] = Disparity(P*2); Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 // emaDis[1] = ema(Disparity(P),2); // emadis[2] = ema(Disparity(P*2),2); emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 Value5 = 0 ; For Count = 1 To 100 // 1 부터 100 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일 로 하였더니 모두 0 (제로) 가 나옵니다 어떤 부분이 잘못 되었는지요? ============================< 아래 >============================ 안녕하세요 예스스탁입니다. 다른 수식과 다르게 value의 for문을 보시면 값이 1부터 2까지 증가되게 되어 있습니다. 함수의 기간을 가변적으로 사용하시게 되면 최초에 함수에 할당된 메모리와 차이가 발생되어 깨지게 되므로 작성하신 식과 같이 이격도함수의 기간을 for문으로 가변적으로 가져가시면 안됩니다. 또하나는 ema의 기준값의 변경에 있습니다. 이동평균값과 같은 함수의 기준값을 변동적으로 하면 마찬가지 현상이 일어납니다. 함수의 기준값을 변경하시거나 기간등을 가변적으로 가져가실때는 배열변수등을 이용하해서 값을 변수에 할당하신후에 사용하셔야 합니다. input : P(20); Var : count(0); Array : Dis[3](0),emaDis[3](0); Dis[1] = Disparity(P); dis[2] = Disparity(P*2); emaDis[1] = ema(Disparity(P),2); emadis[2] = ema(Disparity(P*2),2); Value1 = 0 ; For Count = 1 To 1 { Value1 = Value1 /*A안*/ + Dis[count]* count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot1(Value1); // 20일 Value2 = 0 ; For Count = 2 To 2 { Value2 = Value2 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma(Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot2(Value2); // 40일 Value3 = Value1 + Value2 ; Plot3(Value3); // 20일 + 40일 For Count = 2 To 2 { Value4 = Value1 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot4(Value4); // 20일 + 40일 Value5 = 0 ; For Count = 1 To 2 { Value5 = Value5 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일 즐거운 하루되세요 > 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 수식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 < 아래 >의 수식은 for 문에 대한 수식입니다 value3, value4, value5 의 수치가 같이 나와야 하는데 차이가 납니다 Value1 ~ Value5 뒤에 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count 중에서 각각을 안을 별개로 하나씩 적용하였습니다 A안을 적용하면 value3 == value4 == value5 의 수치가 모두 같게 나오는데 B안을 적용하면 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 C안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 D안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 for 문을 교과서적으로 활용하였지만 B안, C안, D안에서 value5 의 수치가 value3, value4 와 다르게 나옵니다 물론 value3 와 value4는 같은 수치가 나오고요~ 제가 수식을 잘못 사용한 것인지 바로잡아 주시고 잘못된 이유가 있다면 알려주시기 바랍니다~ =================< 아래 >========================== Var : count(0) ; Value1 = 0 ; For Count = 1 To 1 { Value1 = Value1 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot1(Value1); // 20일 Value2 = 0 ; For Count = 2 To 2 { Value2 = Value2 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot2(Value2); // 40일 Value3 = Value1 + Value2 ; Plot3(Value3); // 20일 + 40일 For Count = 2 To 2 { Value4 = Value1 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot4(Value4); // 20일 + 40일 Value5 = 0 ; For Count = 1 To 2 { Value5 = Value5 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot5(Value5); // 20일 + 40일
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-07-18 15:12:41

> 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 수식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 보내주신 < 아래 > 의 답변 잘 받았습니다 보내주신 답변 대로 한 결과 A안, B안, C안은 제대로 지표가 나오는데 D안은 제대로 지표가 나오지 않습니다 D안은 지수이동평균인데 이것 때문에 지표가 틀리는 것인지요? C안은 단순이동평균인데 C안은 지표가 제대로 나오고 있습니다 어떻게 수정해야 하는지요? 참고로 A안, B안, C안, D안에 대하여 배열함수로 plots을 그린 지표와 단순하게 더한 합을 plots으로 그린 지표와 비교할 수 있도록 지표식을 작성하였으니 비교분석 바랍니다 //=========================< A안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var1 = Disparity(P*1)*1; Var2 = Disparity(P*2)*2; Var3 = Disparity(P*3)*3; Var4 = Disparity(P*4)*4; Var5 = Disparity(P*5)*5; Var6 = Disparity(P*6)*6; Var7 = Disparity(P*7)*7; Var8 = Disparity(P*8)*8; Var9 = Disparity(P*9)*9; Var10 = Disparity(P*10)*10; var33 = Var1+Var2+Var3+Var4+Var5+Var6+Var7+Var8+Var9+Var10; Plot1(var1); Plot2(Var2); Plot3(Var3); Plot4(Var4); Plot5(Var5); Plot6(Var6); Plot7(Var7); Plot8(Var8); Plot9(Var9); Plot10(Var10); plot33(Var33); //=========================< B안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var11 = ( Disparity(P*1) + Disparity(P*1)[1] ) * 1; Var12 = ( Disparity(P*2) + Disparity(P*2)[1] ) * 2; Var13 = ( Disparity(P*3) + Disparity(P*3)[1] ) * 3; Var14 = ( Disparity(P*4) + Disparity(P*4)[1] ) * 4; Var15 = ( Disparity(P*5) + Disparity(P*5)[1] ) * 5; Var16 = ( Disparity(P*6) + Disparity(P*6)[1] ) * 6; Var17 = ( Disparity(P*7) + Disparity(P*7)[1] ) * 7; Var18 = ( Disparity(P*8) + Disparity(P*8)[1] ) * 8; Var19 = ( Disparity(P*9) + Disparity(P*9)[1] ) * 9; Var20 = ( Disparity(P*10) + Disparity(P*10)[1] ) * 10; var44 = Var11+Var12+Var13+Var14+Var15+Var16+Var17+Var18+Var19+Var20; Plot11(var11); Plot12(Var12); Plot13(Var13); Plot14(Var14); Plot15(Var15); Plot16(Var16); Plot17(Var17); Plot18(Var18); Plot19(Var19); Plot20(Var20); plot44(Var44); //=========================< C안 >============================= input : P(20), count끝(10); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 // emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var21 = Ma ( Disparity(P*1), 2 ) * 1; Var22 = Ma ( Disparity(P*2), 2 ) * 2; Var23 = Ma ( Disparity(P*3), 2 ) * 3; Var24 = Ma ( Disparity(P*4), 2 ) * 4; Var25 = Ma ( Disparity(P*5), 2 ) * 5; Var26 = Ma ( Disparity(P*6), 2 ) * 6; Var27 = Ma ( Disparity(P*7), 2 ) * 7; Var28 = Ma ( Disparity(P*8), 2 ) * 8; Var29 = Ma ( Disparity(P*9), 2 ) * 9; Var30 = Ma ( Disparity(P*10), 2 ) * 10; var55 = Var21+Var22+Var23+Var24+Var25+Var26+Var27+Var28+Var29+Var30; Plot21(var21); Plot22(Var22); Plot23(Var23); Plot24(Var24); Plot25(Var25); Plot26(Var26); Plot27(Var27); Plot28(Var28); Plot29(Var29); Plot30(Var20); plot55(Var55); //=========================< D안 >============================= // D안 만 count끝을 2까지만 하였습니다 input : P(20), count끝(2); Var : count(0); Array : Dis[11](0),emaDis[11](0); // 방 개수를 (10 + 1)로 하였습니다 for count = 1 to count끝 { // Dis[count] = Disparity(P*count); // 1 부터 10 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } Value5 = 0 ; For Count = 1 To count끝 // 1 부터 10 까지를 대비하였습니다 { Value5 = Value5 #/*A안*/ // + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot99(Value5); Var31 = Ema ( Disparity(P*1), 2 ) * 1; Var32 = Ema ( Disparity(P*2), 2 ) * 2; /* Var33 = Ema ( Disparity(P*3), 2 ) * 3; Var34 = Ema ( Disparity(P*4), 2 ) * 4; Var35 = Ema ( Disparity(P*5), 2 ) * 5; Var36 = Ema ( Disparity(P*6), 2 ) * 6; Var37 = Ema ( Disparity(P*7), 2 ) * 7; Var38 = Ema ( Disparity(P*8), 2 ) * 8; Var39 = Ema ( Disparity(P*9), 2 ) * 9; Var40 = Ema ( Disparity(P*10), 2 ) * 10; */ var66 = Var31+Var32/*+Var33+Var34+Var35+Var36+Var37+Var38+Var39+Var40*/; Plot31(var31); Plot32(Var32); /* Plot33(Var33); Plot34(Var34); Plot35(Var35); Plot36(Var36); Plot37(Var37); Plot38(Var38); Plot39(Var39); Plot40(Var40); */ plot66(Var66); ========================< 아래 >========================================= 안녕하세요 예스스탁입니다. 아래와 같이 작성하시면 모든 방에 값이 저장되지 않습니다. Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 아래와 같이 for문을 이용해 각방에 값을 할당하셔야 합니다. for count = 1 to 100{ Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } dis[1]에는 20이격도값 dis[2]에는 40이격도값 ... dis[100]에는 2000 이격도값 아래는 수정한 식입니다. input : P(20); Var : count(0); Array : Dis[101](0),emaDis[101](0); // 방 개수를 (100 + 1)로 하였습니다 // Dis[1] = Disparity(P); // dis[2] = Disparity(P*2); for count = 1 to 100{ Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 } // emaDis[1] = ema(Disparity(P),2); // emadis[2] = ema(Disparity(P*2),2); Value5 = 0 ; For Count = 1 To 100 // 1 부터 100 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count #/*B안*/ + ( Dis[count] + Dis[count][1] ) * count #/*C안*/ + ma ( Dis[count], 2 ) * count #/*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일*/ 즐거운 하루되세요 > 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 수식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 보내주신 < 아래 > 의 답변 잘 받았습니다 배열변수를 배우게 되어 기쁨니다 근데 < 아래 > 의 답변 중에서 count 가 1 부터 2 가 아니고 1 부터 100 일 때를 대비하여 ---------- ----------- input : P(20); Var : count(0); Array : Dis[101](0),emaDis[101](0); // 방 개수를 (100 + 1)로 하였습니다 // Dis[1] = Disparity(P); // dis[2] = Disparity(P*2); Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다 // emaDis[1] = ema(Disparity(P),2); // emadis[2] = ema(Disparity(P*2),2); emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다 Value5 = 0 ; For Count = 1 To 100 // 1 부터 100 까지를 대비하였습니다 { Value5 = Value5 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일 로 하였더니 모두 0 (제로) 가 나옵니다 어떤 부분이 잘못 되었는지요? ============================< 아래 >============================ 안녕하세요 예스스탁입니다. 다른 수식과 다르게 value의 for문을 보시면 값이 1부터 2까지 증가되게 되어 있습니다. 함수의 기간을 가변적으로 사용하시게 되면 최초에 함수에 할당된 메모리와 차이가 발생되어 깨지게 되므로 작성하신 식과 같이 이격도함수의 기간을 for문으로 가변적으로 가져가시면 안됩니다. 또하나는 ema의 기준값의 변경에 있습니다. 이동평균값과 같은 함수의 기준값을 변동적으로 하면 마찬가지 현상이 일어납니다. 함수의 기준값을 변경하시거나 기간등을 가변적으로 가져가실때는 배열변수등을 이용하해서 값을 변수에 할당하신후에 사용하셔야 합니다. input : P(20); Var : count(0); Array : Dis[3](0),emaDis[3](0); Dis[1] = Disparity(P); dis[2] = Disparity(P*2); emaDis[1] = ema(Disparity(P),2); emadis[2] = ema(Disparity(P*2),2); Value1 = 0 ; For Count = 1 To 1 { Value1 = Value1 /*A안*/ + Dis[count]* count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot1(Value1); // 20일 Value2 = 0 ; For Count = 2 To 2 { Value2 = Value2 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma(Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot2(Value2); // 40일 Value3 = Value1 + Value2 ; Plot3(Value3); // 20일 + 40일 For Count = 2 To 2 { Value4 = Value1 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count] * count ; } Plot4(Value4); // 20일 + 40일 Value5 = 0 ; For Count = 1 To 2 { Value5 = Value5 /*A안*/ + Dis[count] * count /*B안*/ + ( Dis[count] + Dis[count][1] ) * count /*C안*/ + ma ( Dis[count], 2 ) * count /*D안*/ + emaDis[count]* count ; } Plot5(Value5); // 20일 + 40일 즐거운 하루되세요 > 행복한가방 님이 쓴 글입니다. > 제목 : 행복; 수식 작성 바랍니다 > 한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 < 아래 >의 수식은 for 문에 대한 수식입니다 value3, value4, value5 의 수치가 같이 나와야 하는데 차이가 납니다 Value1 ~ Value5 뒤에 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count 중에서 각각을 안을 별개로 하나씩 적용하였습니다 A안을 적용하면 value3 == value4 == value5 의 수치가 모두 같게 나오는데 B안을 적용하면 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 C안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 D안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다 for 문을 교과서적으로 활용하였지만 B안, C안, D안에서 value5 의 수치가 value3, value4 와 다르게 나옵니다 물론 value3 와 value4는 같은 수치가 나오고요~ 제가 수식을 잘못 사용한 것인지 바로잡아 주시고 잘못된 이유가 있다면 알려주시기 바랍니다~ =================< 아래 >========================== Var : count(0) ; Value1 = 0 ; For Count = 1 To 1 { Value1 = Value1 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot1(Value1); // 20일 Value2 = 0 ; For Count = 2 To 2 { Value2 = Value2 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot2(Value2); // 40일 Value3 = Value1 + Value2 ; Plot3(Value3); // 20일 + 40일 For Count = 2 To 2 { Value4 = Value1 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot4(Value4); // 20일 + 40일 Value5 = 0 ; For Count = 1 To 2 { Value5 = Value5 /*A안*/ + Disparity ( 20 * count ) * count /*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count /*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count /*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count ; } Plot5(Value5); // 20일 + 40일