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")
# 過去1年間の歴史データを取得
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 は、Yahoo Finance、FRED、World Bank など、複数の金融データソースにアクセスするための統一 API を提供します。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 の強化された代替品で、財務諸表、オプションデータ、市場ニュースなど、より豊富なデータタイプを含む、より包括的な Yahoo Finance データアクセスを提供します。

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 ツールがニーズを満たすことができます;

「無他、惟手熟尔」!必要な方はぜひご利用ください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。