매수보다 매도가 어렵다는 말이 있다. 수동 매매를 해본 사람이라면 공감할 것이다. 오르면 "더 오를 것 같아서" 못 팔고, 내리면 "곧 반등하겠지"라며 못 팔다가 결국 애매한 타이밍에 팔게 된다.
자동매매에서도 매도 로직이 가장 복잡하다. GENIE는 이 문제를 두 단계로 나눠서 해결했다. TP1(1차 익절)과 트레일링 스탑이다.
원칙은 단순하다. 먼저 일부를 확정하고, 나머지는 가격을 따라가다가 꺾이는 순간 판다.
🟢 TP1 — 1차 익절 구조
TP1은 매수 후 +4%가 되면 자동으로 30%를 파는 구조다. 로그에는 이렇게 찍힌다.
🧾 [매도접수:TP1] 089980 상아프론테크 qty=8 timeout=60s
🟢 [TP1] 089980 상아프론테크 mode=FIXED +4% → 30% 매도
📝 [SELL_CSV] 089980 상아프론테크
qty=5 price=27300 pnl=4880 (3.72%)
📝 [SELL_CSV] 089980 상아프론테크
qty=8 price=27281 pnl=7657 (3.65%)
상아프론테크 25주 중 8주를 27,300원에 익절했다. pnl은 약 7,657원 수익. 작은 금액이지만 핵심은 "확정"이다. 이 8주는 이후에 가격이 어떻게 되든 수익으로 고정됐다.
TP1의 목적은 최대 수익이 아니다. 수익의 일부를 먼저 확보해서 이후 트레일링 스탑 구간에서 심리적으로 덜 흔들리게 하는 것이다. 일부를 팔고 나면 남은 물량에 대한 압박이 줄어든다.
📉 트레일링 스탑 — 가격을 따라가다가 꺾이면 판다
TP1 이후 남은 물량은 트레일링 스탑으로 관리한다. 트레일링 스탑은 고점에서 일정 비율 이상 빠지면 자동으로 매도하는 구조다. 가격이 오르면 기준선도 따라 올라가고, 한 번 내려오기 시작하면 그 지점에서 판다.
🧾 [매도접수:TRAIL] 089980 상아프론테크 qty=20 timeout=60s
📝 [SELL_CSV] 089980 상아프론테크
qty=26 price=25450 pnl=-22603 (-3.31%)
✅ [포지션종료] 089980 상아프론테크 pnl=-22603 (-3.31%)
트레일링 스탑으로 나머지 물량이 25,450원에 정리됐다. -3.31% 손실이다. TP1에서 수익을 냈지만 트레일링 구간에서 밀리면서 전체적으로는 손실이 났다.
이게 현실이다. TP1 + 트레일링 구조가 모든 거래에서 수익을 보장하지는 않는다. 다만 무조건 들고 있다가 크게 밀리는 것보다 구조적으로 손실을 제한한다.
📊 두산테스나 — TP1 + 트레일링이 잘 맞물린 케이스
3월 18일 두산테스나는 다른 결과가 나왔다.
| 단계 | 수량 | 체결가 | 손익 |
|---|---|---|---|
| TP1 익절 | 2주 | 86,800원 | +6,130원 (+3.67%) |
| 트레일링 스탑 | 7주 | 86,000원 | +15,871원 (+2.71%) |
| 합계 | 9주 | — | +22,001원 |
※ GENIE V4.16 / 2026-03-18 로그 기준
TP1에서 수익을 확정하고, 트레일링 스탑도 수익 구간에서 잘 마무리됐다. 이게 이상적인 케이스다. 물론 모든 거래가 이렇게 되진 않는다.
❓ Q&A
Q. TP1 비율(30%)과 트리거(+4%)는 어떻게 정한 건가?
솔직히 처음엔 그냥 감으로 잡았다. +5%에 50% 매도도 해봤고, +3%에 20% 매도도 테스트해봤다. 결국 +4% / 30%가 가장 균형이 좋았다. 너무 일찍 너무 많이 팔면 상승 여력을 못 챙기고, 너무 늦게 너무 조금 팔면 확정 효과가 없다. 이 수치는 모의투자 결과를 보면서 계속 조정하는 파라미터다.
✍️ 8편을 마치며
매도 로직은 매수 로직만큼, 어쩌면 더 중요하다. 언제 얼마를 파느냐에 따라 같은 종목, 같은 매수 타이밍에도 결과가 완전히 달라진다.
TP1 + 트레일링 구조가 완벽하다고 생각하지 않는다. 지금도 파라미터를 조정하고 있고, 더 좋은 구조를 고민 중이다. 다만 "감으로 파는 것"보다는 훨씬 일관되고 기록에 남는 방식이라는 건 확실하다.
9편에서는 매도 과정에서 발견한 또 다른 버그, sell_cooldown 이야기다. 같은 종목을 두 번 팔 뻔한 그 황당한 상황.
※ 본 글은 자동매매 시스템 개발 과정을 기록한 정보 제공 목적의 개발 일지입니다. 투자 권유나 수익 보장이 아니며, 모든 투자 판단과 책임은 본인에게 있습니다.