2.7.1 Rights, not obligations: calls and puts
An option is a contract in which one side buys a right and the other side sells an obligation. Everything in this session — and most of Unit 10 — follows from that asymmetry.
A call option gives its buyer the right, but not the obligation, to buy an asset — the underlying — at a fixed price, the strike price , at or before a fixed date, its expiry. A put option gives the right to sell at . The buyer pays for the right up front; that price is the option premium. The seller, or writer, collects the premium and takes on the obligation: to deliver at if a call is exercised, or to buy at if a put is. Buying makes you long the option; selling makes you short.
At expiry the holder's decision is mechanical. A call is exercised only when the stock is above the strike, so it pays ; a put pays . Notation for this session: is the underlying's price today and its price at expiry (as in Session 2.4), and are the call and put premiums (here is a put, not the price of Session 2.3), and is the time to expiry in years, because stays the number of periods. Drawn against , these payoffs are the famous hockey sticks — a payoff diagram:
The payoff ignores what you paid; the P&L at expiry subtracts the premium (like most payoff diagrams, we ignore the interest on it). The lab's running example is a $100 stock with 3-month options, a 4% risk-free rate and a 20% volatility — §2.7.6 explains where the premiums come from. The 100-strike call costs $4.49 and the 100-strike put $3.49, so the call buyer breaks even at 104.49 and the put buyer at 96.51:
| Stock at expiry | Own the stock (bought at 100) | Long 100 call | Long 100 put | Short 100 put |
|---|---|---|---|---|
| 80 | −20.00 | −4.49 | +16.51 | −16.51 |
| 90 | −10.00 | −4.49 | +6.51 | −6.51 |
| 100 | +0.00 | −4.49 | −3.49 | +3.49 |
| 110 | +10.00 | +5.51 | −3.49 | +3.49 |
| 120 | +20.00 | +15.51 | −3.49 | +3.49 |
Two things jump out. The short put column is the long put column with the sign flipped: before costs, options are a zero-sum game. And the call is leverage without a loan: if the stock rises 10% by expiry, the call returns +123%; if it does not move at all, the call returns −100%.
An option buyer can lose the premium and no more. The seller's best case is keeping the premium, and the worst case is large: a short put loses up to minus the premium, a short call without the stock has no upper limit. Buying an option buys a known worst case; selling one sells it — and gets paid for the risk.
Reading a contract
Listed options are standardised and cleared by a clearing house — in the US, the Options Clearing Corporation (OCC). A standard US equity option covers 100 shares, and premiums are quoted per share, so a $4.49 call costs $449 per contract. There are two exercise styles. American options can be exercised on any business day up to expiry; European options only at expiry. At expiry, the OCC's exercise-by-exception procedure exercises any equity option that is at least $0.01 in the money unless the holder instructs otherwise; your broker may use a different threshold (Options Industry Council, as of 2026). Two ways to trade S&P 500 options — through an ETF or on the index itself — show both conventions for exercise and settlement (Cboe fact sheet, 2026; US examples):
| SPY option (an ETF) | SPX option (the index itself) | |
|---|---|---|
| One contract is | 100 shares of the SPDR S&P 500 ETF | $100 × the index level |
| Exercise style | American — any business day | European — only at expiry |
| Settlement | physical: ETF shares change hands at | cash: the in-the-money amount × $100 |
| Settlement value | none needed: the shares are delivered | opening prices on the third Friday for standard monthlies (AM); closing prices for weeklies (PM) |
Does the exercise style matter? For a call on a stock that pays no dividends, no: early exercise throws away time value and pays the strike sooner, so an American call is worth no more than a European one (Merton 1973). For puts, and for calls just before a dividend, early exercise can pay; Session 10.1 — No-Arbitrage & Binomial Trees prices that extra right on a binomial tree. Everything else in this session uses European options.
2.7.2 Moneyness, intrinsic value & time value
An option's price splits into what it would pay if exercised right now and what the remaining time is worth. Where the stock sits relative to the strike decides the split.
Moneyness describes where today's price sits relative to the strike. A call is in the money (ITM) when — exercising now would pay — at the money (ATM) when , and out of the money (OTM) when . For a put, the labels swap sides:
Intrinsic value is what the option would pay if exercised now: for a call, for a put. Time value is everything else in the price. With the stock at $100, three strikes from the lab:
| Strike | Call: moneyness | Call price = intrinsic + time value | Put: moneyness | Put price = intrinsic + time value |
|---|---|---|---|---|
| 90 | ITM | 11.48 = 10.00 + 1.48 | OTM | 0.58 = 0.00 + 0.58 |
| 100 | ATM | 4.49 = 0.00 + 4.49 | ATM | 3.49 = 0.00 + 3.49 |
| 110 | OTM | 1.14 = 0.00 + 1.14 | ITM | 10.05 = 10.00 + 0.05 |
Why does time value exist? Because the payoff is lopsided: below the strike, bad outcomes are floored at zero; above it, good outcomes count in full. Average that hockey stick over every price the stock might reach by expiry and the floor is worth money — more the wider the spread of possible prices, so more with higher volatility and more time. That is optionality under uncertainty. The lab checks it by switching the uncertainty off: at the at-the-money call is worth only $0.995, which is — the interest saved by paying the strike later — against $4.49 at 20% volatility. The other $3.49 is optionality. With less time left there is less room to move, so time value decays: with one month to go the ATM call is worth $2.47 (fig 2.7.3). The rate of that decay is theta, one of the Greeks of Session 10.4 — The Greeks & Hedging P&L.
A European put deep in the money pays only at expiry, so it is worth about , less than its intrinsic value . In the lab, with the stock at $60 the 100 put is worth $39.00 against an intrinsic $40.00: a time value of −$1.00. An American holder would exercise instead and earn interest on the strike — one reason American puts are worth more than European ones. The table shows a milder version: the in-the-money 110 put has almost no time value. Practitioners also measure moneyness as , against the forward price, or by the option's delta (Session 10.4).
2.7.3 Put-call parity: two portfolios, one payoff
You can build a call out of a put, a share and a bond. That single fact pins the price of every European call to the price of the put with the same strike and expiry — no model, no forecast, no volatility required.
Compare two portfolios. A holds one call and a zero-coupon bond that pays at expiry, which costs today. B holds one put and one share. If the stock ends below the strike, A's call is worthless and the bond pays , while B's put pays , which with the share makes . If it ends above, both are worth . In every state both portfolios are worth :
Two things with identical payoffs must have identical prices; otherwise you buy the cheap one, sell the dear one, and keep the difference with nothing at risk — an arbitrage. Ruling that out is the law of one price, and here it gives put-call parity (Stoll 1969):
If the stock pays a continuous dividend yield , start portfolio B with shares, so that the reinvested dividends grow it to one share by expiry. Then
where is the forward price of Session 2.4 with net carry . For discrete, known dividends, replace by minus the present value of the dividends. The forward form says it all: a long call plus a short put at the same strike is a forward contract to buy at , and an at-the-money-forward call () costs exactly as much as the put.
Notice what the argument did not use: a model of how the stock moves, a volatility, anyone's forecast. Parity is model-free. The lab illustrates that claim by pricing each option on its own, by Monte Carlo: 400,000 simulated prices at expiry from a geometric Brownian motion drifting at the risk-free rate (why that drift is Session 10.1's story), each option priced as its average payoff discounted at :
S_exp = terminal_gbm(N_PATHS, S0, TAU, R_F, SIGMA, q, rng_parity) C, P, C_se, P_se, diff_se = mc_prices(S_exp, STRIKES, TAU, R_F) rhs = S0 * np.exp(-q * TAU) - STRIKES * np.exp(-R_F * TAU) # The payoff identity behind parity holds path by path, whatever the model: assert np.allclose(call_payoff(S_exp, 100.0) - put_payoff(S_exp, 100.0), S_exp - 100.0) # ... so the simulated C − P matches S·e^{−qτ} − K·e^{−rτ} within Monte Carlo error (4 standard errors), assert (parity.z.abs() < PARITY_TOL_SE).all()
At the 100 strike the simulation prices the call at $4.489 (standard error 0.010) and the put at $3.496, so 0.9933 against parity's 0.9950 — −0.11 standard errors away. With a 2% dividend yield it is 0.4764 against 0.4963 (−1.26 standard errors); the lab asserts agreement within 4 standard errors at all 7 strikes, with and without dividends (Session 3.5 covers the Monte Carlo standard error). The gap is identical at every strike, which is instructive: path by path, call payoff minus put payoff is , so all a simulation can get wrong is the average of — the forward. Swap the lognormal world for one with crash risk (an 8% chance of a −22% gap over the three months, rescaled so the average is still the forward) and individual prices move — out-of-the-money puts get dearer (§2.7.6) — but still matches parity, within 0.64 standard errors. The forward is the only property of the distribution that parity uses, and a model that got it wrong could be arbitraged with the stock and a bond alone.
Rearranging parity gives every position a synthetic twin — useful because traders use whichever is cheaper, and because it shows what a structure really is:
| You want | Build it from | Read it as |
|---|---|---|
| A long call | long put + long share + borrow | a call is a levered share with a put for insurance |
| A long put | long call + short share + lend | a put is a short sale with a call for insurance |
| A long share | long call + short put + lend | call minus put is a forward; add cash to own the share |
| A covered call (share − call) | short put + lend | a covered call is a short put in disguise |
| A protective put (share + put) | long call + lend | an insured share is a call plus cash |
Parity replicates a call with a put. Session 10.1 — No-Arbitrage & Binomial Trees goes further and replicates a call with nothing but the stock and a bond, traded as the price moves — a replicating portfolio — which prices a single option on its own. Session 10.3 — Black-Scholes-Merton takes that idea to continuous time and derives the Black-Scholes-Merton formula.
2.7.4 When parity breaks: the conversion
If quotes ever violate parity, the replication argument turns into a trade. Whether that trade is an arbitrage for you depends on your costs.
Parity is enforced by traders who check it constantly and trade any gap — the same logic as the cash-and-carry arbitrage of Session 2.4. The loop has five steps:
A worked example from the lab. The market quotes the 3-month 100 call at $5.09, $0.60 above the price parity allows, with the put fairly priced at $3.49. Then 1.595 but 0.995: the call side is rich. The conversion sells the call, buys the put, buys the share for $100 and borrows $99.00, which leaves $0.60 per share — $60 per contract — in your pocket today. At expiry the short call, long put and share are worth exactly wherever the stock ends, which repays the loan. Across 10,000 simulated endings the lab finds the same profit every time: $0.606 per share at expiry, the $0.60 plus three months' interest.
Now the costs. You sell at the bid and buy at the ask, so each leg costs half its bid-ask spread, plus commissions. With illustrative half-spreads of $0.05 per option and $0.01 per share, and $0.65 per option contract, the package costs $12.30 per contract and the net profit is $47.70. These costs assume you borrow the $99.00 a share at the risk-free rate, as a dealer can. Every extra percentage point of financing costs $24.78 per contract over three months — enough to erase the $0.25 row below — and two points ($49.63) erase the $0.60 row too. Smaller gaps do not survive even at dealer rates:
| Parity gap (per share) | Before costs, per contract | After $12.30 of costs | Verdict |
|---|---|---|---|
| $0.05 | $5 | −7.30 | a quote, not an arbitrage |
| $0.10 | $10 | −2.30 | a quote, not an arbitrage |
| $0.25 | $25 | 12.70 | trade it — only if you finance near rf |
| $0.60 | $60 | 47.70 | trade it — if it is real and your financing is cheap |
Usually it is a cost you have not counted. Quotes: a gap computed from mid prices disappears at the bid and ask. Borrowing: the reversal needs short selling, and a hard-to-borrow stock charges a borrow fee and can be recalled. Ofek, Richardson and Whitelaw (2004) find that parity violations on individual stocks lean in the direction of short-sale constraints, grow with the cost of borrowing, and persist after transaction costs: much of the "violation" is the price of the borrow. Early exercise: American options can be exercised early, so a short leg can be assigned before expiry (a short call just before a dividend, for instance). For American options on a stock with no dividends, parity weakens to a band, (Hull, ch. 11). Inputs: the wrong dividend or financing rate manufactures gaps that are not there.
2.7.5 Why options exist: structures and views
People buy and sell options for three different reasons: insurance, leverage and volatility. Each has a classic structure, and every structure is a sum of pieces you already know.
Insurance. A shareholder who fears a fall buys a put: a protective put caps the loss at a known amount for a premium, like an insurance policy with a deductible; the put's seller is the insurer. Leverage. A call buys a large exposure for a small premium (§2.7.1). A vertical spread — buy one strike, sell another with the same expiry — cuts the cost by giving up the move beyond the second strike: the bull call spread below buys the 100 call and sells the 110. Volatility. A long straddle — a call and a put on one strike — profits from a big move either way: a bet on the size of the move, not its sign. On the other side sit the sellers; their classic structure is the covered call, shares plus a short call, which collects a premium in exchange for the upside above the strike.
| Structure | Built from | The view | Max gain | Max loss | Breakeven |
|---|---|---|---|---|---|
| Covered call | share + short 105 call (receive 2.39) | flat to mildly up; happy to sell at 105 | 7.39 | 97.61 (stock to zero) | 97.61 |
| Protective put | share + long 95 put (pay 1.60) | up, but insure against a fall | unlimited | 6.60 | 101.60 |
| Long straddle | 100 call + 100 put (pay 7.98) | a big move, either way | unlimited | 7.98 | 92.02 and 107.98 |
| Bull call spread | long 100 call + short 110 call (pay 3.34) | up, moderately | 6.66 | 3.34 | 103.34 |
All figures are per share, at expiry, from the lab. The table hides the most important dimension: buying an option pays off when the stock moves more than the option's price implied, selling one when it moves less. So every structure is a view on direction and a view on volatility:
A share is a bet on direction only. An option is a bet on direction and on the size of the move relative to what its price already assumes. If you buy options, you need the stock to move more than the market expects; if you sell them, less. Getting the direction right and still losing money is the classic beginner's surprise — see question 1 below.
The covered call, honestly
Covered calls are sold as "income", so look at the whole distribution. The lab simulates 200,000 three-month outcomes for the stock, now in the real world: it drifts at 8% a year with 20% volatility — the drift and volatility of Session 2.3's asset, with this session's 4% risk-free rate. You either hold it, or hold it and sell the 105 call at the model price.
| Per share, over 3 months | Hold the stock | Covered call |
|---|---|---|
| Average P&L | 2.01 | 1.60 |
| Standard deviation | 10.22 | 6.61 |
| Chance of a profit | 56% | 65% |
| Bad case (5th percentile) | −13.83 | −11.44 |
| Good case (95th percentile) | 19.72 | 7.39 |
The covered call wins more often and swings less, but it earns less on average: it gives away the right tail (the call is exercised in 37% of paths) and keeps nearly all of the left tail — its bad case is the stock's plus the $2.39 premium, exactly. The average shortfall, $0.41, matches the theoretical $0.42: when the stock is expected to beat the risk-free rate, a fairly priced call pays out more on average than its price, so selling it gives up expected return. Here the call is priced at the stock's true volatility, so it carries no volatility risk premium: selling it simply hands the buyer part of the stock's equity premium. Real index options differ, because implied volatility has tended to exceed the volatility that followed (§2.7.6); Israelov and Nielsen (2015) find that index covered calls have historically earned attractive risk-adjusted returns by collecting that volatility risk premium along with the equity premium — together with a risk they argue is not compensated. Session 10.7 — Trading Volatility takes that trade apart.
2.7.6 Implied volatility: the price, quoted in volatility
Option prices cannot be compared directly: options differ in strike, expiry and underlying. Professionals convert every price into one comparable number — its implied volatility — and quote and trade that.
So far the premiums came from a black box, the Black-Scholes-Merton formula, written in the lab as a single function and clearly flagged: Session 10.3 — Black-Scholes-Merton derives it and Session 10.4 — The Greeks & Hedging P&L takes it apart. It turns six inputs into a price: spot, strike, time to expiry, the risk-free rate, the dividend yield and the volatility of the stock until expiry. You can look up the first five. The sixth cannot be observed in advance, and it matters most: higher volatility means a wider spread of outcomes and, through the hockey stick, more time value (§2.7.2). The price rises with for every call and every put:
| Volatility | 10% | 20% | 30% | 40% |
|---|---|---|---|---|
| 3-month 100 call on a $100 stock | 2.52 | 4.49 | 6.46 | 8.43 |
Because price is strictly increasing in , the map can be run backwards: for any market price there is exactly one volatility that makes the model reproduce it. That number is the option's implied volatility. It is not a forecast somebody typed in; it is a unit of quotation, the way a bond price is quoted as a yield. Traders say "the 3-month at-the-money calls are trading at 25 vol" and mean an implied volatility of 25%. Finding it is a one-dimensional root-find, and bisection is the most robust way to do it — the same halving you know from git bisect:
def implied_vol(price, S, K, tau, r_f, q=0.0, kind="call", lo=1e-4, hi=5.0, tol=1e-8): """Bisection: the σ at which bs_price(σ) = price. Returns (σ, iterations).""" f = lambda s: bs_price(S, K, tau, r_f, s, q, kind) - price # noqa: E731 — increasing in s if not f(lo) <= 0 <= f(hi): raise ValueError("price outside the range the model can produce: check no-arbitrage bounds") n = 0 while hi - lo > tol: mid = 0.5 * (lo + hi) if f(mid) > 0: hi = mid # model price too high → the answer is below mid else: lo = mid n += 1 return 0.5 * (lo + hi), n
A made-up market quote of $5.25 for the 3-month 100 call ($525 a contract) implies a volatility of 23.88%, found in 29 halvings to a tolerance of one millionth of a volatility point. For a check in your head, use the rule of thumb that follows from Brenner and Subrahmanyam (1988): an at-the-money straddle costs about (0.8 ≈ . Brenner and Subrahmanyam's formula is for a single option at the money forward, ; a straddle barely notices the difference, a single at-the-money-spot call does, and the rule loosens as grows). Here that gives $8.00 against the lab's $7.98, and running it backwards recovers 19.9%. It also says what a straddle price means: roughly the size of move the market is pricing in — a risk-neutral average, not a forecast (see the pitfall below) — here about 8% of the stock price, either way.
Now the payoff of the quote convention. Which is dearer: a 1-month at-the-money call at $2.60, or a 1-year one at $9.90? By price the question makes no sense. By implied volatility it is easy: 21.1% against 19.9%, so the cheap-looking option is the expensive one.
One more experiment, as a teaser. Invert the crash-world prices of §2.7.3 strike by strike. In the lognormal world every strike implies 20%, within 0.03 percentage points. In the crash world no single volatility fits: the 85 put implies 25.3%, the at-the-money option 18.8% and the 115 call 16.6%. The formula assumes lognormal prices with one volatility; when the real distribution has a fatter left tail, the market has to use a different volatility at each strike to get the prices right. S&P 500 index options have shown this downward slope ever since the 1987 crash (Rubinstein 1994): the volatility skew; laid out across strikes and expiries it becomes the volatility surface of Session 10.5 — The Implied Volatility Surface.
It is a price, and prices contain risk premia. Option sellers carry crash risk and want to be paid for it, so implied volatility tends to sit above the volatility that follows: Carr and Wu (2009) find that for the S&P 500 the variance implied by options has on average exceeded the variance later realized — a strongly negative variance risk premium in their convention (realized minus implied), which buyers accept to hedge against rising volatility. Option sellers collect the same thing as a positive premium: the volatility risk premium of §2.7.5. Compare implied volatility with a forecast of realized volatility (Session 5.5), and treat the gap as the thing you trade (Session 10.7) rather than as a free prediction.
The rest of the options story lives in Unit 10: Session 10.3 — Black-Scholes-Merton opens the black box, Session 10.4 — The Greeks & Hedging P&L measures how the price responds to spot, time and volatility (delta, theta, vega) and hedges it, Session 10.5 — The Implied Volatility Surface fits the surface, and Session 10.7 — Trading Volatility trades implied against realized volatility.
2.7.7 Try it
Open the companion lab, predict before you run, and break things on purpose.
1. In section 4, set MISPRICING = 0.10. Before running, predict the net profit per contract after costs; then run and read arb_net_contract. What is the smallest gap worth trading at these costs?
2. In section 3, set CRASH_P = 0. Predict the implied volatility at every strike in the smile chart, then run it. (The lab switches to asserting a flat curve at CRASH_SIGMA.) Then try CRASH_P = 0.15: what happens to the level of the curve, and what to its slope?
3. In section 5, move the covered call's strike K_CC from 105 to 110. Predict how the premium, the maximum gain and the chance of a profit change; check them against the new histogram.
Success: your predictions for steps 1 and 2 land within a few cents and a few tenths of a volatility point, and you can say in one sentence why each changed.
2.7.8 Glossary · Check yourself · Go deeper
Check yourself
1. You buy the 3-month 100 call for $4.49 with the stock at $100. At expiry the stock is at $103. What is the payoff, what is your P&L, and was the call a good idea?
2. The stock is at $100. The 110 call costs $1.14 and the 110 put $10.05. Which is in the money, what are their intrinsic and time values, and why is the put's time value so small?
3. Stock $100, 3-month 100 call quoted at $5.09, 100 put at $3.49, risk-free rate 4%, no dividends. Is there an arbitrage, and what do you trade?
4. A stock is hard to borrow. Its puts look expensive relative to its calls, and the parity arithmetic says: sell the put, buy the call, short the stock. Why might this "arbitrage" not be one?
5. You own a stock at $100, expect it to drift sideways for three months, and would happily sell it at $105. Which structure fits, and what do you give up?
6. A colleague says the 1-month at-the-money call at $2.60 is "cheap" next to the 1-year one at $9.90. Is it?
1. A box of parities. Add a bear put spread (long 110 put, short 100 put) to section 5, and combine it with the bull call spread into a box. Show that its payoff is $10 in every state and that the black box prices it at = $9.90. Explain in two sentences why that is put-call parity applied twice.
2. Newton vs bisection. Write implied_vol_newton using a numerical derivative of bs_price with respect to σ. Check it matches implied_vol to 1e-8 on the $5.25 quote and count its iterations. Then call both on a price of $0.50 for the 100 call: why should both refuse? (Hint: the lower bound .)
3. Read a real chain. On a public delayed-quote page, pick one SPY expiry and one strike near the money, and compute from mid prices and from bid/ask. SPY options are American and SPY pays dividends, so expect a band rather than an equality: is the gap inside the spread? Record the date and time of the quotes.
4. Read Hull, chapters 10–12 (mechanics, properties of stock options, trading strategies).
📚 Go deeper
- Hull, J. C. (2021). Options, Futures, and Other Derivatives, 11th ed., ch. 10 "Mechanics of options markets", ch. 11 "Properties of stock options" and ch. 12 "Trading strategies involving options". Pearson. ISBN 978-0-13-693997-9
- Natenberg, S. (2015). Option Volatility and Pricing: Advanced Trading Strategies and Techniques, 2nd ed. McGraw-Hill. ISBN 978-0-07-181877-3
- Stoll, H. R. (1969). "The Relationship Between Put and Call Option Prices." Journal of Finance 24(5), 801–824. doi:10.1111/j.1540-6261.1969.tb01694.x
- Black, F. & Scholes, M. (1973). "The Pricing of Options and Corporate Liabilities." Journal of Political Economy 81(3), 637–654. doi:10.1086/260062
- Merton, R. C. (1973). "Theory of Rational Option Pricing." Bell Journal of Economics and Management Science 4(1), 141–183. doi:10.2307/3003143
Sources for the numbers
- Ofek, E., Richardson, M. & Whitelaw, R. F. (2004). "Limited Arbitrage and Short Sales Restrictions: Evidence from the Options Markets." Journal of Financial Economics 74(2), 305–342. doi:10.1016/j.jfineco.2003.05.008
- Israelov, R. & Nielsen, L. N. (2015). "Covered Calls Uncovered." Financial Analysts Journal 71(6), 44–57. doi:10.2469/faj.v71.n6.1
- Brenner, M. & Subrahmanyam, M. G. (1988). "A Simple Formula to Compute the Implied Standard Deviation." Financial Analysts Journal 44(5), 80–83. doi:10.2469/faj.v44.n5.80
- Carr, P. & Wu, L. (2009). "Variance Risk Premiums." Review of Financial Studies 22(3), 1311–1341. doi:10.1093/rfs/hhn038
- Rubinstein, M. (1994). "Implied Binomial Trees." Journal of Finance 49(3), 771–818. doi:10.1111/j.1540-6261.1994.tb00079.x
- Cboe (2026). "SPX Index Options" fact sheet and S&P 500 Index Options product specifications. https://cdn.cboe.com/resources/spx/spx-fact-sheet.pdf · https://www.cboe.com/tradable_products/sp_500/spx_options/specifications/
- Options Clearing Corporation. Equity options product specifications (contract size), and Characteristics and Risks of Standardized Options (June 2024). https://www.theocc.com/clearance-and-settlement/clearing/equity-options-product-specifications · https://www.theocc.com/getcontentasset/a151a9ae-d784-4a15-bdeb-23a029f50b70/dfc3d011-8f63-43f6-9ed8-4b444333a1d0/riskstoc.pdf
- Options Industry Council. "Options Exercise" FAQ (automatic exercise thresholds; American and European style). https://www.optionseducation.org/referencelibrary/faq/options-exercise
Educational material only — not investment, legal or tax advice. Backtests and simulations are hypothetical. Disclaimer · Text CC BY 4.0 · Code MIT.