DockerSpace / docs /validation_runs /weight_optimization_latest.json
DennisChan0909's picture
feat: integrate local architecture with HF Space
e610a2f
Raw
History Blame Contribute Delete
17.3 kB
{
"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"
}