커뮤니티
for문
2010-01-29 14:29:53
771
글번호 27750
for 문안에서 for문을 돌리는 설명을 자세히 설명해 주셨으면 합니다.
{데이시스템,5분봉}
1.골든크로스 5개봉연속 유지확인후(for문을 이용)
2.1이 모두 양봉확인(for문을 이용)
종가청산
답변 1
예스스탁 예스스탁 답변
2010-01-29 16:34:03
안녕하세요
예스스탁입니다.
문의하신 내용은 for문을 중첩으로 사용하는 경우는 아닙니다.
한번만 사용하시면 됩니다.
var1 = ma(C,5);
var2 = ma(c,20)'
count = 0;
for cnt = 0 to 4 {
if var1[cnt] > var2[cnt] and C[cnt] and O[cnt] Then
count = count+1;
}
if count == 5 Then
buy();
SetStopEndofday(150000);
for문을 중첩으로 사용하시는 경우는 아래와 같은 경우입니다.
예를 들어 5개의 이평중에 가장큰값부터 작은값순으로
정열시켜 값을 저장하여 사용하고자 하실 때 사용되는 수식입니다.
Var : count2(0), tempmax(0), tempindex(0), count1(0),NTHindex(0);
Array : VALUE[10](0), NTHVALUE[10](0);
VALUE[1] = ma(c,5);
VALUE[2] = ma(c,10);
VALUE[3] = ma(c,20);
VALUE[4] = ma(c,60);
VALUE[5] = ma(c,120);
For count1 = 1 to 5 { # 1번
tempmax = -99999999;
For count2 = 1 to 5 { # 2번
if VALUE[count2] > tempmax then{
tempmax = VALUE[count2];
tempIndex = count2;
}
}
NTHVALUE[count1] = tempmax;
VALUE[tempIndex] = -99999999;
}
plot1(NTHVALUE[1]);
plot2(NTHVALUE[2]);
plot3(NTHVALUE[3]);
plot4(NTHVALUE[4]);
plot5(NTHVALUE[5]);
1번 for문이 1번 루프돌때 2번은 5번씩 루프를 돌게 되는 식입니다.
먼저 count1에 1이할당되면
count2에 1부터 5까지 차례로 할당하여 5개이평중 가장큰값을 찾고
NTHVALUE[1]에 최고값을 저장한후
해당이평값은 -99999999로 만들고
다시 두번째 값을 찾게되며 위순서를 반복하며 총 5개의 이동평균을 고가순으로
NTHVALUE[1]~NTHVALUE[5]번방에 저장하게 됩니다.
1번 for문은 배열변수의 방을 지정하기 위한 용도이고
2번 for문은 값을 비교하기 위한 루프입니다.
참고하시기 바랍니다.
즐거운 하루되세요
> 하늘땅 님이 쓴 글입니다.
> 제목 : for문
> for 문안에서 for문을 돌리는 설명을 자세히 설명해 주셨으면 합니다.
{데이시스템,5분봉}
1.골든크로스 5개봉연속 유지확인후(for문을 이용)
2.1이 모두 양봉확인(for문을 이용)
종가청산
다음글
이전글