Review Verdict
ready_for_review. Suitable for team review of code, evaluation artifacts, live fills, Algorithm Trading (AT), Paper Trading (PT), and Real Trading (RT) separation, and known production gaps. Not approved for unattended automation or capital expansion until blocked items are closed.
Algorithm Trading (AT) / Paper Trading (PT) / Real Trading (RT) Separation
| Algorithm Trading (AT) | Historical backtest and evaluation from 2022-09-02 to 2026-05-22; Gross Sharpe Ratio 1.546, Net Sharpe Ratio 1.509, Out-of-Sample (OOS) Sharpe Ratio 2.834 from 2025-05-01. |
|---|---|
| Paper Trading (PT) | Formal paper/live return stream is needs_input; no dedicated paper deployment for this exact live ID. |
| Real Trading (RT) | Steve personal live sleeve. Initial fills on 2026-05-27/28; CEO-approved light risk-off rebalance filled 2026-06-03. |
Real Trading vs Paper Trading Cash Results
Not apples-to-apples. There is no true Paper Trading (PT) broker mirror or paper return stream for this exact strategy ID. The closest comparable evidence shown here is an Algorithm Trading (AT) Strategy Eval cash bridge using the same approximate starting capital and the last six available AT trading returns ending at the eval cutoff.
| Real Trading (RT) environment | Steve personal Alpaca live account, Real Trading (RT), managed qsd symbols only; account cash contains unrelated shared-account cashflows. |
|---|---|
| Paper Trading (PT) / comparable source | No true Paper Trading (PT) mirror exists for this strategy ID. Closest comparable is Algorithm Trading (AT) Strategy Eval gross-return cash bridge, not apples-to-apples. |
| RT comparison window | 2026-05-27T19:53:48.985389+00:00 to 2026-06-05T01:28:20.039022+00:00 |
| Comparable window | 2026-05-15T04:00:00 to 2026-05-22T04:00:00 (Last 6 available AT trading returns ending at eval cutoff; same duration proxy, not same calendar dates as RT.) |
| Measure | Real Trading (RT) | Paper Trading (PT) / closest comparable | Difference |
|---|---|---|---|
| Starting cash / capital basis | $10,000.02 estimated strategy contributions from two live buy batches | $10,000.02 normalized AT cash bridge | $0.00 |
| Ending cash / market value bridge | $10,761.66 = $9,415.28 managed market value + $1,346.38 risk-off cash estimate | $10,374.43 normalized AT ending cash | $387.23 |
| Realized + unrealized profit and loss | $761.65 (7.62%) | $374.42 (3.74%) | $387.23; 3.87% percentage-point spread |
| Current unrealized profit and loss | $515.66 | Not available in AT cash bridge | Not comparable |
| Cash / realized component estimate | $245.99 | Not separated in AT gross returns | Not comparable |
| Account cash evidence | After first fill $40,292.59; after add $35,310.21; after risk-off $36,767.35; latest account cash $76,767.35 but includes unrelated shared-account cashflow | No PT account cash exists for this strategy ID | Account-level cash is not strategy-isolated |
Known causes of the gap: real live fills and prices, timing differences, slippage/latency, possible partial-fill/account constraints, shared-account cash attribution, and the discretionary 2026-06-03 risk-off overlay. The comparable AT bridge has no broker execution effects and ends at 2026-05-22, before the RT window.
Strategy Evaluation Metrics
Transaction Costs (TC) are estimated fees, spread, slippage, and market-impact assumptions deducted from gross returns.
| Gross Sharpe Ratio | 1.546 | Net Sharpe Ratio | 1.509 |
|---|---|---|---|
| Gross Compound Annual Growth Rate (CAGR) | 49.50% | Net Compound Annual Growth Rate (CAGR) | 47.91% |
| Gross Maximum Drawdown (MaxDD) | -35.74% | Net Maximum Drawdown (MaxDD) | -35.89% |
| Out-of-Sample (OOS) split | 2025-05-01 | Out-of-Sample (OOS) Sharpe Ratio | 2.834 |
| Max correlation | 0.760 | Correlation strategy | candidate_ai_infra_hedged_v1 |
| Transaction Costs (TC) | metadata fee/slippage maps; annual TC drag 1.08% net asset value per year; capacity and fill assumptions need production-grade inputs before live expansion. | ||
Rolling Sharpe Ratio Chart
Visible chart generated from the Strategy Eval gross return input using two windows: 126 trading days as the slow/full-context line and 30 trading days as the fast/recent line. This is a review visualization, not a new backtest or trading signal.
Rebalance Timing Sensitivity
Read-only daily close timing sweep generated 2026-06-05. Net Sharpe Ratio means Sharpe after the 5 basis point turnover cost. The measured close-only sweep says Wednesday was strongest, Friday was acceptable but not best, and the Friday daily risk guard proxy improved Net Sharpe Ratio and Maximum Drawdown (MaxDD). Because the available research cache is adjusted daily close only, true open, open+30m, mid-day, 15:30 ET, exact Market-On-Close, and next-open fills are not measured.
| Variant | Net Sharpe Ratio | Compound Annual Growth Rate (CAGR) | Maximum Drawdown (MaxDD) | Conclusion |
|---|---|---|---|---|
| Best weekday: Wednesday | 1.522 | 48.0% | -34.1% | Best daily close proxy by Net Sharpe Ratio. |
| Current default: Friday | 1.398 | 43.2% | -32.9% | Reasonable, ranked 3/5 by Net Sharpe Ratio. |
| Friday + daily risk guard proxy | 1.441 | 42.0% | -30.5% | Better risk-adjusted result and lower drawdown than plain Friday. |
Recommendation: use semi-automatic Friday rebalance with a downside/intraday guard before execution. Do not make this fully automatic until open/intraday data is added and the guard is encoded as a production policy.
Latest Signal Freshness
Latest public signal is from 2026-06-03 and is stale for same-day 2026-06-05 trading decisions; it remains the latest public visualization artifact available in this PR package.
| Generated at | 2026-06-03T19:24:00.772753+00:00 |
|---|---|
| Latest daily bar | 2026-06-03T04:00:00+00:00 |
| Source | Alpaca IEX daily adjusted bars via alpha_vault_ops credentials; Alpaca Steve personal live account read-only positions |
| Fresh enough at generation | True; age 15.4h then |
Signal Lines From Latest Public Signal
| Sleeve | Rank | Symbol | Score | 60-day return | 60-day volatility | Selected |
|---|---|---|---|---|---|---|
| AI compute | 1 | AMD | 2.280 | 164.67% | 72.24% | selected |
| AI compute | 2 | HPE | 2.265 | 154.43% | 68.18% | selected |
| AI compute | 3 | MU | 2.070 | 175.09% | 84.57% | selected |
| AI compute | 4 | DELL | 1.970 | 188.07% | 95.48% | selected |
| AI compute | 5 | SOXX | 1.933 | 82.48% | 42.67% | |
| AI compute | 6 | SMH | 1.681 | 61.66% | 36.69% | |
| AI compute | 7 | INTC | 1.629 | 145.16% | 89.13% | |
| AI compute | 8 | ANET | 0.480 | 28.43% | 59.25% | |
| AI compute | 9 | VRT | 0.426 | 25.46% | 59.78% | |
| Hedge | 1 | UUP | 0.255 | 1.47% | 5.79% | selected |
| Hedge | 2 | TLT | -0.323 | -3.27% | 10.12% | |
| Hedge | 3 | GLD | -0.514 | -13.56% | 26.37% | |
| Market check | 1 | SPY | 0.827 | 11.59% | 14.02% | |
| Market check | 1 | QQQ | 1.213 | 22.57% | 18.61% | |
| Power/infra | 1 | GRID | 0.659 | 17.94% | 27.24% | selected |
| Power/infra | 2 | PAVE | 0.403 | 9.69% | 24.03% | selected |
| Power/infra | 3 | XLI | 0.106 | 2.16% | 20.30% | selected |
| Power/infra | 4 | OKLO | 0.060 | 5.92% | 99.11% | |
| Power/infra | 5 | CCJ | -0.026 | -1.43% | 54.38% | |
| Power/infra | 6 | URA | -0.027 | -1.36% | 51.17% | |
| Power/infra | 7 | GE | -0.044 | -1.86% | 41.92% | |
| Power/infra | 8 | NLR | -0.135 | -5.74% | 42.68% |
Current Real Trading (RT) Status Snapshot
Read-only snapshot: 2026-06-05T01:28:20.039022+00:00; related open orders: 0.
| Account status | AccountStatus.ACTIVE | Account cash | $76,767.35 |
|---|---|---|---|
| Portfolio value | $90,942.19 | Managed value | $9,415.28 |
| Managed cost basis | $8,899.62 | Managed unrealized profit and loss | $515.66 |
| Symbol | Quantity | Market value | Invested sleeve weight | Unrealized profit and loss |
|---|---|---|---|---|
| AMD | 2.853046445 | $1,442.41 | 15.32% | $-7.59 |
| DELL | 3.457624155 | $1,395.15 | 14.82% | $302.82 |
| GRID | 3.400259184 | $659.65 | 7.01% | $0.37 |
| HPE | 26.386488144 | $1,391.62 | 14.78% | $402.28 |
| MU | 1.347718232 | $1,279.79 | 13.59% | $-175.15 |
| PAVE | 6.217180401 | $358.54 | 3.81% | $6.54 |
| UUP | 88.360278844 | $2,450.23 | 26.02% | $-3.83 |
| XLI | 2.571341018 | $437.87 | 4.65% | $-9.80 |
Latest Live Execution Evidence
2026-06-03 light risk-off rebalance: 8 orders filled, 0 failures.
| Symbol | Side | Status | Filled quantity | Average price | Client order ID |
|---|---|---|---|---|---|
| HPE | SELL | FILLED | 12.314958427 | 55.1741 | av_qsdaipowebarbstevl_20260603T193533Z_HPE_s_001 |
| DELL | SELL | FILLED | 1.166729998 | 420.5201 | av_qsdaipowebarbstevl_20260603T193534Z_DELL_s_002 |
| GRID | SELL | FILLED | 4.307117174 | 197.4357 | av_qsdaipowebarbstevl_20260603T193534Z_GRID_s_003 |
| INTC | SELL | FILLED | 11.993891483 | 112.163 | av_qsdaipowebarbstevl_20260603T193534Z_INTC_s_004 |
| OKLO | SELL | FILLED | 5.160187891 | 65.383 | av_qsdaipowebarbstevl_20260603T193534Z_OKLO_s_005 |
| UUP | BUY | FILLED | 16.292480148 | 27.8689 | av_qsdaipowebarbstevl_20260603T193534Z_UUP_b_006 |
| MU | BUY | FILLED | 1.347718232 | 1079.558 | av_qsdaipowebarbstevl_20260603T193534Z_MU_b_007 |
| XLI | BUY | FILLED | 2.571341018 | 174.0997 | av_qsdaipowebarbstevl_20260603T193535Z_XLI_b_008 |
Strategy Algorithm
This visual separates the canonical research algorithm from the current Real Trading (RT) execution evidence. The strategy is reviewable, but the reusable production runner and schedule registration remain blocked items.
1. Data inputs and cutoff
Adjusted daily Alpaca IEX prices. Signals use completed daily bars only; before market close, same-day partial information is not used as a completed signal.
2. Feature generation
For every candidate symbol, compute 60-trading-day return divided by annualized 60-trading-day realized volatility.
3. Sleeve ranking
Rank AI compute, power/infrastructure, and hedge universes separately. Select top 4 AI names, top 3 power names, and top 1 hedge only if positive.
4. Target construction
Allocate 58% to AI, 22% to power/infrastructure, and 20% to hedge. Per-name caps apply inside sleeves; weak selected names can receive small residual weights through lower clipping.
5. Sizing and risk controls
Normal model target is fully invested when the hedge is active. The 2026-06-03 discretionary risk-off overlay added a 12% cash buffer and increased UUP to 22%.
6. Schedule and guards
Intended cadence is weekly Friday near 15:30-15:45 America/New_York. The live review flags missing qsd-specific cron/schedule registration and production duplicate-submit guard as TODOs.
7. Order-intent path
Approved live orders must route through StrategyContext, ExecutionGateway.create_order_intent, AlpacaBroker, and ExecutionGateway.submit_order. Buys use notional; sells use broker quantity.
8. Monitoring loop
Live status snapshots read positions, managed value, unrealized profit and loss, and related open orders. Reports feed back into review and future rebalance decisions.
| Canonical signal code | run_generation.py, function qsd_ai_power_barbell |
| Evaluation export path | run_full_eval.py and Strategy Eval inputs under inputs/qsd_ai_power_barbell/ |
| Execution adapter evidence | 2026-06-03 execution artifact shows StrategyContext, ExecutionGateway, AlpacaBroker, and filled Alpaca order IDs. A reusable production runner is still missing. |
| Discretionary override path | CEO/Steve approval can trigger a one-off risk-off overlay. It must still pass market-open, open-order, duplicate-guard, and managed-symbol checks before any future execution. |
Code Walkthrough
Canonical signal code: run_generation.py. Evaluation runner: run_full_eval.py.
def risk_adj_return(data: pd.DataFrame, lookback: int, skip: int = 0) -> pd.Series:
end = -1 - skip
start = end - lookback
ret = data.iloc[end] / data.iloc[start] - 1
vol = data.pct_change().iloc[start:end].std() * np.sqrt(252)
return (ret / vol.replace(0, np.nan)).dropna()
def cap(raw: pd.Series, max_weight: float) -> pd.Series:
if raw.empty:
return raw
return normalize_weights(raw.clip(lower=0.001), max_weight=max_weight)
def qsd_ai_power_barbell(prices: pd.DataFrame, _date) -> pd.Series:
ai = frame(prices, ["INTC", "MU", "AMD", "DELL", "HPE", "VRT", "ANET", "SMH", "SOXX"])
power = frame(prices, ["GRID", "PAVE", "CCJ", "URA", "NLR", "OKLO", "XLI", "GE"])
hedge = frame(prices, ["UUP", "GLD", "TLT"])
ai_top = risk_adj_return(ai, 60).sort_values(ascending=False).head(4)
power_top = risk_adj_return(power, 60).sort_values(ascending=False).head(3)
hedge_top = risk_adj_return(hedge, 60).sort_values(ascending=False).head(1)
pieces = [cap(ai_top, 0.20) * 0.58, cap(power_top, 0.16) * 0.22]
if not hedge_top.empty and hedge_top.iloc[0] > 0:
pieces.append(cap(hedge_top, 0.20) * 0.20)
return pd.concat(pieces).groupby(level=0).sum()Export Provenance
| Metrics tool | /workspace/steve/paw_auto_research/tools/eval_strategy.py using Strategy Eval inputs under inputs/qsd_ai_power_barbell/. |
|---|---|
| Report generator | Custom static HTML builder run in this review session from committed Strategy Eval JSON, live status JSON, signal JSON, and execution JSON artifacts. |
| Data source | Historical adjusted daily Alpaca IEX price dataset for Algorithm Trading (AT); read-only Steve personal Alpaca live account snapshot through alpha_vault_ops.create_trading_client("live_steve") for Real Trading (RT). |
| Timestamp cutoff | Historical eval window 2022-09-02 to 2026-05-22; public signal generated 2026-06-03T19:24:00.772753+00:00 using latest daily bar 2026-06-03T04:00:00+00:00; live status snapshot 2026-06-05T01:28:20.039022+00:00. |
| Strategy Eval command | python /workspace/steve/paw_auto_research/tools/eval_strategy.py --positions .../inputs/qsd_ai_power_barbell/positions.csv --asset-returns .../asset_returns.csv --gross-returns .../gross_returns.csv --metadata-json .../metadata.json --factor-returns .../factor_returns.csv --existing-returns .../existing_returns.csv --oos-start-date 2025-05-01 --strategy-label qsd_ai_power_barbell_steve_live_v1 |
| Publisher | Cloudflare Pages via npx wrangler pages deploy /tmp/qsd_live_review_demo_20260605_public --project-name qsd-ai-powerbarbell-live-review-20260605 --branch main. |
Known Risks / Blocked Items
- No dedicated qsd production live runner file yet.
- No confirmed qsd-specific cron/schedule registry entry yet.
- 2026-06-03 risk-off overlay is discretionary and not encoded as reusable production policy.
cap()lower-clips scores to 0.001, so weak selected names can receive small residual weights.- Paper/live stream, fill latency, queue position, and production capacity assumptions remain incomplete.
- Steve personal live account contains unrelated holdings/cash; future runner must isolate managed symbols.