커뮤니티
반복하는 조건문을 간단하게 할 수 있는지요?
2013-04-29 14:02:08
189
글번호 62586
if L[n+10] > ema(C[n+10],26) and
L[n+9] <= ema(C[n+9],26) and
L[n+8] <= ema(C[n+8],26) and
L[n+7] <= ema(C[n+7],26) and
L[n+6] <= ema(C[n+6],26) and
L[n+5] <= ema(C[n+5],26) and
L[n+4] <= ema(C[n+4],26) and
L[n+3] <= ema(C[n+3],26) and
매수조건 then
buy();
~
if L[n+4] > ema(C[n+4],26) and
L[n+3] <= ema(C[n+3],26) and
매수조건 then
buy();
위의 조건문은 현재봉으로부터 몇번째 봉부터 지수이평선에 터치하거나 밑으로 내려오는지를 판정해서 매수조건이 만족하면 매수에 들어가는 경우입니다.
위와같이 10번째 전 봉부터 터치하는 경우도 있고 4번째 봉부터 터치하는 경우도 있고
위와같이 중간에 숫자가 하나씩 증가해 가면서 7가지의 경우가 있다고 가정하면
반복해서 써주려니 복잡해지고 해서 위와같은 반복 조건을 함수라던지 다른 방법으로 간단하게 할 수 있는 방법이 없나 해서 그럽니다.
예를 들면 함수에 인수 k=10 으로 써주면 맨 처음에 n+10 부터 n+3까지 해당되는 조건문이 만족하는지 판정을 해주고
k=4 라면 맨 밑에 있는 n+4 에서 n+3까지 가는 조건문이 만족하는지 판정해주는 그런 식으로 말입니다.
제가 생각하는 것은 함수를 써서 다음과 같이 하던지 아니면 다른 반복문으로 해보는 것입니다.
n=1;
k=10;
if 함수(n,k)=true and
매수조건 then
buy();
~
n=1;
k=4;
if 함수(n,k)=true and
매수조건 then
buy();
위에 반복되는 그런 부분들 다 써서 함수로 만들어봤는데 실력이 모자라서 그러는지 원래 안되는건지 원하는대로 작동이 안됩니다.
답변 1
예스스탁 예스스탁 답변
2013-04-29 19:21:46
안녕하세요
예스스탁입니다.
동일조건이시면 for문으로 해결하실수 있습니다.
다만 조건식이 +10인 경우 동일부동호가 아니므로
cnt에 10이 할당될때는 따로if문을 부여했습니다.
input : K(10),n(1),Minv(3);
var : cnt(0),count(0);
var1 = ema(c,26);
count = 0;
for cnt = minv to K{
if cnt < 10 and L[n+cnt] <= var1[n+cnt] Then
count = count+1;
if cnt == 10 and L[n+cnt] > var1[n+cnt] Then
count = count+1;
}
if count == K-Minv and
매수조건 then
buy();
즐거운 하루되세요
> 개냥이 님이 쓴 글입니다.
> 제목 : 반복하는 조건문을 간단하게 할 수 있는지요?
> if L[n+10] > ema(C[n+10],26) and
L[n+9] <= ema(C[n+9],26) and
L[n+8] <= ema(C[n+8],26) and
L[n+7] <= ema(C[n+7],26) and
L[n+6] <= ema(C[n+6],26) and
L[n+5] <= ema(C[n+5],26) and
L[n+4] <= ema(C[n+4],26) and
L[n+3] <= ema(C[n+3],26) and
매수조건 then
buy();
~
if L[n+4] > ema(C[n+4],26) and
L[n+3] <= ema(C[n+3],26) and
매수조건 then
buy();
위의 조건문은 현재봉으로부터 몇번째 봉부터 지수이평선에 터치하거나 밑으로 내려오는지를 판정해서 매수조건이 만족하면 매수에 들어가는 경우입니다.
위와같이 10번째 전 봉부터 터치하는 경우도 있고 4번째 봉부터 터치하는 경우도 있고
위와같이 중간에 숫자가 하나씩 증가해 가면서 7가지의 경우가 있다고 가정하면
반복해서 써주려니 복잡해지고 해서 위와같은 반복 조건을 함수라던지 다른 방법으로 간단하게 할 수 있는 방법이 없나 해서 그럽니다.
예를 들면 함수에 인수 k=10 으로 써주면 맨 처음에 n+10 부터 n+3까지 해당되는 조건문이 만족하는지 판정을 해주고
k=4 라면 맨 밑에 있는 n+4 에서 n+3까지 가는 조건문이 만족하는지 판정해주는 그런 식으로 말입니다.
제가 생각하는 것은 함수를 써서 다음과 같이 하던지 아니면 다른 반복문으로 해보는 것입니다.
n=1;
k=10;
if 함수(n,k)=true and
매수조건 then
buy();
~
n=1;
k=4;
if 함수(n,k)=true and
매수조건 then
buy();
위에 반복되는 그런 부분들 다 써서 함수로 만들어봤는데 실력이 모자라서 그러는지 원래 안되는건지 원하는대로 작동이 안됩니다.
다음글
이전글