이번에 들어간 내용

한투 호가 = 2번째 앱키 전용
키 없거나 start 실패 시 메인에 H0STASP0 안 붙임. 운영설정 WS_ORDERBOOK_SAVE_KIS 빨간 danger.

LS RAM 합집합
후보∪보유∪영구∪grace. sync_targets와 split reconcile 둘 다. 틱 DB 영구 게이트는 그대로.

분봉 쓰레기 → 다음 소스 봉 통째
그 분 틱 0건이거나 전부 봉끝 대비 LIVE_FEED_FALLBACK_MAX_AGE_SEC 초과면 구멍. 메인 WS → 2차 → LS → REST → rollup. CANDLE_GARBAGE_FALLBACK 기본 true.

파일: feed_fallback.py(신규), ws_manager.py, kis_ws.py, candle_series.py, bt_candle_source.py, live_config_schema.py, database.py, 스모크, MD 2개.

같은 ws_manager/database/kis_ws/live_config에는 직전 커밋 이후 쌓여 있던 시세 폴백·ENV 키 정리도 같이 들어갔습니다. 파일 단위로 나눌 수 없어서입니다.
This commit is contained in:
Your Name
2026-08-19 22:11:31 +09:00
parent d1dc274f0e
commit 0ecac7cb95
229 changed files with 8487 additions and 1647 deletions

View File

@@ -516,7 +516,7 @@ class UpdowStrategy(BaseStrategy):
if get_env_bool("FORCE_BUY_TEST", False):
px = 0.0
wsd = self.ws.get_price(code)
wsd = self._ws_last_quote(code)
if wsd:
try:
px = abs(float(str(wsd.get("stck_prpr", 0)).replace(",", "")))
@@ -583,7 +583,7 @@ class UpdowStrategy(BaseStrategy):
return None
entry_open = float(sig["entry_price"])
wsd = self.ws.get_price(code)
wsd = self._ws_last_quote(code)
curr_price = entry_open
if wsd:
try:
@@ -686,20 +686,9 @@ class UpdowStrategy(BaseStrategy):
max_hold = int(float(merged.get("max_hold_bars", 16)))
n_fetch = max(max_hold + 8, base_n)
current_price = 0.0
wsd = self.ws.get_price(code)
if wsd:
try:
current_price = abs(float(str(wsd.get("stck_prpr", 0)).replace(",", "")))
except Exception:
current_price = 0.0
if current_price <= 0:
pd_ = self.client.inquire_price(code)
if pd_:
try:
current_price = abs(float(str(pd_.get("stck_prpr", 0)).replace(",", "")))
except Exception:
current_price = 0.0
current_price = self._resolve_sell_price(
code, is_eod=False, buy_price=buy_price,
)
if current_price <= 0:
self.logger.debug("[UPDOW 매도] %s %s: 현재가 없음 — 스킵", name, code)
continue