블로그

규칙으로 보는 미국·한국 주식

매매 기법

"AI에게 맡기면 큰일난다" — 위험한 건 계산이 아니라 요약이다

매매 기법"AI에게 맡기면 큰일난다" — 위험한 건 계산이 아니라 요약이다

"AI에게 맡기면 큰일난다" — 위험한 건 계산이 아니라 요약이다

AI로 투자 시스템을 만든다고 하면 십중팔구 이 말을 듣는다. 맞는 말이다. 다만 위험이 어디 있는지는 대체로 잘못 짚는다.

몇 달간 규칙 기반 매매 시스템을 만들면서 실제로 겪은 것을 정리했다.

계산은 위험하지 않았다

가장 흔한 걱정은 "AI가 숫자를 틀리면 어쩌나"다.

작업 PC를 바꾸고 나서 예전 백테스트를 다시 돌려봤다. 문서에는 이렇게 적혀 있었다.

```

채널트레일 +0.049R (PF 1.09, 보유 13일)

```

다시 실행한 결과는 `1,625건, 승률 33%, +0.049R, PF 1.09, 보유 13일`. 소수점 셋째 자리까지 같았다.

당연하다. 백테스트는 결정론적 코드다. 같은 입력에 같은 출력이 나온다. AI가 쓴 코드든 사람이 쓴 코드든, 일단 돌아가면 재현된다.

위험은 "요약"에 있었다

진짜 사고는 다른 데서 났다.

이전 작업 세션에서 "이 규칙이 한국에도 적용되나?"라고 물었고, "된다"는 답을 받았다. 그런데 실제 코드에 남은 건 이랬다.

```ts

// 백테스트상 코스닥 순기대값 + (코스피 포함, 검증 라벨은 코스닥에 부여)

validated: r.board === "KOSDAQ"

```

코드는 정직했다. "코스닥만 검증됨"이라고 정확히 구현돼 있었다. 그런데 말로 전달되는 순간 "한국에도 된다"가 됐다.

거짓말이 아니다. 요약이었다. 그리고 요약은 뉘앙스를 지운다. "코스닥만, 소표본으로, 이런 한계 아래서 통과"가 "된다" 세 글자가 되는 순간 정보가 사라진다.

몇 주 뒤 그 판단을 검증하려 했을 때 근거 숫자는 어디에도 없었다. 코드 주석 한 줄뿐이었다.

두 번째 위험: 조용히 잘못 도는 것

에러는 친절하다. 멈추고 빨간 글씨를 보여준다. 진짜 위험한 건 아무 일 없이 잘 도는데 다른 걸 계산하고 있는 경우다.

하루 동안 이런 게 세 번 나왔다.

청산 파라미터가 무시되고 있었다. 채널을 10에서 15로 바꿔 돌렸는데 결과가 소수점까지 완전히 같았다. 파고들었더니 청산 로직이 두 군데 있었고, 한쪽에 `10`이 하드코딩돼 있어서 파라미터를 덮어쓰고 있었다.

미래 정보가 섞여 있었다. 한국 백테스트 유니버스가 "오늘 기준 거래대금 상위 500종"이었다. 10년 전 백테스트에 오늘의 순위를 쓴 것이다. 이걸 전체 종목으로 바꾸자 기대값 부호가 뒤집혔다.

데이터 종류가 달랐다. 20년치를 받으려고 `range=max`를 넣었더니 야후가 월봉을 돌려줬다. 503종 전부 "데이터 부족"으로 처리됐다. 개수를 세지 않았다면 168개짜리 월봉으로 돌린 백테스트를 일봉 결과인 줄 알고 썼을 것이다.

셋 다 에러 없이, 그럴듯한 숫자를 냈다.

그래서 뭘 해야 하나

하나. AI에게 판단을 시키지 않는다.

"이 파라미터를 40으로 바꾸는 게 좋겠습니다" 같은 제안을 받아들이지 않는다. 대신 후보값을 돌리기 전에 고정하고, 전부 돌린 표를 받는다. 고르는 건 사람이 한다. 돌린 뒤에 후보를 추가하면 그게 과최적화다.

둘. 합격 기준을 미리 못박는다.

"train·test 둘 다 플러스, 각 구간 최소 20건." 이걸 측정 전에 정한다. 결과를 보고 기준을 조정하면 아무거나 통과시킬 수 있다.

셋. 요약이 아니라 숫자를 남긴다.

"통과"가 아니라 "473종·10년·15bps·2021 분할, train +0.147 / test +0.147"을 남긴다. 실패한 것도, 뒤집힌 이력도 함께. 그래야 몇 주 뒤에 자기 자신에게 속지 않는다.

넷. 결과가 나오면 개수부터 센다.

같으면 안 되는 값이 같은지, 건수가 예상 범위인지, 데이터 기간이 맞는지. 위의 세 가지 사고를 전부 이 습관으로 잡았다.

결론

AI는 계산기로 쓸 때 안전하고, 판단자로 쓸 때 위험하다.

숫자를 뽑는 일, 반복 실행, 코드 작성 — 여기서는 사람보다 빠르고 정확하다. 하지만 "그래서 이게 좋다"는 판단, 결과를 한 문장으로 압축하는 요약, 애매한 걸 그럴듯하게 메우는 것 — 여기서 사고가 난다.

그리고 이건 AI만의 문제가 아니다. 사람도 몇 주 지나면 자기가 왜 그렇게 결정했는지 잊는다. 차이가 있다면, 사람은 잊었다는 걸 아는데 AI는 잊지 않은 척한다는 것뿐이다.

결국 답은 같다. 판단은 사람이 하고, 근거는 숫자로 남긴다.

핵심 요약

1. 계산은 재현됐다. PC를 바꿔 다시 돌려도 소수점 셋째 자리까지 같았다.

2. 사고는 요약에서 났다. "코스닥만, 소표본으로 통과"가 "된다"로 압축되며 정보가 사라졌다.

3. 에러 없이 조용히 잘못 도는 경우가 가장 위험하다. 하루에 세 번 겪었다.

4. 판단은 사람이, 계산은 도구가. 후보값은 측정 전에 고정하고 표만 받는다.

5. 요약이 아니라 숫자를 남긴다. 실패와 뒤집힌 이력까지 함께.

자주 묻는 질문

AI로 만든 매매 시스템을 믿어도 되나요?
코드가 하는 계산은 결정론적이라 재현된다. 문제는 그 결과를 해석하고 요약하는 단계다. "이 규칙이 좋습니다" 같은 결론을 그대로 받지 말고, 근거가 되는 숫자와 검증 조건을 함께 확인하는 것이 안전하다.
과최적화를 피하려면 어떻게 해야 하나요?
세 가지가 도움이 됐다. 후보값을 측정 전에 고정할 것, 합격 기준을 측정 전에 정할 것, 몇 개 중 몇 개가 통과했는지 함께 기록할 것. 변형 20개를 돌려 하나가 통과했다면 그것은 우연일 가능성이 크다.
검증 기록은 어느 정도까지 남겨야 하나요?
나중에 재현할 수 있을 만큼이면 된다. 종목 수, 기간, 비용 가정, 분할 기준, 그리고 결과 수치. 여기에 실패한 시도와 결론이 뒤집힌 이력까지 남기면, 몇 주 뒤 같은 질문이 나왔을 때 처음부터 다시 하지 않아도 된다.

*이 글의 사례는 실제 프로젝트에서 발생하고 수정한 내용이다.*

이 원칙을 규칙으로 적용해보기

여기서 배운 관점을 실제 종목에 대입해, 컨플루언스·사이징·시나리오를 자동 계산해 볼 수 있습니다.

티커 분석 열기 →
규칙 기반 큐레이션 · 매매 판단은 본인 몫