예측시장 확률 알림: 확률이 움직이면 알림 받기

2026년 10월 24일 기준, 10월 28일 연준 회의에서 변동이 없을 확률은 91.9%였습니다. 일정에 따라 실행되는 짧은 스크립트가 확률을 이전 값과 비교해, 변동이 임계값에 이르면 알림을 출력합니다. 연준의 정책 경로에서는 변동 없음의 확률인 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회를 사용합니다. 코드는 알림을 출력만 하며, 이메일이나 채팅으로 받으려면 스크립트에 표시된 위치를 사용하세요.

이메일이나 채팅으로 받으려면 주석으로 표시된 임계값 조건 안에 메시지 코드를 넣으세요. 조건 밖에 두면 임계값에 이르는 변동이 없어도 메시지가 전송됩니다.

코드 없이 하기

Zapier, Make, n8n에서는 예약 트리거와 같은 정책 경로로 보내는 HTTP 요청으로 시작하세요. p_hold 읽기값을 저장해 두면 워크플로가 다시 실행될 때 비교할 값이 생깁니다. 새 읽기값과 저장된 값의 차이에 필터를 추가하고, 선택한 임계값에 이른 변동에는 이메일이나 채팅 단계를 붙이세요.

저장된 값을 대체하는 단계보다 앞에 비교를 두세요. 알림에는 이전 실행에서 저장한 값과 새 요청이 반환한 값이 모두 필요합니다. 비교한 뒤에는 필터가 메시지를 보내든 보내지 않든 다음 실행을 위해 새 읽기값을 저장하세요. n8n 튜토리얼과 Zapier 튜토리얼은 Narwhal 튜토리얼 중 노코드 방식입니다.

상황별 계산 방법

상황적합한 방법이유
정기적인 확률 확인일정에 따라 실행되는 스크립트확률은 실시간입니다. 실행 한 번마다 호출 1회를 사용합니다.
시장이 마감되거나 정산될 때 알림웹훅웹훅은 예측 이벤트에 대해 prediction.event.closed와 prediction.event.settled를 보냅니다.
따라가고 싶은 질문이 많을 때/v1/predictions/events의 이벤트를 반복 처리하기팔로우하는 이벤트에 같은 비교를 적용하세요.

웹훅은 예측 이벤트의 마감이나 정산을 알려 줍니다. 확률 변화 알림은 보내지 않으므로, 여기서 설명한 임계값 알림에는 폴링과 저장된 값을 사용하세요. 마감이나 정산 알림은 어떤 결과의 확률이 움직였는지와는 다른 질문에 답합니다.

임계값은 어느 정도로 해야 하나요?

추적하는 질문에 맞는 임계값을 고르세요. 확률이 높은 결과에서는 10포인트 변동이 큰 것이고, 움직임이 적은 질문에는 더 작은 임계값이 맞습니다. 비교하는 것은 확률 자체의 변화이므로 임계값은 퍼센트 포인트로 생각하세요. 스크립트에서 MOVE = 0.10은 10포인트 임계값을 뜻합니다. 바꿀 때도 이 설정은 소수 형태로 두세요. 알림 문구는 변동 전후의 확률을 퍼센트로 표시하므로, 저장되는 소수와 출력되는 확률은 형식이 다릅니다. 상승이든 하락이든 임계값에 이를 수 있습니다.

왜 저장된 값과 비교하나요?

API는 요청 시점의 확률을 반환하고, 이전 읽기값은 상태 파일에 있습니다. 변동을 계산하려면 저장된 값이 필요합니다. 첫 실행에서는 파일에 이전 읽기값이 없으므로 값을 저장하고 변동 알림 없이 유지 확률만 출력합니다.

비교 대상은 이전 실행이며, 그 실행이 알림을 내지 않았더라도 마찬가지입니다. 임계값보다 작은 변동도 저장된 읽기값을 대체합니다. 따라서 작은 변동이 여러 번 있어도 이 스크립트가 처음 저장한 값을 기준으로 누적되지 않습니다. 예약 실행되는 스크립트가 자신이 저장한 기준값을 읽을 수 있도록 fed_hold.json을 계속 접근 가능하게 두세요. 파일이 없으면 스크립트는 첫 실행 경로를 다시 밟아 새 기준값을 저장합니다. 예약 실행에는 같은 작업 디렉터리를 사용해 fed_hold.json이 매번 같은 파일을 가리키게 하세요.

얼마나 자주 실행할 수 있나요?

크레딧이 허용하는 만큼 자주 실행할 수 있습니다. 확률은 실시간이며, 하루 한 번 확인하면 한 달에 약 30회 호출합니다. 더 자주 실행하면 호출도 늘어나고, 새 읽기값은 매번 파일 안의 이전 값과 비교됩니다.

모든 계정에서 /v1/predictions/stream의 예측 WebSocket 스트림도 열 수 있으며, 연결 한 번에 호출 1회를 사용합니다. 이는 예측 업데이트를 받는 또 다른 방법입니다. 여기서 설명한 폴링 스크립트는 저장된 상태 워크플로 안에서 자체 비교와 임계값을 유지합니다.

실제 예시: 임계값 10포인트

수치는 2026년 10월 24일 기준입니다. 두 번째 읽기값은 예시입니다. 첫 실행은 유지 확률 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%

에 게시되었습니다.

다음 단계