예측시장 배당률 확률 변환 가이드

2026년 10월 24일 예시에서 가격 0.88은 내재 확률 88.0%를 뜻했습니다. 한 질문의 모든 결과에 대한 원시 가격의 합이 1을 넘으면 각 가격을 그 합계로 나눕니다.

API 사용 방법

2026년 10월 24일 예시에서 플랫폼 가격은 결과를 0에서 1 사이, 지급액 1달러당 달러로 호가하는 관례를 따릅니다. 따라서 가격이 그 결과의 원시 내재 확률이 됩니다. 정규화에서는 가격을 함께 사용합니다. 합계가 한 질문의 모든 결과에 걸쳐 있기 때문입니다.

Narwhal은 결과마다 플랫폼 간 통합된 probability를 반환하며, 각 플랫폼에는 자체 quotes도 있습니다. 계산하기 전에 어떤 필드가 필요한지 정하세요. 반환된 확률은 그대로 읽으면 되고, 원시 결과 가격에는 Python 예제의 변환을 사용합니다. REST와 MCP는 같은 API 키를 사용하므로 Narwhal 계정의 키를 쓰세요.

  1. API 키 받기 무료 키를 발급받아 환경 변수 NARWHAL_API_KEY에 보관하세요. 요청을 보낼 때는 그 키를 Authorization: Bearer YOUR_KEY 헤더에 넣습니다.
  2. 질문 읽기 2026년 10월 28일 연준 결정에 대해서는 https://api.narwhalapi.com의 GET /v1/predictions/scalar/usa-fed-2026-10을 사용합니다. 통합 결과는 각 결과의 probability에서, 플랫폼 자체 가격은 venue의 quotes에서 읽습니다.
  3. 배당률은 날짜와 함께 읽기 각 스냅샷에는 as_of가 있습니다. 2026년 10월 24일자 스냅샷의 as_of는 2026-10-24T00:00:00Z입니다. 여기서 가져온 수치에는 이 날짜를 함께 기록하세요.
  4. 필요하면 원시 가격을 정규화하기 2026년 10월 24일자 예시용 원시 가격에서는 같은 질문의 모든 결과 가격을 더한 뒤 각 가격을 그 합계로 나눕니다. 원시 가격에서 시작할 때 이 계산을 쓰세요. Narwhal이 반환하는 probability 값은 이미 합이 1입니다.
    Python, 원시 가격에서 확률로
    # A venue quotes each outcome as a price between 0 and 1 (cents on the dollar).
    # Narwhal returns the probabilities already
    # normalised, but if you start from raw prices you remove the overround yourself.
    yes_prices = {"cut": 0.05, "hold": 0.88, "hike": 0.10}  # example raw prices, sum 1.03
    total = sum(yes_prices.values())
    for outcome, price in yes_prices.items():
        print(
            f"{outcome:5} price {price:.2f}  implied {price:.1%}  "
            f"normalised {price / total:.1%}"
        )
    print("overround", round(total - 1, 2))

스프레드시트 또는 코드 없이 계산

같은 질문의 모든 결과에 대한 원시 가격을 스프레드시트에 넣습니다. 2026년 10월 24일자 예시에서는 가격에 B2:B4를 쓰고, 첫 번째 가격 옆에 =B2/SUM($B$2:$B$4)를 입력합니다. 수식을 나머지 가격 옆에 복사하고 결과를 백분율로 서식 지정합니다.

달러 기호 덕분에 수식을 복사해도 합계가 같은 범위에 고정됩니다. 각 행은 자기 가격을 분자로, 모든 결과 가격의 집합을 분모로 씁니다. 정규화는 질문 전체의 합계를 쓰므로 범위에 모든 결과를 포함하세요.

계산 없이 질문을 읽고 싶다면 Narwhal 예측 페이지를 여세요. 확률이 그대로 표시됩니다. 원시 가격 묶음에서 시작해 원래 호가 옆에서 각 나눗셈 결과를 보고 싶을 때는 시트를 사용하세요.

상황별 계산 방법

상황적합한 방법이유
앱에서 질문 하나 보기API가 주는 확률 읽기이미 정규화되어 있습니다
다른 출처의 원시 가격각 가격을 합계로 나누기이렇게 하면 오버라운드가 제거됩니다
소수, 분수, 아메리칸 배당률공식으로 변환한 뒤 정규화하기변환하면 원시 내재 확률이 나옵니다

소수, 분수, 아메리칸 배당률

먼저 배당률이 표기된 방식에 맞는 공식을 사용합니다. 소수 배당률 d의 내재 확률은 1/d입니다. 분수 배당률 a/b에는 b/(a+b)를 씁니다. 양수 아메리칸 배당률 +X에는 100/(X+100), 음수 아메리칸 배당률 -X에는 X/(X+100)을 쓰며, X는 표기된 숫자의 크기입니다.

2026년 10월 24일자 이 예시들에서 소수 배당률 2.50, 분수 배당률 3/2, 아메리칸 배당률 +150은 모두 내재 확률 40.0%를 뜻합니다. 아메리칸 배당률 -200은 66.7%입니다. 호가 형식에 맞는 함수를 고르고, 반환된 값을 백분율로 표현하세요.

아메리칸 함수는 부호가 있는 호가를 받으므로 플러스나 마이너스 부호를 그대로 붙여 두세요. 음수 호가에서는 함수가 나눗셈에 그 크기를 사용합니다. 분수 함수는 분자와 분모를 따로 받으므로, 분수 호가와 같은 순서로 넣으세요.

Python, 배당률 형식에서 확률로
def from_decimal(d):          # decimal odds, e.g. 2.50
    return 1 / d

def from_fractional(a, b):    # fractional odds a/b, e.g. 3/2
    return b / (a + b)

def from_american(x):         # American odds, e.g. +150 or -200
    return 100 / (x + 100) if x > 0 else -x / (-x + 100)

print(f"decimal 2.50   -> {from_decimal(2.50):.1%}")
print(f"fractional 3/2 -> {from_fractional(3, 2):.1%}")
print(f"American +150  -> {from_american(150):.1%}")
print(f"American -200  -> {from_american(-200):.1%}")

이 공식들은 호가를 하나씩 변환합니다. 같은 시장의 모든 결과에 대한 배당률이 있다면 원시 내재 확률을 더해 각각을 그 합계로 나누세요. 호가 형식을 바꿔도 오버라운드는 사라지지 않으므로, 변환과 정규화는 별개의 계산입니다.

가격의 합이 100.0%를 넘는 이유는 무엇인가요?

스프레드와 수수료 때문에 모든 결과를 사는 데 드는 최선 가격의 합이 전체 지급액보다 약간 클 수 있습니다. 그 초과분이 오버라운드입니다. 각 원시 가격을 모든 결과의 합계로 나누면 초과분이 제거되어, 결과가 정규화된 확률의 집합으로 표현됩니다.

가격은 예측인가요?

거래자들이 지불하는 금액이며, 보장이 아니라 시장이 내재한 확률입니다.

Narwhal의 숫자를 다시 정규화해야 하나요?

아니요. 반환된 probability 값은 이미 합이 1입니다. 질문의 통합 확률이 필요하면 그 값을 그대로 읽으세요. 원시 호가에는 원시 가격 계산을 적용하고, 반환된 확률을 아직 오버라운드가 남은 가격으로 취급하지 마세요.

계산 예시: 원시 결과 가격 변환하기

이 예시의 수치는 2026년 10월 24일 기준입니다.

예를 들어 원시 가격이 인하 0.05, 동결 0.88, 인상 0.10이라고 합시다. 더하면 1.03입니다. 이 합계에서 전체 지급액 1을 빼면 오버라운드는 0.03, 즉 3%p입니다.

각 가격을 1.03으로 나누면 합계에서 차지하는 몫이 나옵니다. 원시 내재 확률 백분율은 가격에서 바로 나오고, 정규화된 백분율은 이 공통 분모를 씁니다. 가격 전체가 계산에 들어가도록 모든 결과에 같은 분모를 쓰세요.

결과원시 가격원시 내재 확률계산정규화된 확률
금리 인하0.055.0%0.05 / 1.034.9%
금리 동결0.8888.0%0.88 / 1.0385.4%
금리 인상0.1010.0%0.10 / 1.039.7%

에 게시되었습니다.

다음 단계