프로그램 개발은 물론, 스크린샷 캡쳐, 블로그 초안 작성까지 클로드가 했다.
프로그램 소개
퇴근 후 시간을 쪼개서 토스증권(국내/미국 주식)과 업비트(코인) API를 연동한 자동매매 프로그램을 만들었다.
여러 매매 전략을 골라서 백테스트하고, 검증이 끝나면 모의투자 → 실거래로 넘어갈 수 있는 구조로 만들었다.
- 추세추종 전략(이동평균 크로스, MACD, 돈치안 브레이크아웃)
- 평균회귀 전략(RSI, IBS 밴드, Connors RSI2/R3, Down Days)
- 모멘텀/포트폴리오 전략(크로스 모멘텀, 듀얼 모멘텀)
- 직접 규칙을 짜서 쓰는 커스텀 전략
이 정도를 골라 쓸 수 있게 만들어놨고, 실거래 붙이기 전에 반드시 과거 데이터로 먼저 검증하는 것을 유도했다.

백테스팅
말로는 "전략을 검증한다"고 하지만 실제로는 그냥 이것저것 다 돌려본 거에 가깝다.
같은 종목, 같은 기간을 두고 전략만 바꿔가며 수익률/MDD(최대낙폭)를 계속 비교했다.
그런데 매수/매도를 하도록 설정하는 순간 수익 내기가 어려워졌다
매수만 하니까 수익률이 확 좋아졌다.
돌이켜보면 당연한 얘기일 수도 있다. 장기적으로 우상향하는 자산이라면, 파는 타이밍을 억지로
알고리즘화하는 것보다 그냥 사서 들고 있는 편이 오히려 나을 수 있다는 것.


답은 "밀림(밀리면) 사자" 🦁
요즘 코스피 시장을 보면 단일 종목 레버리지 상품들 때문에 변동성이 확실히 커졌다는 걸 느낀다.
급락이 나오는 날이 이전보다 잦아졌는데, 문제는 그 급락이 하루이틀 만에 금방 반등해버린다는 거다.
본업이 있는 사람이 하루 종일 차트를 보고 있을 수는 없으니, 이런 "급락 -> 빠른 반등" 패턴은 놓치기 쉽고, 놓치면 아예 기회 자체가 사라진다. 그래서 "떨어지면 사자"를 사람이 실시간으로 판단하는 게 아니라, 미리 정해둔 규칙대로 자동으로 사들이는 방식이 필요하다고 생각했다.
이 판단 끝에 만든 게 "거미줄 매수" 기능이다. 원리는 단순하다.
- 종목마다 "전일 종가 대비 -n%" 혹은 원하는 지정가를 미리 걸어둔다.
- 장이 열리면 프로그램이 알아서 그 가격에 매수 주문을 넣는다.
- 체결되면 설정에 따라 다음 거래일에 다시 주문을 걸어둔다(재장전).
급락이 왔을 때 사람이 지켜보다 사는 게 아니라, 가격이 미리 정해둔 선까지 밀리면 자동으로 사들이는 구조다. 코인(업비트)에도 같은 개념을 적용했는데, 코인은 24시간 시장이라 매매일 경계를 한국시간 오전 9시로 맞춰서 업비트 앱의 "전일 대비" 기준과 동일하게 맞췄다.

마무리
전략을 이것저것 백테스트해본 결론은 두 가지였다.
"팔지 말고 사기만 하자"는 것, 그리고 "싸질 때를 사람이 지키지 말고 자동으로 잡자"는 것.
이 두 가지를 합친 게 지금의 거미줄 매수 기능이고, 다른 기능들도 어느 정도 검증되고 난 후에 공개할 예정이다.
JJ Trader
주식/코인 백테스트와 자동매매 모니터링
jjtrader.duckdns.org
'개발 > 개발 일기' 카테고리의 다른 글
| 구글 Play Console 개발자 계정 인증 완료(주민등록등본) (0) | 2024.11.18 |
|---|---|
| [Open Source] 옵시디언 번역 참여 (1) | 2024.04.17 |
| .NET Conf 2024 x Seoul 참가 후기 (0) | 2024.02.21 |
| [프로그래머스] 2023 개발자 서베이 리포트 (3) | 2023.03.15 |
| 토스 일 잘한다. (1) | 2023.03.11 |
댓글