feat: 阶段4重评温区按市场感知——regenerate_all批量/reassess_with_context单票重评,港股持仓用港股温区(smoothed markets.hk/market_regime表hk),A股走原路径逐字节不变
This commit is contained in:
@@ -2031,19 +2031,34 @@ def reassess_with_context(code, name, price, cost, shares, current_action,
|
||||
# 大盘市场阶段(market_regime)— 与回测 _load_index_ctx 同算法,趋势市放行追涨
|
||||
market_regime = None
|
||||
try:
|
||||
# 2026-08-13 平滑温区优先(K=5 regime_tracker),回退原始 market_regime
|
||||
import sys as _sys
|
||||
from pathlib import Path as _P
|
||||
_sp = _P("/home/hmo/MoFin/deploy/profile-scripts")
|
||||
if str(_sp) not in _sys.path:
|
||||
_sys.path.insert(0, str(_sp))
|
||||
from regime_gate import get_current_regime
|
||||
_rg = get_current_regime()
|
||||
if _rg and _rg.get("regime") != "unknown":
|
||||
market_regime = _rg
|
||||
# 2026-08-14 阶段4:温区按标的市场(港股持仓用港股温区,A股走原路径)
|
||||
from market_config import market_for_code as _mfc
|
||||
if _mfc(code) == 'hk':
|
||||
import json as _json
|
||||
from pathlib import Path as _P3
|
||||
_sf = _P3("/home/hmo/MoFin/data/market_regime_smoothed.json")
|
||||
if _sf.exists():
|
||||
_d = _json.loads(_sf.read_text(encoding="utf-8"))
|
||||
_mk = (_d.get("markets") or {}).get("hk") or {}
|
||||
if _mk.get("current_regime"):
|
||||
market_regime = {"regime": _mk["current_regime"], "date": _mk.get("current_date", "")}
|
||||
if not market_regime:
|
||||
import market_regime as _mr
|
||||
market_regime = _mr.load_market_regime(market='hk')
|
||||
else:
|
||||
import market_regime as _mr
|
||||
market_regime = _mr.load_market_regime()
|
||||
# 2026-08-13 平滑温区优先(K=5 regime_tracker),回退原始 market_regime
|
||||
import sys as _sys
|
||||
from pathlib import Path as _P
|
||||
_sp = _P("/home/hmo/MoFin/deploy/profile-scripts")
|
||||
if str(_sp) not in _sys.path:
|
||||
_sys.path.insert(0, str(_sp))
|
||||
from regime_gate import get_current_regime
|
||||
_rg = get_current_regime()
|
||||
if _rg and _rg.get("regime") != "unknown":
|
||||
market_regime = _rg
|
||||
else:
|
||||
import market_regime as _mr
|
||||
market_regime = _mr.load_market_regime()
|
||||
except Exception:
|
||||
pass # market_regime 不可用时不阻塞单只重评
|
||||
|
||||
@@ -2280,9 +2295,12 @@ def regenerate_all(stdout=True):
|
||||
# 加载大盘市场阶段(market_regime)— 与回测 _load_index_ctx 同算法,
|
||||
# 趋势市放行追涨买入,震荡/下跌市降级买入信号(v_next4/v_mr 分工的实盘落地)
|
||||
market_regime = None
|
||||
market_regime_hk = None
|
||||
try:
|
||||
import market_regime as _mr
|
||||
market_regime = _mr.load_market_regime()
|
||||
from market_config import market_for_code as _mkt_of
|
||||
market_regime = _mr.load_market_regime() # A股(原行为不变)
|
||||
market_regime_hk = _mr.load_market_regime(market='hk') # 港股(2026-08-14 阶段4)
|
||||
if stdout and market_regime:
|
||||
print(f" 市场阶段: {market_regime.get('date')} "
|
||||
f"{_mr.REGIME_DESC.get(market_regime.get('regime'), market_regime.get('regime'))}")
|
||||
@@ -2427,7 +2445,7 @@ def regenerate_all(stdout=True):
|
||||
fundamentals=fund,
|
||||
news_sentiment=news_sentiment,
|
||||
rr_ratio=result.get("rr_ratio", 0),
|
||||
market_regime=market_regime,
|
||||
market_regime=(market_regime_hk if (market_regime_hk and _mkt_of(code) == 'hk') else market_regime),
|
||||
)
|
||||
result["timing_signal"] = enriched
|
||||
|
||||
|
||||
Reference in New Issue
Block a user