본문 바로가기

카테고리 없음

새 자동화 기능은 실제 장부와 분리한 관찰 모드부터 돌려라

문제 제기: 새 기능을 실제 장부에 바로 붙이면 생기는 일

새로운 자동화 전략이나 규칙이 떠오르면 곧바로 실제 시스템에 연결하고 싶어진다. 하지만 성격이 다른 가설을 기존 전략에 그대로 섞으면, 결과가 좋아도 나빠도 어느 규칙이 원인이었는지 분리할 수 없다.
실제 개발에서 개장 급등주를 노리는 공격적 단타 가설을 별도 장부(Shadow Open)로 격리해 검증한 적이 있다. 기존 포지션 장부에 바로 섞었다면 손익과 실패 원인을 구분하지 못했을 것이다. 이 글은 그 경험에서 얻은 '관찰 모드 먼저' 원칙을 일반적인 자동화 작업에 적용할 수 있게 정리한 것이다.


왜 위험한가: 원인 분리 불가와 되돌리기 어려움

  • 손익·실패 원인의 오염: 새 규칙과 기존 규칙의 결과가 한 장부에 섞이면, 성과의 원인을 특정 규칙에 귀속시킬 수 없다.
  • 일시적 신호와 지속 신호의 혼동: 순간 점수만 보고 판단하면 일시적 급등과 지속 가능한 흐름을 구분하기 어렵다. 누적 관찰 없이는 신뢰할 근거가 부족하다.
  • 되돌리기 비용: 실제 동작에 이미 연결된 상태에서 문제가 드러나면, 회복 작업이 검증 작업보다 훨씬 커진다.

확인 절차: 관찰 모드를 설계하는 단계

  • 장부 격리: 새 가설은 기존 데이터·상태 저장소와 분리된 독립 장부에 기록한다.
  • 실행은 가상으로: 실제 주문·실제 반영 없이 가상 결과만 축적한다. 관찰 결과를 기존 추천이나 실행 경로에 연결하지 않는다.
  • 독립 종료 규칙: 진입·유지·이탈 조건과 종료 시점을 새 가설 전용으로 따로 둔다. 기존 전략의 종료 규칙을 재사용하지 않는다.
  • 상태 누적: 단일 스냅샷이 아니라 상태 전이와 누적 관찰을 저장해, 흐름이 이어지는지 시간축으로 확인한다.
  • 장마감/주기 리뷰: 정해진 주기마다 관찰 결과를 리뷰하는 절차를 함께 만든다.

체크리스트

  • AI 답변이나 설계 의도와 실제 동작을 구분해 확인했는가?
  • 새 가설을 기존 장부·상태와 물리적으로 분리했는가?
  • 실제 반영 없이 가상 결과만 쌓는 경로인가?
  • 진입·종료 규칙을 새 가설 전용으로 독립시켰는가?
  • 단일 스냅샷이 아니라 누적 관찰로 지속성을 확인했는가?
  • 실패했을 때 되돌릴 방법과 실제 연결 전 승인 단계를 마련했는가?

적용 예시

개장 직후 급등하는 종목을 노리는 단타 아이디어가 있다고 하자. 이를 곧바로 운영 계좌 로직에 붙이는 대신, 진입 신호·청산 규칙·상태 저장·마감 리뷰를 기존 포지션 장부와 완전히 격리한 별도 장부에서 돌린다. 진입 컷오프와 청산 시간박스도 분리하고, 실제 주문 없이 가상 결과만 축적한다.
주도주를 고르는 관찰 시스템도 마찬가지다. 거래대금 강도·상대강도·신고가·추세·지속성 같은 지표를 조합하되, 종목별 점수와 상태 전이를 저장하는 관찰 실행기와 평가기를 별도로 두고 실주문·기존 추천에는 연결하지 않는다. 순간 점수만이 아니라 강세가 이어지는지를 상태머신과 누적 관찰로 확인한 뒤에야 다음 단계를 고민한다.


한계와 주의사항

관찰 모드는 가상 결과를 쌓는 검증 단계일 뿐, 실제 환경에서의 체결·지연·비용을 모두 반영하지는 못한다. 가상 성과가 좋았다고 해서 실제 성과가 보장되지 않는다.
또한 격리는 데이터·상태·종료 규칙까지 철저히 분리해야 의미가 있다. 일부만 공유하면 오염이 다시 발생한다. 실제 연결로 넘어갈 때는 작은 범위부터 승인 단계를 거치고, 문제가 생기면 되돌릴 경로를 반드시 유지한다. 이 글의 사례는 특정 투자 성과를 약속하지 않으며, 어떤 수익도 보장하지 않는다.

반응형