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

Update model_predictor.py

Browse files
Files changed (1) hide show
  1. model_predictor.py +22 -24
model_predictor.py CHANGED
@@ -20,22 +20,21 @@ class XGBoostModel:
20
  """
21
  self.model = None
22
  self.scaler = None
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',
37
- 'ADX',
38
- 'volume_weighted_return'
39
  ]
40
 
41
  # 【新增】輸出目標對應表
@@ -127,10 +126,10 @@ class XGBoostModel:
127
  df['close'] = df['Close']
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 日移動平均價
@@ -157,7 +156,7 @@ class XGBoostModel:
157
  # 9. NEWS — 新聞情緒分數(需要外部資料,暫設為0)
158
  df['NEWS'] = 0.0
159
 
160
- # 10. MACDvol — MACD柱狀圖
161
  df['MACDvol'] = 0.0
162
 
163
  # 11. RSI_14 — 14日RSI
@@ -195,11 +194,6 @@ class XGBoostModel:
195
  df.fillna(0, inplace=True) # 剩餘的 NaN 用 0 填補
196
 
197
  return df
198
-
199
-
200
-
201
-
202
-
203
 
204
  def preprocess_features(self, input_df):
205
  """
@@ -502,7 +496,11 @@ if __name__ == "__main__":
502
  'MACD_diff': [0.5],
503
  'dji_return_t-1': [0.01],
504
  'sox_return_t-1': [0.015],
505
- 'NEWS': [0.1]
 
 
 
 
506
  })
507
 
508
  print("測試模型預測器...")
 
20
  """
21
  self.model = None
22
  self.scaler = None
 
23
  self.feature_columns = [
24
+ 'close', # 前一日收盤價
25
+ 'return_t-1', # 前一日報酬率
26
+ 'return_t-5', # 過去 5 日累積報酬率
27
+ 'MA5_close', # 5 日移動平均價
28
+ 'volatility_5d', # 5 日報酬標準差
29
+ 'volume_ratio_5d', # 今日成交量 ÷ 5 日均量
30
+ 'MACD_diff', # MACD - signal
31
+ 'dji_return_t-1', # 前一日道瓊指數報酬率
32
+ 'sox_return_t-1', # 前一日費半指數報酬率
33
+ 'NEWS', # 新聞情緒分數
34
+ 'MACDvol', # MACD 柱狀圖
35
+ 'RSI_14', # 14 日 RSI
36
+ 'ADX', # 平均趨向指標
37
+ 'volume_weighted_return' # 成交量加權報酬率
38
  ]
39
 
40
  # 【新增】輸出目標對應表
 
126
  df['close'] = df['Close']
127
  df['volume'] = df['Volume']
128
 
129
+ # 1. return_t-1 — 前一日報酬率
130
  df['return_t-1'] = df['close'].pct_change()
131
 
132
+ # 2. return_t-5 — 過去 5 日累積報酬率
133
  df['return_t-5'] = (df['close'] / df['close'].shift(5) - 1)
134
 
135
  # 3. MA5_close — 5 日移動平均價
 
156
  # 9. NEWS — 新聞情緒分數(需要外部資料,暫設為0)
157
  df['NEWS'] = 0.0
158
 
159
+ # 10. MACDvol — MACD柱狀圖(需要外部資料,暫設為0)
160
  df['MACDvol'] = 0.0
161
 
162
  # 11. RSI_14 — 14日RSI
 
194
  df.fillna(0, inplace=True) # 剩餘的 NaN 用 0 填補
195
 
196
  return df
 
 
 
 
 
197
 
198
  def preprocess_features(self, input_df):
199
  """
 
496
  'MACD_diff': [0.5],
497
  'dji_return_t-1': [0.01],
498
  'sox_return_t-1': [0.015],
499
+ 'NEWS': [0.1],
500
+ 'MACDvol': [0.2],
501
+ 'RSI_14': [55.0],
502
+ 'ADX': [25.0],
503
+ 'volume_weighted_return': [1000.0]
504
  })
505
 
506
  print("測試模型預測器...")