跑步進場
最近股市大漲锉桑,不少人忙著跑步進場排霉。作為保守型“投資者”,主投指數(shù)基金:滬深300民轴。在這波行情 中攻柠,短短2個月,也有13%的賬面收益后裸。雖然知道指數(shù)類適合長期持有瑰钮,但也好奇,這個點是否是高位了微驶。為了解決這個疑慮浪谴。我們今天用算法模型套一套,看能否發(fā)現(xiàn)些什么因苹。
時序預測的價值
時序問題的預測在生活中很常見苟耻。例如:游戲在線人數(shù)預測、消費情況預測扶檐、 O2O 的到店人數(shù)預測凶杖、交通流量預測,這些場景的精確預測款筑,為資源的調配起到了重大的參考作用智蝠。從個體角度來說腾么,得到的服務和體驗也大大提升。
為此杈湾,F(xiàn)acebook 開源了一套工具 Prophet解虱,專門用于時間學列預測。在這里漆撞,我們將用它殴泰,來一探股市究竟。
時序預測的原理
對于時間序列問題浮驳,常用的手法是時間序列的分解:這里有些類似于傅里葉變換的意味艰匙。將一個函數(shù)分解為多個規(guī)律函數(shù)的和積。時間序列的常見組成成分包括:季節(jié)項抹恳、趨勢項以及噪聲员凝。在 Prophet 中,結合實際情況奋献,他們又加入了節(jié)假日項目健霹。之前在一次 kaggle 的比賽中,我們也發(fā)現(xiàn)節(jié)假日的數(shù)據(jù)波動瓶蚂,其實是類似于周末效應的糖埋。即:節(jié)假日的前后數(shù)據(jù),類似于周六的前后數(shù)據(jù)窃这。對數(shù)據(jù)進行修正后瞳别,評價指標會好很多。
廢話不多說杭攻,咱們開干祟敛。
Prophet in 滬深300
工具包安裝
pip install fbprophet
數(shù)據(jù)準備與清洗
import pandas as pd
import numpy as np
from fbprophet import Prophet
數(shù)據(jù)準備
- 數(shù)據(jù)來源為網(wǎng)易財經(jīng),滬深三百指數(shù)兆解。
data = pd.read_csv('../data/000300.csv',encoding='GB2312')
data.head()
數(shù)據(jù)清洗
- 選取需要的數(shù)據(jù)馆铁,并對數(shù)據(jù)做 log / box-cox 變換吃度,使數(shù)據(jù)更符合線性咽笼、正態(tài)分布沦童,減少方差差異琅翻。經(jīng)濟系統(tǒng)和生態(tài)系統(tǒng)類似,都存在指數(shù)級增長現(xiàn)象痴晦,也存在飽和現(xiàn)象矩乐。我們這里采用 log 變換璧函。
df = data[[u'日期',u'收盤價']]
df.columns = ['ds','y']
df['y'] = df['y'].apply(lambda x: np.log(int(x)))
模型擬合與預測
簡單定義印蔬,然后擬合勋桶。
m = Prophet()
m.fit(df)
預測未來一年的行情
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
詳細看最后15天的數(shù)據(jù)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(15)
future_predict['yhat'] = future_predict['yhat'].apply(lambda x:np.exp(x))
future_predict['yhat_lower'] = future_predict['yhat_lower'].apply(lambda x:np.exp(x))
future_predict['yhat_upper'] = future_predict['yhat_upper'].apply(lambda x:np.exp(x))
yhat 預測比較保守,20200307 相較于目前20190308 的大盤漲了100個點。預期最大收益:(6536-3658)/3658≈ 78%哥遮,預期最大虧損:(2158-3658)/3658≈-41%
模型看到了什么
Prophet 有個功能是成分拆分,咱們來看看國內股市的趨勢以及季節(jié)性因素是什么陵究。
fig1 = m.plot(forecast)
模型擬合情況
趨勢項
總結
模型數(shù)據(jù)表明,滬深股市短期看可能有波動铜邮,長期看上揚可能性更大仪召。短期對于我們這種投資方式的參考意義不大,長期來看松蒜,穩(wěn)中向好扔茅,我也將持續(xù)滬深300。當然秸苗,話說回來召娜,投資有風險,決策需謹慎惊楼。不要只看狼吃肉玖瘸,不見狼挨打。去年最差的時候檀咙,本人累計虧損15%...
另外再強調一下雅倒,模型并非萬能。這里使用的信息單一弧可,但真實世界蔑匣,可是有多種信息共同作用于市場。模型也還未經(jīng)過充分調參棕诵,沒有劃分數(shù)據(jù)做驗證裁良,實際使用價值有限。
對此校套,你怎么看趴久?請在留言區(qū)寫下你的看法。
原文鏈接:https://kuhungio.me/2019/prophet-in-000300/?utm_source=jianshu&utm_campaign=prophet