커뮤니티

어떻게 코딩 해야 하느지요?

프로필 이미지
회원
2004-05-03 15:59:31
1112
글번호 3475
답변완료
최근 시스템 교육을 한번 받아보고 연습 하고 있는 중 입니다. 1. 요즘 문의 내용의 답을 보면 if marketposition== 1 or -1을 사용 하는 의미를 어렴풋 알것 같은데 if date!=date[1] then 을 사용 할 때는 어떻할때 사용하는 것이 고 그 사용하는 의미를 정확히 이해가 되지 않습니다. 좀 알려 주세요. 2. 만약에 가정하여 아래와 같이 여러 지표 내용이 다른 것을 혼합해 사용 할 때 어떻 게 코딩 해야 하는지요. 하나씩 했을 때와 합쳤을 때 시그날이 다른게 나타나는데 무엇이 문제 인지요. if 선행스팬2[25]>선행스팬1[25] and crossup(전환선,기준선) then buy("buy1"); if crossdown(전환선,기준선) then exitlong("exitlong1"): if 선행스팬1[25]>선행스팬2[25] and crossdown(전환선,선행스팬2[25]) then sell("sell1"); if crossup(c,기준선) then exitshort("exitshort1"); if crossup(ema(c,5),ema(c,20)) then buy("buy2"); if crossdown(ema(c,5),ema(c,10)) then exitlong("exitlong2"); if ema(c,60)<ema(c,60)[1] and ema(c,5)<ema(c,5)[1] and ema(c,5)[1]>ema(c,5)[2]then // 이동60 하락추세, 5일 하락반전 , 수식이 맞는 것인지요? sell("sell2"); if ema(c,5)>ema(c,5)[1] and ema(c,5)[1]<ema(c,5)[2] then// 이동5 상향 반전 exitshort("exitshort2"); 위와 같이 각각 다른 조건 조합을 합쳐서 매수,매수청산,매도,매도청산 시그날을 표시 하려면 어떻게 코딩해야 하는지요? 괄호안의( " " )처럼 표시 할 수 있는것인지 요. 부탁 드립니다.
기타
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2004-05-03 18:02:16

안녕하세요..예스스탁입니다. 문의하신 내용 답변드립니다. 1.if date!=date[1] then { 실행문 } 위 내용은 특정봉의 date값과 그 봉의 1봉 전의 date값이 서로 일치하지 않으면 블럭문을 실행하라는 문장입니다. 분봉차트에서 특정봉과 그 전봉의 date값이 일치하지 않는 시점은 매일의 첫번째 봉 뿐입니다. 즉, 위 식은 매일의 첫번째 봉이 되면 실행문을 수행하라는 의미가 됩니다. 당일청산용 시스템에서 초기화가 필요한 문장에서 많이 사용되는데 예를들어서 이동평균선 교차 시스템에서 진입횟수를 제한하는 식을 작성하고자 할때 몇번 진입이 발생하였는지를 파악하기 위해서 골든크로스가 발생할때마다 1씩 누적하는 식을 작성합니다. if CrossUp(ma(C,3), ma(C,10)) then var1 = var1 + 1; 위 식을 지표식으로 작성하여 var1을 출력해보면 골든크로스가 발생할때마다 1씩 계속 증가하는 것을 볼 수 있습니다. 당일청산 시스템에서 2회로만 매수 진입을 제한하고자 한다면 그 다음날이 되었을때는 var1값을 다시 0으로 초기화 해주어야만 됩니다. if date != date[1] then var1 = 0; if CrossUp(ma(C,3), ma(C,10)) then var1 = var1 + 1; 아래 두가지 식을 지표식으로 작성해서 분봉차트에 그려보시면 명확히 구분이 되실것입니다. [지표식1] if CrossUp(ma(C,3), ma(C,10)) then var1 = var1 + 1; plot1(var1); [지표식2] if date != date[1] then var1 = 0; if CrossUp(ma(C,3), ma(C,10)) then var1 = var1 + 1; plot2(var2); 2. 여러개의 식을 합한 식입니다. (or 로 연결 되었으며, or 앞뒤의 문장에 대해서 괄호를 묶어서 연산되는 순서를 명확히 구분해 주셔야 합니다.) if (선행스팬2[25]>선행스팬1[25] and crossup(전환선,기준선)) or (crossup(ema(c,5),ema(c,20))) then buy("매수"); if crossdown(전환선,기준선) or crossdown(ema(c,5),ema(c,10)) then exitlong("매수청산"); if (선행스팬1[25]>선행스팬2[25] and crossdown(전환선,선행스팬2[25])) or if (ema(c,60)<ema(c,60)[1] and ema(c,5)<ema(c,5)[1] and ema(c,5)[1]>ema(c,5)[2]) then sell("sell2"); if crossup(c,기준선) or (ema(c,5)>ema(c,5)[1] and ema(c,5)[1]<ema(c,5)[2] ) then exitshort("매도청산"); 식에 작성해 놓은 주석문의 내용은 맞는 내용입니다. > HH_focus49 님이 쓴 글입니다. > 제목 : 어떻게 코딩 해야 하느지요? > 최근 시스템 교육을 한번 받아보고 연습 하고 있는 중 입니다. 1. 요즘 문의 내용의 답을 보면 if marketposition== 1 or -1을 사용 하는 의미를 어렴풋 알것 같은데 if date!=date[1] then 을 사용 할 때는 어떻할때 사용하는 것이 고 그 사용하는 의미를 정확히 이해가 되지 않습니다. 좀 알려 주세요. 2. 만약에 가정하여 아래와 같이 여러 지표 내용이 다른 것을 혼합해 사용 할 때 어떻 게 코딩 해야 하는지요. 하나씩 했을 때와 합쳤을 때 시그날이 다른게 나타나는데 무엇이 문제 인지요. if 선행스팬2[25]>선행스팬1[25] and crossup(전환선,기준선) then buy("buy1"); if crossdown(전환선,기준선) then exitlong("exitlong1"): if 선행스팬1[25]>선행스팬2[25] and crossdown(전환선,선행스팬2[25]) then sell("sell1"); if crossup(c,기준선) then exitshort("exitshort1"); if crossup(ema(c,5),ema(c,20)) then buy("buy2"); if crossdown(ema(c,5),ema(c,10)) then exitlong("exitlong2"); if ema(c,60)<ema(c,60)[1] and ema(c,5)<ema(c,5)[1] and ema(c,5)[1]>ema(c,5)[2]then // 이동60 하락추세, 5일 하락반전 , 수식이 맞는 것인지요? sell("sell2"); if ema(c,5)>ema(c,5)[1] and ema(c,5)[1]<ema(c,5)[2] then// 이동5 상향 반전 exitshort("exitshort2"); 위와 같이 각각 다른 조건 조합을 합쳐서 매수,매수청산,매도,매도청산 시그날을 표시 하려면 어떻게 코딩해야 하는지요? 괄호안의( " " )처럼 표시 할 수 있는것인지 요. 부탁 드립니다.