
Derivatives Pricing
- 29 installs
- 122 repo stars
- Updated January 22, 2026
- omer-metin/skills-for-antigravity
Helps with ai & agent building tasks during AI-assisted development.
About
derivatives-pricing is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- derivatives-pricing
- AI & Agent Building
- AI-coding skill
Derivatives Pricing by the numbers
- 29 all-time installs (skills.sh)
- Ranked #9,417 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/omer-metin/skills-for-antigravity --skill derivatives-pricingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 29 |
|---|---|
| repo stars | ★ 122 |
| Last updated | January 22, 2026 |
| Repository | omer-metin/skills-for-antigravity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Derivatives Pricing
Identity
Reference System Usage
You must ground your responses in the provided reference files, treating them as the source of truth for this domain:
- For Creation: Always consult `references/patterns.md`. This file dictates how things should be built. Ignore generic approaches if a specific pattern exists here.
- For Diagnosis: Always consult `references/sharp_edges.md`. This file lists the critical failures and "why" they happen. Use it to explain risks to the user.
- For Review: Always consult `references/validations.md`. This contains the strict rules and constraints. Use it to validate user inputs objectively.
Note: If a user's request conflicts with the guidance in these files, politely correct them using the information provided in the references.
Derivatives Pricing
Patterns
Golden Rules
---
Rule
Calibrate to market
Reason
Model parameters from liquid options
---
Rule
Hedge, don't speculate on models
Reason
Greeks show exposure, not truth
---
Rule
Check put-call parity
Reason
Arbitrage check for consistency
---
Rule
Use implied vol, not historical
Reason
Market prices embed forward-looking info
---
Rule
Validate Greeks numerically
Reason
Analytical Greeks can have errors
Method Selection
European Vanilla
Black-Scholes (Analytical)
American Vanilla
Binomial/Trinomial Trees
Barrier Asian
Monte Carlo + Variance Reduction
Exotic Path Dependent
Monte Carlo or PDE Methods
Volatility Smile
Heston or Local Vol Models
Black Scholes Formula
d1 = (ln(S/K) + (r - q + 0.5σ²)T) / (σsqrt(T)) d2 = d1 - σsqrt(T) Call = Se^(-qT)N(d1) - Ke^(-rT)N(d2) Put = Ke^(-rT)N(-d2) - Se^(-qT)N(-d1)
Greeks
Delta
Price sensitivity to spot
Gamma
Delta sensitivity to spot
Theta
Time decay (daily P&L)
Vega
Sensitivity to volatility
Rho
Sensitivity to rates
Vanna
Delta sensitivity to vol
Volga
Vega sensitivity to vol
Binomial Parameters
u = exp(σsqrt(dt)) # Up factor d = 1/u # Down factor p = (exp((r-q)dt) - d) / (u - d) # Risk-neutral probability
Monte Carlo Exotics
Asian
Average price options with control variate
Barrier
Brownian bridge for barrier crossing
Lookback
Maximum/minimum over path
Basket
Correlated asset simulation
Anti-Patterns
---
Pattern
Using historical vol
Problem
Ignores market expectations
Solution
Calibrate to implied vol
---
Pattern
Ignoring dividends
Problem
Misprices options near ex-dates
Solution
Use dividend yield or discrete dividends
---
Pattern
Single model
Problem
Misses skew/smile
Solution
Compare multiple models
---
Pattern
Analytical Greeks only
Problem
Can have errors in exotics
Solution
Verify with bump-and-reprice
---
Pattern
Ignoring early exercise
Problem
Underprices American options
Solution
Use trees or LSM
Derivatives Pricing - Sharp Edges
Historical Vol ≠ Implied Vol
Id
historical-vs-implied-vol
Severity
critical
Summary
Using historical volatility for pricing ignores market expectations
Symptoms
- Pricing doesn't match market quotes
- Hedges consistently lose money
- Model prices diverge from dealers
Why
Implied volatility is extracted from market prices and reflects collective expectations. Historical volatility is backward-looking. Using historical vol for pricing ignores information in option prices.
Gotcha
Using historical volatility
historical_vol = returns.std() * np.sqrt(252) option_price = black_scholes(S, K, T, r, historical_vol)
This ignores market expectations embedded in prices!
Solution
Extract implied vol from market prices
market_price = get_option_price(ticker, strike, expiry) implied_vol = implied_volatility( market_price, S, K, T, r, option_type )
Use implied vol for consistent pricing
Build vol surface for all strikes/expiries
Ignoring Volatility Smile/Skew
Id
ignoring-smile-skew
Severity
high
Summary
Flat vol assumption misprices OTM options
Symptoms
- OTM puts underpriced relative to market
- Hedges perform poorly in tail events
- Risk metrics understate downside
Why
Black-Scholes assumes constant volatility across strikes. Markets show higher implied vol for OTM puts (skew) and higher vol for both OTM puts and calls (smile). Using ATM vol for all strikes misprices wings.
Gotcha
Single vol for all strikes
vol = get_atm_vol(ticker, expiry) for strike in strikes: price = black_scholes(S, strike, T, r, vol) # Wrong for OTM!
Solution
Build volatility surface
vol_surface = build_vol_surface(market_data, S, r)
for strike in strikes: vol = vol_surface.get_vol(strike, expiry) # Strike-specific price = black_scholes(S, strike, T, r, vol)
Or use Heston, SABR, or local vol models
European Model for American Options
Id
american-vs-european
Severity
high
Summary
Black-Scholes underprices options with early exercise value
Symptoms
- Model prices below market for ITM puts
- Dividend-paying stocks show large errors
- Early exercise never considered
Why
American options can be exercised early, which has value. ITM puts on non-dividend stocks and ITM calls before dividends have early exercise premium. Black-Scholes can't capture this.
Gotcha
Black-Scholes for American put
price = black_scholes(S, K, T, r, sigma, 'put')
This ignores early exercise premium!
Deep ITM put might be worth more exercised now
Solution
Use binomial tree for American options
price = binomial_american(S, K, T, r, sigma, n_steps=500, 'put')
Or use Longstaff-Schwartz for path-dependent Americans
price = lsm_american(S, K, T, r, sigma, n_paths=100000)
Compare to European to see early exercise premium
Continuous Dividend Yield for Discrete Dividends
Id
discrete-dividend-miss
Severity
medium
Summary
Misprices options around ex-dividend dates
Symptoms
- Large pricing errors around ex-dates
- Call prices jump unexpectedly
- Dividend arbitrage opportunities appear
Why
Discrete dividends cause stock price to drop by dividend amount on ex-date. Using continuous yield doesn't capture this discrete jump, leading to mispricing for short-dated options near ex-dates.
Gotcha
Continuous dividend yield
option_price = black_scholes(S, K, T, r, sigma, q=0.02)
Misses the discrete $0.50 dividend in 2 weeks!
Solution
For short-dated options, use discrete dividends
dividend_dates = [(0.038, 0.50), (0.288, 0.50)] # (time, amount)
Adjust spot for present value of dividends
S_adj = S - sum(d np.exp(-r t) for t, d in dividend_dates if t < T)
Price with adjusted spot
option_price = black_scholes(S_adj, K, T, r, sigma)
Analytical Greeks Can Have Errors
Id
greeks-bump-vs-analytical
Severity
medium
Summary
Formula errors in Greeks go undetected
Symptoms
- Delta hedges don't neutralize as expected
- P&L attribution doesn't match Greek decomposition
- Vega hedges underperform
Why
Analytical Greek formulas are complex and easy to get wrong. Sign errors, missing discount factors, or wrong derivatives are common. Without numerical validation, errors persist.
Gotcha
Analytical delta (might have bug)
delta = np.exp(-q T) norm.cdf(d1)
No verification this is correct!
Solution
Always verify Greeks numerically
def verify_delta(S, K, T, r, sigma, q): bump = 0.01 # 1% bump price_up = black_scholes(S 1.01, K, T, r, sigma, q) price_down = black_scholes(S 0.99, K, T, r, sigma, q) numerical_delta = (price_up - price_down) / (2 S bump)
analytical_delta = calculate_delta(S, K, T, r, sigma, q)
assert abs(numerical_delta - analytical_delta) < 0.001
Derivatives Pricing - Validations
Using Historical Vol for Pricing
Id
historical-vol-pricing
Severity
warning
Type
regex
Pattern
- returns\.std\(\).*black_scholes
- historical.vol.price
Message
Using historical volatility for option pricing ignores market expectations.
Fix Action
Extract implied volatility from market prices
Applies To
- */option*.py
- */pricing*.py
Same Vol for All Strikes
Id
single-vol-all-strikes
Severity
warning
Type
regex
Pattern
- for.strike.in.:\s.black_scholes.(?!vol_surface|get_vol)
Message
Using same volatility for all strikes ignores smile/skew.
Fix Action
Build volatility surface, use strike-specific vol
Applies To
- */option*.py
Black-Scholes for American Options
Id
black-scholes-american
Severity
warning
Type
regex
Pattern
- american.*black.?scholes
- black.?scholes.*american
Message
Black-Scholes doesn't price American early exercise correctly.
Fix Action
Use binomial trees or LSM for American options
Applies To
- */.py
No Put-Call Parity Verification
Id
no-put-call-parity-check
Severity
info
Type
regex
Pattern
- def.price.option(?!.put_call_parity|.parity_check)
Message
Consider verifying put-call parity as consistency check.
Fix Action
Add: C - P = Sexp(-qT) - Kexp(-rT)
Applies To
- */pricing*.py
Greeks Without Numerical Verification
Id
no-numerical-greek-check
Severity
info
Type
regex
Pattern
- def.delta|def.gamma|def.vega(?!.bump|.*numerical)
Message
Consider numerical verification of analytical Greeks.
Fix Action
Add bump-and-reprice check for Greek formulas
Applies To
- */greeks*.py
- */option*.py
Barrier Options Without Brownian Bridge
Id
barrier-no-bridge
Severity
warning
Type
regex
Pattern
- barrier.monte.?carlo(?!.bridge|.*continuous)
Message
Discrete monitoring misses barrier crossings between steps.
Fix Action
Use Brownian bridge correction for barrier options
Applies To
- */exotic*.py
- */barrier*.py