feat(hub): trend plan breakeven and stop from monitor fullscreen
Proxy /api/hub/trend/stop and breakeven to instances; enable offset input and actions in hub UI. Add horizontal padding on strategy records page. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -53,6 +53,7 @@ def install_strategy_trend(app: Flask, repo_root: str, app_module: Any = None, *
|
||||
app.extensions["strategy_trend_cfg"] = cfg
|
||||
register_trend_routes(app, cfg)
|
||||
_patch_hub_monitor_enrich(app, cfg)
|
||||
_patch_hub_trend_views(app)
|
||||
|
||||
@app.context_processor
|
||||
def _trend_ctx():
|
||||
@@ -391,6 +392,23 @@ def enrich_trend_plan_for_hub(cfg: dict, raw: dict) -> dict:
|
||||
return d
|
||||
|
||||
|
||||
def _patch_hub_trend_views(app: Flask) -> None:
|
||||
"""将趋势回调路由注册进 HUB_CTX.views,供中控 /api/hub/trend/* 调用。"""
|
||||
ctx = dict(app.config.get("HUB_CTX") or {})
|
||||
views = dict(ctx.get("views") or {})
|
||||
for name in (
|
||||
"preview_trend_pullback",
|
||||
"execute_trend_pullback",
|
||||
"stop_trend_pullback",
|
||||
"trend_pullback_breakeven",
|
||||
):
|
||||
vf = app.view_functions.get(name)
|
||||
if vf is not None:
|
||||
views[name] = vf
|
||||
ctx["views"] = views
|
||||
app.config["HUB_CTX"] = ctx
|
||||
|
||||
|
||||
def _patch_hub_monitor_enrich(app: Flask, cfg: dict) -> None:
|
||||
ctx = dict(app.config.get("HUB_CTX") or {})
|
||||
prev = ctx.get("enrich_monitor")
|
||||
@@ -465,7 +483,12 @@ def enrich_trend_plan(cfg: dict, row) -> dict:
|
||||
d["floating_pnl"] = d["floating_mark"] = None
|
||||
from strategy_snapshot_lib import attach_trend_dca_levels
|
||||
|
||||
return attach_trend_dca_levels(d)
|
||||
d = attach_trend_dca_levels(d)
|
||||
try:
|
||||
d["breakeven_default_offset_pct"] = float(cfg.get("breakeven_offset_pct", 0.3))
|
||||
except (TypeError, ValueError):
|
||||
d["breakeven_default_offset_pct"] = 0.3
|
||||
return d
|
||||
|
||||
|
||||
def _weighted_avg(old_avg, old_amt, fill_px, add_amt):
|
||||
|
||||
Reference in New Issue
Block a user