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

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
+35 -4
View File
@@ -53,6 +53,7 @@ from key_sl_tp_lib import (
sl_tp_mode_label,
sl_tp_plan_summary_text,
)
from hub_auth import request_allowed as hub_request_allowed
from history_window_lib import (
PRESET_CUSTOM,
PRESET_UTC_LAST24H,
@@ -4095,11 +4096,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
@@ -5910,6 +5909,38 @@ def ai_weekly_review():
conn.close()
return jsonify({"result": full})
def _hub_meta_bundle():
return {
"exchange_display": EXCHANGE_DISPLAY_NAME,
"key_gate_rule_text": (
f"周期 {KLINE_TIMEFRAME}|量能/突破/二确门控见箱体与收敛规则|"
f"自动开仓盈亏比 > {KEY_AUTO_MIN_PLANNED_RR}:1|日成交量排名前 {KEY_DAILY_VOLUME_RANK_MAX}"
f"斐波:添加后立即挂限价 @ E,失效按标记价触达 H/L(未成交撤单)"
),
"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"))),
"btc_leverage": BTC_LEVERAGE,
"alt_leverage": ALT_LEVERAGE,
}
try:
from hub_bridge import install_on_app
install_on_app(
app,
exchange="okx",
capabilities=["order", "key"],
has_trend=False,
get_db=get_db,
row_to_dict=row_to_dict,
meta_fn=_hub_meta_bundle,
views={"add_order": add_order, "add_key": add_key},
)
except Exception as _hub_err:
print(f"[hub_bridge] okx: {_hub_err}")
# 启动
if __name__ == "__main__":
threading.Thread(target=background_task, daemon=True).start()