커뮤니티

진입봉에서만 stoploss 함수 사용하기

프로필 이미지
엠씨용가
2026-07-14 22:31:52
50
글번호 232842
답변완료

안녕하세요, 혹시 진입한 봉에서만 stoploss 함수 사용이 가능할까요?


if barssinceentry == 0 then setstoploss(10,pointstop);

else ststoploss(9999,poinstop);


이런 수식을 사용하였는데요, 진입봉에서 10포인트 이상 급등/급락하면 진입봉에서 청산을 해야 하는데 계속 다음봉에서 청산되고 있습니다 ㅠㅠ


시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-07-15 13:37:23

안녕하세요 예스스탁입니다. 랭귀지에서 if문은 봉완성시입니다. 봉완성시 barssinceentry == 0 면 setstoploss가 셋팅되므로 신호가 발생한 봉에서는 발생하지 못합니다. 진입이 atmarket으로 시가에 나오거나 atstop이나 atlimit으로 봉 중간에 진입하고 진입봉에서만 동작하는 손절이면 별도로 exitlong,exitshort 함수를 이용해서 구현하셔야 합니다. 진입과 같이 셋팅이 되어서 해당봉만 감시하게 하셔야 합니다. 진입의 신호타입별로 다르므로 아래식 참고하시기 바랍니다. 진입이 atmarket인 경우 if MarketPosition <= 0 and 매수조건 Then { Buy("b",AtMarket); ExitLong("bx",AtStop,NextBarOpen-10); } if MarketPosition >= 0 and 매도조건 Then { Sell("s",AtMarket); ExitShort("sx",AtStop,NextBarOpen+10); } 진입이 atstop인 경우 if MarketPosition <= 0 and 매수조건 Then { Buy("b",AtStop,H+PriceScale*3); ExitLong("bx",AtStop,max(NextBarOpen,H+PriceScale*3)-10); } if MarketPosition >= 0 and 매도조건 Then { Sell("s",AtStop,L-PriceScale*3); ExitShort("sx",AtStop,min(NextBarOpen,L-PriceScale*3)+10); } 진입이 atlimit인 경우 if MarketPosition <= 0 and 매수조건 Then { Buy("b",AtLimit,L-PriceScale*3); ExitLong("bx",AtStop,min(NextBarOpen,L-PriceScale*3)-10); } if MarketPosition >= 0 and 매도조건 Then { Sell("s",AtLimit,H+PriceScale*3); ExitShort("sx",AtStop,max(NextBarOpen,H+PriceScale*3)+10); } 즐거운 하루되세요