커뮤니티

수식 도와주세요..

프로필 이미지
bingmin
2019-04-25 20:50:00
179
글번호 128132
답변완료
안녕하세요, 죄송하지만 다시 한번 부탁드리고자 합니다. 어제 알려주신대로 entriestoday 함수도 생성하였습니다. 그런데 시뮬레이션을 해보니 보고서 값이 생성되지 않습니다. 어떤 부분에서 오류가 있는지 봐주실 수 있으신지요..? 진입규칙 1. 전일 일봉상의 고가에서 저가를 차감한 값의 35%를 계산햇 당일 시가를 기준으로 상하로 적용하여 채널을 만든다. 2. 진입은 당일 1회만 진입하되, 14시 30분 이전 시간에만 진입한다. 3. 현재가가 상단 채널에 도달하면 매수진입한다. 4. 현재가가 하단 채널에 도달하면 매도 진입한다. 청산규칙 1. 매수 진입 후 최고가에서 ATR(15)*6.5만큼 하락하면 매수 청산 2. 매도 진입 후 최저가에서 ATR(15)*6.5만큼 상승하면 매도 청산 3. 진입 후 2% 손실 발생 시 손절 청산 4. 14시 50분에 당일 청산 ----------------------------------------------------------------------------- input:daymult(0.35),mult(6.5) var1=(dayhigh(1)-daylow(1))*daymult; if entriestoday(date)<1 and stime<143000 then{ buy("b2",atstop,dayopen+var1); sell("s2",atstop,dayopen-var1); } var3=highest(h,barssinceentry+1)-atr(15)*mult; var4=lowest(L,barssinceentry+1)atr(15)*mult; exitlong("EL1",atstop,var3); exitshort("ES1",atstop,var4); setstoploss(2,percentstop); setstopendofday(1450); 사용자 함수명도 입력하였습니다. 사용자함수명 : entriestoday 반환값형 : 숫자형 input : ndate(Numeric); var : cnt(0); for cnt = 0 to 30 { if entrydate(cnt) == ndate Then entriestoday = entriestoday[1]+1; } 부탁드립니다. ㅜㅜ
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-04-26 10:35:47

안녕하세요 예스스탁입니다. 1 죄송합니다. 함수에 일부내용이 빠져 있었습니다. 사용자함수를 아래 내용으로 변경하시면 됩니다. input : ndate(Numeric); var : cnt(0); entriestoday =0; for cnt = 0 to 30 { if entrydate(cnt) == ndate Then entriestoday = entriestoday[1]+1; } 2 시스템식에 문법오류가 있어 수정해서 같이 올려드립니다. input:daymult(0.35),mult(6.5); var1=(dayhigh(1)-daylow(1))*daymult; if entriestoday(date)<1 and stime<143000 then{ buy("b2",atstop,dayopen+var1); sell("s2",atstop,dayopen-var1); } var3=highest(h,barssinceentry+1)-atr(15)*mult; var4=lowest(L,barssinceentry+1)+atr(15)*mult; exitlong("EL1",atstop,var3); exitshort("ES1",atstop,var4); setstoploss(2,percentstop); setstopendofday(1450); 즐거운 하루되세요 > bingmin 님이 쓴 글입니다. > 제목 : 수식 도와주세요.. > 안녕하세요, 죄송하지만 다시 한번 부탁드리고자 합니다. 어제 알려주신대로 entriestoday 함수도 생성하였습니다. 그런데 시뮬레이션을 해보니 보고서 값이 생성되지 않습니다. 어떤 부분에서 오류가 있는지 봐주실 수 있으신지요..? 진입규칙 1. 전일 일봉상의 고가에서 저가를 차감한 값의 35%를 계산햇 당일 시가를 기준으로 상하로 적용하여 채널을 만든다. 2. 진입은 당일 1회만 진입하되, 14시 30분 이전 시간에만 진입한다. 3. 현재가가 상단 채널에 도달하면 매수진입한다. 4. 현재가가 하단 채널에 도달하면 매도 진입한다. 청산규칙 1. 매수 진입 후 최고가에서 ATR(15)*6.5만큼 하락하면 매수 청산 2. 매도 진입 후 최저가에서 ATR(15)*6.5만큼 상승하면 매도 청산 3. 진입 후 2% 손실 발생 시 손절 청산 4. 14시 50분에 당일 청산 ----------------------------------------------------------------------------- input:daymult(0.35),mult(6.5) var1=(dayhigh(1)-daylow(1))*daymult; if entriestoday(date)<1 and stime<143000 then{ buy("b2",atstop,dayopen+var1); sell("s2",atstop,dayopen-var1); } var3=highest(h,barssinceentry+1)-atr(15)*mult; var4=lowest(L,barssinceentry+1)atr(15)*mult; exitlong("EL1",atstop,var3); exitshort("ES1",atstop,var4); setstoploss(2,percentstop); setstopendofday(1450); 사용자 함수명도 입력하였습니다. 사용자함수명 : entriestoday 반환값형 : 숫자형 input : ndate(Numeric); var : cnt(0); for cnt = 0 to 30 { if entrydate(cnt) == ndate Then entriestoday = entriestoday[1]+1; } 부탁드립니다. ㅜㅜ