Add daily loss force-flatten at configurable equity limit
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -55,6 +55,10 @@ def build_risk_overview(
|
||||
equity: Optional[float] = None,
|
||||
margin_used: Optional[float] = None,
|
||||
) -> dict[str, Any]:
|
||||
from modules.risk.account_risk_lib import (
|
||||
daily_loss_slippage_buffer_pct,
|
||||
daily_loss_total_cap_pct,
|
||||
)
|
||||
from risk.account_risk_lib import (
|
||||
cooling_hours_manual,
|
||||
cooling_hours_manual_journal,
|
||||
@@ -92,7 +96,9 @@ def build_risk_overview(
|
||||
active_n = effective_active_position_count(
|
||||
conn, mode, ctp_connected=ctp_connected,
|
||||
)
|
||||
risk = dict(get_risk_status(conn, equity=equity, active_count=active_n) or {})
|
||||
risk = dict(get_risk_status(
|
||||
conn, equity=equity, active_count=active_n, mode=mode, get_setting=get_setting,
|
||||
) or {})
|
||||
row = conn.execute("SELECT * FROM account_risk_state WHERE id=1").fetchone()
|
||||
td = trading_day_label()
|
||||
stored_td = str(row["trading_day"] or "") if row else ""
|
||||
@@ -109,7 +115,10 @@ def build_risk_overview(
|
||||
daily_opens = int(risk.get("daily_open_count") or count_daily_opens(conn))
|
||||
daily_risk_used = risk.get("daily_risk_used_pct")
|
||||
if daily_risk_used is None and equity and equity > 0:
|
||||
daily_risk_used = daily_trading_risk_used_pct(conn, float(equity))
|
||||
daily_risk_used = daily_trading_risk_used_pct(conn, float(equity), mode=mode)
|
||||
daily_risk_lim = daily_trading_risk_pct_limit(get_setting)
|
||||
slip_buf = daily_loss_slippage_buffer_pct(get_setting)
|
||||
daily_risk_cap = daily_loss_total_cap_pct(get_setting)
|
||||
|
||||
return {
|
||||
"enabled": risk_control_enabled(),
|
||||
@@ -123,7 +132,9 @@ def build_risk_overview(
|
||||
"position_mode": "single" if max_active_positions() <= 1 else "multi",
|
||||
"position_mode_label": "单仓模式" if max_active_positions() <= 1 else "多仓模式",
|
||||
"daily_position_limit": daily_position_limit(),
|
||||
"daily_trading_risk_pct_limit": daily_trading_risk_pct_limit(),
|
||||
"daily_trading_risk_pct_limit": daily_risk_lim,
|
||||
"daily_loss_slippage_buffer_pct": slip_buf,
|
||||
"daily_loss_total_cap_pct": daily_risk_cap,
|
||||
"manual_close_daily_limit": manual_close_daily_limit(),
|
||||
"cooling_hours_manual": cooling_hours_manual(),
|
||||
"cooling_hours_manual_journal": cooling_hours_manual_journal(),
|
||||
|
||||
Reference in New Issue
Block a user