【徹底解説完全版】Alpha Vantage APIを使い倒すサンプルコード集

Alpha Vantageは、金融市場データを提供するAPIサービスです。

主に株式、外国為替(FX)、仮想通貨、商品市場のデータにアクセスできます。

Alpha VantageのAPIは、リアルタイムおよび履歴データ、技術指標、経済データなど、さまざまな金融データにアクセスするために使用されます。

似たようなサービスAPIには、Finnhubもありますが、個人的には、Alpha Vantageの方が筆者の用途にはあっているので愛用しています。

相性のいいAPIサービスを選んでくださいね。https://note.com/embed/notes/n3e00b314245d

ドキュメントはこちらのリンクから。
ここからは、実際にこれらのエンドポイントを使用した利用例や、サンプルコードを掲載していますので、APIキーを取得後すぐに試すことができます。

自身の分析ツールの作成や、分析ダッシュボードの構築などにぜひ役立ててみてはいかがでしょうか?

何より機械学習用のデータ収集などに非常に便利に使えると思います。

API Documentation | Alpha Vantage API Documentation for Alpha Vantage. Alpha Vantage offers fre www.alphavantage.co

収益(EPS: Earnings Per Share)データを取得

Earnings エンドポイントは、Alpha Vantage APIを使って特定の企業の年次および四半期ごとの収益(EPS: Earnings Per Share)データを取得するためのものです。このAPIエンドポイントは、企業の収益パフォーマンスを分析するために、特に財務データを必要とする投資家やアナリストに役立ちます。

Earnings エンドポイントでできること

  1. 企業の収益データの取得:
    • 特定の企業の年次および四半期ごとのEPS(1株当たりの利益)データを取得します。四半期ごとのデータには、アナリストの予測や予測に対する実績のサプライズ(差異)指標も含まれます。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーは、リクエストを送信する際に必要です。
  2. APIリクエストの構成:
    • Earnings エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: EARNINGS(この場合は収益データを取得するための関数名)
      • symbol: 収益データを取得したい企業のティッカーシンボル(例: IBM)
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • 以下のリクエスト例は、IBMの収益データを取得するためのものです:
https://www.alphavantage.co/query?function=EARNINGS&symbol=IBM&apikey=YOUR_API_KEY

このままリクエストしてもみにくくてわかりずらいので、すべてのデータをリスト化していきます。

収益データを見やすくリスト化して表示するために、以下のPythonコードを使用します。

このコードは、収益データを整形し、各データポイント(年次および四半期ごとのEPS、アナリスト予測、サプライズなど)をリスト形式で表示します。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
symbol = 'IBM'  # 取得したい企業のティッカーシンボル

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=EARNINGS&symbol={symbol}&apikey={API_KEY}'

# APIリクエストを送信して、収益データを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータをリスト化して表示
if 'annualEarnings' in data:
    print(f"Annual Earnings for {symbol}:")
    for entry in data['annualEarnings']:
        fiscal_date_ending = entry.get('fiscalDateEnding', 'N/A')
        reported_eps = entry.get('reportedEPS', 'N/A')
        print(f"Date: {fiscal_date_ending}, Reported EPS: {reported_eps}")
    print("-----")

if 'quarterlyEarnings' in data:
    print(f"Quarterly Earnings for {symbol}:")
    for entry in data['quarterlyEarnings']:
        fiscal_date_ending = entry.get('fiscalDateEnding', 'N/A')
        reported_eps = entry.get('reportedEPS', 'N/A')
        estimated_eps = entry.get('estimatedEPS', 'N/A')
        surprise = entry.get('surprise', 'N/A')
        surprise_percentage = entry.get('surprisePercentage', 'N/A')
        print(f"Date: {fiscal_date_ending}, Reported EPS: {reported_eps}, Estimated EPS: {estimated_eps}, Surprise: {surprise}, Surprise Percentage: {surprise_percentage}%")
else:
    print(f"No earnings data available for {symbol}.")

このコードの説明

  1. APIキーの設定:
    • API_KEY変数にAlpha Vantageから取得した有効なAPIキーを入力します。
  2. 企業のシンボルの設定:
    • symbol変数に収益データを取得したい企業のティッカーシンボル(例:IBM)を設定します。
  3. APIリクエストの送信:
    • requests.get(url)を使用して、Alpha VantageのEarningsエンドポイントにリクエストを送信し、指定された企業の収益データを取得します。
  4. レスポンスの処理とリスト化:
    • レスポンスからannualEarningsとquarterlyEarningsを取得し、それぞれのデータをリスト形式で整形して表示します。
    • annualEarningsセクションでは、年次EPSデータを表示します。
    • quarterlyEarningsセクションでは、四半期ごとのEPS、アナリスト予測、サプライズデータを表示します。
  5. データの表示:
    • 各データポイント(報告日、報告EPS、予想EPS、サプライズ、サプライズ率など)を見やすくフォーマットしてコンソールに出力します。

収益発表予定を取得

Earnings Calendar エンドポイントは、今後の企業の収益発表予定を取得するためのAPIです。このAPIは、指定した期間(3ヶ月、6ヶ月、または12ヶ月)に予定されている企業の収益発表リストを返します。このエンドポイントは、投資家やアナリストが今後の収益発表を追跡し、投資判断を行う際に役立ちます。

Earnings Calendar エンドポイントでできること

  1. 今後の収益発表予定の取得:
    • 指定された期間(3ヶ月、6ヶ月、12ヶ月)に予定されている全ての企業の収益発表を取得できます。
    • 特定の企業に対しても、収益発表予定を取得することができます。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーを使用してリクエストを送信します。
  2. APIリクエストの構成:
    • Earnings Calendar エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: EARNINGS_CALENDAR(収益カレンダーを取得するための関数名)
      • symbol(任意): 特定の企業のティッカーシンボルを指定します(例: IBM)。指定しない場合は、全ての企業の収益発表予定が返されます。
      • horizon(任意): 収益発表予定の期間を指定します。3month(デフォルト)、6month、または12monthを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • すべての企業の次の3ヶ月間の収益発表予定を取得するリクエスト例
https://www.alphavantage.co/query?function=EARNINGS_CALENDAR&horizon=3month&apikey=YOUR_API_KEY

IBMの次の12ヶ月間の収益発表予定を取得するリクエスト例:

https://www.alphavantage.co/query?function=EARNINGS_CALENDAR&symbol=IBM&horizon=12month&apikey=YOUR_API_KEY

以下は、Earnings Calendar エンドポイントを使用して今後の収益発表予定を取得し、CSV形式で解析するPythonコードの例です。

import csv
import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# 収益カレンダーの取得期間(例: 3ヶ月)
horizon = '3month'  # 取得したい期間を指定(3month, 6month, 12month)
CSV_URL = f'https://www.alphavantage.co/query?function=EARNINGS_CALENDAR&horizon={horizon}&apikey={API_KEY}'

# セッションを作成して、CSVデータをダウンロード
with requests.Session() as s:
    download = s.get(CSV_URL)
    decoded_content = download.content.decode('utf-8')
    cr = csv.reader(decoded_content.splitlines(), delimiter=',')
    earnings_list = list(cr)

    # 収益発表予定を表示
    for row in earnings_list:
        print(row)

⭐️異なる通貨間のリアルタイム為替レート

CURRENCY_EXCHANGE_RATE エンドポイントは、Alpha Vantage APIを使用して、デジタル通貨(例:ビットコイン)と物理通貨(例:USD)または異なる通貨間のリアルタイム為替レートを取得するためのものです。このAPIは、特定の通貨ペアの現在の為替レートを簡単に取得できるため、外国為替市場で取引を行うトレーダーや仮想通貨の価格を追跡するユーザーにとって非常に便利です。

CURRENCY_EXCHANGE_RATE エンドポイントでできること

  1. リアルタイム為替レートの取得:
    • 異なる通貨ペアのリアルタイム為替レートを取得します。これには、物理通貨間のレートやデジタル通貨と物理通貨のレートが含まれます。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーを使用してリクエストを送信します。
  2. APIリクエストの構成:
    • CURRENCY_EXCHANGE_RATE エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: CURRENCY_EXCHANGE_RATE(為替レートを取得するための関数名)
      • from_currency: 為替レートを取得したい通貨のコード(例:USD、BTC)
      • to_currency: 目的の通貨のコード(例:JPY、EUR)
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • 米ドルから日本円への為替レートを取得するリクエスト例:
https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=JPY&apikey=YOUR_API_KEY

ビットコインからユーロへの為替レートを取得するリクエスト例

https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=BTC&to_currency=EUR&apikey=YOUR_API_KEY

以下は、CURRENCY_EXCHANGE_RATE エンドポイントを使用して米ドルから日本円へのリアルタイム為替レートを取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
from_currency = 'USD'  # 取得したい通貨
to_currency = 'JPY'    # 目的の通貨

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency={from_currency}&to_currency={to_currency}&apikey={API_KEY}'

# APIリクエストを送信して、為替レートデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "Realtime Currency Exchange Rate" in data:
    exchange_data = data["Realtime Currency Exchange Rate"]
    print(f"Exchange Rate from {exchange_data['1. From_Currency Code']} to {exchange_data['3. To_Currency Code']}: {exchange_data['5. Exchange Rate']}")
    print(f"Last Updated: {exchange_data['6. Last Refreshed']}")
else:
    print("Error fetching data or invalid response.")

このコードの説明

  1. APIキーの設定:
    • API_KEY変数にAlpha Vantageから取得した有効なAPIキーを入力します。
  2. 通貨の設定:
    • from_currencyおよびto_currency変数に、それぞれ為替レートを取得したい通貨と目的の通貨のコードを設定します。
  3. APIリクエストの送信:
    • requests.get(url)を使用して、Alpha VantageのCURRENCY_EXCHANGE_RATEエンドポイントにリクエストを送信し、指定された通貨ペアのリアルタイム為替レートを取得します。
  4. レスポンスの処理と表示:
    • レスポンスをJSON形式で取得し、必要なデータポイント(為替レート、更新時間など)を見やすく整形して表示します。

利用上の注意

  • レート制限:
    • Alpha Vantageの無料プランには、APIリクエストの回数制限があります。大量のリクエストを送信する場合は、レート制限に注意してください。
  • データの精度とタイミング:
    • 為替レートはリアルタイムに変動します。このAPIは頻繁にデータを更新しますが、データの更新タイミングを確認して、必要に応じて複数回リクエストを行うことができます。

主要通貨シンボル一覧

  1. USD – United States Dollar(アメリカドル) – アメリカ合衆国
  2. EUR – Euro(ユーロ) – ユーロ圏(ヨーロッパの一部の国)
  3. JPY – Japanese Yen(日本円) – 日本
  4. GBP – British Pound Sterling(イギリスポンド) – イギリス
  5. AUD – Australian Dollar(オーストラリアドル) – オーストラリア
  6. CAD – Canadian Dollar(カナダドル) – カナダ
  7. CHF – Swiss Franc(スイスフラン) – スイス
  8. CNY – Chinese Yuan(中国人民元) – 中国
  9. HKD – Hong Kong Dollar(香港ドル) – 香港
  10. NZD – New Zealand Dollar(ニュージーランドドル) – ニュージーランド
  11. SEK – Swedish Krona(スウェーデンクローナ) – スウェーデン
  12. NOK – Norwegian Krone(ノルウェークローネ) – ノルウェー
  13. SGD – Singapore Dollar(シンガポールドル) – シンガポール
  14. INR – Indian Rupee(インドルピー) – インド
  15. RUB – Russian Ruble(ロシアルーブル) – ロシア
  16. BRL – Brazilian Real(ブラジルレアル) – ブラジル
  17. ZAR – South African Rand(南アフリカランド) – 南アフリカ
  18. MXN – Mexican Peso(メキシコペソ) – メキシコ
  19. KRW – South Korean Won(韓国ウォン) – 韓国
  20. TRY – Turkish Lira(トルコリラ) – トルコ

アルゼンチンペソの通貨シンボルは ARS です。

  • 通貨名: Argentine Peso(アルゼンチンペソ)
  • シンボル: ARS
  • : アルゼンチン

外国為替(FX)通貨ペアの毎日の時間系列

FX_DAILY エンドポイントは、Alpha Vantage APIを使用して、指定した外国為替(FX)通貨ペアの毎日の時間系列データ(タイムスタンプ、始値、高値、安値、終値)をリアルタイムで取得するためのものです。このAPIは、過去および現在のFX市場の動向を分析したいトレーダーやアナリストにとって非常に有用です。

FX_DAILY エンドポイントでできること

  1. 毎日の外国為替データの取得:
    • 指定された通貨ペアの毎日の為替レートデータを取得できます。このデータには、各日の始値、高値、安値、終値が含まれます。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーを使用してリクエストを送信します。
  2. APIリクエストの構成:
    • FX_DAILY エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: FX_DAILY(日次為替データを取得するための関数名)
      • from_symbol: 為替レートを取得したい通貨のシンボル(例:EUR)
      • to_symbol: 目的の通貨のシンボル(例:USD)
      • outputsize(任意): データの出力サイズを指定します。compact(最新100データポイントのみ)またはfull(全期間のデータ)。デフォルトはcompactです。
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsv。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • EURからUSDへの毎日の為替レートデータを取得するリクエスト例(JSON形式):
https://www.alphavantage.co/query?function=FX_DAILY&from_symbol=EUR&to_symbol=USD&apikey=YOUR_API_KEY

EURからUSDへの毎日の為替レートデータを取得するリクエスト例(CSV形式)

https://www.alphavantage.co/query?function=FX_DAILY&from_symbol=EUR&to_symbol=USD&apikey=YOUR_API_KEY&datatype=csv

以下は、FX_DAILY エンドポイントを使用してEURからUSDへの毎日の為替レートデータを取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
from_symbol = 'EUR'  # 取得したい通貨
to_symbol = 'USD'    # 目的の通貨

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=FX_DAILY&from_symbol={from_symbol}&to_symbol={to_symbol}&apikey={API_KEY}'

# APIリクエストを送信して、為替レートデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "Time Series FX (Daily)" in data:
    time_series = data["Time Series FX (Daily)"]
    for date, rates in time_series.items():
        print(f"Date: {date}")
        print(f"  Open: {rates['1. open']}")
        print(f"  High: {rates['2. high']}")
        print(f"  Low: {rates['3. low']}")
        print(f"  Close: {rates['4. close']}")
else:
    print("Error fetching data or invalid response.")

このコードの説明

  1. APIキーの設定:
    • API_KEY変数にAlpha Vantageから取得した有効なAPIキーを入力します。
  2. 通貨の設定:
    • from_symbolおよびto_symbol変数に、それぞれ為替レートを取得したい通貨と目的の通貨のシンボルを設定します。
  3. APIリクエストの送信:
    • requests.get(url)を使用して、Alpha VantageのFX_DAILYエンドポイントにリクエストを送信し、指定された通貨ペアの毎日の為替レートデータを取得します。
  4. レスポンスの処理と表示:
    • レスポンスをJSON形式で取得し、日次為替レートデータをTime Series FX (Daily)から読み取ります。
    • 各日の為替データ(始値、高値、安値、終値)を見やすく整形して表示します。

利用上の注意

  • データサイズ:
    • デフォルトでは、outputsizeパラメータがcompactに設定されており、最新の100データポイントのみが返されます。すべてのデータが必要な場合は、outputsize=fullを使用してください。
  • レート制限:
    • Alpha Vantageの無料プランには、APIリクエストの回数制限があります。大量のリクエストを送信する場合は、制限に注意してください。

フェデラルファンド金利(政策金利)の時系列データ

FEDERAL_FUNDS_RATE エンドポイントは、Alpha Vantage APIを使用して、アメリカの連邦準備金(FED)が公表しているフェデラルファンド金利(政策金利)の時系列データを取得するためのものです。このデータは、アメリカの金融政策や市場の流動性を理解するために重要であり、投資家や経済学者によって広く使用されています。

FEDERAL_FUNDS_RATE エンドポイントでできること

  1. フェデラルファンド金利の時系列データを取得:
    • フェデラルファンド金利の毎日、毎週、または毎月のデータを取得できます。このデータは、アメリカの金融政策を理解する上で重要な指標です。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーを使用してリクエストを送信します。
  2. APIリクエストの構成:
    • FEDERAL_FUNDS_RATE エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: FEDERAL_FUNDS_RATE(フェデラルファンド金利データを取得するための関数名)
      • interval(任意): データの取得間隔を指定します。daily、weekly、またはmonthlyを指定できます。デフォルトはmonthlyです。
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • フェデラルファンド金利の月次データを取得するリクエスト例(JSON形式):
https://www.alphavantage.co/query?function=FEDERAL_FUNDS_RATE&interval=monthly&apikey=YOUR_API_KEY

フェデラルファンド金利の毎日のデータを取得するリクエスト例(CSV形式)

https://www.alphavantage.co/query?function=FEDERAL_FUNDS_RATE&interval=daily&apikey=YOUR_API_KEY&datatype=csv

以下は、FEDERAL_FUNDS_RATE エンドポイントを使用してフェデラルファンド金利の月次データを取得し、JSON形式で出力するPythonコードの例です。

データの開始日と終了日

データの取得期間(具体的な開始日と終了日)を細かく制御するオプションはこのエンドポイントにはなく、Alpha VantageのAPI仕様に従って最新のデータから順に過去のデータが提供されます。そのため、データの期間を制御するためには、取得したデータの中からPythonなどのプログラミング言語を使ってフィルタリングする必要があります。

例: Pythonで日次のフェデラルファンド金利データを取得して、特定の期間にフィルタリングする

以下のコードは、フェデラルファンド金利のデータを日次で取得し、Pythonを使って特定の開始日と終了日の間でフィルタリングする方法を示しています。

import requests
from datetime import datetime

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
interval = 'daily'  # データの取得間隔(例:daily, weekly, monthly)

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=FEDERAL_FUNDS_RATE&interval={interval}&apikey={API_KEY}'

# APIリクエストを送信して、フェデラルファンド金利データを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# データフィルタリングの開始日と終了日を設定
start_date = datetime(2022, 1, 1)
end_date = datetime(2023, 1, 1)

# フェデラルファンド金利データを日次でフィルタリング
if "data" in data:
    for entry in data["data"]:
        date = entry.get("date", "N/A")
        value = entry.get("value", "N/A")
        date_obj = datetime.strptime(date, "%Y-%m-%d")

        if start_date <= date_obj <= end_date:
            print(f"Date: {date}, Federal Funds Rate: {value}")
else:
    print("Error fetching data or invalid response.")

このコードの説明

  1. APIキーの設定:
    • API_KEYにAlpha Vantageから取得した有効なAPIキーを入力します。
  2. 間隔の設定:
    • interval変数にフェデラルファンド金利のデータ取得間隔(daily、weekly、monthly)を設定します。この例では、dailyを使用しています。
  3. データのフィルタリング:
    • start_dateとend_date変数で、フィルタリングしたい期間を設定します。
    • APIから取得したデータをループし、各データポイントの日付が指定した期間内にあるかどうかをチェックします。

これにより、特定の期間のフェデラルファンド金利データを取得できます。Alpha VantageのAPI自体では期間の指定はできないため、必要に応じてデータのフィルタリングを手動で行う必要があります。

アメリカ合衆国の消費者物価指数(CPI)のデータ

CPI エンドポイントは、Alpha Vantage APIを使用して、アメリカ合衆国の消費者物価指数(CPI)のデータを取得するためのものです。CPIは、都市部に住む消費者が購入する商品およびサービスの平均価格を示し、インフレーション(物価上昇)の主要な指標とされています。

CPI エンドポイントでできること

  1. 消費者物価指数(CPI)の時系列データの取得:
    • アメリカのCPIデータを月次または半年ごとに取得することができます。CPIデータは、インフレーション率の測定に使用され、経済の健康状態を評価する際に広く使用されます。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーは、APIリクエストを行う際に必要です。
  2. APIリクエストの構成:
    • CPI エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: CPI(消費者物価指数データを取得するための関数名)
      • interval(任意): データの取得間隔を指定します。monthly(デフォルト)またはsemiannual(半年ごと)を指定できます。
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • 月次のCPIデータを取得するリクエスト例(JSON形式):
https://www.alphavantage.co/query?function=CPI&interval=monthly&apikey=YOUR_API_KEY

半年ごとのCPIデータを取得するリクエスト例(CSV形式)

https://www.alphavantage.co/query?function=CPI&interval=semiannual&apikey=YOUR_API_KEY&datatype=csv

以下は、CPI エンドポイントを使用して月次のCPIデータを取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
interval = 'monthly'  # データの取得間隔(例:monthly, semiannual)

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=CPI&interval={interval}&apikey={API_KEY}'

# APIリクエストを送信して、CPIデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "data" in data:
    for entry in data["data"]:
        date = entry.get("date", "N/A")
        value = entry.get("value", "N/A")
        print(f"Date: {date}, CPI: {value}")
else:
    print("Error fetching data or invalid response.")

こちらも期間(開始日と終了日)を直接指定するためのパラメータはありません。代わりに、データの取得間隔(interval)を指定することで、データがどのように提供されるかを決定します。intervalは、データを月次または半年ごとに取得するために使用されます。

interval パラメータの使い方

  • interval: データの取得間隔を指定するためのオプションパラメータです。
    • monthly(デフォルト): 月次データを取得します。
    • semiannual: 半年ごとのデータを取得します。

例えば、interval=monthlyを指定すると、CPIの月次データが返され、interval=semiannualを指定すると、半年ごとのCPIデータが返されます。

データの期間制御

CPIエンドポイントで期間(特定の開始日と終了日)を指定することはできませんが、取得したデータをPythonなどのプログラムでフィルタリングして、関心のある期間のデータのみを表示することができます。

例: PythonでCPIデータをフィルタリング

以下のコードは、CPIの月次データを取得し、Pythonを使って特定の開始日と終了日の間でデータをフィルタリングする方法を示しています。

import requests
from datetime import datetime

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
interval = 'monthly'  # データの取得間隔を指定(monthlyまたはsemiannual)

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=CPI&interval={interval}&apikey={API_KEY}'

# APIリクエストを送信して、CPIデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# データフィルタリングの開始日と終了日を設定
start_date = datetime(2022, 1, 1)  # 開始日
end_date = datetime(2023, 1, 1)    # 終了日

# CPIデータをフィルタリングして表示
if "data" in data:
    for entry in data["data"]:
        date = entry.get("date", "N/A")
        value = entry.get("value", "N/A")
        date_obj = datetime.strptime(date, "%Y-%m-%d")

        if start_date <= date_obj <= end_date:
            print(f"Date: {date}, CPI: {value}")
else:
    print("Error fetching data or invalid response.")

アメリカ合衆国の年次インフレーション率

INFLATION エンドポイントは、Alpha Vantage APIを使用して、アメリカ合衆国の年次インフレーション率(消費者物価指数ベースのインフレーション率)を取得するためのものです。このデータは、一般的なインフレーション(物価上昇)の指標として使用され、経済の健康状態を評価するために重要です。

INFLATION エンドポイントでできること

  1. 年次インフレーション率の取得:
    • アメリカの年次インフレーション率(消費者物価に基づく)を取得します。これは、価格水準の変化を追跡し、経済のインフレーション圧力を評価するための重要な指標です。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーを使用してリクエストを送信します。
  2. APIリクエストの構成:
    • INFLATION エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: INFLATION(インフレーション率データを取得するための関数名)
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • アメリカの年次インフレーション率を取得するリクエスト例(JSON形式):
https://www.alphavantage.co/query?function=INFLATION&apikey=YOUR_API_KEY

以下は、INFLATION エンドポイントを使用してアメリカの年次インフレーション率を取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=INFLATION&apikey={API_KEY}'

# APIリクエストを送信して、インフレーション率データを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "data" in data:
    for entry in data["data"]:
        date = entry.get("date", "N/A")
        value = entry.get("value", "N/A")
        print(f"Date: {date}, Inflation Rate: {value}")
else:
    print("Error fetching data or invalid response.")

Pythonでの期間フィルタリング例

以下のコードは、取得したインフレーションデータをPythonを使って特定の期間にフィルタリングする方法を示しています。

import requests
from datetime import datetime

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=INFLATION&apikey={API_KEY}'

# APIリクエストを送信して、インフレーション率データを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# データフィルタリングの開始年と終了年を設定
start_year = 2000  # 開始年
end_year = 2020    # 終了年

# インフレーションデータをフィルタリングして表示
if "data" in data:
    for entry in data["data"]:
        date = entry.get("date", "N/A")
        value = entry.get("value", "N/A")
        year = int(date.split('-')[0])  # 日付から年を抽出

        if start_year <= year <= end_year:
            print(f"Date: {date}, Inflation Rate: {value}")
else:
    print("Error fetching data or invalid response.")

シンプル移動平均

SMA エンドポイントは、Alpha Vantage APIを使用して、指定された銘柄や通貨ペアのシンプル移動平均(SMA)を計算して取得するためのものです。シンプル移動平均は、特定の期間における価格の平均を計算するテクニカル指標で、株式や通貨のトレンドを分析するためによく使われます。

SMA エンドポイントでできること

  1. シンプル移動平均(SMA)の計算:
    • 指定された銘柄や通貨ペアについて、シンプル移動平均を計算し、過去の価格データに基づいてその値を提供します。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーは、APIリクエストを行う際に必要です。
  2. APIリクエストの構成:
    • SMA エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: SMA(シンプル移動平均を取得するための関数名)
      • symbol: 銘柄や通貨ペアのシンボル(例:IBM、USDEURなど)
      • interval: 2つの連続するデータポイント間の時間間隔(例:1min、5min、daily、weeklyなど)
      • time_period: 移動平均の計算に使用するデータポイントの数(例:60、200など)
      • series_type: 計算に使用する価格のタイプ(close、open、high、lowのいずれか)
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • IBMのシンプル移動平均を週次データで取得するリクエスト例(JSON形式)
https://www.alphavantage.co/query?function=SMA&symbol=IBM&interval=weekly&time_period=10&series_type=open&apikey=YOUR_API_KEY

USD/EURのシンプル移動平均を週次データで取得するリクエスト例(JSON形式)

以下は、SMA エンドポイントを使用してIBMの週次シンプル移動平均を取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# APIリクエストURLの構成
url = 'https://www.alphavantage.co/query?function=SMA&symbol=IBM&interval=weekly&time_period=10&series_type=open&apikey=' + API_KEY

# APIリクエストを送信して、SMAデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "Technical Analysis: SMA" in data:
    sma_data = data["Technical Analysis: SMA"]
    for date, sma_info in sma_data.items():
        print(f"Date: {date}, SMA: {sma_info['SMA']}")
else:
    print("Error fetching data or invalid response.")

ストキャスティクス・オシレーター

STOCH エンドポイントは、Alpha Vantage APIを使用して、指定された銘柄や通貨ペアのストキャスティクス・オシレーター(STOCH)を計算し、その値を取得するためのものです。ストキャスティクス・オシレーターは、テクニカル分析においてトレンドの強さや市場の変動性を評価するために使用される指標です。

STOCH エンドポイントでできること

  1. ストキャスティクス・オシレーター(STOCH)の計算:
    • 指定された銘柄や通貨ペアについて、ストキャスティクス・オシレーターを計算し、過去の価格データに基づいてその値を提供します。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーは、APIリクエストを行う際に必要です。
  2. APIリクエストの構成:
    • STOCH エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: STOCH(ストキャスティクス・オシレーターを取得するための関数名)
      • symbol: 銘柄や通貨ペアのシンボル(例:IBM、USDEURなど)
      • interval: 2つの連続するデータポイント間の時間間隔(例:1min、5min、daily、weeklyなど)
      • fastkperiod(任意): fastk移動平均の期間。デフォルトは5です。
      • slowkperiod(任意): slowk移動平均の期間。デフォルトは3です。
      • slowdperiod(任意): slowd移動平均の期間。デフォルトは3です。
      • slowkmatype(任意): slowk移動平均のタイプ。デフォルトは0(SMA)です。
      • slowdmatype(任意): slowd移動平均のタイプ。デフォルトは0(SMA)です。
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • IBMのストキャスティクス・オシレーターを日次データで取得するリクエスト例(JSON形式):
https://www.alphavantage.co/query?function=STOCH&symbol=IBM&interval=daily&apikey=YOUR_API_KEY

以下は、STOCH エンドポイントを使用してIBMの日次ストキャスティクス・オシレーターを取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=STOCH&symbol=IBM&interval=daily&apikey={API_KEY}'

# APIリクエストを送信して、STOCHデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "Technical Analysis: STOCH" in data:
    stoch_data = data["Technical Analysis: STOCH"]
    for date, stoch_info in stoch_data.items():
        print(f"Date: {date}, SlowK: {stoch_info['SlowK']}, SlowD: {stoch_info['SlowD']}")
else:
    print("Error fetching data or invalid response.")

このコードの説明

  1. APIキーの設定:
    • API_KEY変数にAlpha Vantageから取得した有効なAPIキーを入力します。
  2. APIリクエストの送信:
    • requests.get(url)を使用して、Alpha VantageのSTOCHエンドポイントにリクエストを送信し、指定された銘柄のストキャスティクス・オシレーターのデータを取得します。
  3. レスポンスの処理と表示:
    • レスポンスをJSON形式で取得し、ストキャスティクス・オシレーターのデータをTechnical Analysis: STOCHセクションから読み取ります。
    • 各データポイント(日時、SlowK、SlowDの値)を見やすく整形して表示します。

利用上の注意

  • データの間隔:
    • intervalパラメータを使用して、データの取得間隔を指定します。1min、5min、15min、30min、60min、daily、weekly、monthlyなどの値がサポートされています。
  • 移動平均の期間とタイプ:
    • fastkperiod、slowkperiod、slowdperiod、slowkmatype、slowdmatypeパラメータを使用して、ストキャスティクス・オシレーターの計算に使用する移動平均の期間とタイプをカスタマイズできます。
  • 価格タイプ:
    • ストキャスティクス・オシレーターの計算に使用する価格タイプ(例:close、open、high、low)は、指定する必要はありません。この指標はデフォルトで終値に基づいて計算されます。

プロットまでする

pip install requests matplotlib

matplotlibでプロットまでしてみましょう。

import requests
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime

# Alpha Vantage APIキーを自分のキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
symbol = 'AAPL'
interval = 'daily'

# Alpha Vantage APIのURLを構成
price_url = f'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol={symbol}&apikey={API_KEY}'
stoch_url = f'https://www.alphavantage.co/query?function=STOCH&symbol={symbol}&interval={interval}&apikey={API_KEY}'

# 株価データの取得
price_response = requests.get(price_url)
price_data = price_response.json()

# ストキャスティクス・オシレーターのデータの取得
stoch_response = requests.get(stoch_url)
stoch_data = stoch_response.json()

# データを整形してPandas DataFrameに変換
price_df = pd.DataFrame.from_dict(price_data['Time Series (Daily)'], orient='index').astype(float)
price_df.index = pd.to_datetime(price_df.index)
price_df = price_df.sort_index()

stoch_df = pd.DataFrame.from_dict(stoch_data['Technical Analysis: STOCH'], orient='index').astype(float)
stoch_df.index = pd.to_datetime(stoch_df.index)
stoch_df = stoch_df.sort_index()

# データを1月から8月にフィルタリング
start_date = '2023-01-01'
end_date = '2023-08-31'

price_df = price_df[(price_df.index >= start_date) & (price_df.index <= end_date)]
stoch_df = stoch_df[(stoch_df.index >= start_date) & (stoch_df.index <= end_date)]

# プロット
plt.figure(figsize=(14, 7))

# 株価データのプロット
plt.subplot(2, 1, 1)
plt.plot(price_df.index, price_df['4. close'], label='AAPL Close Price', color='blue')
plt.title('Apple Inc. (AAPL) Stock Price and Stochastic Oscillator')
plt.ylabel('Stock Price (USD)')
plt.legend()

# ストキャスティクス・オシレーターのプロット
plt.subplot(2, 1, 2)
plt.plot(stoch_df.index, stoch_df['SlowK'], label='%K', color='orange')
plt.plot(stoch_df.index, stoch_df['SlowD'], label='%D', color='purple')
plt.axhline(80, color='red', linestyle='--')
plt.axhline(20, color='green', linestyle='--')
plt.title('Stochastic Oscillator')
plt.ylabel('Oscillator Value')
plt.legend()

plt.tight_layout()
plt.show()

このコードの説明

  1. APIリクエストの構成と送信:
    • Appleの株価(TIME_SERIES_DAILY)とストキャスティクス・オシレーター(STOCH)のデータを取得するために、Alpha VantageのAPIにリクエストを送信します。
  2. データの整形:
    • 取得したデータをJSON形式からPandas DataFrameに変換し、日付順に並び替えます。
  3. データのフィルタリング:
    • 2023年1月1日から2023年8月31日までのデータにフィルタリングします。
  4. データのプロット:
    • 株価の終値を上のプロットに表示し、ストキャスティクス・オシレーターの%Kと%Dを下のプロットに表示します。
    • 過買い(80以上)と過売り(20以下)の水準を示すために、それぞれ赤と緑の点線を引きます。

⭐️RSI

RSI エンドポイントは、Alpha Vantage APIを使用して、指定された銘柄や通貨ペアの相対力指数(Relative Strength Index, RSI)を計算し、その値を取得するためのものです。RSIは、価格の変動速度と変化の大きさを示すテクニカル指標であり、一般的には買われすぎまたは売られすぎの状態を判断するために使用されます。

RSI エンドポイントでできること

  1. 相対力指数(RSI)の計算:
    • 指定された銘柄や通貨ペアについて、RSIを計算し、過去の価格データに基づいてその値を提供します。
    • RSIは、過買い(70以上)や過売り(30以下)のレベルを特定するために使用されることが多いです。

APIの使用方法

  1. APIキーの取得:
    • Alpha Vantageの公式サイトでアカウントを作成し、無料のAPIキーを取得します。このAPIキーは、APIリクエストを行う際に必要です。
  2. APIリクエストの構成:
    • RSI エンドポイントを使用するには、HTTP GETリクエストを構成し、以下のパラメータを指定します:
      • function: RSI(相対力指数を取得するための関数名)
      • symbol: 銘柄や通貨ペアのシンボル(例:IBM、USDEURなど)
      • interval: 2つの連続するデータポイント間の時間間隔(例:1min、5min、daily、weeklyなど)
      • time_period: RSIの計算に使用するデータポイントの数(例:14、30など)
      • series_type: RSIの計算に使用する価格のタイプ(close、open、high、lowのいずれか)
      • datatype(任意): データの形式を指定します。json(デフォルト)またはcsvを選択できます。
      • apikey: 自分のAPIキー
  3. APIリクエストの例:
    • IBMのRSIを週次データで取得するリクエスト例(JSON形式)
https://www.alphavantage.co/query?function=RSI&symbol=IBM&interval=weekly&time_period=10&series_type=open&apikey=YOUR_API_KEY

USD/EURのRSIを週次データで取得するリクエスト例(JSON形式)

https://www.alphavantage.co/query?function=RSI&symbol=USDEUR&interval=weekly&time_period=10&series_type=open&apikey=YOUR_API_KEY

以下は、RSI エンドポイントを使用してIBMの週次RSIを取得し、JSON形式で出力するPythonコードの例です。

import requests

# 自分のAPIキーに置き換えてください
API_KEY = 'YOUR_API_KEY'

# APIリクエストURLの構成
url = f'https://www.alphavantage.co/query?function=RSI&symbol=IBM&interval=weekly&time_period=10&series_type=open&apikey={API_KEY}'

# APIリクエストを送信して、RSIデータを取得
response = requests.get(url)

# レスポンスをJSON形式で取得
data = response.json()

# 取得したデータを見やすく表示
if "Technical Analysis: RSI" in data:
    rsi_data = data["Technical Analysis: RSI"]
    for date, rsi_info in rsi_data.items():
        print(f"Date: {date}, RSI: {rsi_info['RSI']}")
else:
    print("Error fetching data or invalid response.")

このコードの説明

  1. APIキーの設定:
    • API_KEY変数にAlpha Vantageから取得した有効なAPIキーを入力します。
  2. APIリクエストの送信:
    • requests.get(url)を使用して、Alpha VantageのRSIエンドポイントにリクエストを送信し、指定された銘柄のRSIデータを取得します。
  3. レスポンスの処理と表示:
    • レスポンスをJSON形式で取得し、RSIデータをTechnical Analysis: RSIセクションから読み取ります。
    • 各データポイント(日時、RSI値)を見やすく整形して表示します。

利用上の注意

  • データの間隔:
    • intervalパラメータを使用して、データの取得間隔を指定します。1min、5min、15min、30min、60min、daily、weekly、monthlyなどの値がサポートされています。
  • RSIの期間:
    • time_periodパラメータで、RSIの計算に使用するデータポイントの数を指定します。これは、RSIの計算に使用する期間を示します。
  • 価格タイプ:
    • series_typeパラメータで、どの価格を使用するかを指定します(例:close、open、high、low)。

より高度なRSI分析

では例えば、2023年1月から7月までのドル円の日足データを取得し(APIで)、RSIをプロットし、RSIが25を下回った年月日をリスト化して出力、RSIが80を超えた年月日をリスト化して出力するサンプルコードを書いてみます。

筆者は個人的にRSIだけでトレードすることがほとんどです。
これは簡単にプログラム可能であり、勝率のバックテストもしやすいのが特徴。

pip install requests matplotlib pandas
import requests
import matplotlib.pyplot as plt
import pandas as pd

# Alpha Vantage APIキーを自分のキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
symbol = 'USDJPY'
interval = 'daily'
output_size = 'full'  # 日足データ全体を取得

# Alpha Vantage APIのURLを構成
price_url = f'https://www.alphavantage.co/query?function=FX_DAILY&from_symbol=USD&to_symbol=JPY&outputsize={output_size}&apikey={API_KEY}'

# 日足の価格データを取得
price_response = requests.get(price_url)
price_data = price_response.json()

# データをPandas DataFrameに変換
if "Time Series FX (Daily)" in price_data:
    price_df = pd.DataFrame.from_dict(price_data['Time Series FX (Daily)'], orient='index').astype(float)
    price_df.index = pd.to_datetime(price_df.index)
    price_df = price_df.sort_index()

    # 2023年1月から7月までのデータにフィルタリング
    start_date = '2023-01-01'
    end_date = '2023-07-31'
    price_2023 = price_df[(price_df.index >= start_date) & (price_df.index <= end_date)]

    # RSIの計算
    window_length = 14
    delta = price_2023['4. close'].diff()
    gain = (delta.where(delta > 0, 0)).rolling(window=window_length).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(window=window_length).mean()
    rs = gain / loss
    rsi = 100 - (100 / (1 + rs))
    price_2023['RSI'] = rsi

    # プロット
    plt.figure(figsize=(12, 6))
    plt.plot(price_2023.index, price_2023['RSI'], label='RSI', color='blue')
    plt.axhline(80, color='red', linestyle='--', label='Overbought (80)')
    plt.axhline(25, color='green', linestyle='--', label='Oversold (25)')
    plt.title('USD/JPY RSI - Jan to Jul 2023')
    plt.xlabel('Date')
    plt.ylabel('RSI')
    plt.legend()
    plt.show()

    # RSIが25を下回った日付
    rsi_below_25 = price_2023[price_2023['RSI'] < 25]
    print("Dates when RSI was below 25:")
    print(rsi_below_25.index.date)

    # RSIが80を超えた日付
    rsi_above_80 = price_2023[price_2023['RSI'] > 80]
    print("\nDates when RSI was above 80:")
    print(rsi_above_80.index.date)
else:
    print("Error fetching data or invalid response.")

もちろん盲信するべき指標というのは存在しませんが、ヘッドライトくらいの役割は十分に果たしてくれる、そんな存在です。

ストキャスティック相対力指数

STOCHRSIは「Stochastic Relative Strength Index(ストキャスティック相対力指数)」の略で、テクニカル分析の指標です。この指標は、従来のRSI(相対力指数)をストキャスティクスとして計算し、トレンドの変化をより敏感に捉えるために使用されます。

API の概要

Alpha VantageのSTOCHRSIエンドポイントは、指定されたシンボル(株式や通貨ペアなど)のストキャスティックRSIの値を取得するために使用されます。このAPIを利用することで、異なる時間間隔(1分、5分、15分、30分、60分、日次、週次、月次)でのSTOCHRSIデータを取得できます。

必要なパラメータ

  • function: STOCHRSI を指定します。これはAPIの機能を指定するために使用されます。
  • symbol: 調べたいティッカーシンボル(例: IBM)。
  • interval: データポイント間の時間間隔(例: daily、weeklyなど)。
  • time_period: STOCHRSIの計算に使用するデータポイントの数(正の整数)。
  • series_type: 使用する価格の種類(close、open、high、lowのいずれか)。
  • apikey: APIキー(Alpha Vantageから取得可能)。

オプションのパラメータ

  • fastkperiod: fastk移動平均の期間。デフォルトは5です。
  • fastdperiod: fastd移動平均の期間。デフォルトは3です。
  • fastdmatype: fastd移動平均のタイプ。デフォルトは0(単純移動平均、SMA)です。0から8の整数値が受け入れられ、それぞれ異なる移動平均の種類を示します。

使用例

以下のPythonコードは、Alpha Vantage APIを使用してIBMのSTOCHRSIデータを取得し、結果を表示する方法を示しています。

import requests

# 自分のAPIキーを使用してください
API_KEY = 'YOUR_API_KEY'

# Alpha VantageのURLを構成
url = 'https://www.alphavantage.co/query?function=STOCHRSI&symbol=IBM&interval=daily&time_period=10&series_type=close&fastkperiod=6&fastdmatype=1&apikey=' + API_KEY

# APIリクエストを送信
response = requests.get(url)
data = response.json()

# 結果を表示
print(data)

STOCHRSI APIでは、期間を直接指定するパラメータはありませんが、期間に基づいたデータを取得するために、以下の2つの方法を使用できます。

  1. interval パラメータ:
    • interval パラメータでデータの時間間隔(インターバル)を指定します。これにより、どのような間隔でデータポイントを取得するかを決定します。
    • サポートされている間隔は以下の通りです:
      • 1min (1分)
      • 5min (5分)
      • 15min (15分)
      • 30min (30分)
      • 60min (60分)
      • daily (日次)
      • weekly (週次)
      • monthly (月次)
  2. データの後処理:
    • 取得したデータから特定の期間に絞り込みたい場合、Pythonなどのプログラミング言語を使用してデータをフィルタリングします。
    • 例えば、pandasを使用して特定の開始日から終了日までのデータを抽出できます。

サンプルコード: 特定期間のSTOCHRSIデータの取得

以下の例では、Alpha Vantage APIを使用してIBMのSTOCHRSIデータを取得し、その中から2023年1月から7月までの日次データを抽出します。

import requests
import pandas as pd

# Alpha Vantage APIキーを自分のキーに置き換えてください
API_KEY = 'YOUR_API_KEY'
symbol = 'IBM'
interval = 'daily'
time_period = 14  # STOCHRSIの計算に使用するデータポイントの数
series_type = 'close'
fastkperiod = 6
fastdmatype = 1

# Alpha Vantage APIのURLを構成
url = f'https://www.alphavantage.co/query?function=STOCHRSI&symbol={symbol}&interval={interval}&time_period={time_period}&series_type={series_type}&fastkperiod={fastkperiod}&fastdmatype={fastdmatype}&apikey={API_KEY}'

# APIリクエストを送信
response = requests.get(url)
data = response.json()

# データをPandas DataFrameに変換
if "Technical Analysis: STOCHRSI" in data:
    stochrsi_df = pd.DataFrame.from_dict(data['Technical Analysis: STOCHRSI'], orient='index').astype(float)
    stochrsi_df.index = pd.to_datetime(stochrsi_df.index)
    stochrsi_df = stochrsi_df.sort_index()

    # 2023年1月から7月までのデータにフィルタリング
    start_date = '2023-01-01'
    end_date = '2023-07-31'
    stochrsi_2023 = stochrsi_df[(stochrsi_df.index >= start_date) & (stochrsi_df.index <= end_date)]

    # フィルタリングされたデータを表示
    print(stochrsi_2023)
else:
    print("Error fetching data or invalid response.")

こちらの計算もプロットしてみます。

サンプルコードはここまでとします。

他にもテクニカル分析に強く、さまざまなエンドポイントが用意されていますので、ぜひドキュメントをチェックしながら、自身の分析に役立ててみてください。

なんらかのサービスを提供したりしない場合は無料版の制限で十分に役立ってくれるはずです。

API Documentation | Alpha Vantage API Documentation for Alpha Vantage. Alpha Vantage offers fre www.alphavantage.co