AI한테 물어봤다.
“자동매매 조건식 어떻게 만들어?”
그럴듯한 조건식이 나왔다. 이동평균선 교차, 거래량 급증, RSI 과매도 구간 진입. 정석처럼 보였다. 그대로 K-Trader에 입력했다. 실전에 돌렸다.
실패했다.
한 번이 아니었다. 조건을 조금 바꿔서 다시 돌려봐도, AI에게 다른 방식으로 물어봐도, 결과는 비슷했다. 그때 처음으로 이런 생각이 들었다.
“AI가 주는 전략이 왜 실전에서는 안 먹히는 걸까.”
그 질문을 파고들다가 결국 답을 찾았다. 전략은 이론에서 나오는 게 아니라 경험에서 나온다는 것. 이 글은 그 과정의 기록이다.
① AI가 준 조건식을 그대로 썼다
자동매매 시스템을 처음 만들 때 가장 막막한 게 조건식이다. 어떤 조건에서 종목을 편입할 건지, 어떤 신호를 보고 매수할 건지. 이걸 처음부터 스스로 설계하는 건 쉽지 않다.
그래서 AI에게 물었다. 지금처럼 Claude가 본격적으로 쓰이기 시작하던 시기였다. 자동매매 조건식을 어떻게 구성하면 좋은지 물어봤더니, AI는 꽤 구체적인 조건들을 제시해줬다.
거래량이 평균 대비 X배 이상 급증할 것
단기 이동평균선이 장기 이동평균선을 상향 돌파할 것
RSI가 특정 구간에 위치할 것
이런 식의 조건들이었다. 교과서에 나올 법한 내용이었다.
그대로 넣었다. 처음엔 그게 맞는 방법인 줄 알았다. 자동매매를 처음 만드는 사람 입장에서 AI가 주는 조건식은 꽤 그럴듯하게 들렸다. 검증 없이 신뢰했다.
실전 결과는 기대와 달랐다.
조건식은 돌아갔다. 종목도 편입됐다. 그런데 수익이 나지 않았다. 오히려 조건식 없이 수동으로 고른 종목보다 결과가 나빴다.
② AI 조건식이 실패한 이유
왜 안 됐는지를 한참 생각했다. 결론은 생각보다 단순했다.
AI가 주는 조건식은 일반론이다. 시장이 어떻게 작동하는지에 대한 교과서적인 설명을 조건으로 옮긴 것에 가깝다. 그 자체로 틀린 건 아니다. 하지만 실전 매매에서 통하려면 일반론 이상이 필요하다.
❌ AI 조건식의 한계
지금 이 시장의 수급 흐름을 모른다
어떤 종목군이 움직이는지 맥락이 없다
실전 체결 방식과 슬리피지를 반영 못 한다
시장 환경이 바뀌면 조건의 유효성도 바뀐다
✅ AI가 잘하는 것
조건식 코드를 빠르게 구현해준다
로직 오류를 찾아준다
데이터 분석과 패턴 정리를 도와준다
전략의 구조를 설계하는 데 도움을 준다
AI는 전략을 만들어주는 도구가 아니다. 전략을 구현하고, 검증하고, 개선하는 과정을 도와주는 도구다. 이 차이를 처음엔 몰랐다.
“이론적으로 맞는 전략”과 “실전에서 통하는 전략”은 다른 것이다. AI는 전자를 잘 알고, 후자는 경험에서 나온다.
③ 경험을 조건식에 녹였다
방향을 바꿨다. AI가 주는 조건식을 쓰는 게 아니라, 내가 수동 매매로 수익을 냈던 방식을 조건식으로 변환하는 방법으로.
수급 주도주 매매는 직장인 시절부터 공부하고 실전에서 써온 방식이다. 시장에서 주도적으로 자금이 몰리는 종목, 즉 수급이 살아있는 종목을 찾아 타점을 잡는 방식이다. 책으로 배우고, 실전에서 틀리고, 다시 고치면서 쌓인 감각이 있었다.
핵심 전환: 수동 매매로 수익이 났던 상황들을 데이터로 정리하고, 그 공통 조건을 조건식으로 옮겼다.
AI가 주는 일반론이 아니라, 내가 직접 경험한 패턴을 수치로 변환한 것이다. 이 차이가 결과를 바꿨다.
물론 이 과정이 쉽지는 않았다. 감각을 수치로 변환한다는 게 말처럼 단순하지 않다. “이 느낌에서 들어갔다”를 조건식으로 만들려면, 그 느낌이 구체적으로 어떤 상황이었는지를 먼저 언어로 정의해야 한다. 그 작업에 시간이 꽤 걸렸다.
그 과정에서 AI는 다시 유용하게 쓰였다. 내가 정리한 조건들을 코드로 구현하는 것, 조건들 사이의 논리 오류를 찾는 것, 데이터를 분석해서 패턴을 확인하는 것. 이 부분에서 AI는 확실히 속도를 높여줬다.
경험을 AI의 도움으로 구현하는 것이다.
④ 백테스트의 한계 — 그래도 해야 하는 이유
조건식을 경험 기반으로 바꾸고 나서 수익률에 변화가 생겼다. 하지만 여기서 하나 더 짚고 넘어가야 할 게 있다. 백테스트 자체의 한계다.
백테스트는 과거 데이터를 기반으로 전략을 검증하는 방식이다. 과거에 잘 됐다는 걸 확인할 수 있지만, 미래에도 잘 된다는 보장이 없다. 시장은 계속 바뀐다. 2020년에 통했던 전략이 2024년에도 통한다는 보장은 없다.
⚠️ 백테스트 수익률을 그대로 믿으면 안 되는 이유
과거 데이터에 과적합(overfitting)된 전략일 수 있다. 백테스트 환경과 실전 환경의 수수료, 체결 방식, 슬리피지 차이가 있다. 시장 환경이 바뀌면 전략의 유효성도 함께 바뀐다.
그렇다고 백테스트가 필요 없다는 말이 아니다. 오히려 반드시 해야 한다. 다만 목적이 다르다.
백테스트의 진짜 용도: 수익률 예측이 아니라 전략의 방향성 검증이다.
이 전략이 과거 데이터에서 어떤 패턴을 보이는지, 어떤 시장 환경에서 잘 작동하고 어떤 환경에서 무너지는지를 파악하는 도구다. 수익률 수치보다 승률, 최대 낙폭, 손익비의 패턴을 보는 게 맞다.
AI가 준 조건식이 실패한 것도, 사실 백테스트를 제대로 했다면 일찍 걸러낼 수 있었다. 실전에 넣기 전에 과거 데이터에서 어떻게 작동하는지 확인하는 과정을 건너뛴 것도 실수였다.
백테스트가 화려할수록 의심해야 하는 이유
백테스트에서 수익률이 눈부시게 나오면 대부분 흥분합니다. 하지만 경험이 쌓일수록 저는 화려한 백테스트 결과를 오히려 경계하게 됐습니다. 과거 데이터에 완벽하게 들어맞는 조건식일수록, 미래에는 통하지 않을 가능성이 크기 때문입니다. 이것이 바로 과최적화(오버피팅)의 함정입니다.
제가 만든 AI 조건식이 안 통한 근본 이유도 여기 있었습니다. 조건을 하나씩 추가하며 과거 수익률을 높이다 보니, 어느새 그 조건식은 과거의 우연한 패턴을 외운 것에 불과했습니다. 시장에 실제로 존재하는 원리가 아니라, 지나간 데이터에만 있던 소음을 규칙으로 착각한 것입니다. 실전에 투입하자마자 성과가 무너진 건 당연한 결과였습니다.
교훈은 분명했습니다. 조건은 적을수록 강하다. 세 개의 조건으로 설명되는 전략이, 서른 개 조건을 욱여넣은 전략보다 오래 살아남습니다. 단순함은 견고함의 다른 이름이었습니다.
백테스트를 제대로 하는 법
실패를 겪고 나서 백테스트를 대하는 방식을 완전히 바꿨습니다. 첫째, 검증 구간을 나눴습니다. 전체 데이터로 조건을 만들면 반드시 과최적화됩니다. 그래서 데이터의 일부(예: 과거 절반)로만 규칙을 만들고, 나머지 한 번도 보지 않은 구간에서 성과를 확인했습니다. 이 ‘보지 않은 데이터’에서도 통해야 진짜 전략입니다.
둘째, 수익률보다 안정성을 봤습니다. 최대낙폭이 얼마인지, 손실이 몇 번 연속됐는지, 다양한 시장 국면에서 고르게 작동하는지를 확인했습니다. 셋째, 거래 비용을 현실적으로 반영했습니다. 수수료·세금·슬리피지를 빼고 나면 화려하던 수익률이 초라해지는 경우가 많았습니다. 이 비용을 무시한 백테스트는 환상일 뿐입니다.
실패가 알려준 가장 큰 교훈
결국 백테스트 실패가 제게 남긴 가장 큰 교훈은, 백테스트는 미래를 예측하는 도구가 아니라 나쁜 전략을 걸러내는 도구라는 것이었습니다. 좋은 백테스트 결과가 미래의 수익을 보장하지는 않지만, 형편없는 백테스트 결과는 그 전략을 피해야 한다는 명확한 신호를 줍니다. 이 겸손한 기대치를 갖추고 나서야, 저는 비로소 백테스트를 도구답게 쓸 수 있게 됐습니다. 완벽한 전략을 찾으려는 욕심을 버리고, 치명적인 실수를 피하는 데 집중하자 오히려 실전 성과가 안정되기 시작했습니다.
AI를 매매에 쓸 때의 올바른 자세
AI로 조건식을 만드는 것은 분명 강력한 접근이지만, 반드시 기억해야 할 전제가 있습니다. AI는 주어진 데이터 안에서 패턴을 찾아낼 뿐, 그 패턴이 미래에도 유효할지는 판단하지 못한다는 것입니다. AI가 찾은 조건이 그럴듯해 보여도, 그것이 경제적으로 설명 가능한 원리인지 사람이 반드시 되물어야 합니다. “왜 이 조건에서 오르는가”에 답할 수 없다면, 그것은 발견한 법칙이 아니라 우연히 맞아떨어진 소음일 확률이 높습니다. AI는 아이디어를 빠르게 검증해 주는 조수이지 판단을 대신하는 주인이 아닙니다. 이 주종 관계를 혼동하는 순간, 정교한 AI 조건식은 정교하게 손실을 반복하는 장치가 되고 맙니다. 도구가 똑똑해질수록, 그 도구를 쓰는 사람의 비판적 사고가 더 중요해지는 것입니다.
마무리 — AI를 잘 쓰는 것과 AI에 의존하는 것은 다르다
K-Trader를 만들면서 AI를 정말 많이 썼다. 코드 구현, 디버깅, 데이터 분석, 로직 검토까지. AI 없이는 지금의 시스템이 없었을 거라고 해도 과언이 아니다.
하지만 전략 자체는 AI가 만들어주지 않았다. 책에서 배우고, 실전에서 틀리고, 데이터로 확인하는 과정을 직접 거쳐야만 나오는 것이었다. AI에게 전략을 물어보던 초기의 실수가 오히려 이걸 더 명확하게 알게 해줬다.
📌 이 글의 핵심 요약
- AI가 주는 조건식은 일반론이다 — 실전에서 그대로 통하지 않는다
- 전략은 경험에서 나온다 — 수동 매매의 패턴을 조건식으로 변환하는 것이 핵심
- AI는 전략 구현과 검증 과정에서 강력한 도구다 — 하지만 전략을 만들어주지는 않는다
- 백테스트는 수익률 예측이 아니라 전략의 방향성을 검증하는 도구다
다음 글에서는 주식 수익이 안 나는 진짜 이유를 이야기해볼 예정이다. 전략이 없어서가 아니라, 감으로 매매하기 때문이라는 이야기다.
→ 이전 글이 궁금하다면: 단타에서 가장 중요한 시간대 — 데이터로 증명한다
→ 백테스트 방법론에 대해 더 알고 싶다면 한국투자증권 리서치센터의 시장 분석 자료를 참고할 수 있다.
이 글은 리치스피커의 실제 투자 경험을 바탕으로 한 개인적인 회고 및 정보 제공 목적의 콘텐츠입니다. 특정 종목·자산의 매수 또는 매도를 권유하지 않으며, 이 글의 내용이 특정 투자 결과를 보장하지 않습니다.
이 블로그는 알고리즘 트레이딩 시스템(K-Trader)의 개발 과정과 투자 경험을 기록하는 개인 블로그입니다. 과거의 수익률 또는 백테스트 결과는 미래의 수익을 보장하지 않습니다.
모든 투자 판단과 그에 따른 책임은 전적으로 투자자 본인에게 있습니다.