AlanRex commited on
Commit
20528ed
·
verified ·
1 Parent(s): f0bdc0d

Update model_predictor.py

Browse files
Files changed (1) hide show
  1. model_predictor.py +10 -10
model_predictor.py CHANGED
@@ -23,14 +23,14 @@ class XGBoostModel:
23
  # ***FIXED: Updated feature columns to match the training script***
24
  self.feature_columns = [
25
  'close',
26
- 'return-t-1',
27
- 'return-t-5',
28
  'MA5_close',
29
  'volatility_5d',
30
  'volume_ratio_5d',
31
  'MACD_diff',
32
- 'dji_return-t-1',
33
- 'sox_return-t-1',
34
  'NEWS',
35
  'MACDvol',
36
  'RSI_14',
@@ -128,16 +128,16 @@ class XGBoostModel:
128
  df['volume'] = df['Volume']
129
 
130
  # 1. return-t-1 — 前一日報酬率 (***FIXED: Corrected to use hyphen***)
131
- df['return-t-1'] = df['close'].pct_change()
132
 
133
  # 2. return-t-5 — 過去 5 日累積報酬率 (***FIXED: Corrected to use hyphen***)
134
- df['return-t-5'] = (df['close'] / df['close'].shift(5) - 1)
135
 
136
  # 3. MA5_close — 5 日移動平均價
137
  df['MA5_close'] = df['close'].rolling(window=5).mean()
138
 
139
  # 4. volatility_5d — 5 日報酬標準差
140
- df['volatility_5d'] = df['return-t-1'].rolling(window=5).std()
141
 
142
  # 5. volume_ratio_5d — 今日成交量 ÷ 5 日均量
143
  df['volume_5d_avg'] = df['volume'].rolling(window=5).mean()
@@ -151,8 +151,8 @@ class XGBoostModel:
151
  df['MACD_diff'] = macd_line - signal_line
152
 
153
  # 7-8. 美股指數報酬率(需要外部資料,暫設為0)
154
- df['dji_return-t-1'] = 0.0
155
- df['sox_return-t-1'] = 0.0
156
 
157
  # 9. NEWS — 新聞情緒分數(需要外部資料,暫設為0)
158
  df['NEWS'] = 0.0
@@ -184,7 +184,7 @@ class XGBoostModel:
184
  df['ADX'] = df['DX'].ewm(com=13, adjust=False).mean()
185
 
186
  # 13. volume_weighted_return — 成交量加權報酬率
187
- df['volume_weighted_return'] = np.abs(df['return-t-1']) * df['volume']
188
 
189
  # 清理輔助欄位
190
  cleanup_columns = ['volume_5d_avg', 'up_move', 'down_move', '+DM', '-DM', 'TR', '+DI', '-DI', 'DX']
 
23
  # ***FIXED: Updated feature columns to match the training script***
24
  self.feature_columns = [
25
  'close',
26
+ 'return_t-1',
27
+ 'return_t-5',
28
  'MA5_close',
29
  'volatility_5d',
30
  'volume_ratio_5d',
31
  'MACD_diff',
32
+ 'dji_return_t-1',
33
+ 'sox_return_t-1',
34
  'NEWS',
35
  'MACDvol',
36
  'RSI_14',
 
128
  df['volume'] = df['Volume']
129
 
130
  # 1. return-t-1 — 前一日報酬率 (***FIXED: Corrected to use hyphen***)
131
+ df['return_t-1'] = df['close'].pct_change()
132
 
133
  # 2. return-t-5 — 過去 5 日累積報酬率 (***FIXED: Corrected to use hyphen***)
134
+ df['return_t-5'] = (df['close'] / df['close'].shift(5) - 1)
135
 
136
  # 3. MA5_close — 5 日移動平均價
137
  df['MA5_close'] = df['close'].rolling(window=5).mean()
138
 
139
  # 4. volatility_5d — 5 日報酬標準差
140
+ df['volatility_5d'] = df['return_t-1'].rolling(window=5).std()
141
 
142
  # 5. volume_ratio_5d — 今日成交量 ÷ 5 日均量
143
  df['volume_5d_avg'] = df['volume'].rolling(window=5).mean()
 
151
  df['MACD_diff'] = macd_line - signal_line
152
 
153
  # 7-8. 美股指數報酬率(需要外部資料,暫設為0)
154
+ df['dji_return_t-1'] = 0.0
155
+ df['sox_return_t-1'] = 0.0
156
 
157
  # 9. NEWS — 新聞情緒分數(需要外部資料,暫設為0)
158
  df['NEWS'] = 0.0
 
184
  df['ADX'] = df['DX'].ewm(com=13, adjust=False).mean()
185
 
186
  # 13. volume_weighted_return — 成交量加權報酬率
187
+ df['volume_weighted_return'] = np.abs(df['return_t-1']) * df['volume']
188
 
189
  # 清理輔助欄位
190
  cleanup_columns = ['volume_5d_avg', 'up_move', 'down_move', '+DM', '-DM', 'TR', '+DI', '-DI', 'DX']