본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 29. 04:07

paper/live 감사 폴더로 매매 로그를 분리하는 설계

요약

자동 매매 시스템의 신뢰성을 높이기 위해 가상 매매(paper)와 실전 매매(live)의 로그를 분리하는 설계 방안을 제안합니다. 봇의 주문 의도(Intent)와 실제 체결 결과(Fills)를 구분하여 슬리피지나 통신 오류 등의 원인을 명확히 분석할 수 있도록 합니다.

핵심 포인트

  • 가상 매매와 실전 매매 로그의 물리적 분리
  • 주문 의도(Intent)와 실제 체결(Fills) 데이터의 구분
  • 슬리피지 및 체결 오차 분석을 위한 감사 추적 설계
  • AI 판단의 재현성을 위한 로그 구조화

auto-fx를 갑자기 실전 매매(Real money)로 구동하는 것이 아니라, paper와 live의 로그를 분리하여 감사(Audit)할 수 있는 형태로 만든다. 목적은 Bot이 "무엇을 하려고 했는가"와 계좌 측에서 "실제로 무엇이 일어났는가"를 섞지 않는 것이다.

paper/
ledger.csv
live/
...

paper/ledger.csv

: 가상 매매의 판단, 체결 예상, 손익, 검증용 기록을 남긴다 -
live/intent/YYYYMMDD.jsonl

: Bot이 실제 주문으로서 내보내려 했던 의도(Intent)를 일 단위로 추적한다 -
live/reconcile/fills/

: 브로커(Broker)나 계좌 측에서 실제로 체결된 결과(Fills)를 저장한다 -
live/positions/

: 현재 포지션(Position)이나 대조용 스냅샷(Snapshot)을 분리한다

자동 매매에서는 주문 의도와 실제 체결 결과가 어긋나는 경우가 있다. 스프레드(Spread), 슬리피지(Slippage), 수수료, 통신 실패, 미확정 봉(Unconfirmed bar), 정지 조건 등이 얽히기 때문에, 하나의 로그에 섞어두면 원인 분석이 어려워진다.

intentfills를 분리하면 다음과 같은 확인이 용이해진다.

  • Bot은 어떤 전략·시장 분류(Market classification)로 주문하려고 했는가
  • 실제로 주문이 통과되었는가, 거절되었는가
  • 체결 가격이 예상에서 얼마나 벗어났는가
  • paper에서는 수익이 나고 있지만 live에서는 무너지고 있지 않은가
  • 정지 판단이나 개선 제안의 근거를 로그로부터 재현할 수 있는가

AI에게 무제한적인 매매 판단을 맡기지 않고, 시장 분류, 전략 선택, 정지 판단, 개선 제안을 담당시킨다. 실전 운용에 가까워질수록 AI의 제안보다 감사 추적(Audit trail)의 재현성을 우선시한다.

forward paper의 데이터를 쌓아가면서, 어떤 시간 프레임(Timeframe), 어떤 시장 환경, 어떤 전략 선택이 가장 균형 있게 성장하는지 확인한다. 월간 손익뿐만 아니라, 정지할 수 있었던 횟수, 예상치 못한 체결 차이, 로그 결손 유무도 확인한다.

자동화의 신뢰는 로그로 만든다. paper/ledger.csv, live/intent/YYYYMMDD.jsonl, live/reconcile/fills, positions를 분리함으로써, Bot의 의도, 계좌의 현실, 개선 판단을 나중에 검증할 수 있는 형태로 만든다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0