커뮤니티

제가 만든 수식이 무엇이 잘못되었나요?

프로필 이미지
bigdeal
2013-06-28 05:48:18
189
글번호 64806
답변완료
안녕하세요.. 31110번에 문의한 수식을 답변해주셔서 감사합니다. 그 수식을 토대로 매도식을 아래와 같이 만들었습니다. 그런데 시물레이션을 해보니 진입은 되는데, 청산이 안되요 무엇이 잘못되었는지 도대체 알수가 없네요.. 수정 부탁드립니다... 감사합니다. 바쁘시더라도 주석좀 부탁드립니다... input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30); var : cnt(0),count(0); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then Sell("b",AtStop,진입가); if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then Sell("bb",AtLimit,진입가); if MarketPosition == 1 Then{ exitshort("목표가청산",AtStop,목표가); exitshort("손절가청산",AtStop,손절가); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-06-28 11:53:40

안녕하세요 예스스탁입니다. MarketPosition은 매도포지션일때는 -1입니다. MarketPosition == 1 은 매수포지션 상태를 나타냅니다. 아래와 같이 수정하시면 됩니다. sell에서 atstop이 지정한 값 까지 가격하락할때 진입하는 타입니다. exitshort 매도포지션청산 함수에서 지정한 가격까지 하락하면 매도청산할때는 atlimit을 사용하셔야 하고 지정한 가격까지 상승하면 매도청산할때는 atstop을 사용하셔야 합니다. input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30); var : cnt(0),count(0); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } #첫진입 # 당일고가가 기즌값 이상이고 # 진입가 위에서 시세가 하락해 진입가까지 내려오면 매도진입 if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then Sell("b",AtStop,진입가); # 두번째 이후의 진입부터는 # 청산이후의 최고가가 기준값보다 크고 # 진입가 위에서 시세가 하락해 진입가까지 내려오면 매도진입 if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then Sell("bb",AtStop,진입가); if MarketPosition == -1 Then{#매도진입 중이고 exitshort("목표가청산",AtLimit,목표가);#목표가까지 가격하락하면 매도청산 exitshort("손절가청산",AtStop,손절가);#손절가까지 가격상승하면 매도청산 } 즐거운 하루되세요 > bigdeal 님이 쓴 글입니다. > 제목 : 제가 만든 수식이 무엇이 잘못되었나요? > 안녕하세요.. 31110번에 문의한 수식을 답변해주셔서 감사합니다. 그 수식을 토대로 매도식을 아래와 같이 만들었습니다. 그런데 시물레이션을 해보니 진입은 되는데, 청산이 안되요 무엇이 잘못되었는지 도대체 알수가 없네요.. 수정 부탁드립니다... 감사합니다. 바쁘시더라도 주석좀 부탁드립니다... input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30); var : cnt(0),count(0); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then Sell("b",AtStop,진입가); if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then Sell("bb",AtLimit,진입가); if MarketPosition == 1 Then{ exitshort("목표가청산",AtStop,목표가); exitshort("손절가청산",AtStop,손절가); }