커뮤니티

수식 확인부탁드립니다.

프로필 이미지
mh
2024-02-19 16:07:33
799
글번호 176763
답변완료
안녕하세요. 지난주에 1. 당일 시초가를 기준으로 1% 상승하면 현재가로 매수 (1일 1회만 매수) 2. 매수가 기준으로 2% 하락하면 현재가로 모든 잔고 손절 3. 당일 (직전)최고가를 추적, 최고가 대비 2% 하락하면 현재가로 모든 잔고 청산(익절) 이런 시스템을 만들고 싶다고 요청드려서 아래와 같은 코드를 받았습니다. if NextBarSdate != sDate Then Buy("b1",AtStop,NextBarOpen*1.02); Else { if MarketPosition == 0 and ExitDate(1) != sDate Then Buy("b2",AtStop,DayOpen*1.02); } if MarketPosition == 1 Then ExitLong("bx",AtStop,DayHigh*0.98); SetStopLoss(2,PercentStop); 오늘 적용하여 시연을 해보니, 매수와 손절은 잘 작동하나 익절이 작동하지 않는 것 같았습니다. "당일 최고점을 추적하여 최고점 대비 2% 떨어지면 청산" 이 부분이 작동하지 않습니다. 오늘 거래한 종목 중에 덕성이라는 종목이 있었는데, 종일 4~6% 상승을 반복하다가 최종적으로 -3.14%에 청산이 되었습니다. 다른 종목도 대부분 비슷하게 -3% 대에서 청산으로 마무리 되었고요.. 만들어주신 수식에 익절 부분이 제대로 되어 있는지 확인 좀 부탁드리겠습니다. 또한 "4. 당일 오후 3시에 보유한 모든 종목의 잔고를 시장가로 청산한다"는 로직도 추가로 요청드리겠습니다. 직접 작성을 해야 하는데, 공부를 이제 막 시작해서 스스로 하기가 아직 좀 어렵네요. 작성해주신 로직을 분석하면서 공부도 하고 있으니 잘 부탁드리겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-02-19 16:35:07

안녕하세요 예스스탁입니다. 1 아래 내용과 같이 당일 최고가-2% 청산은 이미 있습니다. if MarketPosition == 1 Then ExitLong("bx",AtStop,DayHigh*0.98); 다만 랭귀지에서 atstop이라는 신호타입은 봉미완성시에 가격조건을 충족하면 즉시 신호가 발생하는데 셋팅되는 가격은 봉완성기준입니다. 즉 봉완성시 완성봉 기준으로 당일최고가-2%를 셋팅하고 다음봉 현재가가 해당 셋팅된 가격이하가 발생하면 즉시 신호가 발생하게 됩니다. 그러므로 분봉 이하 차트주기서 적용하셔야 하며 가급적 낮은 주기에 적용하셔야 합니다. 2 청산함수에 포지션확인하는 내용이 있는데 진입신호가 발생하면 해당봉 완성시부터 셋팅이 됩니다. 진입봉에서도 발생가능하게 포지션확인 if조건은 제외하고 당일청산 추가해 드립니다. if NextBarSdate != sDate Then Buy("b1",AtStop,NextBarOpen*1.02); Else { if MarketPosition == 0 and ExitDate(1) != sDate Then Buy("b2",AtStop,DayOpen*1.02); } ExitLong("bx",AtStop,DayHigh*0.98); SetStopLoss(2,PercentStop); SetStopEndofday(150000); 즐거운 하루되세요 > mh 님이 쓴 글입니다. > 제목 : 수식 확인부탁드립니다. > 안녕하세요. 지난주에 1. 당일 시초가를 기준으로 1% 상승하면 현재가로 매수 (1일 1회만 매수) 2. 매수가 기준으로 2% 하락하면 현재가로 모든 잔고 손절 3. 당일 (직전)최고가를 추적, 최고가 대비 2% 하락하면 현재가로 모든 잔고 청산(익절) 이런 시스템을 만들고 싶다고 요청드려서 아래와 같은 코드를 받았습니다. if NextBarSdate != sDate Then Buy("b1",AtStop,NextBarOpen*1.02); Else { if MarketPosition == 0 and ExitDate(1) != sDate Then Buy("b2",AtStop,DayOpen*1.02); } if MarketPosition == 1 Then ExitLong("bx",AtStop,DayHigh*0.98); SetStopLoss(2,PercentStop); 오늘 적용하여 시연을 해보니, 매수와 손절은 잘 작동하나 익절이 작동하지 않는 것 같았습니다. "당일 최고점을 추적하여 최고점 대비 2% 떨어지면 청산" 이 부분이 작동하지 않습니다. 오늘 거래한 종목 중에 덕성이라는 종목이 있었는데, 종일 4~6% 상승을 반복하다가 최종적으로 -3.14%에 청산이 되었습니다. 다른 종목도 대부분 비슷하게 -3% 대에서 청산으로 마무리 되었고요.. 만들어주신 수식에 익절 부분이 제대로 되어 있는지 확인 좀 부탁드리겠습니다. 또한 "4. 당일 오후 3시에 보유한 모든 종목의 잔고를 시장가로 청산한다"는 로직도 추가로 요청드리겠습니다. 직접 작성을 해야 하는데, 공부를 이제 막 시작해서 스스로 하기가 아직 좀 어렵네요. 작성해주신 로직을 분석하면서 공부도 하고 있으니 잘 부탁드리겠습니다.