fix: get_open_position이 HOLD 레코드를 최신으로 인식해 BUY 포지션 반환 실패 #265

Closed
opened 2026-02-26 01:22:03 +09:00 by agentson · 0 comments
Collaborator

문제

get_open_position()은 trades 테이블에서 최신 레코드를 조회한 뒤 action이 'BUY'인지 확인.
그런데 HOLD 결정도 trades 테이블에 저장되므로, BUY 이후 HOLD가 기록된 종목의 경우 최신 레코드가 HOLD → None 반환.

영향

  • NVDA 등 BUY 이후 HOLD 결정이 있는 종목의 경우 open position 인식 실패
  • unrealized_pnl_pct / holding_days 가 market_data에 포함되지 않아 시나리오 조건 평가 불가
  • 로그: Condition requires 'unrealized_pnl_pct' but key missing from market_data

해결 방법

get_open_position() 쿼리에 AND action IN ('BUY', 'SELL') 필터 추가

  • HOLD 레코드를 제외하고 마지막 BUY/SELL 기록만 확인
  • BUY → 포지션 보유, SELL → 포지션 없음
## 문제 `get_open_position()`은 trades 테이블에서 최신 레코드를 조회한 뒤 action이 'BUY'인지 확인. 그런데 HOLD 결정도 trades 테이블에 저장되므로, BUY 이후 HOLD가 기록된 종목의 경우 최신 레코드가 HOLD → None 반환. ## 영향 - NVDA 등 BUY 이후 HOLD 결정이 있는 종목의 경우 open position 인식 실패 - unrealized_pnl_pct / holding_days 가 market_data에 포함되지 않아 시나리오 조건 평가 불가 - 로그: `Condition requires 'unrealized_pnl_pct' but key missing from market_data` ## 해결 방법 `get_open_position()` 쿼리에 `AND action IN ('BUY', 'SELL')` 필터 추가 - HOLD 레코드를 제외하고 마지막 BUY/SELL 기록만 확인 - BUY → 포지션 보유, SELL → 포지션 없음
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#265