{ "schema_version": "1.0", "run_id": "RUN-ANA-WUJI-BASELINE-PILOT-20260607-001", "created_at": "2026-06-07T23:37:00+08:00", "role_instance_id": "case_analysis.analyst", "case_matter_id": "ANA-WUJI-BASELINE-2023-2026", "design_id": "DESIGN-WUJI-BASELINE-FLOW-20260607", "design_audit_id": "AUDIT-ANA-WUJI-BASELINE-FLOW-20260607-001", "stage": "STRUCTURE_PILOT_EXIT_REVIEW_RESOLVED_SELF_CHECK_DONE", "status": "exit_review_held_lots_resolved_self_check_pass_return_stat_held_execution_review_submission_ready", "conclusion_boundary": "Structure pilot exit-review-resolved package only. No complete baseline return, success rate, win rate, drawdown, or strategy effectiveness conclusion.", "baseline": { "baseline_id": "WUJI_BASELINE_NOTE_SIMPLIFIED_20260607", "source_note": "ana-doc/wuji/profile/source_note/笔记精简版.md", "feedback_doc": "ana-doc/wuji/baseline反馈.md", "analysis_plan": "ana-doc/wuji/无忌笔记案例分析方案.md", "execution_flow": "ana-doc/wuji/无忌交易系统案例执行流程.md", "excluded_policy": "See baseline_excluded_rule_table.csv" }, "requested_date_range": { "start": "2023-01-01", "end": "2026-12-31" }, "known_actual_breadth_date_range_from_prior_experiment": { "start": "2023-01-04", "end": "2026-04-24", "evidence": "exp-data/result/RUN-EXP-WUJI-BREADTH-3000-20260607-001/summary.json" }, "sample_plan": { "sample_size_min": 5, "sample_size_max": 10, "case_unit": "one_entry_trade_date_independent_case_account", "selection_goal": "Cover positive, negative, boundary, no-trade, and manual-review cases before any full return statistic.", "selection_policy": "Generate complete candidate pool first, then choose representative entry_trade_date cases with recorded reasons. Do not hand-pick a single stock as a substitute for system execution." }, "data_sources": { "daily_price_source": { "system": "MYSQL_TIANXIA_LOCAL", "schema": "tianxia", "table": "a_share_daily_price", "evidence": "exp-data/result/RUN-EXP-WUJI-BREADTH-3000-20260607-001/daily_classification.csv", "direct_check_evidence": "source_db_direct_check.json", "actual_coverage_start": "2023-01-03", "actual_coverage_end": "2026-05-26" }, "market_breadth_source": { "system": "MYSQL_TIANXIA_LOCAL", "schema": "tianxia", "table": "ts_market_breadth_daily_cache", "cache_run_id": "ts_market_breadth_cache_20260529", "benchmark_type": "VS_PREV_CLOSE", "evidence": "exp-data/result/RUN-EXP-WUJI-BREADTH-3000-20260607-001/summary.json", "scope_type": "ALL_A_SHARE", "scope_value": "ALL", "direct_check_evidence": "source_db_direct_check.json", "actual_coverage_start": "2023-01-04", "actual_coverage_end": "2026-04-24" }, "minute_price_source": { "system": "MYSQL_TIANXIA_LOCAL", "schema": "tianxia", "table": "a_share_minute_price", "evidence": "source_db_direct_check.json", "confirmation_status": "DIRECT_DB_PASS_WITH_MINUTE_BOUNDARY", "required_before_case_execution": true, "actual_coverage_start": "2023-03-24", "actual_coverage_end": "2026-04-20", "case_selection_constraint": "Only select minute-dependent replay cases within 2023-03-24 to 2026-04-20." } }, "market_gate": { "main_gate_id": "MKT_GATE_PREV_DAY_UP_3000", "definition": "previous_trade_day.up_count >= 3000", "reason": "Point-in-time safe at entry date open. It avoids using entry-day future intraday breadth for new opening decisions.", "gate_closed_status": "NO_TRADE_MARKET_GATE_CLOSED", "intraday_gate": "not_in_main_baseline", "intraday_gate_policy": "If tested later, run as a separate variant after design re-review." }, "candidate_rules": { "candidate_signal_date": "previous_trade_day(entry_trade_date)", "daily_fields_visible_until": "candidate_signal_date close", "recent_limit_up_window_trading_days": 30, "volume_ratio_definition": "signal_day_volume / average_volume_of_previous_5_trading_days_before_signal_day", "volume_ratio_threshold": 1.7, "upper_shadow_top_n": 50, "candidate_rank_sort_keys": [ "upper_shadow_pct desc", "volume_ratio desc", "amount desc" ], "long_flat_window_trading_days": 60, "previous_high_volume_rule": "If long upper shadow touches previous high, signal day volume must be greater than previous-high reference volume unless manual exception is recorded.", "previous_high_volume_reference_policy": "FIRST_PREVIOUS_HIGH_IN_60D_WINDOW", "previous_high_volume_reference_policy_note": "For this audited pilot run, prev60_high_volume uses the first occurrence of the maximum high in the prior 60 trading days. Candidate ledgers retain amount, prev60_high_ref_date, and prev60_high_ref_policy as audit evidence." }, "entry_rules": { "main_variant": "V0A_STRICT_TIME_WINDOW", "normal_entry_windows": [ "09:30:00-10:40:00", "14:40:00-15:00:00" ], "rolling_exception_window": "10:40:00-14:40:00", "rolling_exception_condition": "Only for existing legal position after trend-up and pullback near MA5 with manual confirmation of stop-fall volume.", "v0b_ablation_enabled": true, "v0b_policy": "V0B_ALL_DAY_ENTRY_ABLATION is retained only as a side-by-side ablation. It is not the headline baseline and must not be mixed with V0A returns." }, "position_rules": { "max_symbols_per_case": 5, "symbol_budget_pct": 0.2, "tranches_per_symbol": 5, "default_tranche_account_pct": 0.04, "fifth_tranche_default_enabled": false, "fifth_tranche_exception_requires_manual_reason": true }, "exit_and_risk_rules": { "observation_window_trading_days_min": 1, "observation_window_trading_days_max": 10, "t1_guard": "T-day buy cannot be sold on T-day. Same-day sell signal is recorded as T0_SIGNAL_NOT_SELLABLE.", "window_end_policy": "WINDOW_END_VALUATION_ONLY is not an original note sell point and cannot be used as a strict baseline exit.", "single_symbol_stop_loss_pct": -0.05, "market_down_3000_policy": "Risk signal for position reduction, requires current run evidence and manual review.", "market_down_4000_policy": "Risk signal for full clear, requires current run evidence and manual review." }, "cost_slippage_and_tradeability": { "primary_return_view": "gross_return_without_costs", "cost_sensitivity_view": "net_return_rate_model", "commission_rate_each_side": 0.00025, "stamp_tax_rate_sell_side": "TO_BE_VERIFIED_BEFORE_RETURN_STAT_READY", "slippage_model": "0 for STRUCTURE_PILOT_EXIT_REVIEW_RESOLVED_SELF_CHECK_DONE; sensitivity model required before RETURN_STAT_READY.", "limit_up_buy_policy": "If signal price is at upper limit and no tradable evidence exists, mark LIMIT_UP_UNTRADEABLE_REVIEW and do not force a buy.", "limit_down_sell_policy": "If sell signal is at lower limit and no tradable evidence exists, mark LIMIT_DOWN_UNTRADEABLE_HELD and do not force a sell.", "integer_lot_policy": "Percent-account replay in pilot; real share-rounding sensitivity required before RETURN_STAT_READY." }, "chart_standard": { "language": "zh-CN", "candidate_daily_kline_window_trading_days": 100, "entry_exit_intraday_chart": "1m_kline", "price_line_chart_as_primary_evidence": false, "image_board_first_entry": "case_image_board.md", "story_board_role": "text_trace_only", "decision_view_rule": "Only data visible at or before decision_time.", "audit_view_rule": "May show later data only for retrospective explanation, never for decision.", "required_image_manifest_fields": [ "case_id", "symbol", "trade_date", "event_id", "chart_role", "decision_time", "path", "sha256" ] }, "required_outputs_before_execution_review": [ "run_config.md", "run_config.json", "baseline_rule_mapping.csv", "baseline_excluded_rule_table.csv", "code_validation_report.md", "baseline_mapping_check.csv", "sample_recalc_check.csv", "case_index.csv", "candidate_ledger.csv", "decision_log.csv", "order_ledger.csv", "position_lot_ledger.csv", "daily_account_ledger.csv", "image_manifest.csv", "case_image_board.md", "case_story_board.md", "summary.md", "summary.json", "manifest.json", "self_check.md", "self_check.json" ], "review_policy": { "execution_review_required": true, "return_stat_ready_requires_execution_review_pass": true, "design_re_review_triggers": [ "baseline selection change", "market gate change", "entry or exit rule change", "return calculation change", "image-first audit entry change", "code validation prerequisite change" ] }, "slippage_model": "0 for STRUCTURE_PILOT_EXIT_REVIEW_RESOLVED_SELF_CHECK_DONE; sensitivity model required before RETURN_STAT_READY." }