LSTM 黃金分析

      在〈LSTM 黃金分析〉中尚無留言

本篇使用 LSTM 模型分析及預測黃金期貨價格,資料可由 yfinance 或本站資料庫取得。

關連式資料表

可以使用如下關連式資料表簡化表格制作,讓黃金價格最後有美元指標及原油價格。

conn, cursor=G.connect()
stock="GC=F"
shift=7
cursor.execute(f"select 名稱 from 股票代號 where 代號 ='{stock}'")
title=cursor.fetchall()[0][0]

cmd=f"""
select 
a.日期 as 日期,
a.開盤 as 開盤,
a.最高 as 最高, 
a.最低 as 最低,
a.收盤 as 收盤,
a.成交量 as 成交量,
b.收盤 as 美元,
c.收盤 as 原油
from (台灣股市 a join 台灣股市 b on a.日期=b.日期) join 台灣股市 c on a.日期=c.日期
where a.代號='{stock}' and b.代號='DX-Y.NYB' and c.代號 ='CL=F'
order by a.日期
"""
cursor.execute(cmd)
rs=cursor.fetchall()
columns=[d[0] for d in cursor.description]
df=pd.DataFrame(rs,columns=columns)

模型訓練

MinMaxScaler 是每筆資料除以最大值,產生介於 0~1 之間的資料,這樣在 sigmoid 時輸出 0~1 之間的預測。若沒有 MinMaxScaler,會產生梯度爆炸、梯度消失、Loss 不穩、收斂很慢。MinMaxScaler 的公式如下。

$(scaler = \frac{x_{i}-min}{max-min})$

shift : 由前 shift 天的價格預測明天,但黃金或股市的躁音太大,shift 不要太大。

batch_size 設定為 16 較為精準 : 金融時間序列,太大會造成更新太慢、泛化較差。

units  : 為 LSTM 模型內的神經元數量。股市為 noisy data,units 太大會過度擬合,記住雜訊,測試出 128 為較準確的參數。

新版模型加入 [開盤, 最高, 最低, 收盤價, 成交量] 五個特徵進行訓練。

完整代碼如下。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

預測

預測隔日黃金價格完整代碼如下。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

平均日線

底下使用 5 日均線及 10 日均線為特徵,輸入 LinearRegression 模型訓練後,預測下一日的值。

請先安裝如下套件

pip install plotly yfinance scikit-learn pandas

完整代碼如下

🔒 更多內容,請登入會員繼續閱讀。

立即登入

單一特徵模型及預測

底下是單一特徵(前幾天的收盤)的 LSTM,僅作記錄用。

訓練

🔒 更多內容,請登入會員繼續閱讀。

立即登入

預測

🔒 更多內容,請登入會員繼續閱讀。

立即登入

FRED

黃金的漲跌跟 T10YIE 通膨預期有絕對關係。T10YIE 是10-Year Breakeven Inflation Rate 的縮寫,代表市場預期未來 10 年平均通膨率。黃金與 T10YIE 的相關性往往比 美國 CPI 指數(Consumer Price Index for All Urban Consumers,消費指數,CPIAUCSL) 的相關性更高

T10YIE 可由 FRED 美國官網下載,請進入如下網址註冊、登入,然後在 My Account 取得 api key

https://fred.stlouisfed.org/?utm_source=chatgpt.com

通膨下載代碥如下

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *