File size: 3,154 Bytes
e610a2f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
{
  "experiment": "C19_pattern_mining",
  "description": "No-lookahead dry run for candlestick, SAX, and fold-local pattern-stat features.",
  "stocks": [
    "2330"
  ],
  "pass_criterion": {
    "every_stock_accuracy_delta_pp_at_least": 3.0
  },
  "baseline_features": [
    "return_1d",
    "return_5d",
    "return_10d",
    "return_20d",
    "close_ma5_ratio",
    "close_ma20_ratio",
    "ma5_ma20_ratio",
    "ma20_ma60_ratio",
    "rsi",
    "macd_hist",
    "macd_signal_ratio",
    "macd_hist_norm",
    "macd_hist_delta_1d",
    "macd_hist_slope_3d",
    "macd_above_zero",
    "bb_pct_b",
    "k",
    "d",
    "volume_ratio",
    "atr_ratio",
    "high_low_ratio",
    "obv_trend",
    "close_ma60_ratio",
    "log_volume_ratio",
    "volume_zscore",
    "volatility_20d",
    "taiex_return_5d",
    "taiex_ma20_ratio",
    "usdtwd_return_5d"
  ],
  "candidate_raw_pattern_features": [
    "candle_body_ratio",
    "upper_shadow_ratio",
    "lower_shadow_ratio",
    "close_position",
    "gap_pct",
    "range_pct",
    "body_pct",
    "range_expansion_5d",
    "volume_price_pressure",
    "inside_bar",
    "outside_bar",
    "bullish_engulfing",
    "bearish_engulfing",
    "candle_dir",
    "candle_pattern_3",
    "candle_pattern_5",
    "sax_pattern_5",
    "sax_pattern_10",
    "sax_momentum_5",
    "sax_reversal_5"
  ],
  "candidate_fold_local_pattern_stats": [
    "candle_pattern_3_up_rate",
    "candle_pattern_3_down_rate",
    "candle_pattern_3_label_mean",
    "candle_pattern_5_up_rate",
    "candle_pattern_5_down_rate",
    "candle_pattern_5_label_mean",
    "sax_pattern_5_up_rate",
    "sax_pattern_5_down_rate",
    "sax_pattern_5_label_mean",
    "sax_pattern_10_up_rate",
    "sax_pattern_10_down_rate",
    "sax_pattern_10_label_mean"
  ],
  "aggregate": {
    "baseline": {
      "accuracy": 32.4,
      "dir_accuracy": 35.8,
      "up_precision": 55.4,
      "dn_precision": 24.1,
      "n_signals": 173.0,
      "n_predictions": 210.0
    },
    "pattern_mining": {
      "accuracy": 30.5,
      "dir_accuracy": 33.1,
      "up_precision": 51.5,
      "dn_precision": 21.8,
      "n_signals": 178.0,
      "n_predictions": 210.0
    }
  },
  "aggregate_accuracy_delta_pp": -1.9,
  "aggregate_signal_delta": 5.0,
  "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
      },
      "pattern_mining": {
        "accuracy": 30.5,
        "dir_accuracy": 33.1,
        "up_precision": 51.5,
        "dn_precision": 21.8,
        "n_signals": 178,
        "n_predictions": 210,
        "added_features": 32
      },
      "accuracy_delta_pp": -1.9,
      "passed": false
    }
  },
  "passed": false,
  "promotion_decision": "do_not_integrate",
  "validation": {
    "mode": "walk_forward_with_embargo",
    "label_horizon": 5,
    "train_end": "cutoff - LABEL_HORIZON",
    "step": 21,
    "min_train": 240,
    "leakage_guard": "pattern stats for test rows are learned only from the training slice; training rows use prior expanding stats."
  }
}