커뮤니티
그물망 이평선들의 표준편차를 구할려고 합니다.
2017-03-23 23:53:52
264
글번호 108148
그물망 이평선 50개의 지표식에다 덧붙여서 이평선들의 표준편차를 구할려고 했으나,
간단한 수학식은 제공되지 않아서
표준편차의 공식을 사용해서 값을 구할려고 했지만,
아래와 같이 에러가 계속 나오는데, 이유가 뭘까요?
소스는 아래와 같습니다.
// >>> 소스 코드 <<<
Input : Period(5);
array : NetMa[50](0); //그물망 이평선 값들
var : sngSum(0), sngAvg(0); // 합계, 평균
var : sngV(0), sngSd(0); // 분산, 표준편차
var : i(0), j(0); // 임시 변수
NetMa[0] = ma(C,Period*1);
NetMa[1] = ma(C,Period*2);
NetMa[2] = ma(C,Period*3);
NetMa[3] = ma(C,Period*4);
NetMa[4] = ma(C,Period*5);
NetMa[5] = ma(C,Period*6);
NetMa[6] = ma(C,Period*7);
NetMa[7] = ma(C,Period*8);
NetMa[8] = ma(C,Period*9);
NetMa[9] = ma(C,Period*10);
NetMa[10] = ma(C,Period*11);
NetMa[11] = ma(C,Period*12);
NetMa[12] = ma(C,Period*13);
NetMa[13] = ma(C,Period*14);
NetMa[14] = ma(C,Period*15);
NetMa[15] = ma(C,Period*16);
NetMa[16] = ma(C,Period*17);
NetMa[17] = ma(C,Period*18);
NetMa[18] = ma(C,Period*19);
NetMa[19] = ma(C,Period*20);
NetMa[20] = ma(C,Period*21);
NetMa[21] = ma(C,Period*22);
NetMa[22] = ma(C,Period*23);
NetMa[23] = ma(C,Period*24);
NetMa[24] = ma(C,Period*25);
NetMa[25] = ma(C,Period*26);
NetMa[26] = ma(C,Period*27);
NetMa[27] = ma(C,Period*28);
NetMa[28] = ma(C,Period*29);
NetMa[29] = ma(C,Period*30);
NetMa[30] = ma(C,Period*31);
NetMa[31] = ma(C,Period*32);
NetMa[32] = ma(C,Period*33);
NetMa[33] = ma(C,Period*34);
NetMa[34] = ma(C,Period*35);
NetMa[35] = ma(C,Period*36);
NetMa[36] = ma(C,Period*37);
NetMa[37] = ma(C,Period*38);
NetMa[38] = ma(C,Period*39);
NetMa[39] = ma(C,Period*40);
NetMa[40] = ma(C,Period*41);
NetMa[41] = ma(C,Period*42);
NetMa[42] = ma(C,Period*43);
NetMa[43] = ma(C,Period*44);
NetMa[44] = ma(C,Period*45);
NetMa[45] = ma(C,Period*46);
NetMa[46] = ma(C,Period*47);
NetMa[47] = ma(C,Period*48);
NetMa[48] = ma(C,Period*49);
NetMa[49] = ma(C,Period*50);
for i = 0 to 49
{
sngSum = sngSum + NetMa[i];
}
sngAvg = sngSum / 50.; // 평균 구하기
MessageLog(" Total : %.5f", sngSum);
for j = 0 to 49
{
sngV = sngV + Square(NetMa[j] - sngAvg);
}
sngSd = sqrt(sngV);
MessageLog("mean : %.3f 분산 : %.3f Sd : %.3f ", sngAvg, sngV, sngSd);
plot51( sngAvg, "avg");
plot1(NetMa[0], "MA1");
plot2(NetMa[1], "MA2");
plot3(NetMa[2], "MA3");
plot4(NetMa[3], "MA4");
plot5(NetMa[4], "MA5");
plot6(NetMa[5], "MA6");
plot7(NetMa[6], "MA7");
plot8(NetMa[7], "MA8");
plot9(NetMa[8], "MA9");
plot10(NetMa[9], "MA10");
plot11(NetMa[10], "MA11");
plot12(NetMa[11], "MA12");
plot13(NetMa[12], "MA13");
plot14(NetMa[13], "MA14");
plot15(NetMa[14], "MA15");
plot16(NetMa[15], "MA16");
plot17(NetMa[16], "MA17");
plot18(NetMa[17], "MA18");
plot19(NetMa[18], "MA19");
plot20(NetMa[19], "MA20");
plot21(NetMa[20], "MA21");
plot22(NetMa[21], "MA22");
plot23(NetMa[22], "MA23");
plot24(NetMa[23], "MA24");
plot25(NetMa[24], "MA25");
plot26(NetMa[25], "MA26");
plot27(NetMa[26], "MA27");
plot28(NetMa[27], "MA28");
plot29(NetMa[28], "MA29");
plot30(NetMa[29], "MA30");
plot31(NetMa[30], "MA31");
plot32(NetMa[31], "MA32");
plot33(NetMa[32], "MA33");
plot34(NetMa[33], "MA34");
plot35(NetMa[34], "MA35");
plot36(NetMa[35], "MA36");
plot37(NetMa[36], "MA37");
plot38(NetMa[37], "MA38");
plot39(NetMa[38], "MA39");
plot40(NetMa[39], "MA40");
plot41(NetMa[40], "MA41");
plot42(NetMa[41], "MA42");
plot43(NetMa[42], "MA43");
plot44(NetMa[43], "MA44");
plot45(NetMa[44], "MA45");
plot46(NetMa[45], "MA46");
plot47(NetMa[46], "MA47");
plot48(NetMa[47], "MA48");
plot49(NetMa[48], "MA49");
plot50(NetMa[49], "MA50");
- 1. 20170323_그물망차트에러-01.jpg (0.18 MB)
답변 1
예스스탁 예스스탁 답변
2017-03-24 14:08:07
안녕하세요
예스스탁입니다.
1
50개의 이평이 모두 계산되지 못한 상태(N/A)에서
값을 합치거나 하므로 계산을 할수 없게 됩니다.
NetMa[49]까지 계산되어 모두 0이상의 값을 가진 후부터 계산하고
출력할수 있게 조건을 추가하시면 됩니다.
2
매봉50개 이평의 값을 합산하므로
합산하는 변수는 for문에 들어가기전 에 0으로 초기화 해주셔야 합니다.
3
Input : Period(5);
array : NetMa[50](0); //그물망 이평선 값들
var : sngSum(0), sngAvg(0); // 합계, 평균
var : sngV(0), sngSd(0); // 분산, 표준편차
var : i(0), j(0); // 임시 변수
NetMa[0] = ma(C,Period*1);
NetMa[1] = ma(C,Period*2);
NetMa[2] = ma(C,Period*3);
NetMa[3] = ma(C,Period*4);
NetMa[4] = ma(C,Period*5);
NetMa[5] = ma(C,Period*6);
NetMa[6] = ma(C,Period*7);
NetMa[7] = ma(C,Period*8);
NetMa[8] = ma(C,Period*9);
NetMa[9] = ma(C,Period*10);
NetMa[10] = ma(C,Period*11);
NetMa[11] = ma(C,Period*12);
NetMa[12] = ma(C,Period*13);
NetMa[13] = ma(C,Period*14);
NetMa[14] = ma(C,Period*15);
NetMa[15] = ma(C,Period*16);
NetMa[16] = ma(C,Period*17);
NetMa[17] = ma(C,Period*18);
NetMa[18] = ma(C,Period*19);
NetMa[19] = ma(C,Period*20);
NetMa[20] = ma(C,Period*21);
NetMa[21] = ma(C,Period*22);
NetMa[22] = ma(C,Period*23);
NetMa[23] = ma(C,Period*24);
NetMa[24] = ma(C,Period*25);
NetMa[25] = ma(C,Period*26);
NetMa[26] = ma(C,Period*27);
NetMa[27] = ma(C,Period*28);
NetMa[28] = ma(C,Period*29);
NetMa[29] = ma(C,Period*30);
NetMa[30] = ma(C,Period*31);
NetMa[31] = ma(C,Period*32);
NetMa[32] = ma(C,Period*33);
NetMa[33] = ma(C,Period*34);
NetMa[34] = ma(C,Period*35);
NetMa[35] = ma(C,Period*36);
NetMa[36] = ma(C,Period*37);
NetMa[37] = ma(C,Period*38);
NetMa[38] = ma(C,Period*39);
NetMa[39] = ma(C,Period*40);
NetMa[40] = ma(C,Period*41);
NetMa[41] = ma(C,Period*42);
NetMa[42] = ma(C,Period*43);
NetMa[43] = ma(C,Period*44);
NetMa[44] = ma(C,Period*45);
NetMa[45] = ma(C,Period*46);
NetMa[46] = ma(C,Period*47);
NetMa[47] = ma(C,Period*48);
NetMa[48] = ma(C,Period*49);
NetMa[49] = ma(C,Period*50);
if NetMa[49] > 0 then{
sngSum = 0;
for i = 0 to 49
{
sngSum = sngSum + NetMa[i];
}
sngAvg = sngSum / 50; // 평균 구하기
MessageLog(" Total : %.5f", sngSum);
for j = 0 to 49
{
sngV = sngV + Square(NetMa[j] - sngAvg);
}
sngSd = sqrt(sngV);
MessageLog("mean : %.3f 분산 : %.3f Sd : %.3f ", sngAvg, sngV, sngSd);
plot51( sngAvg, "avg");
}
plot1(NetMa[0], "MA1");
plot2(NetMa[1], "MA2");
plot3(NetMa[2], "MA3");
plot4(NetMa[3], "MA4");
plot5(NetMa[4], "MA5");
plot6(NetMa[5], "MA6");
plot7(NetMa[6], "MA7");
plot8(NetMa[7], "MA8");
plot9(NetMa[8], "MA9");
plot10(NetMa[9], "MA10");
plot11(NetMa[10], "MA11");
plot12(NetMa[11], "MA12");
plot13(NetMa[12], "MA13");
plot14(NetMa[13], "MA14");
plot15(NetMa[14], "MA15");
plot16(NetMa[15], "MA16");
plot17(NetMa[16], "MA17");
plot18(NetMa[17], "MA18");
plot19(NetMa[18], "MA19");
plot20(NetMa[19], "MA20");
plot21(NetMa[20], "MA21");
plot22(NetMa[21], "MA22");
plot23(NetMa[22], "MA23");
plot24(NetMa[23], "MA24");
plot25(NetMa[24], "MA25");
plot26(NetMa[25], "MA26");
plot27(NetMa[26], "MA27");
plot28(NetMa[27], "MA28");
plot29(NetMa[28], "MA29");
plot30(NetMa[29], "MA30");
plot31(NetMa[30], "MA31");
plot32(NetMa[31], "MA32");
plot33(NetMa[32], "MA33");
plot34(NetMa[33], "MA34");
plot35(NetMa[34], "MA35");
plot36(NetMa[35], "MA36");
plot37(NetMa[36], "MA37");
plot38(NetMa[37], "MA38");
plot39(NetMa[38], "MA39");
plot40(NetMa[39], "MA40");
plot41(NetMa[40], "MA41");
plot42(NetMa[41], "MA42");
plot43(NetMa[42], "MA43");
plot44(NetMa[43], "MA44");
plot45(NetMa[44], "MA45");
plot46(NetMa[45], "MA46");
plot47(NetMa[46], "MA47");
plot48(NetMa[47], "MA48");
plot49(NetMa[48], "MA49");
plot50(NetMa[49], "MA50");
즐거운 하루되세요
> 해선쓰나미 님이 쓴 글입니다.
> 제목 : 그물망 이평선들의 표준편차를 구할려고 합니다.
> 그물망 이평선 50개의 지표식에다 덧붙여서 이평선들의 표준편차를 구할려고 했으나,
간단한 수학식은 제공되지 않아서
표준편차의 공식을 사용해서 값을 구할려고 했지만,
아래와 같이 에러가 계속 나오는데, 이유가 뭘까요?
소스는 아래와 같습니다.
// >>> 소스 코드 <<<
Input : Period(5);
array : NetMa[50](0); //그물망 이평선 값들
var : sngSum(0), sngAvg(0); // 합계, 평균
var : sngV(0), sngSd(0); // 분산, 표준편차
var : i(0), j(0); // 임시 변수
NetMa[0] = ma(C,Period*1);
NetMa[1] = ma(C,Period*2);
NetMa[2] = ma(C,Period*3);
NetMa[3] = ma(C,Period*4);
NetMa[4] = ma(C,Period*5);
NetMa[5] = ma(C,Period*6);
NetMa[6] = ma(C,Period*7);
NetMa[7] = ma(C,Period*8);
NetMa[8] = ma(C,Period*9);
NetMa[9] = ma(C,Period*10);
NetMa[10] = ma(C,Period*11);
NetMa[11] = ma(C,Period*12);
NetMa[12] = ma(C,Period*13);
NetMa[13] = ma(C,Period*14);
NetMa[14] = ma(C,Period*15);
NetMa[15] = ma(C,Period*16);
NetMa[16] = ma(C,Period*17);
NetMa[17] = ma(C,Period*18);
NetMa[18] = ma(C,Period*19);
NetMa[19] = ma(C,Period*20);
NetMa[20] = ma(C,Period*21);
NetMa[21] = ma(C,Period*22);
NetMa[22] = ma(C,Period*23);
NetMa[23] = ma(C,Period*24);
NetMa[24] = ma(C,Period*25);
NetMa[25] = ma(C,Period*26);
NetMa[26] = ma(C,Period*27);
NetMa[27] = ma(C,Period*28);
NetMa[28] = ma(C,Period*29);
NetMa[29] = ma(C,Period*30);
NetMa[30] = ma(C,Period*31);
NetMa[31] = ma(C,Period*32);
NetMa[32] = ma(C,Period*33);
NetMa[33] = ma(C,Period*34);
NetMa[34] = ma(C,Period*35);
NetMa[35] = ma(C,Period*36);
NetMa[36] = ma(C,Period*37);
NetMa[37] = ma(C,Period*38);
NetMa[38] = ma(C,Period*39);
NetMa[39] = ma(C,Period*40);
NetMa[40] = ma(C,Period*41);
NetMa[41] = ma(C,Period*42);
NetMa[42] = ma(C,Period*43);
NetMa[43] = ma(C,Period*44);
NetMa[44] = ma(C,Period*45);
NetMa[45] = ma(C,Period*46);
NetMa[46] = ma(C,Period*47);
NetMa[47] = ma(C,Period*48);
NetMa[48] = ma(C,Period*49);
NetMa[49] = ma(C,Period*50);
for i = 0 to 49
{
sngSum = sngSum + NetMa[i];
}
sngAvg = sngSum / 50.; // 평균 구하기
MessageLog(" Total : %.5f", sngSum);
for j = 0 to 49
{
sngV = sngV + Square(NetMa[j] - sngAvg);
}
sngSd = sqrt(sngV);
MessageLog("mean : %.3f 분산 : %.3f Sd : %.3f ", sngAvg, sngV, sngSd);
plot51( sngAvg, "avg");
plot1(NetMa[0], "MA1");
plot2(NetMa[1], "MA2");
plot3(NetMa[2], "MA3");
plot4(NetMa[3], "MA4");
plot5(NetMa[4], "MA5");
plot6(NetMa[5], "MA6");
plot7(NetMa[6], "MA7");
plot8(NetMa[7], "MA8");
plot9(NetMa[8], "MA9");
plot10(NetMa[9], "MA10");
plot11(NetMa[10], "MA11");
plot12(NetMa[11], "MA12");
plot13(NetMa[12], "MA13");
plot14(NetMa[13], "MA14");
plot15(NetMa[14], "MA15");
plot16(NetMa[15], "MA16");
plot17(NetMa[16], "MA17");
plot18(NetMa[17], "MA18");
plot19(NetMa[18], "MA19");
plot20(NetMa[19], "MA20");
plot21(NetMa[20], "MA21");
plot22(NetMa[21], "MA22");
plot23(NetMa[22], "MA23");
plot24(NetMa[23], "MA24");
plot25(NetMa[24], "MA25");
plot26(NetMa[25], "MA26");
plot27(NetMa[26], "MA27");
plot28(NetMa[27], "MA28");
plot29(NetMa[28], "MA29");
plot30(NetMa[29], "MA30");
plot31(NetMa[30], "MA31");
plot32(NetMa[31], "MA32");
plot33(NetMa[32], "MA33");
plot34(NetMa[33], "MA34");
plot35(NetMa[34], "MA35");
plot36(NetMa[35], "MA36");
plot37(NetMa[36], "MA37");
plot38(NetMa[37], "MA38");
plot39(NetMa[38], "MA39");
plot40(NetMa[39], "MA40");
plot41(NetMa[40], "MA41");
plot42(NetMa[41], "MA42");
plot43(NetMa[42], "MA43");
plot44(NetMa[43], "MA44");
plot45(NetMa[44], "MA45");
plot46(NetMa[45], "MA46");
plot47(NetMa[46], "MA47");
plot48(NetMa[47], "MA48");
plot49(NetMa[48], "MA49");
plot50(NetMa[49], "MA50");
다음글
이전글