簡單入門python預測股價-使用stocker套件(上)

2019年4月18日 10:46
附上網誌好讀版連結
一直以來對於寫這種文章我是有疑慮的 預測證券市場走勢是一項非常有誘惑力的事情,但是一旦稍有不慎或是過度相信程式,很有可能在黑天鵝事件來臨時,粉身碎骨。 我個人認為,與其努力的在每日獲利上能夠跑贏大盤,不如好好享受在運用程式預測的練習中,學習資料視覺化,程式設計,模型訓練這些領域,說不定在這個領域所學應用在工作上提升的收入,會比投資炒股多很多XD 本篇文章會讓大家簡單地做出像下方的股價預測圖,及預測未來的股價
======================================== 本次環境使用anaconda裡面的jupyter 不會操作的請先參考這篇
我們先來建立個過去股價的資料 這裡用的方法是用google試算表抓資料 詳細方法請參考以下教學
我們在這裡用我在台股的唯一持股玉山金為例 程式碼先幫大家寫好 可以直接複製 ={ArrayFormula(text({"Date";int(query(query(googlefinance("2884","ALL","1/1/2016",TODAY(),"daily" ) ,"Select Col1",1),"offset 1",0))},"YYYY-MM-DD")),query(googlefinance("2884","ALL","1/1/2016",TODAY(),"daily" ) ,"Select Col4,Col2,Col5,Col3",1)} 以上是從2016年開始抓
然後因為我們只要收盤價,所以就複製那兩欄
剪下後,然後開一個新的試算表貼上去
記得要選擇僅貼上值,然後把最上面兩格,一個改成date,一個改成price 然後把試算表檔案用csv的格式下載下來
再來說說我們要用的stocker套件 去github上面把檔案抓下來建議抓整包
大家去把它下載下來,Stocker是一款用於探索股票情況的Python工具。一旦我們安裝了所需的package,我們可以在的同一資料夾中啟動一個Jupyter Notebook 下面的圖片因為我把資料夾單獨複製出來取名,所以可能會跟操作者看到的不太一樣 然後把我們剛剛抓下來的股價csv檔名改成price2884放進同一個資料夾中
然後開jupyter後進到那個Data-Analysis 資料夾 再進入裡面的 stocker 資料夾 接下來就在同一個資料夾裡用jupyter建立一個ipynb的檔案
導入Stocker: from stocker import Stocker
如果以上執行成功代表我們有抓到package了 再來把股價資料讀取進來 import pandas as pd ### 讀入series df = pd.read_csv('price2884.csv', index_col='date', parse_dates=['date']) price = df.squeeze() price.head()
確定資料格式沒有問題 再來讀取價格資料放進一個變數中 from stocker import Stocker esun = Stocker(price)
確定時間沒問題後,就可以開始預測了 預測的程式如下  model, model_data = esun.create_prophet_model(days=10) #days代表要預測幾天後的股價
由此可見這裡預測的十天後(4/26)玉山金的股價為24.43元 是不是很簡單呢? 預測結果的綠線包含了相對應的信賴區間,這代表在模型預測的不確定性。在這種情況下,如果將信賴區間寬度設置為80%,這意味著我們預計這個範圍將包含實際值的可能性為80%。信賴區間將隨著時間推移會越來越大,這是因為隨著預測時間距離現有數據的時間越來越遠,預測值將面臨更多的不確定性,就像預測天氣一樣。 以上就是使用stocker套件進行股價預測的簡單教學,接下來會講解運用一些方式來檢驗預測的結果。 本文章並沒有推薦任何投資標的,單純是個人的一些觀察與見解,為作者自行查看相關資料後整理而成,資料之正確性以各官方公告為主,任何人觀看本文之後,而有投資該股票基金或ETF之行為,自行對所有後果負責。  祝大家都能夠有更富足的生活~
471
回應 100
文章資訊
共 100 則回應
加州大學洛杉磯分校
哇靠這個厲害
萬能科技大學 行銷與流通管理系
大大你好 小人想向您詢問一個很無知很簡單的問題 我從沒做過程式語言也沒相關方面的基礎 想要學這方面的事情 無意間看到有開Python這個程式語言的相關課程 想問的問題有二 1.Python有辦法做程式自動交易嗎?還是只能夠像你說得回測及預測?對未來的高頻有辦法因應嗎? 2.有看到網路某文章說Python即將落伍之類的等等,若為屬實,那之後當別人用新語言做的自動交易單,而我並未與時並進,將會虧的很慘?(這個問題是說程式自動交易成功與否在於個人寫的能力,還是程式語言本身的優劣高低?)
B2 1.python是做得到的 2.我覺得你不會輸在用哪種語言寫,而是網路速度,模型調整,簡單的說就是你的個人能力
國立臺東大學 體育學系
先卡晚點在來看 感謝教學
元培醫事科技大學
不知道電腦白痴跟著做看看會不會把電腦搞壞😂😅
國立高雄大學
太神啦
國立臺中科技大學
原po一生平安❤️
這個好強大 我已經請傭兵 修改這程式進階了
國立嘉義大學
大家不要一直卡啊XD 有沒有人按著教學成功啟動了 給一下回饋啊 這樣我才知道有沒有bug
台灣首府大學 企業管理學系
逢甲大學 財務金融學系
太猛了 有空一定來用看看
國立彰化師範大學
國立臺中科技大學
b10 明天弄 段考先搞定再說
想問一下大大如果我是用python爬的方式取得資料,我要如何讓他依照日期存成json或csv到資料夾裡.
你好 我有照著步驟安裝了上述兩個程式 以及跑出估價單也匯出csv檔 不過對於放入同一個資料夾那邊 以及anaconda檔複製貼上程式碼後之後的步驟即為不清楚 能否樓主說明一下呢 非常感謝您!
匿名
這則回應已被刪除
2019年4月19日 04:57
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
黎明技術學院 企業管理系
不好意思... anaconda是安裝完成了 接下來Stocker網址點進去之後,不知道如何安裝= =.... Stocker-master卡在這步驟,不知道從何下載開啟這視窗。
國立虎尾科技大學 機械與電腦輔助工程系
我有一個問題 你的迴圈只能抓到上市資料 如果要抓上櫃的 要修改哪裡? 雖然我會java 但是網頁語言不太一樣
中原大學 機械工程學系
這個太神啦
國立臺中科技大學
b0 如果什麼程式語言都不會弄的出來嗎哈哈哈😂
b16 你要去github上面把檔案抓下來 建議抓整包
然後開jupyter後進到那個Data-Analysis 資料夾 再進入裡面的 stocker 資料夾 然後 建立一個ipynb的檔案 再輸入 from stocker import Stocker
B18
這個連結是stocker的上一層 右上角有綠色下載的按鈕 整包下載下來後 開jupyter後進到那個Data-Analysis 資料夾 再進入裡面的 stocker 資料夾 然後 建立一個ipynb的檔案 再輸入 from stocker import Stocker
b15 你可以先把資料弄成一個list 再寫入csv裡面
輔英科技大學 護理系
ㄈㄈㄈ
國立臺中科技大學
樓主好我是B16 我已經下載整包也
黎明技術學院 企業管理系
B24 謝謝,我已經安裝好了 是壓縮檔 但我想請問,我進入了 jupyter ,裡面並沒有 Data-Analysis 的名稱資料夾捏
B29你要看看你下載到哪啦 我猜應該在Downloads裡面