中控增加下单,关键位,系统设置

This commit is contained in:
dekun
2026-05-22 10:04:28 +08:00
parent ed6b56ff87
commit 46f73fce43
19 changed files with 1844 additions and 568 deletions
+4
View File
@@ -26,6 +26,10 @@ APP_USERNAME=dekun
APP_PASSWORD=ChangeMe123!
# 是否关闭登录校验(局域网可设 true;公网务必 false)
APP_AUTH_DISABLED=true
# --- 多账户交易中控 manual_trading_hub ---
# 中控请求本实例 /api/hub/* 时携带请求头 X-Hub-Token,须与中控启动环境变量 HUB_BRIDGE_TOKEN 一致
# 未设置且 APP_AUTH_DISABLED=false 时,仅网页登录后可访问;本机联调可保持 APP_AUTH_DISABLED=true
# HUB_BRIDGE_TOKEN=your-long-random-token
# Flask 会话密钥(必须替换为长随机字符串)
FLASK_SECRET_KEY=CHANGE_TO_LONG_RANDOM_SECRET
+37 -4
View File
@@ -34,6 +34,7 @@ import sys
if _REPO_ROOT not in sys.path:
sys.path.insert(0, _REPO_ROOT)
from hub_auth import request_allowed as hub_request_allowed
from history_window_lib import (
PRESET_CUSTOM,
PRESET_UTC_LAST24H,
@@ -5138,11 +5139,9 @@ def logout():
def login_required(f):
@wraps(f)
def decorated(*args, **kwargs):
if AUTH_DISABLED:
if hub_request_allowed(bool(session.get("logged_in")), AUTH_DISABLED):
return f(*args, **kwargs)
if not session.get("logged_in"):
return redirect("/login")
return f(*args, **kwargs)
return redirect("/login")
return decorated
@@ -7301,6 +7300,40 @@ def ai_weekly_review():
conn.close()
return jsonify({"result": full})
def _hub_meta_bundle():
return {
"exchange_display": EXCHANGE_DISPLAY_NAME,
"trend_pullback_preview_ttl": TREND_PULLBACK_PREVIEW_TTL_SECONDS,
"trend_manual_breakeven_offset_pct": TREND_PULLBACK_MANUAL_BREAKEVEN_OFFSET_PCT,
"trend_pullback_dca_legs": TREND_PULLBACK_DCA_LEGS,
"trend_preview_max_drift_pct": TREND_PREVIEW_MAX_BALANCE_DRIFT_PCT,
"manual_min_planned_rr": float(os.getenv("MANUAL_MIN_PLANNED_RR", "1.4")),
"max_active_positions": max(1, int(os.getenv("MAX_ACTIVE_POSITIONS", "1"))),
}
try:
from hub_bridge import install_on_app
install_on_app(
app,
exchange="gate_bot",
capabilities=["order", "trend"],
has_trend=True,
get_db=get_db,
row_to_dict=row_to_dict,
meta_fn=_hub_meta_bundle,
views={
"add_order": add_order,
"add_key": add_key,
"preview_trend_pullback": preview_trend_pullback,
"execute_trend_pullback": execute_trend_pullback,
},
)
except Exception as _hub_err:
print(f"[hub_bridge] gate_bot: {_hub_err}")
# 启动
if __name__ == "__main__":
threading.Thread(target=background_task, daemon=True).start()