Webull Paper Trade Lifecycle
Purpose
This page documents the paper-mode path that turns a Webull lab observation into a study-grade calibration row. It does not describe live broker submission.
1. Arm Session
The operator arms one of the Webull labs with symbol, timeframe, bankroll, horizon, and defined-risk settings. This creates a paper session only.
2. Observe
The lab asks the server for a recommended options structure and records the observation. When the bridge is active, the selected webull_strategy_id is also opened in cv_paper_trades through paper_trade_service.open_trade().
3. Hold Period
The row remains status='open' until its virtual horizon expires. Open rows are not calibration evidence because no outcome has been measured.
4. Auto Close
The scheduled driver calls each lab's /api/webull/<lab>/auto_close route. Expired rows close through paper_trade_service.close_trade(), which is the legal close path for study rows.
5. Mandatory Close Fields
A study-grade closed row carries pnl_usd, pnl_pct, realized_r, exit_price, closed_at, and exit_reason. Rows missing these fields are operational artifacts, not verdict input.
6. Gate Input
The F7 gate groups closed rows by webull_strategy_id, computes bucket statistics, and emits the UI fields n_closed, p_hat, p_lower, b, break_even, and verdict.