ls증권 히스토리 구독 넣음
This commit is contained in:
@@ -149,10 +149,28 @@ class MomentumStrategy(BaseStrategy):
|
||||
if not sig:
|
||||
return None
|
||||
|
||||
_defer = self._defer_mid_enroll_entry(
|
||||
code,
|
||||
sig.get("entry_bar_key"),
|
||||
int(self.candle_tf or 1),
|
||||
self._engine_params,
|
||||
)
|
||||
if _defer:
|
||||
self.logger.info("🔍 [%s] %s(%s)", _defer, name, code)
|
||||
return None
|
||||
|
||||
align_on = get_env_bool("MOMENTUM_LIVE_BACKTEST_ALIGN", True)
|
||||
entry_open = float(sig.get("entry_price", 0) or 0)
|
||||
entry_src = "ohlc_open"
|
||||
if align_on and entry_open > 0:
|
||||
curr_price = entry_open
|
||||
from kis_trader.engine.tail_tick_replay import live_align_entry_price
|
||||
curr_price, entry_src = live_align_entry_price(
|
||||
self.ws,
|
||||
code,
|
||||
entry_open,
|
||||
entry_bar_key=str(sig.get("entry_bar_key") or "")[:12],
|
||||
tf_min=int(self.candle_tf or 1),
|
||||
)
|
||||
else:
|
||||
latest = candles[-1]
|
||||
curr_price = float(latest["close"])
|
||||
@@ -166,6 +184,10 @@ class MomentumStrategy(BaseStrategy):
|
||||
pass
|
||||
if curr_price <= 0 or curr_price < self.min_price:
|
||||
return None
|
||||
# entry_src: ws_ticks | ohlc_open — 수량/손절 계산가 출처 (시장가 체결가와 별개)
|
||||
if entry_src:
|
||||
sig = dict(sig)
|
||||
sig["entry_src"] = entry_src
|
||||
|
||||
hard_cap = get_env_int("MOMENTUM_MAX_BUY_AMOUNT", 0) or get_env_int(
|
||||
"MAX_BUY_AMOUNT_PER_STOCK", 0,
|
||||
@@ -185,8 +207,9 @@ class MomentumStrategy(BaseStrategy):
|
||||
target_price = curr_price * (1 + eff_tp)
|
||||
|
||||
self.logger.info(
|
||||
"🎯 [MOMENTUM 시그널] %s(%s) price=%.0f qty=%d RSI=%.1f",
|
||||
"🎯 [MOMENTUM 시그널] %s(%s) price=%.0f qty=%d RSI=%.1f entry_src=%s",
|
||||
name, code, curr_price, qty, sig.get("rsi", 0),
|
||||
str(sig.get("entry_src") or entry_src),
|
||||
)
|
||||
return {
|
||||
"code": code,
|
||||
|
||||
Reference in New Issue
Block a user