Spaces:
Running
Running
| { | |
| "experiment": "factor_weight_optimization", | |
| "generated_at": "2026-05-18T02:58:13.313346+00:00", | |
| "stocks": [ | |
| "2330" | |
| ], | |
| "factors": { | |
| "bull_column": "oldwang_bull_score", | |
| "bear_column": "oldwang_bear_score", | |
| "exclude_factor_columns_from_model": false | |
| }, | |
| "validation_design": { | |
| "mode": "walk_forward_probabilities_then_time_split_grid_search", | |
| "objective": "precision-first", | |
| "max_buy_count_ratio": 1.3, | |
| "label_horizon": 5, | |
| "train_end": "cutoff - LABEL_HORIZON", | |
| "step": 21, | |
| "min_train": 240, | |
| "leakage_guard": "model predictions are generated with train_end before each test slice; weights are selected on earlier prediction events and validated on later events." | |
| }, | |
| "result": { | |
| "split": { | |
| "optimize_ratio": 0.6, | |
| "tune_events": 126, | |
| "validation_events": 84, | |
| "tune_date_range": [ | |
| "2025-06-18", | |
| "2025-12-17" | |
| ], | |
| "validation_date_range": [ | |
| "2025-12-18", | |
| "2026-04-30" | |
| ] | |
| }, | |
| "grid_size": 576, | |
| "min_signal_ratio": 0.7, | |
| "objective": "precision-first", | |
| "max_buy_count_ratio": 1.3, | |
| "best_config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.08, | |
| "sell_bear_weight": 0.0, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "top_candidates": [ | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.08, | |
| "sell_bear_weight": 0.0, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.7193, | |
| "buy_precision": 47.8873, | |
| "sell_precision": 20.9302, | |
| "signal_count": 114, | |
| "buy_count": 71, | |
| "sell_count": 43, | |
| "coverage": 0.9048, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 5.2407, | |
| "buy_precision_delta_pp": 1.4587, | |
| "sell_precision_delta_pp": 1.2581, | |
| "signal_count_delta": -3, | |
| "coverage_delta": -0.0238 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 1.4587, | |
| 5.2407, | |
| -0.2678571428571428, | |
| 47.8873 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": 0.0, | |
| "sell_bear_weight": 0.08, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.069, | |
| "buy_precision": 47.8873, | |
| "sell_precision": 20.0, | |
| "signal_count": 116, | |
| "buy_count": 71, | |
| "sell_count": 45, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.5904, | |
| "buy_precision_delta_pp": 1.4587, | |
| "sell_precision_delta_pp": 0.3279, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 1.4587, | |
| 4.5904, | |
| -0.2678571428571428, | |
| 47.8873 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.03, | |
| "sell_bear_weight": 0.05, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.069, | |
| "buy_precision": 47.8873, | |
| "sell_precision": 20.0, | |
| "signal_count": 116, | |
| "buy_count": 71, | |
| "sell_count": 45, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.5904, | |
| "buy_precision_delta_pp": 1.4587, | |
| "sell_precision_delta_pp": 0.3279, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 1.4587, | |
| 4.5904, | |
| -0.2678571428571428, | |
| 47.8873 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.05, | |
| "sell_bear_weight": 0.03, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.069, | |
| "buy_precision": 47.8873, | |
| "sell_precision": 20.0, | |
| "signal_count": 116, | |
| "buy_count": 71, | |
| "sell_count": 45, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.5904, | |
| "buy_precision_delta_pp": 1.4587, | |
| "sell_precision_delta_pp": 0.3279, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 1.4587, | |
| 4.5904, | |
| -0.2678571428571428, | |
| 47.8873 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.05, | |
| "sell_bear_weight": 0.05, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.069, | |
| "buy_precision": 47.8261, | |
| "sell_precision": 21.2766, | |
| "signal_count": 116, | |
| "buy_count": 69, | |
| "sell_count": 47, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.5904, | |
| "buy_precision_delta_pp": 1.3975, | |
| "sell_precision_delta_pp": 1.6045, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 1.3975, | |
| 4.5904, | |
| -0.2321428571428572, | |
| 47.8261 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.0, | |
| "buy_bear_weight": -0.08, | |
| "sell_bear_weight": 0.08, | |
| "sell_bull_weight": -0.05, | |
| "buy_bear_gate": null, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.1681, | |
| "buy_precision": 47.2222, | |
| "sell_precision": 19.5122, | |
| "signal_count": 113, | |
| "buy_count": 72, | |
| "sell_count": 41, | |
| "coverage": 0.8968, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.6895, | |
| "buy_precision_delta_pp": 0.7936, | |
| "sell_precision_delta_pp": -0.1599, | |
| "signal_count_delta": -4, | |
| "coverage_delta": -0.0318 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 0.7936, | |
| 4.6895, | |
| -0.2857142857142858, | |
| 47.2222 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.0, | |
| "buy_bear_weight": -0.08, | |
| "sell_bear_weight": 0.08, | |
| "sell_bull_weight": -0.05, | |
| "buy_bear_gate": 2.0, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.1681, | |
| "buy_precision": 47.2222, | |
| "sell_precision": 19.5122, | |
| "signal_count": 113, | |
| "buy_count": 72, | |
| "sell_count": 41, | |
| "coverage": 0.8968, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.6895, | |
| "buy_precision_delta_pp": 0.7936, | |
| "sell_precision_delta_pp": -0.1599, | |
| "signal_count_delta": -4, | |
| "coverage_delta": -0.0318 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 0.7936, | |
| 4.6895, | |
| -0.2857142857142858, | |
| 47.2222 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.0, | |
| "buy_bear_weight": -0.08, | |
| "sell_bear_weight": 0.08, | |
| "sell_bull_weight": -0.05, | |
| "buy_bear_gate": 3.0, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.1681, | |
| "buy_precision": 47.2222, | |
| "sell_precision": 19.5122, | |
| "signal_count": 113, | |
| "buy_count": 72, | |
| "sell_count": 41, | |
| "coverage": 0.8968, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 4.6895, | |
| "buy_precision_delta_pp": 0.7936, | |
| "sell_precision_delta_pp": -0.1599, | |
| "signal_count_delta": -4, | |
| "coverage_delta": -0.0318 | |
| }, | |
| "objective": [ | |
| 3.9682, | |
| 0.7936, | |
| 4.6895, | |
| -0.2857142857142858, | |
| 47.2222 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.03, | |
| "sell_bear_weight": 0.03, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": 2.0, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.127, | |
| "direction_accuracy": 36.2069, | |
| "buy_precision": 47.2222, | |
| "sell_precision": 18.1818, | |
| "signal_count": 116, | |
| "buy_count": 72, | |
| "sell_count": 44, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.1746, | |
| "direction_accuracy_delta_pp": 3.7283, | |
| "buy_precision_delta_pp": 0.7936, | |
| "sell_precision_delta_pp": -1.4903, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.1746, | |
| 0.7936, | |
| 3.7283, | |
| -0.2857142857142858, | |
| 47.2222 | |
| ] | |
| }, | |
| { | |
| "config": { | |
| "buy_bull_weight": 0.01, | |
| "buy_bear_weight": -0.03, | |
| "sell_bear_weight": 0.03, | |
| "sell_bull_weight": -0.02, | |
| "buy_bear_gate": 3.0, | |
| "sell_bull_gate": null, | |
| "hold_bias": 0.0 | |
| }, | |
| "tune_metrics": { | |
| "accuracy": 34.127, | |
| "direction_accuracy": 36.2069, | |
| "buy_precision": 47.2222, | |
| "sell_precision": 18.1818, | |
| "signal_count": 116, | |
| "buy_count": 72, | |
| "sell_count": 44, | |
| "coverage": 0.9206, | |
| "n_predictions": 126 | |
| }, | |
| "tune_deltas": { | |
| "accuracy_delta_pp": 3.1746, | |
| "direction_accuracy_delta_pp": 3.7283, | |
| "buy_precision_delta_pp": 0.7936, | |
| "sell_precision_delta_pp": -1.4903, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.008 | |
| }, | |
| "objective": [ | |
| 3.1746, | |
| 0.7936, | |
| 3.7283, | |
| -0.2857142857142858, | |
| 47.2222 | |
| ] | |
| } | |
| ], | |
| "tune": { | |
| "baseline": { | |
| "accuracy": 30.9524, | |
| "direction_accuracy": 32.4786, | |
| "buy_precision": 46.4286, | |
| "sell_precision": 19.6721, | |
| "signal_count": 117, | |
| "buy_count": 56, | |
| "sell_count": 61, | |
| "coverage": 0.9286, | |
| "n_predictions": 126 | |
| }, | |
| "candidate": { | |
| "accuracy": 34.9206, | |
| "direction_accuracy": 37.7193, | |
| "buy_precision": 47.8873, | |
| "sell_precision": 20.9302, | |
| "signal_count": 114, | |
| "buy_count": 71, | |
| "sell_count": 43, | |
| "coverage": 0.9048, | |
| "n_predictions": 126 | |
| }, | |
| "deltas": { | |
| "accuracy_delta_pp": 3.9682, | |
| "direction_accuracy_delta_pp": 5.2407, | |
| "buy_precision_delta_pp": 1.4587, | |
| "sell_precision_delta_pp": 1.2581, | |
| "signal_count_delta": -3, | |
| "coverage_delta": -0.0238 | |
| } | |
| }, | |
| "validation": { | |
| "baseline": { | |
| "accuracy": 46.4286, | |
| "direction_accuracy": 57.6271, | |
| "buy_precision": 79.3103, | |
| "sell_precision": 36.6667, | |
| "signal_count": 59, | |
| "buy_count": 29, | |
| "sell_count": 30, | |
| "coverage": 0.7024, | |
| "n_predictions": 84 | |
| }, | |
| "candidate": { | |
| "accuracy": 46.4286, | |
| "direction_accuracy": 58.6207, | |
| "buy_precision": 71.1111, | |
| "sell_precision": 15.3846, | |
| "signal_count": 58, | |
| "buy_count": 45, | |
| "sell_count": 13, | |
| "coverage": 0.6905, | |
| "n_predictions": 84 | |
| }, | |
| "deltas": { | |
| "accuracy_delta_pp": 0.0, | |
| "direction_accuracy_delta_pp": 0.9936, | |
| "buy_precision_delta_pp": -8.1992, | |
| "sell_precision_delta_pp": -21.2821, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.0119 | |
| } | |
| }, | |
| "all_events": { | |
| "baseline": { | |
| "accuracy": 37.1429, | |
| "direction_accuracy": 40.9091, | |
| "buy_precision": 57.6471, | |
| "sell_precision": 25.2747, | |
| "signal_count": 176, | |
| "buy_count": 85, | |
| "sell_count": 91, | |
| "coverage": 0.8381, | |
| "n_predictions": 210 | |
| }, | |
| "candidate": { | |
| "accuracy": 39.5238, | |
| "direction_accuracy": 44.7674, | |
| "buy_precision": 56.8966, | |
| "sell_precision": 19.6429, | |
| "signal_count": 172, | |
| "buy_count": 116, | |
| "sell_count": 56, | |
| "coverage": 0.819, | |
| "n_predictions": 210 | |
| }, | |
| "deltas": { | |
| "accuracy_delta_pp": 2.3809, | |
| "direction_accuracy_delta_pp": 3.8583, | |
| "buy_precision_delta_pp": -0.7505, | |
| "sell_precision_delta_pp": -5.6318, | |
| "signal_count_delta": -4, | |
| "coverage_delta": -0.0191 | |
| } | |
| }, | |
| "per_stock_validation": { | |
| "2330": { | |
| "baseline": { | |
| "accuracy": 46.4286, | |
| "direction_accuracy": 57.6271, | |
| "buy_precision": 79.3103, | |
| "sell_precision": 36.6667, | |
| "signal_count": 59, | |
| "buy_count": 29, | |
| "sell_count": 30, | |
| "coverage": 0.7024, | |
| "n_predictions": 84 | |
| }, | |
| "candidate": { | |
| "accuracy": 46.4286, | |
| "direction_accuracy": 58.6207, | |
| "buy_precision": 71.1111, | |
| "sell_precision": 15.3846, | |
| "signal_count": 58, | |
| "buy_count": 45, | |
| "sell_count": 13, | |
| "coverage": 0.6905, | |
| "n_predictions": 84 | |
| }, | |
| "deltas": { | |
| "accuracy_delta_pp": 0.0, | |
| "direction_accuracy_delta_pp": 0.9936, | |
| "buy_precision_delta_pp": -8.1992, | |
| "sell_precision_delta_pp": -21.2821, | |
| "signal_count_delta": -1, | |
| "coverage_delta": -0.0119 | |
| } | |
| } | |
| } | |
| }, | |
| "promotion_decision": { | |
| "passed": false, | |
| "checks": { | |
| "validation_accuracy_delta": false, | |
| "buy_precision_not_down": false, | |
| "signal_ratio": true, | |
| "buy_count_ratio": false | |
| }, | |
| "signal_ratio": 0.9831, | |
| "buy_count_ratio": 1.5517, | |
| "thresholds": { | |
| "min_accuracy_delta_pp": 2.0, | |
| "min_signal_ratio": 0.7, | |
| "min_buy_precision_delta_pp": 0.0, | |
| "max_buy_count_ratio": 1.3 | |
| } | |
| }, | |
| "popular_stocks": { | |
| "source": "manual --stocks override", | |
| "url": "", | |
| "count": 1, | |
| "fallback_used": false | |
| }, | |
| "data_mining_roadmap": [ | |
| { | |
| "phase": "C22", | |
| "method": "Candlestick sequence + shadow/gap/MA20/volume spike", | |
| "reason": "低成本、可解釋,直接對應技術線型與老王策略語意。", | |
| "runtime": "Fast; suitable for Mac precompute and HF fallback." | |
| }, | |
| { | |
| "phase": "C23", | |
| "method": "SAX bag-of-patterns", | |
| "reason": "把近期報酬線型轉成 symbol token,再用歷史 win-rate 做 factor score。", | |
| "runtime": "Medium; calibrate only inside training folds." | |
| }, | |
| { | |
| "phase": "C24", | |
| "method": "catch22 / tsfresh compact features", | |
| "reason": "自動抽取時間序列特徵,但需嚴格限制欄位數與 fold-local selection。", | |
| "runtime": "Medium; Mac-first experiment." | |
| }, | |
| { | |
| "phase": "C25", | |
| "method": "Matrix Profile / STUMPY motif similarity", | |
| "reason": "找最近形狀是否像歷史多方/空方 motif,適合做 explainable factor。", | |
| "runtime": "Slow; Mac-only validation before any production use." | |
| }, | |
| { | |
| "phase": "C26", | |
| "method": "Shapelets", | |
| "reason": "可解釋的 discriminative subsequence,但較容易過擬合且成本較高。", | |
| "runtime": "Slow; research-only until extended validation passes." | |
| } | |
| ], | |
| "report_generated_at": "2026-05-18T02:58:13.313896+00:00" | |
| } |