본문으로 건너뛰기
🛠️ToolsShed

Options Profit Calculator

만기 시점의 콜 옵션과 풋 옵션의 손익을 계산하고 손익분기점, 최대 이익, 최대 손실을 표시합니다.

-$300.00
최대 손실
무제한
최대 수익
108.00
손익분기점
외가격(OTM)
옵션의 내재가치
주가P&L
$70.00-$300.00
$76.65-$300.00
$83.30-$300.00
$89.95-$300.00
$96.60-$300.00
$103.25-$300.00
$109.90+$190.00
$116.55+$855.00
$123.20+$1,520.00
$129.85+$2,185.00
$136.50+$2,850.00

교육 목적으로만 사용됩니다. 재무 조언이 아닙니다.

이 도구 소개

옵션 손익 계산기는 트레이더와 투자자가 만기 시점의 옵션 포지션의 재정적 결과를 빠르게 파악할 수 있도록 도와줍니다. 단순한 콜 또는 풋 전략 분석부터 더 복잡한 다중 다리 포지션 평가까지, 이 도구는 기초 자산 가격의 전체 범위에 걸쳐 손익을 계산하여 손익분기점이 어디에 있는지, 그리고 최대 이익 또는 최대 손실이 얼마가 될 수 있는지 정확히 보여줍니다.

계산기를 사용하려면 옵션 행사 가격, 지불했거나 받은 프리미엄, 그리고 만기 시 기초 자산의 현재 가격을 입력하세요. 도구는 즉시 해당 가격에서의 손익을 표시하고, 손익분기점, 최대 이익(숏 포지션의 경우), 최대 손실(롱 포지션의 경우) 같은 중요한 임계값도 함께 보여줍니다. 이를 통해 옵션 거래 체결 전후의 위험-보상 프로파일을 쉽게 이해할 수 있습니다.

자주 묻는 질문

코드 구현

from dataclasses import dataclass

@dataclass
class OptionResult:
    breakeven: float
    max_loss: float
    max_profit: float | None  # None = unlimited (call)

def call_option(stock_price, strike, premium, contracts=1):
    total_cost = premium * contracts * 100
    breakeven = strike + premium
    return OptionResult(
        breakeven=breakeven,
        max_loss=-total_cost,
        max_profit=None,  # unlimited for calls
    )

def put_option(stock_price, strike, premium, contracts=1):
    total_cost = premium * contracts * 100
    breakeven = strike - premium
    max_profit = (strike - premium) * contracts * 100
    return OptionResult(
        breakeven=breakeven,
        max_loss=-total_cost,
        max_profit=max_profit,
    )

def pnl_at_expiration(option_type, strike, premium, price_at_exp, contracts=1):
    """Calculate P&L if held to expiration."""
    if option_type == "call":
        intrinsic = max(0, price_at_exp - strike)
    else:
        intrinsic = max(0, strike - price_at_exp)
    return (intrinsic - premium) * contracts * 100

# Example: Buy 1 call contract
result = call_option(100, 105, 3)
print(f"Breakeven: ${result.breakeven}")   # $108.0
print(f"Max loss: ${result.max_loss}")     # $-300

for price in [95, 100, 105, 108, 115, 120]:
    pnl = pnl_at_expiration("call", 105, 3, price)
    print(f"  At ${price}: P&L = ${pnl:+.2f}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.