Margine per vendere opzioni naked: calcolo Reg T
Quanto margine richiede la vendita di un’opzione naked? Formula minima Reg T, due rami, esempio Python e calcolo su reali option chain.
Il margine per la vendita di opzioni naked deriva da una formula pubblicata e può essere calcolato prima dell’esecuzione dell’operazione. Il requisito minimo per una singola opzione azionaria uncovered è il maggiore tra due componenti, con il premio incassato aggiunto a entrambe: il 20% del prezzo dell’azione sottostante meno l’importo per cui l’opzione è out of the money, oppure un floor del 10%. Tutte le percentuali riportate in questa pagina rappresentano minimi regolamentari. Un broker può applicare requisiti più elevati, e la maggior parte lo fa.
Come si calcola il margine per la vendita di opzioni naked?
Un’opzione è uncovered, o naked, quando viene venduta senza una posizione a copertura: una call short senza azioni in portafoglio oppure una put short senza liquidità accantonata a fronte dello strike. Una put cash secured vincola invece l’intero valore dello strike: è una struttura diversa, con un requisito diverso.
Il Regulation T stabilisce le regole sul credito per i margin account. Le percentuali relative alle opzioni uncovered sono invece contenute nella FINRA Rule 4210 e nei manuali sul margine delle borse che la recepiscono. Il calcolo viene effettuato per azione e poi applicato a ogni contratto, che copre 100 azioni:
- Call uncovered, prima componente: premio incassato, più il 20% del prezzo del sottostante, meno l’importo out of the money (strike meno sottostante, con un minimo pari a zero).
- Put uncovered, prima componente: premio incassato, più il 20% del prezzo del sottostante, meno l’importo out of the money (sottostante meno strike, con un minimo pari a zero).
- Componente floor per una call: premio incassato più il 10% del prezzo del sottostante.
- Componente floor per una put: premio incassato più il 10% dello strike price.
Il requisito è il valore più elevato tra i due. Per le opzioni su indici broad based si applica la stessa struttura, con il 15% al posto del 20%. La vendita uncovered richiede inoltre un margin account con il livello di approvazione appropriato per le opzioni, e un margin account comporta anche l’applicazione della pattern day trader rule.
Il premio compare in entrambe le componenti. Aumenta quindi l’importo complessivo, ma non cambia quale componente prevale. A determinare il risultato è la distanza dallo strike. Per una call, le due componenti sono uguali quando lo strike si trova esattamente 10% sopra il sottostante. Per una put, coincidono quando lo strike è circa 11,1% sotto il sottostante. Entro queste distanze prevale la componente del 20%. Oltre, subentra il floor.
Perché la componente del 20% incrocia il floor del 10%
Il pannello seguente analizza tutti gli strike quotati su AAPL nell’ultima sessione di giugno 2026, da poco sotto il prezzo dell’azione fino a circa il 18% sopra, considerando contratti con scadenza tra 20 e 45 giorni. Per ogni strike calcola, per azione, entrambe le componenti del requisito relative a una call uncovered. Il premio è escluso per mantenere chiara la struttura. Aggiungendolo, entrambe le linee si sposterebbero verso l’alto dello stesso importo.
L'esatto SQL dietro ogni numero
SELECT
round(toFloat64(strike_price), 2) AS strike,
round(0.20 * max(toFloat64(underlying_close))
- greatest(toFloat64(strike_price) - max(toFloat64(underlying_close)), 0.0), 2) AS main_branch,
round(0.10 * max(toFloat64(underlying_close)), 2) AS floor_branch,
round(0.20 * max(toFloat64(underlying_close))
- greatest(toFloat64(strike_price) - max(toFloat64(underlying_close)), 0.0)
- 0.10 * max(toFloat64(underlying_close)), 2) AS branch_gap
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-06-01' AND '2026-06-30'
)
AND days_to_expiry BETWEEN 20 AND 45
AND iv_converged = 1
AND volume > 0
AND toFloat64(strike_price) BETWEEN 0.98 * toFloat64(underlying_close)
AND 1.18 * toFloat64(underlying_close)
GROUP BY strike_price
ORDER BY strikeLa linea del floor è piatta. Il 10% del prezzo dell’azione non dipende dallo strike, quindi resta a $28.9 per azione su tutti gli 12 strike del pannello. La prima componente è decrescente: passa da $57.8 allo strike più basso a $6.81 a quello più alto, perché ogni dollaro aggiuntivo di distanza viene sottratto direttamente. La colonna branch_gap mostra la differenza tra la prima componente e il floor: è positiva quando prevale la componente del 20%, negativa quando prevale il floor, e si azzera allo strike 10% sopra il prezzo dell’azione.
Quanto margine richiede una put naked?
La prima componente resta la stessa, ma cambia il floor: si applica il 10% dello strike anziché il 10% del sottostante. Questa sola sostituzione modifica il profilo. Il floor non è più una linea piatta, ma segue l’andamento dello strike, e il punto di incrocio si sposta a circa l’11% sotto il prezzo dell’azione.
L'esatto SQL dietro ogni numero
SELECT
round(toFloat64(strike_price), 2) AS strike,
round(0.20 * max(toFloat64(underlying_close))
- greatest(max(toFloat64(underlying_close)) - toFloat64(strike_price), 0.0), 2) AS main_branch,
round(0.10 * toFloat64(strike_price), 2) AS floor_branch,
round(0.20 * max(toFloat64(underlying_close))
- greatest(max(toFloat64(underlying_close)) - toFloat64(strike_price), 0.0)
- 0.10 * toFloat64(strike_price), 2) AS branch_gap
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-06-01' AND '2026-06-30'
)
AND days_to_expiry BETWEEN 20 AND 45
AND iv_converged = 1
AND volume > 0
AND toFloat64(strike_price) BETWEEN 0.82 * toFloat64(underlying_close)
AND 1.02 * toFloat64(underlying_close)
GROUP BY strike_price
ORDER BY strikeTra gli strike delle put considerati, il floor va da $24 per azione allo strike più basso a $29 a quello più alto, mentre la prima componente aumenta man mano che lo strike si avvicina at the money. Molto sotto il mercato, dove spesso operano i trader che applicano la wheel strategy, il valore vincolante è il floor. È questo floor a impedire che una put naked deep out of the money possa essere mantenuta senza alcun margine.
Quanta buying power assorbe un singolo contratto naked?
I valori per azione sono quelli della formula. I valori per contratto sono quelli che vengono effettivamente sottratti al conto. Il pannello considera 5 titoli noti nella stessa sessione di giugno 2026, seleziona per ciascuno lo strike call quotato più vicino al 5% sopra il prezzo dell’azione e moltiplica entrambe le componenti per le 100 azioni coperte dal contratto.
L'esatto SQL dietro ogni numero
SELECT
ticker,
round(100 * (0.20 * share_price - greatest(strike - share_price, 0.0)), 0) AS main_branch,
round(100 * (0.10 * share_price), 0) AS floor_branch
FROM
(
SELECT
underlying_symbol AS ticker,
max(toFloat64(underlying_close)) AS share_price,
argMin(toFloat64(strike_price),
abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1.05)) AS strike
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date BETWEEN '2026-06-01' AND '2026-06-30'
)
AND days_to_expiry BETWEEN 20 AND 45
AND iv_converged = 1
AND volume > 0
GROUP BY underlying_symbol
)
ORDER BY main_branch DESCUna call uncovered SPY a quella distanza richiede un minimo di $11156 per un singolo contratto, contro $1252 per KO. L’operazione e la formula sono identiche. L’importo segue il prezzo dell’azione, non caratteristiche proprie dell’opzione. Con un’opzione 5% out of the money, per tutti i titoli considerati prevale la prima componente; in ogni coppia, conta quindi la barra più alta.
Verifica qualsiasi posizione con un breve script Python
La formula può essere contenuta in un singolo file. Servono soltanto python3 e la standard library: nessun pip install e nessuna connessione di rete. Salvalo come naked_margin.py.
#!/usr/bin/env python3
"""Minimo in stile Reg T per una singola opzione azionaria uncovered (naked).
Stampa entrambe le componenti del requisito e quella vincolante.
Solo standard library. A scopo didattico, non è una quotazione del broker.
"""
import argparse
SHARES_PER_CONTRACT = 100
def branches(kind, spot, strike, premium, rule_pct, floor_pct):
if kind == 'call':
out_of_money = max(strike - spot, 0.0)
floor_base = spot
else:
out_of_money = max(spot - strike, 0.0)
floor_base = strike
rule = rule_pct * spot - out_of_money + premium
floor = floor_pct * floor_base + premium
return rule, floor
def report(kind, spot, strike, premium, rule_pct, floor_pct):
rule, floor = branches(kind, spot, strike, premium, rule_pct, floor_pct)
if rule >= floor:
binds = '{0:.0%} branch'.format(rule_pct)
else:
binds = '{0:.0%} floor'.format(floor_pct)
print('naked {0}: spot {1:.2f}, strike {2:.2f}, premium {3:.2f}'.format(
kind, spot, strike, premium))
print(' {0:.0%} branch: {1:.2f} per share, {2:.2f} per contract'.format(
rule_pct, rule, rule * SHARES_PER_CONTRACT))
print(' {0:.0%} floor: {1:.2f} per share, {2:.2f} per contract'.format(
floor_pct, floor, floor * SHARES_PER_CONTRACT))
print(' binds: {0}, requirement {1:.2f} per contract'.format(
binds, max(rule, floor) * SHARES_PER_CONTRACT))
def main():
ap = argparse.ArgumentParser(description='Minimo in stile Reg T per opzioni naked')
ap.add_argument('--spot', type=float, required=True, help='prezzo del sottostante')
ap.add_argument('--strike', type=float, required=True, help='strike price')
ap.add_argument('--premium', type=float, required=True, help='premio per azione')
ap.add_argument('--index', action='store_true', help='tasso per indici broad based')
args = ap.parse_args()
rule_pct = 0.15 if args.index else 0.20
for kind in ('call', 'put'):
report(kind, args.spot, args.strike, args.premium, rule_pct, 0.10)
if __name__ == '__main__':
main()
Due esecuzioni, scelte in modo che la componente vincolante cambi tra l’una e l’altra. In entrambi i casi vengono usati input ipotetici arrotondati.
$ python3 naked_margin.py --spot 100 --strike 105 --premium 1.50
naked call: spot 100.00, strike 105.00, premium 1.50
20% branch: 16.50 per share, 1650.00 per contract
10% floor: 11.50 per share, 1150.00 per contract
binds: 20% branch, requirement 1650.00 per contract
naked put: spot 100.00, strike 105.00, premium 1.50
20% branch: 21.50 per share, 2150.00 per contract
10% floor: 12.00 per share, 1200.00 per contract
binds: 20% branch, requirement 2150.00 per contract
$ python3 naked_margin.py --spot 100 --strike 85 --premium 0.60
naked call: spot 100.00, strike 85.00, premium 0.60
20% branch: 20.60 per share, 2060.00 per contract
10% floor: 10.60 per share, 1060.00 per contract
binds: 20% branch, requirement 2060.00 per contract
naked put: spot 100.00, strike 85.00, premium 0.60
20% branch: 5.60 per share, 560.00 per contract
10% floor: 9.10 per share, 910.00 per contract
binds: 10% floor, requirement 910.00 per contract
Nella prima esecuzione lo strike è 5% sopra il sottostante, quindi rientra nella zona di incrocio del 10%; la prima componente prevale sia per la call sia per la put. Nella seconda, lo strike è 15% sotto il sottostante: per la call la prima componente resta vincolante, mentre per la put la distanza è sufficiente a far prevalere il floor del 10%. Inserisci i tuoi dati usando --spot, --strike e --premium e aggiungi --index per il valore del 15% applicato agli indici broad based. Il risultato rappresenta il minimo che un broker potrà richiedere, mai un limite massimo.
Cosa cambia nel requisito dopo la vendita
L’importo non viene fissato una volta per tutte. Viene ricalcolato ogni giorno in funzione del prezzo del sottostante, che può muoversi. La traccia seguente fissa uno strike call short a circa il 10% sopra il livello di apertura di AAPL nell’aprile 2026 e segue il requisito, espresso come percentuale del prezzo dell’azione, fino alla fine di giugno.
L'esatto SQL dietro ogni numero
SELECT
toString(d.dt) AS session_date,
round(d.px, 2) AS underlying_close,
round(100 * (s.short_strike - d.px) / d.px, 2) AS cushion_pct,
round(100 * greatest(0.20 * d.px - greatest(s.short_strike - d.px, 0.0),
0.10 * d.px) / d.px, 2) AS requirement_pct
FROM
(
SELECT
date AS dt,
max(toFloat64(underlying_close)) AS px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-04-01' AND '2026-06-30'
GROUP BY date
) AS d
CROSS JOIN
(
SELECT round(1.10 * argMin(toFloat64(underlying_close), date), 0) AS short_strike
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-04-01' AND '2026-06-30'
) AS s
ORDER BY d.dtLa posizione parte sul punto di incrocio, a 10.19% del prezzo dell’azione, con 9.81% di margine rispetto allo strike, e termina il periodo considerato a 20%. Quando un titolo sale verso lo strike di una call short, la detrazione relativa alla distanza out of the money diminuisce e il requisito si avvicina al 20% pieno. Anche altri quattro elementi possono modificarlo:
- L’assegnazione chiude l’opzione e trasferisce al conto una posizione long o short sul titolo, con un proprio requisito. Le assegnazioni anticipate delle opzioni short si concentrano in prossimità dei dividendi e sugli strike deep in the money.
- I requisiti interni del broker si aggiungono al minimo regolamentare. Per le posizioni uncovered i broker fissano abitualmente valori superiori a quelli del Reg T, talvolta multipli del minimo sui titoli più volatili.
- Un movimento sfavorevole alla posizione aumenta il requisito mentre il patrimonio del conto diminuisce. È la differenza tra i due valori a generare una maintenance call.
- Il portfolio margin è un regime distinto. Per un conto approvato, il requisito deriva da uno stress test sull’intero portafoglio, nell’ordine di un movimento del 15% al rialzo o al ribasso del sottostante azionario, con un patrimonio minimo di sei cifre presso la maggior parte dei broker. Per un portafoglio hedged l’importo può risultare molto inferiore a quello previsto dal Reg T e aumenta più rapidamente quando cresce la volatilità.
Nulla di tutto questo costituisce una raccomandazione. La vendita uncovered comporta una perdita potenzialmente illimitata sul lato call e molto elevata sul lato put; quanto è rischioso fare trading di opzioni analizza questa distribuzione con dati concreti.
FAQ
Quanto margine serve per vendere una put naked?
Il minimo regolamentare è il maggiore tra due componenti, entrambe comprensive del premio incassato: il 20% del prezzo del sottostante meno l’importo out of the money, oppure il 10% dello strike price. Su un titolo a $100, una put con strike $90 venduta a $0,60 richiede $10,60 per azione, contro un floor di $9,60, pari a $1.060 per un contratto. I broker richiedono comunemente importi più elevati.
Il margine per un’opzione naked è uguale presso tutti i broker?
No. Il Reg T e la FINRA Rule 4210 fissano il minimo, ma ogni broker può aggiungere un requisito interno superiore. Molti lo fanno sui singoli titoli e in prossimità delle date di pubblicazione degli utili. La formula pubblicata indica il limite inferiore, non l’importo che verrà mostrato dalla piattaforma.
Il premio che incasso concorre al requisito?
Il premio incassato viene aggiunto a entrambe le componenti della formula e accreditato sul conto quando l’operazione viene regolata. Non cambia mai quale componente prevale, perché compare su entrambi i lati per lo stesso importo.
Qual è il margine per un’opzione naked su indice?
Per le opzioni su indici broad based si applica il 15% anziché il 20%, con lo stesso floor del 10% e lo stesso termine relativo al premio. Le opzioni su un ETF che replica un indice broad based sono trattate come opzioni azionarie e seguono il valore del 20%; la percentuale più bassa non si trasferisce all’esposizione attraverso strumenti diversi. Entrambi i valori restano minimi regolamentari.
Il requisito per un’opzione naked può cambiare mentre la detengo?
Sì. Viene ricalcolato in funzione del prezzo del sottostante e quindi cambia ogni volta che si muove il titolo, come mostra la traccia precedente. Un rialzo verso lo strike di una call short aumenta l’importo; inoltre il broker può innalzare il proprio requisito interno anche su una posizione già aperta.
Ogni pannello contiene l’SQL che lo ha prodotto. Espandendolo, puoi vedere esattamente come è stata calcolata ciascuna componente. Per applicare lo stesso calcolo della chain a un titolo che segui, chiedilo in linguaggio naturale sul terminale Strasmore.