커뮤니티
시스템식 질문입니다
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문의 예제좀 부탁드립니다.
다음글
이전글