AI가 만든 매매 프로그램에 수익곡선이 나오면 전략을 개선하고 싶어진다. 하지만 좋은 곡선은 입력 시각이나 비용 계산이 틀렸을 때도 만들어진다. 성과를 높이기 전에 계산이 무엇을 뜻하는지 확인해야 한다.
검증은 손으로 풀 수 있는 거래 한 건에서 시작할 수 있다. 그 거래의 현금·수량·비용이 맞는지 확인한 뒤, 여러 거래가 이어질 때도 같은 원리가 유지되는지 살펴본다.
검산의 첫 기준은 더 높은 수익률이 아니라 작은 사례에서 기대한 값과 실제 계산이 같은가다.
1. 입력과 계산 시점을 먼저 고정한다
한 행의 날짜가 신호 날짜인지 체결 날짜인지 확인한다. 종가로 만든 신호가 언제 확정되는지, 포지션 크기를 정할 때 어떤 가격을 알 수 있었는지도 적는다.
다음 날 가격으로 전날의 판단을 개선하면 작은 미래 정보 사용이 생긴다. 출력에 입력 기준 시각·신호 시각·주문 가능한 시각을 나란히 남기면 이런 오류를 찾기 쉬워진다.
2. 손으로 풀 수 있는 거래부터 확인한다
가상 예시로 현금 1,100에서 10개를 개당 100에 사고 101에 모두 판다고 하자. 매수·매도 때 각각 비용 1을 차감하면 비용 전 이익은 10, 비용 후 이익은 8, 최종 현금은 1,108이다.
AI에는 “아래 거래를 행별로 계산하고 현금·수량·평가액을 출력해 줘. 기대값과 다르면 처음 다른 행을 표시해 줘”라고 요청할 수 있다. 원자료인 거래 입력과 대조할 예상 출력은 다음과 같다.
상태 | 현금 | 보유 수량 | 현금과 주식 평가액의 합 |
|---|---|---|---|
매수 전 | 1,100 | 0 | 1,100 |
100에 10개 매수·비용 1 차감 직후 | 99 | 10 | 1,099 |
101에 전량 매도·비용 1 차감 직후 | 1,108 | 0 | 1,108 |
매수 직후 평가가격은 100이고 입출금·세금·배당은 없다고 가정했다. 매수 직후 현금이 100으로 나오면 비용 차감이 빠졌거나 시점이 다른지 확인한다. 숫자가 다르면 성과 지표를 보기 전에 수량·가격·비용의 어느 단계가 다른지 찾는다.
3. 비용과 현금 흐름은 발생 단위로 대조한다
수수료, 무기한선물의 펀딩 지급·수취, 차입 비용은 발생 시각의 포지션과 약정 조건에 연결된다. 총합을 나중에 한 번 처리하면 중간 현금과 가용 자금이 달라질 수 있다.
펀딩의 양수·음수만 보고 항상 비용 또는 수익이라고 단정하지 않는다. 보유 방향과 계약에 맞춰 지급·수취를 기록해야 한다. 최종 이익이 우연히 같아도 중간 잔고와 위험 한도가 틀릴 수 있다.
4. 정상 거래보다 경계 상황을 묻는다
거래가 없는 날, 수량이 0인 경우, 비용만 발생한 날, 일부만 체결된 경우와 입력 누락을 넣어 본다. 다시 실행했을 때 이미 처리한 거래를 또 계산하지 않는지도 확인한다.
백테스트와 다른 엔진이 어긋나면 첫 차이가 발생한 행부터 비교한다. 최종 수익률이 비슷하다는 이유로 계산 경로의 차이를 넘기지 않는다.
5. AI의 설명과 확인한 증거를 나눈다
수정했다고 설명한 문장보다 입력 사례, 예상값, 실제 출력과 실패한 경우를 남긴다. 모델이나 연산 자원을 바꾸었다는 사실만으로 계산의 정확성이나 전략의 우위가 증명되지는 않는다.
검증은 구현이 규칙대로 계산되는가와 그 규칙에 시장의 우위가 있는가를 나누어 수행한다. 계산이 맞는 전략도 손실을 낼 수 있고, 수익이 좋은 잘못된 엔진도 만들 수 있다.
