修改ui
This commit is contained in:
+3
-61
@@ -5,7 +5,7 @@ import os
|
||||
from functools import wraps
|
||||
from typing import Any, Callable, Optional
|
||||
|
||||
from flask import Flask, flash, jsonify, redirect, render_template, request, url_for
|
||||
from flask import Flask, flash, jsonify, redirect, request, url_for
|
||||
from jinja2 import ChoiceLoader, FileSystemLoader
|
||||
|
||||
from strategy_db import init_strategy_tables
|
||||
@@ -13,14 +13,12 @@ from strategy_roll_lib import preview_roll
|
||||
|
||||
|
||||
def install_strategy_trading(app: Flask, repo_root: str, app_module: Any = None, **build_kw) -> None:
|
||||
"""在 app.py 末尾调用(login_required 已定义后)。build_kw 传给 build_strategy_config。"""
|
||||
"""在 app.py 末尾调用(login_required 已定义后)。仅注册 POST API;页面由各 app 的 render_main_page 渲染。"""
|
||||
from strategy_config import build_strategy_config
|
||||
|
||||
render_trend_page = build_kw.pop("render_trend_page", None)
|
||||
build_kw.pop("render_trend_page", None)
|
||||
attach_strategy_templates(app, repo_root)
|
||||
cfg = build_strategy_config(app_module, **build_kw)
|
||||
if render_trend_page is not None:
|
||||
cfg["render_trend_page"] = render_trend_page
|
||||
register_strategy_trading(app, cfg)
|
||||
|
||||
|
||||
@@ -43,66 +41,10 @@ def register_strategy_trading(app: Flask, cfg: dict[str, Any]) -> None:
|
||||
|
||||
login_required = cfg["login_required"]
|
||||
get_db = cfg["get_db"]
|
||||
trend_enabled = bool(cfg.get("trend_enabled"))
|
||||
render_trend_page = cfg.get("render_trend_page")
|
||||
|
||||
def _lr(f):
|
||||
return login_required(f)
|
||||
|
||||
if trend_enabled and callable(render_trend_page):
|
||||
app.add_url_rule(
|
||||
"/strategy/trend",
|
||||
endpoint="strategy_trend_page",
|
||||
view_func=_lr(render_trend_page),
|
||||
)
|
||||
else:
|
||||
|
||||
@_lr
|
||||
@app.route("/strategy/trend")
|
||||
def strategy_trend_disabled_page():
|
||||
return render_template(
|
||||
"strategy_trend_disabled.html",
|
||||
exchange_display=cfg.get("exchange_display", ""),
|
||||
trend_note=cfg.get(
|
||||
"trend_disabled_note",
|
||||
"趋势回调(自动补仓)当前仅在 Gate 趋势机器人实例中启用。",
|
||||
),
|
||||
)
|
||||
|
||||
@_lr
|
||||
@app.route("/strategy/roll")
|
||||
def strategy_roll_page():
|
||||
conn = get_db()
|
||||
init_strategy_tables(conn)
|
||||
monitors = []
|
||||
for row in conn.execute(
|
||||
"SELECT * FROM order_monitors WHERE status='active' ORDER BY id DESC"
|
||||
).fetchall():
|
||||
monitors.append(_row_to_dict(row))
|
||||
roll_groups = []
|
||||
for row in conn.execute(
|
||||
"SELECT * FROM roll_groups WHERE status='active' ORDER BY id DESC"
|
||||
).fetchall():
|
||||
roll_groups.append(_row_to_dict(row))
|
||||
legs = []
|
||||
for row in conn.execute(
|
||||
"SELECT * FROM roll_legs ORDER BY id DESC LIMIT 50"
|
||||
).fetchall():
|
||||
legs.append(_row_to_dict(row))
|
||||
trend_n = _count_active_trends(conn, cfg)
|
||||
conn.close()
|
||||
return render_template(
|
||||
"strategy_roll.html",
|
||||
page="strategy_roll",
|
||||
exchange_display=cfg.get("exchange_display", ""),
|
||||
monitors=monitors,
|
||||
roll_groups=roll_groups,
|
||||
roll_legs=legs,
|
||||
trend_active=trend_n,
|
||||
default_risk_percent=cfg.get("default_risk_percent", 2),
|
||||
price_fmt=cfg.get("price_fmt"),
|
||||
)
|
||||
|
||||
@_lr
|
||||
@app.route("/strategy/roll/preview", methods=["POST"])
|
||||
def strategy_roll_preview():
|
||||
|
||||
Reference in New Issue
Block a user