banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

金融數據獲取利器:15個Python庫助你輕鬆自動化

一、國內金融市場數據利器#

1. Tushare#

Tushare 提供了全面的中國金融市場數據。它覆蓋了 A 股、港股、期貨、基金、債券、外匯等各類金融產品數據,甚至包括行業大數據和數字貨幣行情。Tushare 的 API 設計簡潔,返回數據直接是 Pandas DataFrame 格式,便於後續分析處理。雖然部分高級功能需要積分或 VIP 權限,但基礎數據已能滿足大多數研究需求。

import tushare as ts
# 初始化Pro接口
pro = ts.pro_api('your_token_here')
# 獲取上證指數日線數據
df = pro.index_daily(ts_code='000001.SH', start_date='20200101', end_date='20230101')
print(df.head())

適用場景:A 股量化分析、金融學術研究、宏觀經濟分析。

2. AkShare#

AkShare 是一個完全開源免費的金融數據接口庫,以其數據更新及時和覆蓋範圍廣而著稱。它聚合了東方財富網、新浪財經等多個金融信息平台的數據源,支持股票、期貨、期權、基金、外匯、債券、指數、加密貨幣等多種金融產品數據。

import akshare as ak
# 獲取上證指數歷史行情數據
stock_zh_index_daily_df = ak.stock_zh_index_daily(symbol="sh000001")
print(stock_zh_index_daily_df.head())

適用場景:高頻數據需求、多市場綜合分析、數據科學項目。

3. baostock#

baostock 專注於提供國內 A 股市場數據,包括歷史行情、財務數據和分紅數據等。它的優勢在於完全免費且數據質量高,特別適合專注於 A 股分析的量化交易者和研究人員。

import baostock as bs
import pandas as pd
# 登錄系統
lg = bs.login()
# 獲取貴州茅台歷史數據
rs = bs.query_history_k_data_plus("sh.600519", 
                                   "date,open,high,low,close,volume",
                                   start_date='2020-01-01', 
                                   end_date='2023-01-01')
# 轉換為DataFrame
data_list = []
while (rs.error_code == '0') & rs.next():
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
# 登出系統
bs.logout()

適用場景:A 股歷史數據分析、財務因子研究、量化策略回測。

二、國際金融市場數據門戶#

4. yfinance#

yfinance 是獲取全球股票市場數據的首選工具,特別是美股數據。它提供股票歷史價格(開盤價、最高價、最低價、收盤價、成交量)、實時價格、分紅信息等,支持不同時間粒度的數據獲取。

import yfinance as yf
# 獲取蘋果公司股票數據
apple = yf.Ticker("AAPL")
# 獲取過去一年的歷史數據
hist = apple.history(period="1y")
# 獲取多個股票數據
data = yf.download(['AAPL', 'MSFT', 'GOOG'], 
                    start="2020-01-01", 
                    end="2023-01-01")

適用場景:美股分析、投資組合管理、跨國企業研究。

5. pandas-datareader#

作為 pandas 生態的重要組成部分,pandas-datareader 提供了統一的 API 來訪問多個金融數據源,包括 Yahoo Finance、FRED、World Bank 等。它與 pandas 無縫集成,是構建自動化數據分析流程的理想選擇。

import pandas_datareader as pdr
from datetime import datetime
# 獲取蘋果公司股票數據
start = datetime(2020, 1, 1)
end = datetime(2023, 1, 1)
aapl = pdr.get_data_yahoo('AAPL', start, end)
# 獲取美國失業率數據
unrate = pdr.get_data_fred('UNRATE', start, end)

適用場景:經濟數據分析、跨數據源研究、自動化報表生成。

6. Alpha Vantage#

Alpha Vantage 提供專業級的全球金融市場數據,覆蓋股票、ETF、外匯和加密貨幣等 200,000 多種金融工具。其獨特優勢在於內置多種技術分析指標,可直接獲取處理後的技術指標數據。

from alpha_vantage.timeseries import TimeSeries
# 初始化API
ts = TimeSeries(key='YOUR_API_KEY', output_format='pandas')
# 獲取蘋果公司日線數據
data, meta_data = ts.get_daily(symbol='AAPL', outputsize='full')
# 獲取技術指標(如RSI)
from alpha_vantage.techindicators import TechIndicators
ti = TechIndicators(key='YOUR_API_KEY')
rsi_data, rsi_meta_data = ti.get_rsi(symbol='AAPL', interval='daily', time_period=14)

適用場景:量化策略開發、技術分析、全球市場監控。

7. quandl#

quandl 提供來自數百個來源的高質量金融經濟數據,包括全球交易所、央行、政府機構等發布的官方數據。雖然部分數據集需要付費,但也有大量免費的高價值數據集可供使用。

import quandl
# 獲取美國GDP數據
gdp = quandl.get('FRED/GDP')
# 獲取黃金價格數據
gold = quandl.get('LBMA/GOLD')

適用場景:宏觀經濟研究、基本面分析、長期趨勢研究。

8. iexfinance#

iexfinance 提供對 IEX Cloud 平台的訪問,獲取實時股票數據和公司基本面信息。它特別適合需要實時交易數據的場景,提供高質量的股票市場數據。

from iexfinance.stocks import Stock
# 獲取微軟公司股票數據
msft = Stock("MSFT", token="YOUR_API_KEY")
# 獲取實時報價
quote = msft.get_quote()
# 獲取基本面數據
fundamentals = msft.get_fundamentals()

適用場景:實時交易系統、基本面分析、投資組合監控。

三、專業領域數據工具#

9. ccxt#

ccxt 是加密貨幣領域最全面的接口庫,支持超過 140 個加密貨幣交易所的 API。它不僅可以獲取市場數據,還支持交易執行,是加密貨幣量化交易的必備工具。

import ccxt
# 初始化Binance交易所
exchange = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET'
})
# 獲取BTC/USDT行情數據
ticker = exchange.fetch_ticker('BTC/USDT')
# 獲取OHLCV數據
ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1d')

適用場景:加密貨幣交易、區塊鏈分析、數字資產組合管理。

10. fixer#

fixer 提供專業的外匯匯率數據,支持 170 多種貨幣的實時和歷史匯率查詢。它由歐洲中央銀行支持,數據權威可靠,是外匯交易和國際商務的必備工具。

import requests
# 獲取最新匯率
response = requests.get('http://data.fixer.io/api/latest?access_key=YOUR_API_KEY&symbols=USD,CNY,EUR')
data = response.json()
# 獲取歷史匯率
hist_response = requests.get('http://data.fixer.io/api/2018-01-01?access_key=YOUR_API_KEY&symbols=USD,CNY')

適用場景:外匯交易系統、跨國企業財務、國際旅行應用。

11. yahooquery#

yahooquery 是 yfinance 的增強替代品,提供更全面的雅虎財經數據訪問,包括財務報表、期權數據、市場新聞等更豐富的數據類型。

from yahooquery import Ticker
# 獲取特斯拉公司數據
tsla = Ticker('TSLA')
# 獲取資產負債表
balance_sheet = tsla.balance_sheet()
# 獲取期權數據
options = tsla.option_chain

適用場景:深度基本面分析、期權策略研究、企業財務分析。

12. eodh#

eodhd 提供全球股票、ETF、指數和外匯數據,覆蓋全球主要交易所。其特色是提供豐富的歷史數據和經濟指標,適合全球市場分析。

from eodhd import APIClient
# 初始化客戶端
api = APIClient(api_key="YOUR_API_KEY")
# 獲取蘋果公司歷史數據
aapl_hist = api.get_historical_data("AAPL.US", "d", start="2020-01-01")
# 獲取股息數據
dividends = api.get_dividends("AAPL.US")

適用場景:全球資產配置、跨國投資研究、股息策略分析。

四、特色數據工具#

13. investpy#

investpy 專注於提供新興市場金融數據,特別是那些在主流數據源中難以獲取的新興市場股票數據。它從 Investing.com 抓取數據,覆蓋全球股票、指數、基金等。

import investpy
# 獲取巴西股票數據
br_stocks = investpy.get_stocks(country='brazil')
# 獲取印度指數歷史數據
nifty_50 = investpy.get_index_historical_data(index='Nifty 50', country='india', from_date='01/01/2020', to_date='01/01/2023')

適用場景:新興市場研究、全球資產配置、發展中國家投資分析。

14. finnhub#

finnhub 提供高質量的實時金融市場數據,包括股票、外匯和加密貨幣的實時報價。它還提供新聞和社交媒體情感數據,適合高頻交易和情感分析。

import finnhub
# 初始化客戶端
finnhub_client = finnhub.Client(api_key="YOUR_API_KEY")
# 獲取實時報價
quote = finnhub_client.quote('AAPL')
# 獲取公司新聞
news = finnhub_client.company_news('AAPL', _from="2023-01-01", to="2023-01-10")

適用場景:高頻交易、市場情緒分析、事件驅動策略。

15. wrds#

wrds(Wharton Research Data Services)是學術研究領域的黃金標準,提供 CRSP、Compustat 等專業數據庫的訪問接口。雖然主要面向學術界,但也是專業金融研究的強大工具。

import wrds
# 連接數據庫
db = wrds.Connection()
# 查詢CRSP股票數據
crsp_data = db.get_table(library='crsp', table='dsf')
# 查詢Compustat財務數據
compustat = db.get_table(library='comp', table='funda')

適用場景:學術研究、專業金融分析、長期歷史數據研究。

金融數據如同現代投資世界的石油,而 Python 接口庫就是開採和提煉的工具。選擇合適的工具組合,能讓數據價值最大化。

  1. 國內金融市場分析:Tushare+AkShare+baostock 的組合可覆蓋絕大多數需求;
  2. 全球市場分析:yfinance+pandas-datareader+Alpha Vantage 的組合更為合適;
  3. 加密貨幣交易分析:ccxt 工具可以滿足需求;

“無他,惟手熟爾”!有需要的用起來。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。