予測のオッズが動いたらアラートを受け取る

2026年10月24日、FRB の 10月28日の会合で変更なしとなる確率は 91.9% でした。スケジュール実行する短いスクリプトが、オッズを前回の値と比べ、変動がしきい値に達したらアラートを表示します。FRB の政策金利の見通しでは、変更なしの確率である p_hold を、前回の実行で保存した値と比較します。

APIを使う方法

GET /v1/predictions/policy-paths/federal-reserve をポーリングし、前回の値を JSON ファイルに保存しておきます。スクリプトは、レスポンスの最初の会合から p_hold を読み取ります。アラートはその会合の変更なしの確率に連動するので、しきい値を決めるときはこの結果を念頭に置いてください。

  1. APIキーを設定 無料キーを取得し、環境変数 NARWHAL_API_KEY に保存します。リクエストは Authorization: Bearer YOUR_KEY として https://api.narwhalapi.com に送ります。
  2. ポーリング用スクリプトを保存する しきい値を 10 ポイントにした Python スクリプトを使います。差の絶対値を比較するので、上昇でも下降でも、表示されるアラートの引き金になります。
    Python、10 ポイントの変動でアラート
    import json, os, pathlib
    import requests
    
    STATE = pathlib.Path("fed_hold.json")
    MOVE = 0.10  # alert when the chance of "no change" moves by 10 points or more
    path = requests.get(
        "https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve",
        headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"},
        timeout=10,
    ).json()
    hold = float(path["meetings"][0]["p_hold"])
    if STATE.exists():
        before = json.loads(STATE.read_text())["hold"]
        if abs(hold - before) >= MOVE:
            print(
                f"ALERT: chance of no change moved from {before:.1%} to {hold:.1%}"
            )  # email or chat message here
    STATE.write_text(json.dumps({"hold": hold}))
    print(f"hold {hold:.1%}")
  3. 実行の合間に状態ファイルを保持する 初回の実行では読み取った値を fed_hold.json に保存し、次回以降の実行ではオッズを比較する前にそのファイルを読み込みます。アラートを表示しなかった実行も含め、毎回の実行で読み取った値をファイルに書き戻します。
  4. スクリプトをスケジュール実行する スクリプトを毎時または毎日などのスケジュールで実行します。1 回の実行につき 1 コールを消費します。コードはアラートを表示するだけです。メールやチャットで受け取りたい場合は、スクリプト内の印のある場所を使ってください。

メールやチャットで受け取るには、コメントで示されたしきい値の条件の内側にメッセージの処理を置きます。条件の外に置くと、どの変動もしきい値に達していなくてもメッセージが送られてしまいます。

コードなしで行う

Zapier、Make、n8n では、スケジュールトリガーと、同じ政策パスへの HTTP リクエストから始めます。p_hold の読み取り値を保存しておくと、次の実行時に比較する値が手元にあります。新しい読み取り値と保存した値の差に対するフィルターを追加し、選んだしきい値に達した変動に対してメールまたはチャットのステップを置きます。

保存した値を置き換えるステップより前に、比較を置いてください。アラートには、前回の実行で保存した値と、新しいリクエストで返された値の両方が必要です。比較のあと、フィルターがメッセージを送るかどうかにかかわらず、次回の実行のために新しい読み取り値を保存します。n8n のチュートリアルと Zapier のチュートリアルは、Narwhal のチュートリアルにあるノーコードの手順です。

状況に応じた方法の選び方

状況適した方法理由
定期的なオッズの確認スケジュール実行するスクリプトオッズはライブです。実行 1 回につき 1 コールを消費します。
市場がクローズまたは決済されたときの通知Webhook(ウェブフック)Webhook は、予測イベントについて prediction.event.closed と prediction.event.settled を送ります。
フォローしたい質問が多い/v1/predictions/events のイベントをループ処理するフォローしているイベントに同じ比較を適用する。

Webhook が通知するのは、予測イベントのクローズや決済です。オッズの変化は通知しないため、ここで説明するしきい値のアラートには、ポーリングと保存した値を使ってください。クローズや決済のアラートが答えるのは、ある結果の確率が動いたかどうかとは別の問いです。

しきい値はどのくらいにすればよいですか?

追いかけている問いに合うしきい値を選んでください。確率が高い結果にとって 10 ポイントの変動は大きく、動きの少ない問いにはもっと小さいしきい値が向いています。比較しているのは確率そのものの変化なので、しきい値はパーセントポイントで考えてください。スクリプトでは MOVE = 0.10 が 10 ポイントのしきい値を表します。変更するときも、この設定は小数のままにしておきます。アラートの文面は変動前と変動後の確率をパーセントで表示するので、保存される小数と表示される確率は形式が異なります。上昇でも下降でも、しきい値に達します。

なぜ保存した値と比較するのですか?

API が返すのはリクエスト時点のオッズで、前回の読み取り値は状態ファイルに保持されています。変動を計算するには、その保存した値が必要です。初回の実行ではファイルに前の読み取り値がないため、値を保存して変動のアラートなしで変更なしの確率を表示します。

比較の相手は前回の実行で、その実行でアラートが出なかった場合も同じです。しきい値より小さい変動でも、保存した値は置き換えられます。そのため、小さな変動が積み重なっても、このスクリプトが最初に保存した値に対して累積されることはありません。スケジュール実行するスクリプトが保存したベースラインを読めるように、fed_hold.json を利用できる状態にしておいてください。ファイルがなければ、スクリプトは初回の流れに戻り、新しいベースラインを保存します。スケジュール実行では同じ作業ディレクトリを使い、毎回 fed_hold.json が同じファイルを指すようにしてください。

どのくらいの頻度で実行できますか?

クレジットの範囲内で、好きな頻度で実行できます。オッズはライブで、1 日 1 回の確認なら月に約 30 コールです。頻度を上げればコール数も増え、新しい読み取り値は毎回ファイル内の前の値と比較されます。

すべてのアカウントで、/v1/predictions/stream の予測 WebSocket ストリームも開けます。接続 1 本につき 1 コールを消費します。これは予測の更新を受け取るもう 1 つの方法です。ここで説明するポーリングのスクリプトは、保存した状態のワークフローの中で、自前の比較としきい値を持ちます。

実例:しきい値 10 ポイント

数値は 2026年10月24日のものです。2 回目の読み取り値は例示用です。初回の実行は変更なしの確率 91.9% を読み取って保存し、hold 91.9% と表示します。たとえば、翌日の読み取り値が 79.0% だったとします。保存した値からそれを引くと、変動は 12.9 ポイントです。

手順数値または結果
最初の読み取り値を保存する91.9%
翌日の例示用の値を読み取る79.0%
変動の絶対値を計算する91.9% から 79.0% への変動は 12.9 ポイント
しきい値と比較する12.9 ポイントは 10 ポイントを超えている

変動がしきい値を超えているので、スクリプトはアラートを表示し、その後、例示用の読み取り値を次回の比較用の値として保存します。

アラートの例
ALERT: chance of no change moved from 91.9% to 79.0%

公開。

次のステップ