커뮤니티

이것저것 문의드립니다.

프로필 이미지
잡다백수
2017-11-20 15:44:02
114
글번호 114311
답변완료
도와주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 시스템 진입 고가가 볼린저밴드 상단선 돌파 후 n개봉간 종가가 고가-ATR*1.5를 하향돌파하지 않으면 진입 청산 종가가 볼린저밴드 상단선을 하향돌파하면 청산 2. 기타 setstoptrailing 함수에 대해 궁금한 점이 있습니다. 틱 데이터를 다 받을 수 없는 프로그램상 한계때문에 시뮬레이션 성과와 실제 매매와 다를 수 밖에 없다는 것은 이해했는데요. 가끔 시뮬에서 함수를 쓰다보면 매번 결과가 좋게 나오는 이유는 잘 이해가 되지 않습니다. 시고저종가를 봉 완성 후에 가정하는 것이 시뮬레이션 리포트를 극단적으로 좋게 만드는 이유가 있을까요? 3. 기타 예스랭귀지 설명서에 보면 setstoptrailing의 갭을 줄이기 위해서 '설정에 사용되는 값을 평균적인 봉의 길이보다 크게 사용하는 방법'과 청산방법을 '수익금액대비'로 설정하지 말고 '최고가격대비'로 설정하라고 돼 있는데요. 평균적인 봉의 길이보다 크게 사용하라는 말이 무슨 말인 지 모르겠습니다. 30분봉쓰던걸 60분봉으로 쓰라는 말인가요. 그리고 최고가격대비로 해도 시뮬리포트에서 큰 차이를 보이지 않던데요. 최고가격대비로 해도 봉가정 오류를 피할 수 없는 것 아닌가요? 4. 기타 전에 시뮬리포트차를 피하기 위해서 수식 알려주신 게 있고 예스랭귀지에도 수식이 있는데요. if문과 atstop으로 코딩을 한건 설정으로 치면 '조건만족 즉시'이고 예스랭귀지 설명서에 있는 건 '봉 완성시'인가요? if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice*1.30 Then exitlong("bx",AtStop,highest(H,BarsSinceEntry)-atr(10)*3); 5-2 최소수익값이 원으로 지정할때(1만원 이상 수익후 최고가에서 atr*3만큼 하락하면 매수청산) if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+10000 Then exitlong("bx",AtStop,highest(H,BarsSinceEntry)-atr(10)*3); 비고 2,3,4번은 답변이 길어지면 전화부탁드립니다. 5. 시스템 진입 시가매수 청산 종가 동시호가 들어가기 전에 청산 비고 -둘다 즉시 매수 매도로 -이건 해외선물용 버전도 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-21 11:17:36

안녕하세요 예스스탁입니다. 1. input : P(20),dv(2),n(5),atrp(10); var1 = BollBandUp(P,dv); var2 = atr(atrp); if crossup(c,var1) Then{ Condition1 = true; value1 = index; } if index >= value1 and index <= value1+n Then{ if C < H-var2*1.5 Then Condition1 = false; } if index == value1+n and Condition1 == true Then buy(); if MarketPosition == 1 and CrossDown(c,var1) Then exitlong(); 2 언급하신 부분과 같이 봉 내부에 모든데이터가 없으므로 그에따른 세부적인 움직임을 알수없어 봉의 4가지(시고저종가) 값만으로 판단하기 때문입니다. 실시간에서는 매수진입후 특정봉의 고가에 도달하기 전에 수익조건도 충족되고 일정폭하락도 충족되어 청산이 될수도 있는데 시뮬에서는 봉 중간에 움직임을 모르니까 고가가 최소수익조건에 충족되면 해당고가를 기준으로 감소폭을 계산해 청산이 나오게 됩니다. 즉 매수진입은 봉의 고가가 기준으로 일정폭이상 하락 매도진입은 봉의 저가가 기준으로 일정폭이상 상승 으로 판단하므로 실제보다 수익이 더 크게 부풀려 지게 됩니다. 3 해당 내용은 최소수익과 수익감소로 지정하는 값이 너무 작은 값이면 오차가 더 크게 발생하므로 최소수익과 수익감소를 되도록 큰값을 사용하는 것을 권장하다는 내용입니다. 4 해당부분은 이전에 설명을 드린적이 있습니다. 최근 완성봉기준으로 최소수익조건에 도달했는지 체크(if) 도달했으면 다음봉에서 완성봉기준 최고값기준으로 일정폭이하로 하락하면 청산(atstop) 5 해당 부분도 이전 답변내용에 비슷한 내용이 있습니다. 이전 답변내용 참고하시기 바랍니다. 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 이것저것 문의드립니다. > 도와주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 시스템 진입 고가가 볼린저밴드 상단선 돌파 후 n개봉간 종가가 고가-ATR*1.5를 하향돌파하지 않으면 진입 청산 종가가 볼린저밴드 상단선을 하향돌파하면 청산 2. 기타 setstoptrailing 함수에 대해 궁금한 점이 있습니다. 틱 데이터를 다 받을 수 없는 프로그램상 한계때문에 시뮬레이션 성과와 실제 매매와 다를 수 밖에 없다는 것은 이해했는데요. 가끔 시뮬에서 함수를 쓰다보면 매번 결과가 좋게 나오는 이유는 잘 이해가 되지 않습니다. 시고저종가를 봉 완성 후에 가정하는 것이 시뮬레이션 리포트를 극단적으로 좋게 만드는 이유가 있을까요? 3. 기타 예스랭귀지 설명서에 보면 setstoptrailing의 갭을 줄이기 위해서 '설정에 사용되는 값을 평균적인 봉의 길이보다 크게 사용하는 방법'과 청산방법을 '수익금액대비'로 설정하지 말고 '최고가격대비'로 설정하라고 돼 있는데요. 평균적인 봉의 길이보다 크게 사용하라는 말이 무슨 말인 지 모르겠습니다. 30분봉쓰던걸 60분봉으로 쓰라는 말인가요. 그리고 최고가격대비로 해도 시뮬리포트에서 큰 차이를 보이지 않던데요. 최고가격대비로 해도 봉가정 오류를 피할 수 없는 것 아닌가요? 4. 기타 전에 시뮬리포트차를 피하기 위해서 수식 알려주신 게 있고 예스랭귀지에도 수식이 있는데요. if문과 atstop으로 코딩을 한건 설정으로 치면 '조건만족 즉시'이고 예스랭귀지 설명서에 있는 건 '봉 완성시'인가요? if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice*1.30 Then exitlong("bx",AtStop,highest(H,BarsSinceEntry)-atr(10)*3); 5-2 최소수익값이 원으로 지정할때(1만원 이상 수익후 최고가에서 atr*3만큼 하락하면 매수청산) if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+10000 Then exitlong("bx",AtStop,highest(H,BarsSinceEntry)-atr(10)*3); 비고 2,3,4번은 답변이 길어지면 전화부탁드립니다. 5. 시스템 진입 시가매수 청산 종가 동시호가 들어가기 전에 청산 비고 -둘다 즉시 매수 매도로 -이건 해외선물용 버전도 부탁드립니다.