# Opening Range Breakout Plugin Proof Artifact Generated UTC: `2026-07-19T21:22:38.634499+00:00` ## Status `PAPER_STRATEGY_SPEC_LINKED` Proof class: `paper_testing_evidence` Execution mode: `paper_only` Live execution approved: `False` This artifact links TradingRobotPlug public strategy claims to **verified** DreamVault paper-testing artifacts. It is evidence of build capability and workflow discipline, not a profit claim. ## Strategy First-range break after open with volume confirmation (paper catalog opening_range_breakout + ORB/VWAP Bot Lab contract). ## Risk Positioning - Paper-first. - No guaranteed profit language. - No live execution approval from this artifact. - Operator review required before any real-money use. Not financial advice. Not a profit claim. Not live trade approval. Paper-first review and operator risk controls remain mandatory. ## Linked Public Proofs - `/proof/tsla-vwap-reclaim-plugin.json` ## Linked DreamVault Artifacts ### `runtime/manifests/trading/strategy_catalog.paper.yaml` - File: `strategy_catalog.paper.yaml` - Type: `.yaml` - Bytes: `2650` - mtime_utc: `2026-07-01T00:03:04+00:00` ```text mode: PAPER_ONLY symbol_focus: - TSLA global_rules: no_averaging_down: true no_live_orders_until_promoted: true end_day_cash_default: true protect_green_day: true max_runner_risk_from_realized_profit_only: true strategies: - id: tsla_melt_up_reclaim name: TSLA Melt-Up Reclaim timeframe: [5m, 15m, 30m] thesis: "Bear trap / reclaim pressure after failed breakdown." trigger: type: reclaim_hold levels: ["prior decision shelf", "strike magnet", "VWAP/EMA reclaim"] example: "417.50/418 reclaim -> 420 magnet" targets: - target_1: "psychological magnet" - extension: "next liquidity shelf" invalidation: - "lose reclaim shelf" - "fail fast reclaim after breakdown" execution_notes: - "First position is thesis trade." - "After target_1, close main risk and optionally roll smaller runner." - id: vwap_reclaim_momentum name: VWAP Reclaim Momentum timeframe: [5m, 15m] thesis: "Price reclaims VWAP with volume and holds above EMA stack." trigger: type: vwap_reclaim confirmation: - "close above VWAP" - "EMA9 curling above/through price" - "volume expansion" invalidation: - "VWAP loss with failed reclaim" targets: - "opening range high" - "prior day level" - "round-number magnet" - id: opening_range_breakout name: Opening Range Breakout timeframe: [5m, 15m, 30m] thesis: "First range resolves with volume after trap." trigger: type: range_break range: "first 15m/30m high-low" invalidation: - "breakout candle midpoint lost" - "range re-entry and rejection" targets: - "measured move" - "nearest liquidity level" - id: tbows_5m_mean_reversion nam …[truncated]… ``` ### `runtime/strategies/tsla_orb_vwap_reclaim_001.yaml` - File: `tsla_orb_vwap_reclaim_001.yaml` - Type: `.yaml` - Bytes: `1276` - mtime_utc: `2026-07-17T23:58:18+00:00` ```text strategy_id: tsla_orb_vwap_reclaim_001 execution_mode: paper_only live_execution_approved: false instrument: TSLA timeframe: 5m market_context: benchmark: QQQ required_session: regular opening_ranges: - 15m - 5m - 30m indicators: - vwap - ema_8 - ema_21 - rsi_14 - macd - volume - last_5m_trend setup: type: orb_vwap_reclaim quality_required: A_plus description: > Opening-range break combined with VWAP reclaim. Educational paper setup only — not a guaranteed profitable strategy. risk: maximum_daily_loss_usd: 250 maximum_trades_per_day: 3 stop_removal_allowed: false stop_widening_allowed: false end_day_position: cash position_size_ceiling: 10 stale_signal_seconds: 300 experiment: minimum_sample_size: 5 states_allowed: - draft - ready_for_review - paper_trading - insufficient_sample - promotion_candidate - rejected - archived provenance: derived_from: - runtime/manifests/trading/strategy_catalog.paper.yaml#opening_range_breakout - runtime/manifests/trading/strategy_catalog.paper.yaml#vwap_reclaim_momentum migration_artifact: data/reports/trading_robot/tsla_orb_vwap_reclaim_001_migration_001.json ``` ### `data/reports/trading_robot/tsla_orb_vwap_reclaim_001_migration_001.json` - File: `tsla_orb_vwap_reclaim_001_migration_001.json` - Type: `.json` - Bytes: `1961` - mtime_utc: `2026-07-17T23:58:20+00:00` ```text { "artifact_id": "tsla_orb_vwap_reclaim_001_migration_001", "created_utc": "2026-07-17T23:58:00Z", "source": "runtime/manifests/trading/strategy_catalog.paper.yaml", "target": "runtime/strategies/tsla_orb_vwap_reclaim_001.yaml", "operator_review_required": true, "semantic_risk": "medium", "notes": "Combines ORB + VWAP reclaim into one Bot Lab contract without changing catalog meaning; catalog entries remain SSOT for cockpit runner.", "field_map": [ { "original_field": "strategies[id=opening_range_breakout].trigger.type=range_break", "target_field": "setup.type=orb_vwap_reclaim (+ opening_range_complete/close_above_or_high)", "transformation": "Map first 15m range break to deterministic OR high break on 5m bars", "semantic_risk": "low", "operator_review_requirement": false }, { "original_field": "strategies[id=vwap_reclaim_momentum].trigger.type=vwap_reclaim", "target_field": "setup conditions close_above_vwap + ema_stack_bullish", "transformation": "Catalog confirmation list → explicit boolean conditions", "semantic_risk": "low", "operator_review_requirement": false }, { "original_field": "global_rules.end_day_cash_default", "target_field": "risk.end_day_position=cash", "transformation": "direct", "semantic_risk": "low", "operator_review_requirement": false }, { "original_field": "mode=PAPER_ONLY", "target_field": "execution_mode=paper_only", "transformation": "normalize case/underscore", "semantic_risk": "low", "operator_review_requirement": false }, { "original_field": "strategies[*].timeframe", "target_field": "timeframe + market_context.opening_ranges", "transformation": "split p …[truncated]… ``` ### `data/reports/trading/tsla_command_center_snapshot_export_001.md` - File: `tsla_command_center_snapshot_export_001.md` - Type: `.md` - Bytes: `1852` - mtime_utc: `2026-06-08T10:11:28+00:00` ```text # TSLA Command Center Snapshot Export 001 - output: `runtime/exports/freerideinvestor/tsla-command-center.json` - symbol: `TSLA` - status: `pass` - freshness: `fresh` - churn_risk: `high` - behavior_input_present: `True` - scorecard_input_present: `True` - minute_data_available: `True` - minute_data_status: `artifact-present` - last_candle_at: `2026-06-01T13:02:57Z` - data_age_minutes: `0` - freshness_level: `fresh` - market_session_status: `pre-market` - collector_status: `artifact-present-live-pending` ## Snapshot ```json { "bias": "neutral until opening range confirms", "checklist": [ "Opening range marked", "VWAP relation checked", "No revenge re-entry without fresh setup", "Stop after two churn entries" ], "churn_risk": "high", "collector_status": "artifact-present-live-pending", "data_age_minutes": 0, "data_freshness_note": "Local TSLA minute-data artifact found. Live intraday auto-refresh is not wired yet.", "freshness": "fresh", "freshness_level": "fresh", "generated_at": "2026-06-01T13:02:57Z", "headline": "TSLA command center ready / 47 fills analyzed", "insight": "High activity month: enough fills for behavior clustering. Debit-heavy flow: frequent position initiation/adds exceeded exits.", "last_candle_at": "2026-06-01T13:02:57Z", "market_session_status": "pre-market", "minute_data_available": true, "minute_data_bytes": 509, "minute_data_source": "/data/data/com.termux/files/home/projects/DreamVault/runtime/trading_journal/data/command_center/tsla_1m_latest.meta.json", "minute_data_status": "artifact-present", "no_trade_windows": [ "09:30-09:40 ET", "first failed breakout retest" ], "opening_range": "watch first 10 minutes", "status": "pass", "symbol": "TSLA", "vwap_state": "pending" …[truncated]… ``` ## Remaining Data Blockers - No dedicated ORB session paper-fill log or ORB-only simulation report under data/reports/trading/. - Do not claim ORB live performance; status remains paper_strategy_spec_linked until session logs exist. ## Verification Standard - Strategy logic must be visible. - Paper or simulated logs must exist before trust claims. - Risk gates must be documented. - Live execution is not approved by this artifact. - Statuses must not use sample/placeholder language.