如何使用Python取得歷史股價,簡介yfinance、ffn、FinMind
文章推薦指數: 80 %
顧名思義,yfinance 的資料來源是Yahoo Finance API,以國外股市來說, ... 實測美股大盤28年 · 看懂回測績效,如何評價一個交易策略或投資組合的好壞 ...
跳至主要内容havocFuture網路資源部落格繁體中文繁體中文简体中文最近的文章用AI預測股價?實測FacebookProphet預言家Saul美股持股投資績效追蹤2022-08Saul美股持股投資績效追蹤2022-07國安基金進場護盤歷史資料數據整理2022上半年投資市場報酬率回顧整理Saul美股持股投資績效追蹤2022-06QQQvs20年前的QQQ,回測歷史數據談再次崩盤八成的可能性GoogleColab(Colaboratory)簡易教學端午變盤?回測台股加權指數25年端午節後漲跌變化Saul美股持股投資績效追蹤2022-05其實捉歷史股價的工具很多,這篇文章只介紹我正在使用的函式庫yfinance如果要捉國外股價,首選是yfinanace顧名思義,yfinance的資料來源是YahooFinanceAPI,以國外股市來說,大概是目前我找的到最完整的資料來源使用起來也很簡單安裝pipinstallyfinance舉例要捉SPY2021年以後的資料,只需要一行code就可以取得資料importyfinanceasyf#yfinance取得股價df=yf.download("spy","2021-01-01")df是dataframe格式,可自行再去運用ffn官方網站ffn其實用的也是yfinance的資料,不過它提供了不少很好用的function,現在我捉股價幾乎直接都使用ffn取代yfinance(反正是一樣的資料)安裝pipinstallffn舉例要捉SPY2021年以後的資料,同樣只需要一行code就可以取得資料importffn#ffn取得股價prices=ffn.get('spy',start='2021-01-01')ffnfunction介紹rebase⇒將初始價格改為100,可以比較兩個以上的股價漲跌變化prices=ffn.get('spy,tlt',start='2021-01-01')#rebase股價繪圖%matplotlibinlineprices.rebase().plot()就可以看到在2021這兩支ETF的走勢變化to_drawdown_series⇒看最大的虧損#MaxDrawdown最大虧損prices.to_drawdown_series().plot()從這張圖就可以看出今年的SPY真的強,一路向上不回頭的calc_stats⇒統計報表#統計報表stats=prices.calc_stats()stats.display()我沒貼全部的資料,統計數據其實蠻完整的,我想看的差不多都有..display_monthly_returns⇒月報酬print(stats['spy'].display_monthly_returns())不僅有年報酬率,連每個月的報酬率都算出來了...這是google廣告FinMindyfinance是有台股資料的,但並不是很齊全,舉例0050這檔ETF是在2003年就成立了,但是yfinance從2008年才有資料,此外,yfinance只有上市股票,是沒有上櫃股票價格的,所以要捉台股資料yfinance並不是好選擇。
原本我的作法是直接去爬證交所的網站,一直到後來發現FinMind官方網站一樣要先安裝pipinstallFinMind舉例捉0050資料,開始時間寫2000-01-01(0050上市時間是2003-06)fromFinMind.dataimportDataLoaderstock_no='0050'dl=DataLoader()stock_data=dl.taiwan_stock_daily(stock_id=stock_no,start_date='2000-01-01')stock_data.head()很好,第一筆資料是2003-06-30,看起來資料是完整的再測試一下捉上櫃股票6539(台康生技)fromFinMind.dataimportDataLoaderstock_no='6539'dl=DataLoader()stock_data=dl.taiwan_stock_daily(stock_id=stock_no,start_date='2000-01-01')stock_data.head()也成功的捉到資料FinMind可以說完美的補足yfinance台股資料不足的缺點FinMind整合ffn既然ffn這麼好用,我們可以用FinMind取得資料後,然後直接用ffn的function嗎?答案是可以的,不過資料需要做些處理ffn的index是日期,但是FinMind的index是流水號,date是其中一個欄位而且是string格式,所以我們要將FinMind的index改成日期格式的datestock_data.set_index("date",inplace=True)stock_data=stock_data.set_index(pd.DatetimeIndex(pd.to_datetime(stock_data.index)))然後就可以用ffn的function了stats=stock_data[["close"]].calc_stats()stats.display()成功取得0050的統計資料延伸閱讀GoogleColaboratory(Colab)簡易教學如何取得美國歷史總體經濟數據,簡介Fred網站PythonAPI股票市場多少是合理的投資報酬率?實測美股大盤28年看懂回測績效,如何評價一個交易策略或投資組合的好壞如何破解網站驗證碼,實測證交所買賣日報表分享加入fb粉絲團!第一時間取得網站更新訊息HavocFuture版權聲明,轉載請註明出處本文連結:https://havocfuture.tw/blog/python-stock-history這是google廣告較新一篇Saul美股持股投資績效追蹤2021-10較舊一篇網站開張yfinanceffnffnfunction介紹FinMindFinMind整合ffn
延伸文章資訊
- 1【股票網站推薦】11個分析美股台股的最佳股票網站大全
以下這些都是我們在看美股資料時,會常用來分析個股的免費網站,裡面的功能 ... Yahoo Finance 我覺得他的優點是可以把不同個股放在一起比較,比較他們數年的漲幅。
- 2美國費城半導體指數(^SOX) 圖表、數據及新聞 - Yahoo財經
J.P. Morgan's Chair of Global Research Joyce Chang joins Yahoo Finance Live to discuss the market...
- 3如何使用Python取得歷史股價,簡介yfinance、ffn、FinMind
顧名思義,yfinance 的資料來源是Yahoo Finance API,以國外股市來說, ... 實測美股大盤28年 · 看懂回測績效,如何評價一個交易策略或投資組合的好壞 ...
- 4美股- Yahoo奇摩股市
台股資料來源臺灣證券交易所、臺灣期貨交易所及財團法人中華民國證券櫃檯買賣中心,國際股市資料來源請參考Yahoo Finance。使用Yahoo奇摩股市服務前,請您詳閱相關使用規範 ...
- 5Python 範例程式碼!使用Yahoo Finance 爬取0050ETF 股價
自從新冠肺炎發生後,2020 年3 月美股面臨了熔斷,台股當然也深受影響,正當大家以為空頭市場即將來臨時,股市突然急轉而上,全世界的股票市場迎來了歷史上最大的多頭 ...