언젠가는 나만의 자동매매 시스템을 만들어 보고 싶다는 생각만 계속 하고 있었다.
하지만 항상 생각뿐이었다.
‘나중에 해야지.’
‘시간 나면 해야지.’
핑계를 대며 미루다 보니 어느새 몇 년이라는 시간이 흘러버렸다.
이번에는 정말 끝까지 만들어 보기로 결심했다.
그 다짐을 잊지 않기 위해, 그리고 나와 같은 고민을 하는 개발자들과 기록을 나누기 위해 이 글을 첫 기록으로 남긴다.
수동 매매의 한계: 원칙을 무너뜨리는 ‘감정’
자동매매 프로그램을 만들기로 한 가장 큰 이유는 사실 내 성격, 아니 인간의 본성 때문이다.
나도 나름대로 수동 매매를 할 때도 기준은 있었다.
- 매수 조건 타점 설정
- 철저한 손절(Stop Loss) 기준
- 익절 타겟 설정
신기하게도 머리로는 완벽한 기준을 세워놓고 시작한다.
하지만 실제 돈이 움직이고 매매창이 깜빡이기 시작하면 그 기준은 감정 앞에서 힘없이 무너진다.
수익이 조금 나면 ‘조금만 더’라는 욕심이 목을 조르고, 손실이 나면 ‘본전만 오면 팔자’며 미련을 부린다.
손실을 인정하기 싫은 마음 때문에 결국 원칙은 사라지고 감정만 남은 매매를 반복하게 된다
그때 문득 깨달았다.
“차라리 내가 판단하지 않는 프로그램을 만들어보자.”
몇 년간의 실패, 그리고 AI 시대가 준 기회
그렇게 업비트(Upbit) API를 만지며 자동매매를 만들어 보겠다고 마음먹었지만, 현실은 녹록지 않았다.
조금 만들다가 벽에 부딪혀 포기하고, 시간이 지나면 미련이 남아 다시 켰다가 또 포기하고… 그렇게 몇 년을 또 허비했다.
아마 개발자라면, 혹은 투자자라면 누구나 한 번쯤 “자동매매 한번 만들어 볼까?” 생각했을 것이다.
하지만 끝까지 완주하는 사람은 많지 않다. 나 역시 그 실패자 중 한 명이었다.
하지만 지금은 예전과 달라졌다. 바로 AI 시대가 왔기 때문이다.
과거에는 아키텍처 설계부터 사소한 버그 디버깅까지 외로운 싸움을 해야 했지만,
이제는 LLM 에이전트와 함께 협업하며 진입 장벽을 완전히 낮출 수 있게 되었다.
이번에는 AI와 같이 기획하고, AI와의 든든한 릴레이 코딩을 통해 핑계를 대지 않고 끝까지 밀고 나가보려 한다.
프로그램은 욕심이 없다
내가 자동매매에 다시 도전하는 이유는 단순하다.
- 프로그램은 욕심이 없다.
- 본전 생각을 하며 미련을 두지 않는다.
- 오직 내가 정한 전략과 원칙만을 기계적으로 실행한다.
사람이 절대 이길 수 없는 ‘감정의 영역’을 프로그램은 가뿐히 해결해 줄 수 있다고 믿는다.
물론 현실 개발은 예상보다 훨씬 매서웠다.
백테스트 상에서는 완벽했던 우상향 그래프가 실거래(Live Trading) 환경에 나가자마자 무너지는 일도 부지런히 겪었다.
호가창의 두께와 슬리피지(Slippage) 하나 때문에 진입 전략을 통째로 뜯어고쳐야 했던 시행착오도 있었다.
아직 해결해야 할 인프라 문제도 많고 가야 할 길이 멀다. 하지만 이번에는 중간에 코드를 덮지 않을 생각이다.
마치며: 성공담이 아닌, 치열한 기록으로
이 개발일지는 화려한 수익률을 자랑하는 성공담이 아니다.
자동매매 시스템을 밑바닥부터 빌드업하면서 어떤 고민을 했고,
어떤 기술적 시행착오를 겪었으며, 무수한 예외 상황들을 어떻게 하나씩 해결해 나갔는지 가감 없이 남기는 실전 개발 일지다.
언젠가 이 프로젝트가 어느 정도 완성 궤도에 올랐을 때,
이 첫 번째 글을 다시 읽으며 이렇게 한마디 건넬 수 있기를 바란다.
“그래도 이번에는 정말 도망치지 않고 끝까지 왔네.”
개발일지 이어보기
다음 글: 업비트 자동매매 개발일지 #2 – 개발 환경 세팅
이 글은 개인적인 개발 과정과 경험을 기록한 글이며, 특정 투자 또는 수익을 권유하거나 보장하지 않습니다.
