커뮤니티

시스템식 질문입니다

프로필 이미지
부산사나이
2008-12-24 10:15:40
861
글번호 18988
답변완료
일딴 메리크리스마스요 ㅋ 시스템식 질문입니다 간단하게 단기 5 20 크로스에서 macd가 0선위에 있다는 and를 붙여서 해봤습니다 그런데 for문이나 while문을 써서 먼저 5 20 평선 크로스와 좀 늦게 발생 혹은 그전에 발생한 macd 0선값을 필터링 할려면 식을 어떤식으로 짜야되나요? for문 while문의 예제좀 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-12-24 13:05:23

안녕하세요 예스스탁입니다. 1. for문으로 작성하시면 아래와 같습니다. input : Period(5); var : cnt(0),count1(0),count2(0); var1 = ma(c,5); var2 = ma(c,20); var3 = macd(12,26); count1 = 0; count2 = 0; for cnt = 0 to Period-1{ if crossup(var1[cnt],var1[cnt]) Then count1 = count1+1; if crossup(var3[cnt],0) Then count2 = count2+1; } ## 현재 5-20 골든이고 최근 5봉안에 MACD 골든이 1번 있거나 ## 현재 MACD가 0선을 상향돌파했고 최근 5봉안에 5-20 골든이 한번있다 if (CrossUp(var1,var2) and count2 == 1) or (CrossUp(var3,0) and count1 == 1) Then buy(); 2. while input : Period(5); var : cnt(0),count1(0),count2(0); var1 = ma(c,5); var2 = ma(c,20); var3 = macd(12,26); count1 = 0; count2 = 0; cnt = 0; While cnt < Period{ if crossup(var1[cnt],var1[cnt]) Then{ count1 = count1+1; } if crossup(var3[cnt],0) Then{ count2 = count2+1; } cnt = cnt+1; } ## 현재 5-20 골든이고 최근 5봉안에 MACD 골든이 1번 있거나 ## 현재 MACD가 0선을 상향돌파했고 최근 5봉안에 5-20 골든이 한번있다 if (CrossUp(var1,var2) and count2 == 1) or (CrossUp(var3,0) and count1 == 1) Then buy(); 3. 위 식은 간단히 아래와 같이 작성하셔도 됩니다. input : Period(5); var1 = ma(c,5); var2 = ma(c,20); var3 = macd(12,26); ## 현재 5-20 골든이고 최근 5봉안에 MACD 골든이 1번 있거나 ## 현재 MACD가 0선을 상향돌파했고 최근 5봉안에 5-20 골든이 한번있다 if (CrossUp(var1,var2) and accumn(iff(crossup(var3,0),1,0),Period) == 1) or (CrossUp(var3,0) and accumn(iff(crossup(var1,var2),1,0),Period) == 1) Then buy(); 즐거운 성탄절 되시길 바랍니다. > 부산사나이 님이 쓴 글입니다. > 제목 : 시스템식 질문입니다 > 일딴 메리크리스마스요 ㅋ 시스템식 질문입니다 간단하게 단기 5 20 크로스에서 macd가 0선위에 있다는 and를 붙여서 해봤습니다 그런데 for문이나 while문을 써서 먼저 5 20 평선 크로스와 좀 늦게 발생 혹은 그전에 발생한 macd 0선값을 필터링 할려면 식을 어떤식으로 짜야되나요? for문 while문의 예제좀 부탁드립니다.