커뮤니티

조건식 검토 부탁드립니다.

프로필 이미지
바람날개
2014-02-21 14:49:14
195
글번호 72797
답변완료
안녕하세요. 아래조건대로 시스템식 만들려고 하는데요. 적용해보니 에러가 나고 이해가 안되는 부분이 있습니다. #===== 설명 부탁(아래 내용 이해 불가) ==# 부터 설명좀 부탁드립니다. 좋은하루 되세요. 감사합니다. ------------------ 조 건 계 산 식 ------------------- 금일 시가>전일 종가 ------------------- 목표 고가=(전일고가+전일종가+2*전일저가)/2-전일저가 목표 저가=(전일고가+전일종가+2*전일저가)/2-전일고가 금일 시가<전일 종가 ------------------- 목표 고가=(2*전일고가+전일종가+전일저가)/2-전일저가 목표 저가=(2*전일고가+전일종가+2*전일저가)/2-전일고가 금일 시가=전일 종가 -------------------- 목표 고가=(전일고가+2*전일종가+전일저가)/2-전일저가 목표 저가=(전일고가+2*전일종가+전일저가)/2-전일고가 ====================================================== 시가에 디마크 목표 고가와 목표 저가의 폭의 일정 비율을 가감해서 돌파 전략으로 사용한다. ====================================================== Input: len(2.7), len1(0.37); var : var1(0), var2(0), var3(0), cond1(false),cond2(false); If open > close[1] Then { { Var1 = (high[1] + close[1] + 2 * low[1]) / 2 - low[1]; Var2 = (high[1] + close[1] + 2 * low[1]) / 2 - high[1]; } Else if open < close[1] Then { Var1 = (2 * high[1] + close[1] + low[1]) / 2 - low[1]; Var2 = (2 * high[1] + close[1] + low[1]) / 2 - high[1]; } Else { Var1 = (high[1] + 2 * close[1] + low[1]) / 2 - low[1]; Var2 = (high[1] + 2 * close[1] + low[1]) / 2 - high[1]; } } Var3 = (Var1 - var2); #===== 설명 부탁(아래 내용 이해 불가) ==# Cond1 = tdate = exitdate(1) And position(1) = 1; Cond2 = tdate = exitdate(1) And position(1) = -1; If stime < 150000 Then { If Cond1 == False Then { buy("매수1", Atstop, Def, open + var3 * len1); } } If Cond2 = False Then { sell("매도1", Atstop, Def, open - var3 * len1); } If position <> 0 Then { exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry + 1) - atr(20) * len); exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry + 1) + atr(20) * len); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-21 15:39:30

안녕하세요 예스스탁입니다. 올려주신식은 예스랭귀지식이 아닙니다. 예스랭귀지 문법과 함수로 변경하고 주석 달아드립니다. #당일 발생한 거래중 최근 거래가 매수포지션이면 cond1은 true 아니면 false Cond1 = sdate == exitdate(1) And MarketPosition(1) == 1; #당일 발생한 거래중 최근 거래가 매도포지션이면 cond2은 true 아니면 false Cond2 = sdate == exitdate(1) And MarketPosition(1) == -1; #15시 이전에 If stime < 150000 Then { #직전거래가 매수가 아니고(매수로 연속으로 진입신호발생을 금지하는 용도) If Cond1 == False Then { #시가대비 + var3의 37% 만큼 시세가 상승하면 매수 buy("매수1", Atstop, open + var3 * len1); } #직전거래가 매도가 아니고(매도로 연속으로 진입신호발생을 금지하는 용도) If Cond2 == False Then { #시가대비 - var3의 37% 만큼 시세가 하락하면 매도 sell("매도1", Atstop, Def, open - var3 * len1); } } #포지션 진입 후 If MarketPosition <> 0 Then { #진입이후 최고가대비 최근 20개봉의 평균변동폭의 2.7배만큼 하락하면 매수포지션 청산 exitlong("매수청산", Atstop, highest(high, BarsSinceEntry + 1) - atr(20) * len); #진입이후 최저가대비 최근 20개봉의 평균변동폭의 2.7배만큼 상승하면 매도포지션 청산 exitshort("매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + atr(20) * len); } 즐거운 하루되세요 > 바람날개 님이 쓴 글입니다. > 제목 : 조건식 검토 부탁드립니다. > 안녕하세요. 아래조건대로 시스템식 만들려고 하는데요. 적용해보니 에러가 나고 이해가 안되는 부분이 있습니다. #===== 설명 부탁(아래 내용 이해 불가) ==# 부터 설명좀 부탁드립니다. 좋은하루 되세요. 감사합니다. ------------------ 조 건 계 산 식 ------------------- 금일 시가>전일 종가 ------------------- 목표 고가=(전일고가+전일종가+2*전일저가)/2-전일저가 목표 저가=(전일고가+전일종가+2*전일저가)/2-전일고가 금일 시가<전일 종가 ------------------- 목표 고가=(2*전일고가+전일종가+전일저가)/2-전일저가 목표 저가=(2*전일고가+전일종가+2*전일저가)/2-전일고가 금일 시가=전일 종가 -------------------- 목표 고가=(전일고가+2*전일종가+전일저가)/2-전일저가 목표 저가=(전일고가+2*전일종가+전일저가)/2-전일고가 ====================================================== 시가에 디마크 목표 고가와 목표 저가의 폭의 일정 비율을 가감해서 돌파 전략으로 사용한다. ====================================================== Input: len(2.7), len1(0.37); var : var1(0), var2(0), var3(0), cond1(false),cond2(false); If open > close[1] Then { { Var1 = (high[1] + close[1] + 2 * low[1]) / 2 - low[1]; Var2 = (high[1] + close[1] + 2 * low[1]) / 2 - high[1]; } Else if open < close[1] Then { Var1 = (2 * high[1] + close[1] + low[1]) / 2 - low[1]; Var2 = (2 * high[1] + close[1] + low[1]) / 2 - high[1]; } Else { Var1 = (high[1] + 2 * close[1] + low[1]) / 2 - low[1]; Var2 = (high[1] + 2 * close[1] + low[1]) / 2 - high[1]; } } Var3 = (Var1 - var2); #===== 설명 부탁(아래 내용 이해 불가) ==# Cond1 = tdate = exitdate(1) And position(1) = 1; Cond2 = tdate = exitdate(1) And position(1) = -1; If stime < 150000 Then { If Cond1 == False Then { buy("매수1", Atstop, Def, open + var3 * len1); } } If Cond2 = False Then { sell("매도1", Atstop, Def, open - var3 * len1); } If position <> 0 Then { exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry + 1) - atr(20) * len); exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry + 1) + atr(20) * len); }