feat: 交易记录增加保证金占比与最新资金,上方展示资金曲线

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-25 16:17:22 +08:00
parent 649c064c2f
commit 240fbe7994
5 changed files with 184 additions and 13 deletions
+21 -4
View File
@@ -286,6 +286,8 @@ def init_db():
"ALTER TABLE review_records ADD COLUMN sina_code TEXT",
"ALTER TABLE trade_logs ADD COLUMN fee REAL",
"ALTER TABLE trade_logs ADD COLUMN pnl_net REAL",
"ALTER TABLE trade_logs ADD COLUMN margin_pct REAL",
"ALTER TABLE trade_logs ADD COLUMN equity_after REAL",
"ALTER TABLE review_records ADD COLUMN fee REAL",
"ALTER TABLE review_records ADD COLUMN pnl_net REAL",
]
@@ -1082,16 +1084,21 @@ def close_position(pid):
pnl_net = round(pnl - fee, 2)
result = classify_close_result(direction, close_price, sl, tp)
minutes = holding_to_minutes(open_time, close_time)
margin_pct = metrics.get("position_pct")
from trade_log_lib import calc_equity_after
equity_after = calc_equity_after(capital, pnl_net)
conn.execute(
"""INSERT INTO trade_logs
(symbol, symbol_name, market_code, sina_code, monitor_type, direction,
entry_price, stop_loss, take_profit, close_price, lots, margin,
holding_minutes, open_time, close_time, pnl, fee, pnl_net, result)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""",
margin_pct, holding_minutes, open_time, close_time, pnl, fee, pnl_net,
equity_after, result)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""",
(
sym, row["symbol_name"], market, sina, "持仓监控", direction,
entry, sl, tp, close_price, lots, metrics["margin"],
minutes, open_time, close_time, pnl, fee, pnl_net, result,
margin_pct,
minutes, open_time, close_time, pnl, fee, pnl_net, equity_after, result,
),
)
conn.execute("DELETE FROM position_monitors WHERE id=?", (pid,))
@@ -1226,6 +1233,15 @@ def records():
trade_list = conn.execute(
"SELECT * FROM trade_logs ORDER BY id DESC LIMIT 500"
).fetchall()
from trade_log_lib import enrich_trades_for_records
try:
initial_capital = float(get_setting("live_capital", "0") or 0)
except (TypeError, ValueError):
initial_capital = 0.0
trades, equity_curve = enrich_trades_for_records(
[dict(r) for r in trade_list],
initial_capital=initial_capital,
)
conn.close()
trade_prefill_keys = (
@@ -1238,7 +1254,8 @@ def records():
return render_template(
"records.html",
reviews=review_list,
trades=trade_list,
trades=trades,
equity_curve=equity_curve,
auto_records=auto_list,
preset=preset,
start=start,