자동매매 시스템 K-Trader, 내가 직접 만든 이유

수익 내는 법은 알고 있었다. 수급을 읽는 법, 타점을 잡는 법, 언제 들어가야 하는지도 감이 생겼다. 그런데 계좌는 계속 손실을 봤다.

원인을 찾는 데 꽤 오래 걸렸다. 전략이 문제가 아니었다. 내 감정이 문제였다.

이 글은 그 깨달음이 어떻게 K-Trader라는 자동매매 시스템으로 이어졌는지에 대한 이야기다.

수급 매매로 수익을 냈다 — 그런데 왜 계속 잃었나

전업투자자로 전환한 초기, 나는 수급 매매를 중심으로 단타를 쳤다. 어느 종목에 기관이나 외국인 수급이 몰리는지, 거래량이 터지는 타이밍이 언제인지를 읽는 방식이었다. 2~3년을 반복하다 보니 패턴이 보이기 시작했고, 실제로 수익이 나는 날도 늘어났다.

그런데 한 달을 놓고 보면 이상했다. 잘 되는 날이 있고, 크게 잃는 날이 있었다. 잘 되는 날의 수익보다 크게 잃는 날의 손실이 더 컸다. 수익 곡선이 우상향이 아니라 들쭉날쭉했다.

문제는 욕심이었다. 타점을 잡아서 수익이 나기 시작하면 “조금만 더”가 시작됐다. 목표 수익에 도달했는데도 익절을 못 하고 버텼다. 반대로 손실이 나면 “곧 반등하겠지”라는 생각에 손절을 못 했다. 기다리다가 손실이 두 배, 세 배로 커졌다.

수익 날 때 → 더 먹으려다 익절 타이밍 놓침
손실 날 때 → 반등 기다리다 손절 타이밍 놓침

이 패턴이 반복됐다. 전략은 맞는데 실행이 틀렸다. “방법을 아는 것”과 “실제로 실행하는 것”은 완전히 다른 문제였다.

감정이 매매를 망치는 구조

왜 알면서도 못 하는 걸까. 한동안 이 질문을 붙들고 있었다.

결론은 단순했다. 인간의 뇌는 손실을 이익보다 두 배 이상 크게 느낀다. 행동경제학에서 말하는 손실 회피 편향이다. 이론으로는 알고 있었지만 실전에서 이걸 이기는 건 다른 문제였다.

손실이 나면 뇌는 “아직 손실이 확정된 게 아니다”라고 속삭인다. 포지션을 들고 있는 한 아직 기회가 있다고 느낀다. 그래서 손절을 못 한다.

수익이 나면 뇌는 “이게 사라질까봐 두렵다”고 반응한다. 빨리 챙겨야 한다는 불안이 생긴다. 그래서 너무 일찍 익절하거나, 반대로 더 먹으려다 타이밍을 놓친다.

이 두 가지가 동시에 작동하면 수익 곡선은 망가진다. 전략이 아무리 좋아도 실행하는 사람이 감정에 흔들리면 소용없다.

직장을 다닐 때보다 전업으로 매매에 집중하는데 오히려 수익이 더 안 났던 이유도 여기 있었다. 시간이 많아지니까 차트를 더 오래 봤고, 차트를 오래 볼수록 감정이 더 많이 개입됐다.

IT 기획자가 자동매매를 만들기로 한 순간

나는 IT 기업에서 기획자이자 프로젝트 매니저로 일한 경험이 있다. 직접 쇼핑몰을 만들고, 여러 사이트 개발에 참여하면서 개발에 대한 기본 감각은 갖추고 있었다.

자동매매 시스템은 오래전부터 머릿속에 있었다. 하지만 직장을 다니는 동안에는 한 번도 실제로 도전해본 적이 없었다. 언젠가 해봐야지 하고 미뤄두던 것이었다.

그러다 어느 날 생각이 정리됐다.

“문제가 내 감정이라면, 감정이 개입할 여지를 없애면 된다. 그 도구를 직접 만들면 되지 않나.”

기획자의 시각으로 보면 자동매매 시스템도 결국 하나의 프로덕트였다. 입력값(조건), 프로세스(매매 규칙), 출력값(매수/매도 실행). 이걸 코드로 구현하면 감정이 끼어들 자리가 없어진다.

미국에서 한국 주식 시장 시간에 맞춰 단타를 치는 것도 한계였다. 한국 장은 오전 9시에 열린다. 미국 동부 기준으로는 밤 8시다. 다음 날을 생각하면 12시에 잔다고 해도 서너 시간밖에 시간이 없었다. 심지어 수익을 가장 크게 안겨주는 종가 베팅도 거의 못 했다. 매일 이 시간에 맞춰 모니터 앞에 앉는 건 지속 가능한 방식이 아니었다. 자동화는 선택이 아니라 필수였다.

K-Trader의 시작 — v0.1에서 v10.7까지

v0.1 — 첫 번째 시스템

첫 버전은 아주 단순했다. 조건식 편입 → 매매 → 손절/익절. 이 세 가지만 작동하는 도구였다. 정교함은 없었지만 핵심은 있었다. 내가 판단하지 않아도 된다는 것.

처음으로 자동으로 손절이 실행되는 걸 봤을 때의 느낌은 지금도 기억한다. “아, 이래서 시스템이 필요하구나.”

v1.x ~ v5.x — 기능 확장

점점 내가 원하는 타점을 자동으로 인식하는 기능을 추가했다. 단순히 조건식을 따르는 게 아니라, 내가 수급 매매에서 눈으로 포착하던 패턴을 코드로 옮기는 작업이었다.

리스크 방지 기능도 넣었다. 하루 손실이 일정 수준을 넘으면 자동으로 매매를 멈추는 기능이다. 내가 손절을 못 하는 문제를 시스템이 강제로 해결해줬다.

v6.x ~ v10.7 — 고도화

TS(트레일링 스탑)와 SM 기능이 추가됐다. 트레일링 스탑은 수익이 날 때 수익을 최대한 끌고 가면서도 일정 수준 이하로 떨어지면 자동 익절하는 기능이다. “조금만 더”라는 욕심을 시스템이 대신 관리해줬다.

v0.1로 시작해서 지금은 v10.7이다. 자잘한 수정까지 포함하면 실제 버전은 거의 v100에 가까울지도 모른다. 매매하면서 발견한 문제를 고치고, 고치면 새로운 문제가 생기고, 또 고치는 루프가 지금도 계속되고 있다.

자동매매가 해결해준 것과 아직 못 해준 것

✅ 해결된 것

감정적 손절 회피

과매매 방지

익절 타이밍 자동화

수면 중 / 자리 비울 때 매매

전략 품질 개선 (백테스트 기반)

시장 변화 대응 (조건식 업데이트)

🔧 아직 과제인 것

모듈화 — 전략별 독립 구조

도구화 — 나만 쓰는 시스템에서 여러 사람이 쓸 수 있는 범용 도구로 확장

모듈화와 도구화는 K-Trader의 다음 과제다. 지금은 내 전략, 내 스타일에 최적화된 시스템이다. 이걸 다른 사람도 자신의 전략에 맞게 쓸 수 있는 구조로 만드는 것이 앞으로의 방향이다.

마무리 — 핵심 3줄 요약

  • 전략을 아는 것과 실행하는 것은 다른 문제다 — 감정이 실행을 망친다
  • 자동매매는 감정이 개입할 여지를 없애는 도구다
  • K-Trader는 v0.1에서 시작해 지금도 업데이트 중인 살아있는 시스템이다

다음 글에서는 K-Trader를 구체적으로 소개한다. 어떤 구조로 작동하는지, 어떤 조건에서 매수하고 어떤 조건에서 손절하는지. 자동매매가 실제로 어떻게 생겼는지 궁금한 분들은 다음 글을 기대해도 좋다.

⚠️ 투자 위험 고지 및 면책조항

이 글은 리치스피커의 실제 투자 경험을 바탕으로 한 개인적인 회고 및 정보 제공 목적의 콘텐츠입니다. 특정 종목·자산의 매수 또는 매도를 권유하지 않으며, 이 글의 내용이 특정 투자 결과를 보장하지 않습니다.

이 블로그는 알고리즘 트레이딩 시스템(K-Trader)의 개발 과정과 투자 경험을 기록하는 개인 블로그입니다. 과거의 수익률 또는 백테스트 결과는 미래의 수익을 보장하지 않습니다.

모든 투자 판단과 그에 따른 책임은 전적으로 투자자 본인에게 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤