Post

손절가를 건드린 대가

5월 국내외 주식 트레이딩 회고. KRW 실현손익 +701만원, USD +$1,682. 손절가를 수동으로 내린 대가로 약 2,000만원을 놓쳤고, 시장 수익률에도 한참 뒤처진 달이었다.

손절가를 건드린 대가

5월 KRW 실현손익은 +7,013,862원, USD 실현손익은 +$1,682.17이다.

숫자만 보면 그럭저럭 버텼다고 할 수 있다. 그런데 들여다보면 그렇게 넘길 수가 없다. 이번 달은 4월에 비해 국내 투입 자본을 약 3배 늘렸다. 그 규모를 생각하면 +701만원이라는 숫자는 성과가 아니라 거의 본전치기에 가깝다. 게다가 지수와 비교해보면 시장 자체에 그냥 묻어두는 것만도 못했다는 사실이 더 아프게 다가온다.

시장과의 비교: 먼저 결론부터

3개월 수익률 비교: 코스피·코스닥·S&P 500·나스닥·다우존스 3월 초부터 5월 말까지, 코스피 +46.3% · 나스닥 +18.6% · S&P 500 +10.2% · 코스닥 +4.3% · 다우존스 -5.5%

5월 한 달만 따지면, 코스피는 이 기간 내내 상승세를 이어가면서 3개월 누적 +46.3%까지 치달았다. 나스닥도 +18.6%, S&P 500도 +10.2%의 수익률을 냈다.

이 지수들을 이기기 위해서 시스템을 만들고, 백테스트를 돌리고, 밤새 코드를 고쳤는데, 결과는 지수를 크게 밑돌았다. 이걸 그냥 ‘약간 아쉬운 달’로 넘기기엔 찜찜함이 남는다. 특히 국내의 경우, 전략적인 행동 없이 그냥 코스피 ETF를 들고 있었다면 훨씬 나은 결과를 얻었을 것이다. 시스템이 시장을 이기지 못하고 있다는 신호다.


KRW 성과

5월 KRW 성과 요약 KRW · 5월. 실현손익 +7,013,862원, 6승 22패, 승률 21.4%

28건을 거래해서 6번 이겼고 22번 졌다. 승률 21.4%. 그럼에도 플러스가 난 건, 이긴 6번 중 단 세 종목이 수익의 대부분을 만들었기 때문이다.

  • 080220 (4월 27일 → 5월 15일, 18일 보유): +14,653,514원 (+46.7%)
  • 031330 (5월 14일 → 15일, 1일 보유): +8,276,817원 (+25.6%)
  • 006340 (4월 27일 → 5월 13일, 16일 보유): +6,693,494원 (+45.3%)

이 세 종목 합산 수익이 약 +2,962만원이다. 나머지 25건의 합산 손실이 약 -2,261만원이고, 이 둘이 상쇄되어 최종 +701만원이 남았다. 거래 28건 중 22번 손절이 났다는 건, 이 전략이 원래 그런 구조라기보다 손절이 너무 잦았거나, 혹은 진입 자체가 너무 많았다는 신호일 수 있다.

5월 KRW 거래 내역 5월 KRW 전체 거래 내역

거래 내역을 보면 5/11~5/12 이틀간 손실이 특히 집중되어 있다. 036170, 010170, 047040, 033640, 019210 — 이 구간에 손절이 연속으로 터졌다.

포트폴리오 가치 변화 5월 포트폴리오 가치 변화. 5/15 전후로 급등 후 재하락.

포트폴리오 차트로 보면 흐름이 더 명확하다. 월초에 하락이 시작되고, 5/15에 080220 매도로 급반등했다가, 5/22~5/29 구간에서 다시 연속 손절로 내려앉았다.


USD 성과

5월 USD 성과 요약 USD · 5월. 실현손익 +$1,682.17 (원화 환산 약 249만원), 4승 4패, 승률 50%

미국 쪽은 4승 4패 승률 50%로, KRW보다 비율상 훨씬 나은 결과다. INTC가 +$1,734.92로 한 달 수익의 대부분을 책임졌고, SNDK가 하루 보유에 +$885.23을 내줬다. 반면 NBIS는 두 차례 연속 손절로 -$907.91의 손해를 봤다.

5월 USD 거래 내역 USD 5월 거래 내역. INTC, SNDK 수익이 NBIS 연속 손실을 메웠다.


가장 큰 실수: 손절가를 건드렸다

이번 달에 저지른 가장 큰 실수는 손절가(stop-loss)를 수동으로 조정한 것이다.

연속 손실이 쌓이면서 자금을 메꿔야 한다는 압박감이 커졌다. 그 상태에서 평가 수익이 줄어드는 걸 견디지 못했다. 이미 수익이 나고 있던 포지션이 다시 내려오자, ‘조금만 더 기다리면 회복되지 않을까’ 하는 생각으로 손절가를 아래로 내렸다.

결과는 두 가지로 나뉘었다. 첫째는 내린 손절가까지 떨어져서 손실이 더 커진 경우. 둘째는 원칙대로 잘랐다면 그 자리에서 다시 크게 올라버린 경우다.

어림잡아 이 행동으로 놓친 수익이 약 2,000만원이다. 실현한 +701만원과 합산하면 +2,700만원이 될 수도 있었다는 얘기인데, 그렇게 생각하면 이번 달은 잘 버텼다기보다 크게 망친 달에 가깝다.

그리고 이 실수가 유독 아프게 느껴지는 건, 4월 대비 자본금을 약 3배 늘린 상태였기 때문이다. 자본이 커지면 같은 퍼센트 하락이 훨씬 더 큰 실질 금액으로 다가온다. 그 심리적 부담이 손절가를 건드리게 만들었을 가능성이 높다. 아마 자본을 3배 늘리지 않았다면, 압박감이 덜했을 것이고, 규칙을 지킬 여유가 좀 더 있었을 것이다. 결국 자본 확장 속도와 심리 내성이 맞지 않았다는 이야기다.

손절가를 건드리는 건 단순한 규칙 위반이 아니다. 시스템이 백테스트에서 최적화해 놓은 기대값 계산 자체를 실전에서 무너뜨리는 행동이다. 감정이 개입하는 순간, 트레이딩은 시스템이 아니라 감을 따르는 것으로 바뀐다. 백테스트에서 높은 수익을 내던 파라미터도, 실전에서 손절가가 임의로 내려가는 순간 그 전제 자체가 사라진다.

시스템이 설정한 손절가는 건드리지 않는다. 연속 손실이 괴롭더라도, 그 고통은 시스템이 정상 동작한다는 신호다.

자본을 늘리는 건 시스템이 검증된 다음의 일이어야 한다. 이 순서가 바뀌면 심리 부담이 의사결정을 오염시킨다.


전략 버그도 있었다

5월 초중반 손실이 집중된 구간에 전략 버그도 껴 있었다.

포지션 사이징 계산이 의도와 다르게 동작해서 특정 조건에서 리스크 노출이 과도하게 커지는 문제였다. 단순히 수익률이 나빴던 게 아니라, 동일한 신호에 대해 더 많은 자본이 위험에 노출된 채로 돌아갔다는 의미다. 버그를 발견하고 수정한 5/15 이후 포트폴리오가 빠르게 회복된 걸 보면, 월초 급락의 상당 부분은 이 버그 탓이었을 수 있다.

손절가 조작과 전략 버그가 겹친 구간이라는 점에서, 5월 초 손실은 단순한 시장 흐름의 문제가 아니었다. 내가 만든 시스템이, 내 개입과 내 코드 실수로 인해 더 나쁜 결과를 냈다는 것이 솔직한 평가다.

4월에도 비슷한 패턴이 있었다. 검증되지 않은 코드가 실전에 들어가면 어떻게 되는지를, 두 달 연속으로 배우고 있는 셈이다.


5월에 진행한 것들

성과가 나빴던 달일수록 시스템은 의외로 많이 진전됐다. 5월의 핵심 작업 주제는 백테스트-라이브 패리티(Parity)였다. 백테스트 성과가 실전에서 재현되지 않는 문제를 체계적으로 추적하기 위한 작업이다.

  • Decision Journal: 라이브와 백테스트 양쪽에서 매수·매도 결정을 동일한 형식으로 기록하고, journal_replay_compare로 두 쪽을 직접 비교할 수 있게 됐다. 어느 지점에서 괴리가 생기는지 추적할 수 있는 도구가 생긴 것이다.
  • 슬리피지 분해: 체결 갭을 즉시체결 슬리피지와 진입 갭으로 분리했다. 백테스트에서 가정한 비용과 실전 비용의 차이를 더 세밀하게 볼 수 있게 됐다.
  • Google 로그인 추가: 계정 기반으로 포트폴리오를 관리할 수 있는 기반이 마련됐다.
  • 라이브 차트 UI 개선, 좁은 화면 대응 등.

5월은 숫자보다 행동에서 더 많이 잃은 달이었다. 시장 수익률을 밑돌았고, 손절가를 건드려서 잠재적으로 2,000만원을 날렸고, 버그가 겹쳤다. 그 어느 것도 ‘어쩔 수 없었다’고 말하기 어렵다.

6월에는 손절가에 손을 대지 않는 것, 자본 규모를 심리가 감당할 수 있는 수준으로 다시 조정하는 것, 이 두 가지를 먼저 지키는 데 집중하려 한다. 시스템을 믿는다는 건 결국 내 손을 시스템에서 떼어놓는 일이다.

This post is licensed under CC BY 4.0 by the author.