mcpField
A
alpaca-data

alpaca-data

github.com/gauss314データ・データベース252255 回インストール19 週間前に更新
リポジトリ

alpaca-data について

alpaca-dataは、株式、暗号資産、オプションの市場データを扱う開発者向けのスキルです。履歴データとリアルタイムデータに対応し、Pythonの例やダウンロードスクリプトを備えています。

主な機能

  1. 01株式の履歴バー、気配値、約定を取得
  2. 02暗号資産とオプションのデータを取得
  3. 03ニュース、スナップショット、活況銘柄を取得
  4. 04リアルタイムの株式データストリームを購読
  5. 05スクリプトで市場データをダウンロード

活用シーン

  1. 01株式や暗号資産の戦略をバックテスト
  2. 02オプション契約と履歴データを取得
  3. 03株式のリアルタイム価格を監視
  4. 04指定銘柄のデータを一括ダウンロード

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gauss314/skills --skill alpaca-data

インストール後、Claude Code で/alpaca-dataを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
options_reference.md
scripts/
download_crypto_bars.py
download_options.py
download_stock_bars.py

詳細

Alpaca Data — Market Data API

株式、暗号資産、オプションの過去データとリアルタイムデータを提供する市場データ API です。

Base URL: https://data.alpaca.markets
SDK: pip install alpaca-py
Docs: docs.alpaca.markets


認証

API Keys の取得
  1. app.alpaca.markets にアクセスします
  2. アカウントを作成します(ペーパートレーディングは無料です)
  3. 「API Keys」→ Generate New Keys に進みます
  4. API Key と Secret Key を保存します
設定
import os
from alpaca.data.historical import StockHistoricalDataClient

# Keys (requerido para datos de acciones)
API_KEY = os.getenv("APCA_API_KEY_ID")
SECRET_KEY = os.getenv("APCA_API_SECRET_KEY")

client = StockHistoricalDataClient(API_KEY, SECRET_KEY)

# Crypto NO requiere keys
from alpaca.data.historical import CryptoHistoricalDataClient
crypto_client = CryptoHistoricalDataClient()

⚠️ 共有するコードにキーを絶対にハードコードしないでください。


レート制限

プランRequests/Minデータ
Free (IEX)200約5年分の履歴、1つの取引所
Paid (SIP)より多い米国の全取引所、約7年分
推奨事項
  • データをキャッシュする — 過去データは変更されません
  • リクエストをバッチ処理する — 複数のシンボルを1回の呼び出しで取得します
  • limit=10000 を使用する — 1リクエストあたりの最大値です
  • next_page_token でページネーションする — 大量のデータを取得する場合に使用します

データフィード

フィード説明費用
iexInvestors Exchange(取引量の約2.5%)無料
sip米国の全取引所(統合)有料
boatsBlue Ocean ATS(取引時間延長)有料
otc店頭取引有料

無料プランでは IEX のみ利用できます


過去の株式データ

バー(OHLCV)
from alpaca.data.requests import StockBarsRequest
from alpaca.data.timeframe import TimeFrame
from datetime import datetime

request = StockBarsRequest(
    symbol_or_symbols=["AAPL", "GOOGL"],
    timeframe=TimeFrame.Day,
    start=datetime(2023, 1, 1),
    end=datetime(2024, 12, 31),
    feed="iex"  # free tier
)

bars = client.get_stock_bars(request)
df = bars.df  # DataFrame

利用可能な TimeFrames:

  • TimeFrame.Minute / TimeFrame(5, TimeFrame.Minute)
  • TimeFrame.Hour
  • TimeFrame.Day
  • TimeFrame.Week
  • TimeFrame.Month
気配値(Bid/Ask)
from alpaca.data.requests import StockQuotesRequest

request = StockQuotesRequest(
    symbol_or_symbols=["AAPL"],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31),
    feed="iex"
)

quotes = client.get_stock_quotes(request)
取引
from alpaca.data.requests import StockTradesRequest

request = StockTradesRequest(
    symbol_or_symbols=["AAPL"],
    start=datetime(2024, 1, 1),
    feed="iex"
)

trades = client.get_stock_trades(request)
最新データ
# Latest bar
bars = client.get_stock_latest_bar(["AAPL", "GOOGL"])

# Latest quote
quotes = client.get_stock_latest_quote(["AAPL"])

# Latest trade
trades = client.get_stock_latest_trade(["AAPL"])
スナップショット
from alpaca.data.requests import SnapshotRequest

request = SnapshotRequest(
    symbol_or_symbols=["AAPL", "GOOGL"]
)
snapshots = client.get_snapshot(request)

過去の暗号資産データ

API キーは不要です

from alpaca.data.historical import CryptoHistoricalDataClient
from alpaca.data.requests import CryptoBarsRequest
from alpaca.data.timeframe import TimeFrame
from datetime import datetime

client = CryptoHistoricalDataClient()

request = CryptoBarsRequest(
    symbol_or_symbols=["BTC/USD", "ETH/USD"],
    timeframe=TimeFrame.Day,
    start=datetime(2023, 1, 1),
    end=datetime(2024, 12, 31)
)

bars = client.get_crypto_bars(request)
df = bars.df
暗号資産のオーダーブック
from alpaca.data.requests import CryptoLatestQuoteRequest

request = CryptoLatestQuoteRequest(symbol_or_symbols=["BTC/USD"])
quotes = client.get_crypto_latest_quote(request)

過去のオプションデータ

オプションチェーン
# Obtener contratos disponibles
from alpaca.data.requests import OptionContractsRequest

request = OptionContractsRequest(
    underlying_symbols=["AAPL"],
    expiration_date_gte="2024-01-01",  # desde esta fecha
    expiration_date_lte="2024-12-31",  # hasta esta fecha
    strike_price_gte=100,  # strikes mínimo
    strike_price_lte=200   # strikes máximo
)

contracts = client.get_option_contracts(request)
オプションのバー/取引/気配値
from alpaca.data.requests import OptionBarsRequest

# Buscar contract ID primero
contract_id = "6e58f870-fe73-4583-81e4-b9a37892c36f"

request = OptionBarsRequest(
    symbol_or_contract_ids=[contract_id],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31)
)

bars = client.get_option_bars(request)

オプションティッカーのリファレンス

./references/options_reference.md を参照してください。内容は以下のとおりです。

  • オプションシンボル(AAPL240119C00100000)
  • フィルタリングパラメーター
  • 必要な取引レベル

ニュース

from alpaca.data.requests import StockNewsRequest

request = StockNewsRequest(
    symbol_or_symbols=["AAPL", "GOOGL"],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31)
)

news = client.get_stock_news(request)

スクリーナー

from alpaca.data.requests import MostActivesRequest

request = MostActivesRequest(
    by="volume",  # volume, share, number
    top=10,
    date="2024-01-15"
)

movers = client.get_most_actives(request)

WebSocket によるリアルタイムデータ(任意)

from alpaca.data.stream import StockDataStream

ws = StockDataStream(API_KEY, SECRET_KEY)

async def handle_bar(bar):
    print(bar)

ws.subscribe_bars(handle_bar, "AAPL", "GOOGL")
ws.run()

ダウンロードスクリプト

./scripts/ のスクリプトを使用します。

# Descargar bars de acciones
python ./scripts/download_stock_bars.py --symbols AAPL,GOOGL --days 365 --output data/

# Descargar crypto
python ./scripts/download_crypto_bars.py --symbols BTC,ETH --days 90 --output data/

# Descargar option contracts
python ./scripts/download_options.py --symbol AAPL --output data/

よくあるエラー

エラー原因解決方法
403 Forbiddenキーが無効、または権限がありませんAPI キーを確認します
429 Too Many Requestsレート制限待機するか、キャッシュを使用します
Empty responseシンボルのデータがありませんシンボルを確認します
"options_enabled"シンボルにオプションがありませんオプションのあるシンボルを使用します

他の API との比較

FeatureAlpacaAlpha VantageData912
無料プラン✅ IEX(1つの取引所)✅ 25件/日✅ アルゼンチンペソの全データ
米国株✅✅❌
暗号資産✅✅❌
オプション✅❌❌
過去データの期間IEX で約5年限定的限定的
Python SDK✅ alpaca-py✅❌

以下の場合は Alpaca を選択してください: 米国のデータ(株式、暗号資産、オプション)、日中データ。
以下の場合は Data912 を選択してください: アルゼンチン市場のデータ。
以下の場合は Alpha Vantage を選択してください: テクニカル指標、外国為替。

コメント