Margin Jual Naked Options: Perhitungan Reg T
Pelajari perhitungan minimum margin Reg T untuk menjual naked options, kedua cabang formula, contoh Python singkat, dan penerapannya pada option chain.
Margin untuk menjual naked options berasal dari formula yang dipublikasikan, dan Anda dapat menghitungnya sendiri sebelum trade dijalankan. Minimum untuk satu uncovered equity option adalah nilai yang lebih besar dari dua cabang, dengan premium yang diterima ditambahkan pada masing-masing cabang: 20% dari harga saham dasar dikurangi jumlah ketika option berada out of the money, atau floor sebesar 10%. Setiap persentase di halaman ini merupakan minimum regulasi. Broker bebas menetapkan requirement yang lebih tinggi, dan sebagian besar broker melakukannya.
Bagaimana margin untuk menjual naked options dihitung?
Option disebut uncovered, atau naked, ketika option tersebut dijual tanpa aset penyangga: short call tanpa saham di akun, atau short put tanpa kas yang disisihkan untuk strike. Put dengan jaminan kas menyisihkan seluruh nilai strike, sehingga merupakan pengaturan berbeda dengan requirement yang berbeda.
Regulation T menetapkan aturan kredit untuk margin account. Persentase uncovered option itu sendiri tercantum dalam FINRA Rule 4210 dan manual margin bursa yang mengacu padanya. Perhitungannya dilakukan per saham, lalu dibebankan per contract yang mencakup 100 saham:
- Uncovered call, cabang pertama: premium yang diterima, ditambah 20% dari harga underlying, dikurangi jumlah out of the money (strike dikurangi underlying, dengan batas bawah nol).
- Uncovered put, cabang pertama: premium yang diterima, ditambah 20% dari harga underlying, dikurangi jumlah out of the money (underlying dikurangi strike, dengan batas bawah nol).
- Cabang floor untuk call: premium yang diterima ditambah 10% dari harga underlying.
- Cabang floor untuk put: premium yang diterima ditambah 10% dari strike price.
Requirement yang berlaku adalah nilai yang lebih besar. Broad based index options menggunakan bentuk formula yang sama, tetapi 15% menggantikan 20%. Penjualan uncovered juga memerlukan margin account dengan tingkat persetujuan options yang sesuai, dan margin account membawa serta pattern day trader rule.
Premium masuk ke kedua cabang, sehingga menaikkan seluruh nilai tanpa mengubah cabang yang berlaku. Jarak strike yang menentukan. Untuk call, kedua cabang sama ketika strike tepat 10% di atas underlying. Untuk put, keduanya sama ketika strike sekitar 11,1% di bawahnya. Dalam jarak tersebut, cabang 20% lebih besar. Di luar jarak tersebut, floor yang berlaku.
Mengapa cabang 20% dan floor 10% berpotongan
Panel di bawah mencakup setiap strike AAPL yang tercatat pada sesi terakhir Juni 2026, mulai dari sedikit di bawah harga saham hingga sekitar 18% di atasnya, dengan contract yang memiliki waktu 20 hingga 45 hari sebelum expiry. Panel menghitung kedua cabang per saham untuk uncovered call pada setiap strike. Premium tidak disertakan agar bentuknya tetap jelas. Penambahannya akan menggeser kedua garis ke atas secara bersamaan.
SQL tepat di balik setiap angka
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 strikeGaris floor datar. Sepuluh persen dari harga saham tidak bergantung pada strike, sehingga nilainya tetap sebesar $28.9 per saham untuk seluruh 12 strike dalam panel. Cabang pertama menurun, dari $57.8 pada strike terendah hingga $6.81 pada strike tertinggi, karena setiap tambahan satu dolar jarak langsung mengurangi nilainya. Kolom branch_gap adalah cabang pertama dikurangi floor: bernilai positif ketika cabang 20% berlaku, negatif ketika floor berlaku, dan berpotongan pada strike 10% di atas harga saham.
Berapa margin yang diperlukan untuk naked put?
Cabang pertama sama, tetapi floor-nya berbeda: 10% dari strike, bukan 10% dari underlying. Perubahan tunggal ini mengubah hasilnya. Floor tidak lagi berupa garis datar dan bergerak mengikuti strike, sementara titik perpotongannya bergeser menjadi sekitar 11% di bawah harga saham.
SQL tepat di balik setiap angka
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 strikeUntuk strike put di sini, floor bergerak dari $24 per saham pada strike terendah hingga $29 pada strike tertinggi, sementara cabang pertama meningkat ketika strike mendekati at the money. Jauh di bawah pasar, tempat penjual yang menjalankan strategi wheel sering beroperasi, floor menjadi nilai yang berlaku. Floor tersebut mencegah naked put yang jauh out of the money untuk dibawa tanpa requirement.
Berapa buying power yang terikat oleh satu naked contract?
Nilai per saham adalah formula. Nilai per contract adalah jumlah yang mengurangi saldo akun. Panel ini mencakup 5 saham berkapitalisasi besar pada sesi yang sama di Juni 2026, memilih call strike yang tercatat dan paling dekat dengan 5% di atas setiap harga saham, lalu mengalikan kedua cabang dengan 100 saham yang dicakup satu contract.
SQL tepat di balik setiap angka
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 DESCSatu uncovered SPY call pada jarak tersebut memiliki minimum $11156 untuk satu contract, dibandingkan dengan $1252 untuk KO. Trade dan formula yang digunakan identik. Nilainya mengikuti harga saham, bukan karakteristik option itu sendiri. Pada posisi 5% out of the money, cabang pertama berlaku untuk semua nama di sini, dan batang yang lebih tinggi dalam setiap pasangan adalah nilai yang digunakan.
Periksa posisi apa pun dengan skrip Python singkat
Formula ini dapat dimuat dalam satu file. Yang diperlukan hanya python3: standard library, tanpa pip install dan tanpa network. Simpan sebagai naked_margin.py.
#!/usr/bin/env python3
"""Reg T style minimum for one uncovered (naked) equity option.
Prints both branches of the requirement and the one that binds.
Standard library only. Educational, not a broker quote.
"""
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='Reg T style naked option minimum')
ap.add_argument('--spot', type=float, required=True, help='underlying price')
ap.add_argument('--strike', type=float, required=True, help='strike price')
ap.add_argument('--premium', type=float, required=True, help='premium per share')
ap.add_argument('--index', action='store_true', help='broad based index rate')
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()
Dua kali eksekusi berikut dipilih agar cabang yang berlaku berbalik di antara keduanya. Keduanya menggunakan input hipotetis yang dibulatkan.
$ 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
Pada eksekusi pertama, strike berada 5% di atas underlying, masih dalam area perpotongan 10%, sehingga cabang pertama berlaku baik untuk call maupun put. Pada eksekusi kedua, strike berada 15% di bawah underlying. Kondisi ini membuat call berada in the money untuk cabang pertama dan membuat put cukup jauh out of the money sehingga floor 10% berlaku. Masukkan input Anda sendiri dengan --spot, --strike, dan --premium, lalu tambahkan --index untuk angka 15% broad based index. Hasilnya adalah batas bawah yang akan diminta broker, bukan batas atas.
Apa yang mengubah requirement setelah option dijual?
Nilainya tidak ditetapkan satu kali. Requirement dihitung ulang setiap hari berdasarkan harga underlying, dan underlying terus bergerak. Trace di bawah menetapkan short call strike sekitar 10% di atas harga pembukaan AAPL pada April 2026, lalu mengikuti requirement sebagai persentase harga saham hingga akhir Juni.
SQL tepat di balik setiap angka
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.dtPosisi dimulai tepat pada titik perpotongan, yaitu 10.19% dari harga saham dengan 9.81% ruang hingga strike, dan mengakhiri periode pada 20%. Ketika saham naik mendekati short call strike, pengurang out of the money menyusut dan requirement bergerak naik menuju 20% penuh. Empat faktor lain juga dapat mengubahnya:
- Assignment mengakhiri option dan menyerahkan saham atau posisi short stock dengan requirement tersendiri. Early assignment pada short options sering terjadi di sekitar tanggal dividen dan strike yang jauh in the money.
- House requirement ditambahkan di atas minimum. Broker secara rutin menetapkan angka di atas Reg T untuk posisi uncovered, terkadang beberapa kali lipat untuk saham yang volatil.
- Pergerakan yang merugikan posisi menaikkan requirement, sementara ekuitas akun turun pada saat yang sama. Selisih antara keduanya menghasilkan maintenance call.
- Portfolio margin merupakan rezim terpisah. Akun yang disetujui dikenai requirement berdasarkan stress test atas seluruh portofolio, dengan asumsi pergerakan sekitar 15% naik atau turun pada underlying ekuitas, serta minimum akun enam digit di sebagian besar broker. Untuk portofolio yang di-hedge, nilainya dapat jauh di bawah Reg T, dan berubah lebih cepat ketika volatilitas meningkat.
Semua ini bukan rekomendasi. Penjualan uncovered memiliki potensi kerugian tidak terbatas pada sisi call dan sangat besar pada sisi put. Seberapa berisiko trading options membahas distribusi tersebut menggunakan data.
FAQ
Berapa margin yang saya perlukan untuk menjual naked put?
Minimum regulasi adalah nilai yang lebih besar dari dua cabang, dan keduanya mencakup premium yang diterima: 20% dari harga underlying dikurangi jumlah out of the money, atau 10% dari strike price. Pada saham seharga $100, put dengan strike $90 yang dijual seharga $0,60 menghasilkan $10,60 per saham dibandingkan floor $9,60, sehingga nilainya $1.060 untuk satu contract. Broker umumnya mensyaratkan lebih banyak.
Apakah margin naked option sama di setiap broker?
Tidak. Reg T dan FINRA Rule 4210 menetapkan minimum, dan setiap broker dapat menambahkan house requirement di atasnya. Banyak broker melakukannya untuk saham individual dan di sekitar tanggal earnings. Formula yang dipublikasikan menunjukkan batas bawah, bukan angka yang akan ditampilkan platform Anda.
Apakah premium yang saya terima dihitung dalam requirement?
Premium yang diterima ditambahkan ke kedua cabang formula dan dikreditkan ke akun ketika trade diselesaikan. Premium tidak pernah mengubah cabang yang berlaku karena muncul di kedua sisi dengan nilai yang sama.
Berapa margin untuk naked index option?
Broad based index options menggunakan 15% sebagai pengganti 20%, dengan floor 10% dan komponen premium yang sama. Options atas ETF yang melacak broad index diperlakukan sebagai equity options dengan angka 20%, sehingga persentase yang lebih rendah tidak berlaku hanya karena eksposurnya sama. Keduanya tetap merupakan minimum regulasi.
Dapatkah requirement naked option berubah selama option tersebut saya pegang?
Ya. Requirement dihitung ulang berdasarkan harga underlying, sehingga berubah setiap kali saham bergerak, seperti ditunjukkan trace di atas. Kenaikan menuju short call strike menaikkan nilainya, dan broker juga dapat menaikkan house requirement pada posisi yang masih terbuka.
Setiap panel di sini menyertakan SQL yang menghasilkan data tersebut. Buka panel mana pun untuk melihat secara tepat cara suatu cabang dihitung. Untuk menjalankan perhitungan yang sama pada saham yang Anda ikuti, minta dengan bahasa biasa melalui terminal Strasmore.