{ "experiment": "C21_oldwang_rules", "description": "Dry run of Old Wang style MA, institutional guard, volume-bar, and gap-guard rules.", "stocks": [ "2330", "0050", "2317", "2454", "2881" ], "with_institutional": true, "pass_criterion": { "every_stock_accuracy_delta_pp_at_least": 3.0, "min_signal_ratio_vs_baseline": 0.7 }, "candidate_oldwang_features": [ "oldwang_triple_bull", "oldwang_triple_bear", "oldwang_ma5_hold", "oldwang_trust_ma10_guard", "oldwang_trust_ma10_broken", "oldwang_foreign_ma20_guard", "oldwang_foreign_ma20_broken", "oldwang_volume_spike", "oldwang_volume_high_break", "oldwang_volume_low_guard", "oldwang_volume_low_break", "oldwang_gap_guard", "oldwang_gap_filled", "oldwang_bull_score", "oldwang_bear_score" ], "strategies": [ "oldwang_features", "oldwang_veto", "oldwang_long_gate", "oldwang_features_veto" ], "aggregate": { "baseline": { "accuracy": 36.9, "dir_accuracy": 40.3, "up_precision": 52.8, "dn_precision": 31.3, "n_signals": 178.6, "n_predictions": 210.0 }, "oldwang_features": { "accuracy": 39.1, "dir_accuracy": 42.9, "up_precision": 55.1, "dn_precision": 32.0, "n_signals": 179.8, "n_predictions": 210.0, "accuracy_delta_pp": 2.2, "signal_ratio_vs_baseline": 1.007 }, "oldwang_veto": { "accuracy": 26.4, "dir_accuracy": 34.9, "up_precision": 47.2, "dn_precision": 31.3, "n_signals": 128.0, "n_predictions": 210.0, "accuracy_delta_pp": -10.5, "signal_ratio_vs_baseline": 0.717 }, "oldwang_long_gate": { "accuracy": 28.8, "dir_accuracy": 37.3, "up_precision": 53.1, "dn_precision": 31.3, "n_signals": 136.8, "n_predictions": 210.0, "accuracy_delta_pp": -8.1, "signal_ratio_vs_baseline": 0.766 }, "oldwang_features_veto": { "accuracy": 27.1, "dir_accuracy": 37.4, "up_precision": 52.7, "dn_precision": 32.0, "n_signals": 123.4, "n_predictions": 210.0, "accuracy_delta_pp": -9.8, "signal_ratio_vs_baseline": 0.691 } }, "best_strategy": "oldwang_features", "passing_strategies": [], "per_stock": { "2330": { "baseline": { "accuracy": 32.4, "dir_accuracy": 35.8, "up_precision": 55.4, "dn_precision": 24.1, "n_signals": 173, "n_predictions": 210 }, "oldwang_features": { "accuracy": 32.9, "dir_accuracy": 36.9, "up_precision": 56.2, "dn_precision": 22.1, "n_signals": 168, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": 0.5, "signal_ratio_vs_baseline": 0.971, "passed": false }, "oldwang_veto": { "accuracy": 25.2, "dir_accuracy": 31.6, "up_precision": 60.7, "dn_precision": 24.1, "n_signals": 136, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -7.2, "signal_ratio_vs_baseline": 0.786, "passed": false }, "oldwang_long_gate": { "accuracy": 25.7, "dir_accuracy": 32.4, "up_precision": 61.3, "dn_precision": 24.1, "n_signals": 139, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -6.7, "signal_ratio_vs_baseline": 0.803, "passed": false }, "oldwang_features_veto": { "accuracy": 26.2, "dir_accuracy": 33.3, "up_precision": 62.2, "dn_precision": 22.1, "n_signals": 132, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -6.2, "signal_ratio_vs_baseline": 0.763, "passed": false } }, "0050": { "baseline": { "accuracy": 38.6, "dir_accuracy": 45.0, "up_precision": 67.2, "dn_precision": 31.8, "n_signals": 171, "n_predictions": 210 }, "oldwang_features": { "accuracy": 39.0, "dir_accuracy": 46.2, "up_precision": 68.5, "dn_precision": 29.2, "n_signals": 169, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": 0.4, "signal_ratio_vs_baseline": 0.988, "passed": false }, "oldwang_veto": { "accuracy": 26.2, "dir_accuracy": 37.3, "up_precision": 59.3, "dn_precision": 31.8, "n_signals": 134, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -12.4, "signal_ratio_vs_baseline": 0.784, "passed": false }, "oldwang_long_gate": { "accuracy": 28.6, "dir_accuracy": 38.5, "up_precision": 58.3, "dn_precision": 31.8, "n_signals": 143, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -10.0, "signal_ratio_vs_baseline": 0.836, "passed": false }, "oldwang_features_veto": { "accuracy": 24.8, "dir_accuracy": 37.3, "up_precision": 63.3, "dn_precision": 29.2, "n_signals": 126, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -13.8, "signal_ratio_vs_baseline": 0.737, "passed": false } }, "2317": { "baseline": { "accuracy": 37.6, "dir_accuracy": 40.5, "up_precision": 51.0, "dn_precision": 29.9, "n_signals": 195, "n_predictions": 210 }, "oldwang_features": { "accuracy": 42.9, "dir_accuracy": 43.9, "up_precision": 52.0, "dn_precision": 31.2, "n_signals": 205, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": 5.3, "signal_ratio_vs_baseline": 1.051, "passed": true }, "oldwang_veto": { "accuracy": 26.2, "dir_accuracy": 34.5, "up_precision": 43.8, "dn_precision": 29.9, "n_signals": 145, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -11.4, "signal_ratio_vs_baseline": 0.744, "passed": false }, "oldwang_long_gate": { "accuracy": 32.4, "dir_accuracy": 39.3, "up_precision": 53.0, "dn_precision": 29.9, "n_signals": 163, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -5.2, "signal_ratio_vs_baseline": 0.836, "passed": false }, "oldwang_features_veto": { "accuracy": 26.2, "dir_accuracy": 36.6, "up_precision": 44.4, "dn_precision": 31.2, "n_signals": 134, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -11.4, "signal_ratio_vs_baseline": 0.687, "passed": false } }, "2454": { "baseline": { "accuracy": 37.6, "dir_accuracy": 37.5, "up_precision": 38.2, "dn_precision": 37.0, "n_signals": 176, "n_predictions": 210 }, "oldwang_features": { "accuracy": 37.6, "dir_accuracy": 38.9, "up_precision": 41.5, "dn_precision": 36.6, "n_signals": 175, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": 0.0, "signal_ratio_vs_baseline": 0.994, "passed": false }, "oldwang_veto": { "accuracy": 30.5, "dir_accuracy": 36.5, "up_precision": 33.3, "dn_precision": 37.0, "n_signals": 115, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -7.1, "signal_ratio_vs_baseline": 0.653, "passed": false }, "oldwang_long_gate": { "accuracy": 29.5, "dir_accuracy": 37.5, "up_precision": 41.7, "dn_precision": 37.0, "n_signals": 112, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -8.1, "signal_ratio_vs_baseline": 0.636, "passed": false }, "oldwang_features_veto": { "accuracy": 30.0, "dir_accuracy": 38.7, "up_precision": 50.0, "dn_precision": 36.6, "n_signals": 111, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -7.6, "signal_ratio_vs_baseline": 0.631, "passed": false } }, "2881": { "baseline": { "accuracy": 38.1, "dir_accuracy": 42.7, "up_precision": 52.3, "dn_precision": 33.7, "n_signals": 178, "n_predictions": 210 }, "oldwang_features": { "accuracy": 43.3, "dir_accuracy": 48.4, "up_precision": 57.1, "dn_precision": 40.8, "n_signals": 182, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": 5.2, "signal_ratio_vs_baseline": 1.022, "passed": true }, "oldwang_veto": { "accuracy": 23.8, "dir_accuracy": 34.5, "up_precision": 38.9, "dn_precision": 33.7, "n_signals": 110, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -14.3, "signal_ratio_vs_baseline": 0.618, "passed": false }, "oldwang_long_gate": { "accuracy": 27.6, "dir_accuracy": 38.6, "up_precision": 51.4, "dn_precision": 33.7, "n_signals": 127, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -10.5, "signal_ratio_vs_baseline": 0.713, "passed": false }, "oldwang_features_veto": { "accuracy": 28.1, "dir_accuracy": 41.2, "up_precision": 43.8, "dn_precision": 40.8, "n_signals": 114, "n_predictions": 210, "added_features": 15, "accuracy_delta_pp": -10.0, "signal_ratio_vs_baseline": 0.64, "passed": false } } }, "passed": false, "promotion_decision": "do_not_integrate", "integration_decision_2026_05_16": { "gate": "aggregate_accuracy_non_decrease", "decision": "integrate_oldwang_features_only", "reason": "User relaxed the gate; oldwang_features improved aggregate accuracy by +2.2pp and kept signal count at 1.007x baseline. Veto/gate strategies reduced accuracy and remain excluded." }, "validation": { "mode": "walk_forward_with_embargo", "label_horizon": 5, "train_end": "cutoff - LABEL_HORIZON", "step": 21, "min_train": 240, "leakage_guard": "rules use current-close-known and prior rolling/event levels; training excludes the label horizon before each test slice." } }