본문으로 건너뛰기

자체 전략 추가 (YAML 정의 → StrategyAgent 평가)

config/strategies/equity/ 디렉토리에 YAML 한 개 추가하면 StrategyAgent가 자동으로 인식하고 평가에 사용합니다. 11개 빌트인 전략에 1개를 더해 12번째 전략을 만드는 시나리오입니다.

학습 목표

  • StrategyAgent가 YAML을 로드하는 메커니즘
  • applicable_asset_classes, required_tools, core_rules 필드 의미
  • default_priority 가중치가 결정 단계에 미치는 영향
  • 자체 전략을 백테스트로 검증하는 흐름

사전 준비

1단계: 새 YAML 작성

config/strategies/equity/my_dip_buy.yaml 파일을 생성합니다.

# My Dip Buy / 저점 매수 (사용자 정의)
name: my_dip_buy
display_name: 저점 매수
display_name_en: My Dip Buy
description: RSI < 30 + 거래량 스파이크 시 단기 저점 매수 후보 식별
category: reversal
core_rules: [2, 5]
required_tools:
- get_ohlcv
- get_quote
- calc_volume_profile
default_priority: 75
market_regimes: [trending_down, sideways]
applicable_asset_classes:
- us_equity
- kr_equity

instructions: |
**My Dip Buy (사용자 정의 전략)**

진입 조건:

1. 14일 RSI < 30
2. 직전 5일 평균 대비 거래량 1.5배 이상
3. 20일 이평선의 -3% 이내 가격대

진입 가격: 종가 또는 종가의 -1% 한정가
손절: 직전 20일 저점의 -2%
익절: 20일 이평선

RiskManager가 거래당 1.5% 룰을 적용하므로, qty는
((account_equity * 0.015) / |entry - stop_loss|) 로 산출.

2단계: 핫리로드 또는 재시작

YAML 파일은 서버 부팅 시 한 번 로드됩니다. 변경 후:

docker compose restart api

자동 핫리로드가 필요하면 dev.docker-compose.yml에서 STRATEGY_HOTRELOAD=true로 설정 가능합니다 (P5에서 추가됨).

3단계: 전략이 등록됐는지 확인

curl -H "Authorization: Bearer $JWT" \
"http://localhost:8000/api/strategy/list?asset_class=us_equity"

응답에 my_dip_buy가 포함되면 OK.

4단계: 분석 요청에서 사용

POST /api/equity/analyze는 모든 가용 전략을 자동으로 평가합니다. 특정 전략만 강제하려면 (현재 디자인 문서 기준):

curl -X POST http://localhost:8000/api/equity/analyze \
-H "Authorization: Bearer $JWT" \
-d '{
"symbol": "AAPL",
"mode": "standard",
"strategies": ["my_dip_buy"]
}'

분석 결과의 strategies_used 필드에 my_dip_buy가 포함되어야 합니다.

5단계: 자체 전략 백테스트

curl -X POST http://localhost:8000/api/equity/backtest \
-H "Authorization: Bearer $JWT" \
-d '{
"asset_class": "us_equity",
"symbol": "AAPL",
"strategy_name": "my_dip_buy",
"start_date": "2023-01-01",
"end_date": "2024-12-31",
"initial_capital": 10000.0,
"profile_name": "alpaca_zero"
}'

응답으로 total_return_pct, sharpe_ratio, max_drawdown_pct, win_rate를 확인합니다.

라이브 진입 전

자체 전략은 페이퍼 90일 + 50거래 검증을 통과해야 라이브 모드에서 사용할 수 있습니다. 자세한 룰은 절대 룰 참조.

검증

  • /api/strategy/list에 자체 전략이 노출됨
  • 분석 보고서 strategies_used에 자체 전략 ID 포함
  • 백테스트가 정상 수행되고 메트릭이 반환됨

다음 단계