fix: show risk amount only in full-margin mode across four exchanges

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-05 09:08:45 +08:00
parent 673bcbdc70
commit 934e48b9a8
12 changed files with 143 additions and 27 deletions
+9 -3
View File
@@ -39,11 +39,13 @@ from ai_review_lib import build_journal_ai_chart_path, collect_images_for_ai_rev
from position_sizing_lib import (
assert_open_source_allowed,
compute_full_margin_sizing,
format_risk_display_text,
full_margin_requires_flat_position,
is_full_margin_mode,
leverage_for_full_margin,
load_position_sizing_mode,
mode_label_zh,
risk_percent_for_storage,
)
from key_monitor_full_margin_lib import (
monitor_type_disallowed_in_full_margin,
@@ -6705,6 +6707,10 @@ def add_order():
breakeven_offset_pct = float(BREAKEVEN_OFFSET_PCT)
breakeven_step_r = float(BREAKEVEN_STEP_R) if float(BREAKEVEN_STEP_R) > 0 else 1.0
risk_amount_final = calc_risk_amount_from_plan(direction, trigger_price, stop_loss, margin_capital, leverage) or risk_amount
risk_percent_db = risk_percent_for_storage(POSITION_SIZING_MODE, risk_percent)
risk_display = format_risk_display_text(
POSITION_SIZING_MODE, risk_percent, risk_amount_final, decimals=2
)
if direction == "short":
breakeven_price = round(float(trigger_price) * (1 - breakeven_offset_pct / 100.0), 8)
else:
@@ -6714,7 +6720,7 @@ def add_order():
"INSERT INTO order_monitors (symbol, exchange_symbol, direction, trigger_price, stop_loss, initial_stop_loss, take_profit, margin_capital, leverage, trade_style, risk_percent, risk_amount, breakeven_rr_trigger, breakeven_offset_pct, breakeven_step_r, breakeven_armed, breakeven_price, breakeven_enabled, notional_value, position_ratio, base_amount, order_amount, exchange_order_id, opened_at, opened_at_ms, session_date) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
(
symbol, exchange_symbol, direction, trigger_price, stop_loss, stop_loss, take_profit,
margin_capital, leverage, trade_style, risk_percent, risk_amount_final, breakeven_rr_trigger, breakeven_offset_pct, breakeven_step_r, 0, breakeven_price,
margin_capital, leverage, trade_style, risk_percent_db, risk_amount_final, breakeven_rr_trigger, breakeven_offset_pct, breakeven_step_r, 0, breakeven_price,
breakeven_enabled,
notional_value, position_ratio, base_amount, amount, open_order_id, opened_at_bj, opened_at_ms, trading_day
)
@@ -6829,7 +6835,7 @@ def add_order():
"🧾 订单基础信息",
f"🔖 交易所订单 ID{open_order_id}",
f"📈 交易风格:{style_zh}",
f"⚠️ 单笔风控风险:{risk_percent}% ≈ {round(float(risk_amount_final), 4)} U",
f"⚠️ 单笔风控风险:{risk_display}",
"📊 仓位配置详情",
f"账户基数:{account_base_display} USDT",
f"合约杠杆:{leverage}",
@@ -6852,7 +6858,7 @@ def add_order():
send_wechat_msg("\n".join(wx_lines))
flash_lines = [
f"机器人开单成功:风格 {trade_style};风险 {risk_percent}%≈{risk_amount_final}U;基数 {margin_capital}U,杠杆 {leverage}x,名义仓位 {notional_value}U,仓位占比 {position_ratio}%,合约张数 {amount}(折算标的 {base_amount}),"
f"机器人开单成功:风格 {trade_style};风险 {risk_display};基数 {margin_capital}U,杠杆 {leverage}x,名义仓位 {notional_value}U,仓位占比 {position_ratio}%,合约张数 {amount}(折算标的 {base_amount}),"
f"计划RR {planned_rr if planned_rr is not None else '-'};已在交易所挂条件止盈/止损委托(非仓位绑定型)",
f"本交易日累计开仓:{opens_today_after}",
]