Shadow Trading Dashboard
Dashboard Location
trade/dashboard/index.html — 影子盘看板主文件,双击用浏览器打开
Core Data Files
| File | Purpose |
|------|---------|
| trade/dashboard/index.html | Dashboard HTML |
| trade/dashboard_data/metrics.json | KPI metrics |
| trade/dashboard_data/equity_curve.json | Equity curve |
| trade/data/positions.json | Current positions |
| trade/data/orders.jsonl | Order log |
| trade/trades.csv | Open positions CSV |
| trade/closed_positions.csv | Closed positions CSV |
| trade/trade_history.md | Human-readable trade history |
Data Schema
positions.json
{
"symbol": "300274",
"name": "阳光电源",
"quantity": 300,
"cost": 163.16,
"current_price": 166.59,
"stop_loss": 160.00,
"tags": ["储能","龙头"],
"entry_reason": "储能龙头ROE29%,回调支撑买入"
}
metrics.json
{
"current_equity": 1001029.00,
"position_market_value": 49977.00,
"cash": 951037.32,
"unrealized_pnl": 1029.00,
"realized_pnl": 0.0,
"total_return_pct": 0.103,
"trade_count": 1,
"win_count": 0,
"loss_count": 0,
"max_drawdown": 0.0
}
Standard Workflows
Opening the Dashboard
open ~/.openclaw/workspace/trade/dashboard/index.html
After Any Trade (Buy/Sell/Stop)
- Update
trade/data/positions.json - Append to
trade/data/orders.jsonl - Update
trade/trades.csvandtrade/closed_positions.csv - Update
trade/dashboard_data/metrics.json - Update
trade/dashboard_data/equity_curve.json - Rebuild
trade/dashboard/index.html(update DATA object + equity curve) - Update
trade/trade_history.md - Run
open trade/dashboard/index.html
Building the Dashboard HTML
The dashboard is a self-contained HTML with an embedded DATA object. Key fields to update:
current_equity,cash,position_value,unrealized_pnl,realized_pnlpositions[]array (name, symbol, quantity, cost, current_price, stop_loss, tags)trade_history[]array (date, time, symbol, name, action, direction, price, quantity, amount, fee, pnl, tags)closed_positions[]for closed tradesequity_curve[]for the curve
Fees
- A股模拟手续费:0.03% 单边(买卖各收一次)
- Fee = price × quantity × 0.0003
Equity Calculation
current_equity= cash + Σ(position market value)- Market value = current_price × quantity
Dashboard Update Checklist
After any trade, ALL of these must be updated:
- [ ]
trade/data/positions.json - [ ]
trade/data/orders.jsonl(append new order) - [ ]
trade/trades.csv(open positions) - [ ]
trade/closed_positions.csv(closed positions) - [ ]
trade/dashboard_data/metrics.json - [ ]
trade/dashboard_data/equity_curve.json - [ ]
trade/dashboard/index.html(DATA object + equity_curve) - [ ]
trade/trade_history.md
微信扫一扫