fix(시세): LS spill-only·토큰 파일캐시·호가 snap_time 3초컷
- _feed_fallback 미러 OFF, LS cap/grace/hold RAM을 KIS·키움 spill과 정합 - LS 접근토큰 .ls_token_cache_*.json (재시작 재사용, revoke 루프 없음) - 호가 RAM을 틱과 동일 LIVE_FEED_FALLBACK(snap_time)로 컷, 필터 max_age=0은 유지 - 익절 지정가 로그에 실제 호가 벤더(kis/kiwoom/ls 1·2·3차) 표기 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -199,25 +199,24 @@ def build_live_config_groups() -> List[GroupDef]:
|
||||
"한투 60초 캐시는 안 씀. MINIMAL 이면 한투 RAM 은 보유만. "
|
||||
"저장 후 kis_trader_main 재시작"
|
||||
)),
|
||||
_f("LIVE_OB_PROVIDER", "📊 실매매 호가(OB) 소스 (재시작 필요)", "select", default="kiwoom",
|
||||
_f("LIVE_OB_PROVIDER", "📊 실매매 호가(OB) 소스 (재시작 필요)", "select", default="kis",
|
||||
choices=[
|
||||
{"value": "kiwoom", "label": "키움 (kiwoom)"},
|
||||
{"value": "kis", "label": "한투 (kis)"},
|
||||
{"value": "kiwoom", "label": "키움 (kiwoom)"},
|
||||
],
|
||||
hint=(
|
||||
"호가 1차. 키움=kiwoom / 한투=kis. LS는 여기 없음(3차 UH1). "
|
||||
"호가 1차. 한투=kis(2키 OB 세션 41) / 키움=kiwoom. LS는 여기 없음(3차 UH1). "
|
||||
"폴백 나이 넘으면 그 벤더는 없는 것과 같고 2차→3차. "
|
||||
"만료로 None 만 만들어서 필터 ON 통과 구멍을 만들지 않음. "
|
||||
"kis 선택 시 아래 'KIS 실시간 호가 수집' ON + 2번째 앱키(KIS_APP_KEY_OB_REAL). "
|
||||
"저장 후 kis_trader_main 재시작"
|
||||
"기본 체인: kis→kiwoom→ls. 저장 후 kis_trader_main 재시작"
|
||||
)),
|
||||
_f("LIVE_FEED_FALLBACK_MAX_AGE_SEC", "⏱ 시세·호가 읽기 폴백 나이(초)", "float", default=3.0,
|
||||
hint=(
|
||||
"비교 = 그 틱의 체결시각(키움 FID20 / 한투 chetime) vs 이 서버 지금. "
|
||||
"1차·2차·3차 모두 같음. 보조가 늦으면 3차, 매도는 REST. "
|
||||
"키움 시각에서 한투 시각을 빼서 늦다고 하지 않음. "
|
||||
"넘기면 그 벤더 실패. 적재(공책)와 분리. 기본 3. "
|
||||
"분봉 쓰레기 판정 나이도 이 값(봉 끝시각 대비)."
|
||||
"틱: 체결시각(키움 FID20 / 한투·LS chetime) vs 서버 지금 → 초과면 RAM 미반영. "
|
||||
"호가: snap_time(한투 BSOP_HOUR / LS hotime / 키움 FID20)도 동일 초로 "
|
||||
"RAM 미반영·읽기 체인 실패(필터 max_age=0=마지막 RAM 은 예외). "
|
||||
"1·2·3차 같음. 0이면 나이 컷 OFF. 기본 3. 적재(공책)와 분리."
|
||||
)),
|
||||
_f("TRIGGER_FEED_DETAIL_LOG", "📝 트리거 로그에 틱·호가·벤더 상세", "bool", default=True,
|
||||
hint=(
|
||||
@@ -263,12 +262,12 @@ def build_live_config_groups() -> List[GroupDef]:
|
||||
hint="ON = 키움 호가를 ws_orderbook 테이블에 저장 (기본값: ON)"),
|
||||
_f("WS_TICK_SAVE_KIS", "📈 KIS 체결 틱 수집", "bool", default=True,
|
||||
hint="ON = KIS 체결 틱을 ws_ticks 테이블에 저장 (기본값: ON)"),
|
||||
_f("WS_ORDERBOOK_SAVE_KIS", "📋 KIS 실시간 호가 수집", "bool", default=False,
|
||||
_f("WS_ORDERBOOK_SAVE_KIS", "📋 KIS 실시간 호가 수집", "bool", default=True,
|
||||
danger=True,
|
||||
hint=(
|
||||
"한투 호가는 2번째 앱키(KIS_APP_KEY_OB_REAL) 전용 세션만. "
|
||||
"메인 시세 41과 합산 금지. 2키 없으면 ON 해도 호가 구독·적재 안 함. "
|
||||
"2키 세션 한도는 호가 전용 41."
|
||||
"2키 세션 한도는 호가 전용 41. LIVE_OB_PROVIDER=kis 일 때 ON 권장."
|
||||
)),
|
||||
_f("WS_SUBSCRIBE_KIS_MINIMAL", "📉 KIS 최소 구독 모드", "bool", default=False,
|
||||
hint=(
|
||||
@@ -284,24 +283,36 @@ def build_live_config_groups() -> List[GroupDef]:
|
||||
)),
|
||||
_f("WS_TICK_SUBSCRIBE_CHAIN", "📡 틱 구독 spill 체인(csv)", "text", default="",
|
||||
hint="비우면 LIVE_TICK_PROVIDER→나머지→ls. 예: kiwoom,kis,ls"),
|
||||
_f("WS_OB_SUBSCRIBE_CHAIN", "📡 호가 구독 spill 체인(csv)", "text", default="",
|
||||
hint="비우면 LIVE_OB_PROVIDER→나머지→ls(3차 RAM). 예: kis,kiwoom,ls"),
|
||||
_f("WS_OB_SUBSCRIBE_CHAIN", "📡 호가 구독 spill 체인(csv)", "text", default="kis,kiwoom,ls",
|
||||
hint="기본 kis,kiwoom,ls. 비우면 LIVE_OB_PROVIDER→나머지→ls(3차 RAM)."),
|
||||
_f("LS_WS_ENABLED", "📡 LS WS 기동 (재시작 필요)", "bool", default=False,
|
||||
hint=(
|
||||
"ON = LS증권 실시간 WS 기동 — 구독 spill 3차·영구구독·읽기 폴백 RAM. "
|
||||
"OFF(기본)=VALIDATION/조건이력/ls_condition 전략이 있을 때만 기동. "
|
||||
"키: env_config LS_APP_KEY_REAL / LS_APP_SECRET_REAL 필요."
|
||||
)),
|
||||
_f("LS_FEED_FALLBACK_SUBSCRIBE", "📡 LS 3차 폴백 구독 (메인 유니버스)", "bool", default=True,
|
||||
_f("LS_FEED_FALLBACK_SUBSCRIBE", "📡 LS 유니버스 RAM 미러 (레거시)", "bool", default=False,
|
||||
hint=(
|
||||
"ON(기본)=영구 외에 메인 틱/호가 구독 집합(후보∪보유∪grace)을 LS에 시세+UH1 붙임. "
|
||||
"3차가 실제로 있게 함. 후보 갭 REST 와 별개"
|
||||
"OFF(기본)=KIS·키움과 동일 spill 3차만. ON=후보∪보유∪grace 전체를 LS에 "
|
||||
"벌크 미러(_feed_fallback) — 200+ REG·07:00 Bye 위험. 영구는 별도(_permanent)"
|
||||
)),
|
||||
_f("LS_WS_HOLD_RAM_KEEP_HOLDINGS", "📡 LS hold RAM 보유 유지", "bool", default=True,
|
||||
hint=(
|
||||
"ON(기본)=장마감 hold 시 영구+보유 종목만 LS RAM 유지(07:00 replay 축소). "
|
||||
"OFF=영구(_permanent)만 유지"
|
||||
)),
|
||||
_f("LS_WS_MAX_SUBSCRIPTIONS", "📡 LS 로컬 구독 한도", "int", default=100,
|
||||
hint="spill 3차 LS 종목 상한. 0=무제한(비권장). 키움 100과 유사."),
|
||||
_f("LS_WS_TICK_SAVE", "📈 LS 체결 틱 DB 적재", "bool", default=False,
|
||||
hint=(
|
||||
"OFF(기본)=후보 틱은 ls_ws_ticks 에 안 쌓음(옵투나 3차 틱 없음). RAM 은 구독 ON. "
|
||||
"영구 ETF 틱은 persist 게이트(영구만) + 이 스위치. "
|
||||
"OFF 여도 아래 LS 호가 DB 적재는 별개로 동작"
|
||||
"ON=구독 중 종목(영구∪후보∪보유∪grace) US3 → ls_ws_ticks. "
|
||||
"호가 DB 게이트와 동일. OFF=테이블 미적재(RAM·3차 폴백은 구독 ON이면 유지). "
|
||||
"봉·VI 는 영구만. 옵투나 틱 3차는 BT_TICK_LS_THIRD_FALLBACK"
|
||||
)),
|
||||
_f("BT_TICK_LS_THIRD_FALLBACK", "📈 백테/옵투나 틱 3차 LS", "bool", default=True,
|
||||
hint=(
|
||||
"ON(기본)=ws_ticks 로드 후 같은 초에 1·2차 없으면 ls_ws_ticks 채움. "
|
||||
"나이=LIVE_FEED_FALLBACK_MAX_AGE_SEC(기본3). history_source=ls 본체와 별개"
|
||||
)),
|
||||
_f("LS_WS_ALSO_HOGA", "📋 LS 호가(UH1) 구독 (재시작 필요)", "bool", default=True,
|
||||
hint=(
|
||||
|
||||
Reference in New Issue
Block a user