AI 트레이딩: 배운 교훈 #110: 트레일링 스톱 스크립트는 존재했지만 실행되지 않음

발행: (2026년 1월 8일 오전 07:03 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

Problem

종이 계좌에 $1,113의 실현되지 않은 이익이 있었으며, 이는 보호되지 않은 상태였습니다. 그 이유는 트레일링‑스톱 스크립트가 한 번도 실행되지 않았기 때문입니다.

  • scripts/set_trailing_stops.py는 2026년 1월 7일에 생성되었지만 전혀 실행되지 않았습니다.
  • daily-trading.yml 워크플로에는 트레일링 스톱을 설정하는 단계가 전혀 포함되어 있지 않았습니다.

보호되지 않은 포지션 ( data/system_state.json 발췌)

{
  "symbol": "INTC260109P00035000",
  "unrealized_pl": 151.0
},
{
  "symbol": "SOFI260123P00024000",
  "unrealized_pl": 56.0
},
{
  "symbol": "AMD260116P00200000",
  "unrealized_pl": 457.0
},
{
  "symbol": "SPY260123P00660000",
  "unrealized_pl": 449.0
}

위험에 노출된 총액: $1,113의 이익.

왜 스크립트가 사용되지 않았는가

  • 스크립트는 독립 파일(scripts/set_trailing_stops.py) 형태로 존재했습니다.
  • claude-agent-utility.yml에서만 수동 트리거로 참조되었습니다.
  • daily-trading.yml 워크플로에 포함되지 않았으므로:
    • 포지션이 자동으로 보호되지 않았습니다.
    • 매 실행마다 수동으로 실행해야 했습니다.
    • 단 한 번의 시장 격차로 모든 이익이 사라질 수 있었습니다.

구현된 수정 사항

daily-trading.yml에 자동 단계 추가:

- name: Set Trailing Stop-Loss Orders (Phil Town Rule 1)
  if: success()
  env:
    ALPACA_API_KEY: ${{ secrets.ALPACA_PAPER_KEY }}
    ALPACA_SECRET_KEY: ${{ secrets.ALPACA_PAPER_SECRET }}
  run: |
    python3 scripts/set_trailing_stops.py

강화된 핵심 규칙

  1. 규칙 #1: 돈을 잃지 말라.
  2. 규칙 #2: 규칙 #1을 잊지 말라.

우리 시스템은 다음과 같이 두 규칙을 모두 위반하고 있었습니다:

  • 보호 없이 이익을 보유하고 있었음.
  • 스톱‑로스 대신 희망에 의존하고 있었음.

교훈

  • 위험 보호 스크립트는 수동 실행을 요구한다면 무용지물이다.
  • 모든 위험 관리 도구는 생성 즉시 자동 CI/CD 워크플로에 통합되어야 한다.
  • system_state.jsontrailing_stops 섹션이 존재하는지 확인하는 검증 단계를 추가하라.

Tags: trailing_stops, risk_management, phil_town, rule_1, automation_gap, ci_integration

이 교훈은 우리 AI 트레이딩 저장소에서 자동으로 게시되었습니다.

More lessons: rag_knowledge/lessons_learned

Back to Blog

관련 글

더 보기 »

안녕, 뉴비 여기요.

안녕! 나는 다시 S.T.E.M. 분야로 돌아가고 있어. 에너지 시스템, 과학, 기술, 공학, 그리고 수학을 배우는 것을 즐겨. 내가 진행하고 있는 프로젝트 중 하나는...