Strasmore Research
学習 Matt Connor著者: Matt Connor · data as of August 6, 2026 · refreshed weekly

裸オプション売りの必要証拠金とReg T計算式

裸オプション売りに必要な証拠金を、Reg Tの二つの計算式と高い方を採用するルール、Pythonコード、実際のオプションチェーンで解説します。

裸オプション売りの必要証拠金は公表された計算式で決まり、取引前に自分で計算できる。株式オプション一枚の裸売りに必要な最低額は、二つの計算結果の大きい方に、受け取ったプレミアムを加えた額となる。二つの計算は、原資産株価の20%からオプションのアウト・オブ・ザ・マネー額を差し引く方法と、10%を下限とする方法である。このページに記載するパーセンテージはすべて規制上の最低水準だ。ブローカーはこれを上回る額を口座に求めてよく、実際、多くのブローカーが上乗せしている。

裸オプション売りの必要証拠金はどう計算するのか

オプションがアンカバード、つまり裸売りとなるのは、裏付けとなる資産なしで売却された場合だ。口座に株式がない状態でコールを売る取引や、行使価格に備えた現金を確保せずにプットを売る取引が該当する。現金担保付きプットでは行使価格の全額を確保するため、別の取引形態となり、必要証拠金も異なる。

Regulation Tは、信用取引口座の信用供与に関するルールを定めている。裸オプションのパーセンテージ自体は、FINRA Rule 4210と、それに準拠した取引所の証拠金マニュアルに定められている。計算は一株単位で行い、その後、100株単位の一枚ごとに請求される。

  • 裸コールの第一計算:受取プレミアムに、原資産価格の20%を加え、アウト・オブ・ザ・マネー額(行使価格から原資産価格を差し引いた額。ただしゼロ未満の場合はゼロ)を差し引く。
  • 裸プットの第一計算:受取プレミアムに、原資産価格の20%を加え、アウト・オブ・ザ・マネー額(原資産価格から行使価格を差し引いた額。ただしゼロ未満の場合はゼロ)を差し引く。
  • コールの下限計算:受取プレミアムに、原資産価格の10%を加える。
  • プットの下限計算:受取プレミアムに、行使価格の10%を加える。

必要額は、二つの計算結果の大きい方だ。広範な指数を対象とするオプションでは、20%に代えて15%を使う。同時に、裸売りには適切なオプション取引承認レベルが設定された信用取引口座が必要であり、信用取引口座にはパターン・デイトレーダー規則も適用される。

プレミアムは両方の計算に含まれるため、金額全体を押し上げるが、どちらの計算が適用されるかは変えない。分岐を決めるのは距離だ。コールでは、行使価格が原資産価格のちょうど10%上にあるとき、二つの計算結果が一致する。プットでは、行使価格が原資産価格の約11.1%下にあるときに一致する。この距離の内側では20%計算の方が大きく、それを超えると下限計算が適用される。

20%計算と10%下限が交差する理由

下のパネルは、2026年6月の最終取引日におけるAAPLの上場行使価格を、株価の直下から株価の約18%上まで示している。満期まで20~45日の契約を対象とし、各行使価格の裸コールについて、一株当たりの二つの計算結果を算出した。形状を明確にするため、ここではプレミアムを除いている。プレミアムを加えると、二本の線が同じだけ上方へ移動する。

クエリ行使価格別、AAPL裸売りコール一枚のReg T最低必要証拠金(1株当たりドル)
各数値の背後にある正確なSQL
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 strike
Run this yourself

下限の線は水平だ。株価の10%は行使価格に左右されないため、パネル内の12個の行使価格すべてで一株28.9ドルとなる。第一計算の線は、最も低い行使価格の57.8ドルから最も高い行使価格の6.81ドルへ向けて低下する。行使価格と株価の距離が1ドル広がるたびに、その分が第一計算から差し引かれるためだ。branch_gap列は第一計算から下限を差し引いた値である。20%計算が適用される箇所ではゼロを上回り、下限が適用される箇所ではゼロを下回る。株価の10%上にある行使価格で交差する。

裸プットに必要な証拠金はいくらか

第一計算は同じだが、下限が異なる。原資産価格の10%ではなく、行使価格の10%を使う。この置き換えだけで構図が変わる。下限は水平線ではなく行使価格に沿って傾き、交差点は株価の約11%下へ移る。

クエリ行使価格別、AAPL裸売りプット一枚のReg T最低必要証拠金(1株当たりドル)
各数値の背後にある正確なSQL
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 strike
Run this yourself

このパネルのプット行使価格では、下限は最も低い行使価格の一株24ドルから最も高い行使価格の29ドルまで推移する。一方、第一計算は行使価格がアット・ザ・マネーに近づくにつれて上昇する。市場価格を大きく下回る水準では、ホイール戦略を運用する売り手が取引することも多いが、下限が適用される。この下限があるため、ディープ・アウト・オブ・ザ・マネーの裸プットでも、必要証拠金がゼロになることはない。

裸契約一枚が拘束する買付余力はいくらか

一株当たりの数値が計算式であり、契約単位の数値が口座から実際に拘束される額だ。このパネルでは、同じ2026年6月の取引日における5銘柄を対象に、各株価の5%上に最も近い上場コール行使価格を選び、二つの計算結果に契約の対象である100株を掛けている。

クエリ行使価格が約5%アウト・オブ・ザ・マネーの場合の裸売りコール一契約当たり最低必要証拠金
各数値の背後にある正確なSQL
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 DESC
Run this yourself

その距離にある裸SPYコール一枚の最低必要額は、11156ドルである。KOの場合は1252ドルだ。同じ取引であり、同じ計算式を使っている。金額を決めるのはオプション自体の特性ではなく、株価だ。ここではすべての銘柄で、アウト・オブ・ザ・マネー5%の第一計算が適用される。各組のうち高い棒が実際に適用される額だ。

短いPythonスクリプトでポジションを確認する

計算式は一つのファイルに収まる。必要なのはpython3だけで、標準ライブラリ以外は不要だ。pip installもネットワーク接続も必要ない。naked_margin.pyとして保存する。

#!/usr/bin/env python3
"""一つの裸売り株式オプションに対するReg T方式の最低必要証拠金。

必要額の二つの計算結果と、適用される方を表示する。
標準ライブラリのみ。教育目的であり、ブローカーの提示額ではない。
"""
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方式の裸オプション最低必要証拠金')
    ap.add_argument('--spot', type=float, required=True, help='原資産価格')
    ap.add_argument('--strike', type=float, required=True, help='行使価格')
    ap.add_argument('--premium', type=float, required=True, help='一株当たりプレミアム')
    ap.add_argument('--index', action='store_true', help='広範な指数の料率')
    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()

適用される計算が入れ替わるように選んだ、二つの実行例を示す。どちらも端数を丸めた仮想入力を使っている。

$ 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

最初の実行例では、行使価格が原資産価格の5%上にあり、10%の交差点の内側にある。そのため、コールとプットのいずれも第一計算が適用される。二つ目では、行使価格が原資産価格の15%下にある。コールは第一計算上イン・ザ・マネーとなり、プットは十分にアウト・オブ・ザ・マネーとなるため、10%の下限が適用される。--spot--strike--premiumを使って自分の入力を与え、広範な指数の15%計算には--indexを追加できる。表示されるのはブローカーが求める額の下限であり、上限ではない。

売却後に必要額を変える要因

必要額は一度決まったら変わらないものではない。原資産価格に基づいて毎日再計算され、原資産自体も動く。下の推移では、2026年4月のAAPLの始値から約10%上にコール行使価格を固定し、6月末まで必要額を株価に対する比率で追っている。

クエリ固定したAAPLショート・コールの行使価格:株価に対する必要証拠金の割合、2026年4月~6月
各数値の背後にある正確なSQL
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.dt
Run this yourself

このポジションは、株価の10.19%に相当する交差点上で始まり、行使価格まで9.81%の余裕を残していた。対象期間の終わりには20%となった。株価が裸コールの行使価格に近づくと、アウト・オブ・ザ・マネー額の控除が小さくなり、必要額は20%全額に近づく。ほかにも四つの要因がある。

  • 権利行使が発生するとオプションは終了し、固有の必要証拠金を伴う株式の受け渡し、または空売りポジションに移行する。裸オプションの早期権利行使は、配当やディープ・イン・ザ・マネーの行使価格の周辺で集中しやすい。
  • ブローカー独自の必要額は最低水準に上乗せされる。ブローカーは裸ポジションについて、Reg Tを上回る独自の金額を通常設定しており、ボラティリティの高い銘柄では数倍になることもある。
  • ポジションに逆行する値動きが必要額を押し上げる一方、口座の株主資本は同時に減少する。この二つの差が追加証拠金請求を生む。
  • ポートフォリオ・マージンは別の制度だ。承認された口座では、ブック全体に対するストレステストに基づき、必要額が算出される。株式の原資産を上下約15%動かす想定で、ほとんどのブローカーでは口座残高に六桁ドル規模の最低要件がある。ヘッジされたブックではReg Tを大幅に下回ることがあり、ボラティリティが上昇すると必要額もより速く動く。

これは推奨ではない。裸売りは、コールでは損失が無制限となり、プットでも非常に大きな損失を招く。オプション取引のリスクでは、データを使ってその損失分布を説明している。

よくある質問

裸プットを売るには、いくらの証拠金が必要か

規制上の最低必要額は、受取プレミアムを含む二つの計算結果の大きい方だ。原資産価格の20%からアウト・オブ・ザ・マネー額を差し引く計算と、行使価格の10%を使う計算である。株価100ドルの銘柄で、行使価格90ドルのプットを0.60ドルで売る場合、一株10.60ドルとなり、下限の9.60ドルを上回る。したがって一枚では1,060ドルとなる。ブローカーは通常、これより多くを求める。

裸オプションの必要証拠金は、すべてのブローカーで同じか

同じではない。Reg TとFINRA Rule 4210が最低水準を定めており、各ブローカーはそれを上回る独自の必要額を設定できる。単一銘柄や決算発表日前後では、多くのブローカーが上乗せする。公表された計算式で分かるのは必要額の下限であり、取引プラットフォームに表示される金額そのものではない。

受け取ったプレミアムは必要額に含まれるか

受取プレミアムは計算式の両方の分岐に加算され、取引の決済時に口座へ計上される。両方に同額が含まれるため、どちらの分岐が適用されるかは変わらない。

裸の指数オプションに必要な証拠金はいくらか

広範な指数を対象とするオプションでは、20%に代えて15%を使い、10%の下限とプレミアムの加算は同じだ。広範な指数に連動するETFのオプションは20%の株式オプションとして扱われるため、低い料率が異なる商品形態をまたいで適用されることはない。いずれも規制上の最低水準だ。

保有中に裸オプションの必要額は変わるか

変わる。原資産価格に基づいて再計算されるため、株価が動くたびに変動する。上の推移が示すように、株価が裸コールの行使価格に近づくと必要額は増える。ブローカーが保有中のポジションに対する独自の必要額を引き上げる場合もある。


ここにある各パネルには、作成に使ったSQLが付いている。どれかを展開すれば、計算分岐の内容を正確に確認できる。同じ連鎖計算をフォローしている銘柄で実行する場合は、Strasmore terminalで平易な英語により依頼すればよい。

#options#margin#reg t#naked options#risk