[HIGH] 시작 시 브로커 포지션 → DB 동기화 없음 — 기존 보유 종목 이중 매수 위험 #206

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

문제

src/main.py:1481에서 프로그램 시작 시 실제 브로커 잔고를 로컬 DB와 동기화하는 로직이 없다.

get_open_position()은 로컬 SQLite DB만 참조(src/db.py:238-256). 실전 계좌에 기존 보유 종목이 있어도 DB가 비어있으면 보유하지 않은 것으로 판단해 이중 매수가 발생한다.

영향

  • 실전 계좌에 이미 보유한 종목에 추가 매수 가능
  • 기존 포지션이 있는 상태로 처음 시스템을 실행하는 경우 위험

수정 방법

run() 초기화 과정에서 브로커 잔고 조회 후 DB에 없는 포지션을 동기화하는 루틴 추가:

async def sync_positions_from_broker(broker, db_conn):
    # 브로커에서 현재 보유 종목 조회
    # DB에 없는 항목은 open_position으로 추가
## 문제 `src/main.py:1481`에서 프로그램 시작 시 실제 브로커 잔고를 로컬 DB와 동기화하는 로직이 없다. `get_open_position()`은 로컬 SQLite DB만 참조(`src/db.py:238-256`). 실전 계좌에 기존 보유 종목이 있어도 DB가 비어있으면 보유하지 않은 것으로 판단해 이중 매수가 발생한다. ## 영향 - 실전 계좌에 이미 보유한 종목에 추가 매수 가능 - 기존 포지션이 있는 상태로 처음 시스템을 실행하는 경우 위험 ## 수정 방법 `run()` 초기화 과정에서 브로커 잔고 조회 후 DB에 없는 포지션을 동기화하는 루틴 추가: ```python async def sync_positions_from_broker(broker, db_conn): # 브로커에서 현재 보유 종목 조회 # DB에 없는 항목은 open_position으로 추가 ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#206