feat: 交易记录增加保证金占比与最新资金,上方展示资金曲线
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user