Strasmore Research

Credit Spread بمقابلہ Debit Spread: ایک ہی trade؟

Credit spread اور debit spread: ایک ہی strikes پر دونوں verticals برابر ادا کرتے ہیں۔ payoff grid اور parity math دیکھیں، پھر تین عملی فرق سمجھیں اور بہتر structure چنیں۔

ایک ہی دو strikes، ایک ہی expiration اور ایک ہی سمت پر قائم credit spread اور debit spread دراصل ایک ہی position ہوتے ہیں۔ ایک میں ابتدا ہی میں cash موصول ہوتی ہے، جبکہ دوسرے میں cash ادا کرنی پڑتی ہے۔ expiration پر دونوں کی profit and loss lines ایک دوسرے پر منطبق ہو جاتی ہیں۔ اس حقیقت کے بعد صرف چند عملی فرق باقی رہ جاتے ہیں؛ payoff کی ساخت ان میں شامل نہیں۔

Debit اور credit کی صورت میں vertical spread کیا ہے

Vertical spread ایک ہی قسم کے دو options پر مشتمل ہوتا ہے۔ دونوں کا underlying ایک ہی ہوتا ہے اور expiration بھی ایک ہی ہوتی ہے، لیکن strike prices مختلف ہوتے ہیں۔ ایک option خریدا جاتا ہے اور دوسرا فروخت کیا جاتا ہے۔ دونوں strikes کے درمیان فرق spread کی width کہلاتا ہے، اور یہی width وہ زیادہ سے زیادہ قدر ہے جو یہ structure حاصل کر سکتا ہے۔ (دو strikes کے بجائے دو expirations ہوں تو یہ مختلف structure ہوتا ہے، جسے calendar spread کہا جاتا ہے۔)

Bull call spread میں lower-strike call خریدا جاتا ہے اور higher-strike call فروخت کیا جاتا ہے۔ خریدا جانے والا call فروخت کیے جانے والے call سے زیادہ مہنگا ہوتا ہے، اس لیے account سے cash نکلتا ہے۔ اس ادائیگی کو debit کہتے ہیں۔ Bull put spread میں higher-strike put فروخت کیا جاتا ہے اور lower-strike put خریدا جاتا ہے۔ فروخت کیا جانے والا put زیادہ قدر رکھتا ہے، اس لیے cash وصول ہوتا ہے۔ اس وصولی کو credit کہتے ہیں۔ دونوں structures کو stock کے higher strike کی طرف بڑھنے سے فائدہ ہوتا ہے، اور higher strike سے اوپر پہنچنے پر دونوں کا فائدہ مزید نہیں بڑھتا۔ انفرادی legs کی تفصیل call options خریدنا اور فروخت کرنا میں دی گئی ہے۔

Put-call parity دونوں prices کو باہم مربوط رکھتی ہے

Put-call parity ایک حسابی تعلق ہے، model نہیں۔ ایک ہی strike اور ایک ہی expiration پر call price میں سے put price منہا کرنے پر حاصل رقم، stock price میں سے وہ strike price منہا کرنے کے برابر ہوتی ہے جسے expiration سے واپس لا کر discount کیا گیا ہو۔ Put-call parity یہ واضح کرتی ہے کہ arbitrage desk اس تعلق کو برقرار کیسے رکھتا ہے۔ ذیل کا panel ایک AAPL chain میں اس identity کو دکھاتا ہے، جس کی قیمتیں Jun 12, 2026 کو close پر درج کی گئی ہیں اور contracts کی expiration Jul 17, 2026 ہے۔

استفسار کریںایک AAPL chain پر Put-call parity: call minus put بمقابلہ stock minus strike
ہر عدد کے پیچھے موجود درست SQL
SELECT
    concat('$', toString(toFloat64(strike_price)))                                AS strike,
    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c')), 2)  AS call_price,
    round(avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2)   AS put_price,
    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))
        - avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2)   AS call_minus_put,
    round(any(toFloat64(underlying_close)) - toFloat64(strike_price), 2)           AS stock_minus_strike,
    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))
        - avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p'))
        - any(toFloat64(underlying_close)) + toFloat64(strike_price), 2)           AS parity_gap,
    formatDateTime(any(date), '%b %e, %Y')                                         AS snapshot,
    formatDateTime(any(expiration_date), '%b %e, %Y')                              AS expiry
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = '2026-06-12'
  AND expiration_date = '2026-07-17'
  AND volume >= 50
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.04
GROUP BY strike_price
HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
   AND countIf(lower(option_type) IN ('put', 'p')) > 0
ORDER BY strike_price
Run this yourself

call minus put کالم کا موازنہ stock minus strike کالم سے کریں۔ $280 strike پر call، put سے 12.26 زیادہ پر بند ہوا، جبکہ stock-minus-strike کا فرق 11.52 تھا۔ یہ pairing panel میں موجود تمام 5 strikes پر دہرائی جاتی ہے۔ آخری کالم باقی ماندہ رقم دکھاتا ہے، جو صفر کے قریب رہتی ہے مگر عین صفر نہیں ہوتی۔ یہ residue expiration تک باقی ہفتوں کے لیے strike پر حاصل ہونے والا interest ہے، جس میں اس مدت کے اندر آنے والا dividend منہا کیا گیا ہے۔ Box spreads اس residue کی قیمت الگ سے طے کرتے ہیں۔

کیا bull call spread اور bull put spread کا payoff ایک جیسا ہوتا ہے؟

اس identity کو استعمال کریں۔ bull call spread کی لاگت lower-strike call کی قیمت منفی higher-strike call کی قیمت کے برابر ہوتی ہے۔ ہر call کو اس کے parity equivalent، یعنی put جمع stock منفی discounted strike، سے تبدیل کریں۔ stock کے دونوں حصے ایک دوسرے کو ختم کر دیتے ہیں۔ باقی discounted width منفی put spread کا credit رہ جاتا ہے۔ ایک جملے میں: ادا کیا گیا debit اور حاصل کیا گیا credit ہمیشہ spread کی width کے برابر ہوتے ہیں۔

اس دعوے کے ساتھ ایک عدد بھی منسلک ہے، اس لیے یہی عدد اسی chain کے ہر $5-wide vertical کے لیے پیش کیا جا رہا ہے۔

استفسار کریںایک AAPL chain میں ہر $5-wide vertical: ادا کیا گیا debit بمقابلہ لیا گیا credit
ہر عدد کے پیچھے موجود درست SQL
WITH chain AS
(
    SELECT
        toFloat64(strike_price)                                                  AS strike,
        any(toFloat64(underlying_close))                                         AS spot,
        avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))      AS call_px,
        avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p'))       AS put_px
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = '2026-06-12'
      AND expiration_date = '2026-07-17'
      AND volume >= 50
      AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.10
    GROUP BY strike
    HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
       AND countIf(lower(option_type) IN ('put', 'p')) > 0
)
SELECT
    concat('$', toString(lo.strike), ' / $', toString(hi.strike))                AS spread_strikes,
    round(lo.call_px - hi.call_px, 2)                                            AS call_debit,
    round(hi.put_px - lo.put_px, 2)                                              AS put_credit,
    round((lo.call_px - hi.call_px) + (hi.put_px - lo.put_px), 2)                AS debit_plus_credit
FROM chain AS lo
INNER JOIN chain AS hi ON hi.strike = lo.strike + 5
ORDER BY lo.strike
Run this yourself

سب سے نچلا rung deep in the money ہے، یعنی strike stock price کے مقابلے میں منافع بخش سمت میں کافی دور ہے۔ وہاں $275 / $280 call spread کی لاگت $5 width کا 3.7 تھی، جبکہ بالکل انہی strikes پر put spread نے 1.04 ادا کیا، اور دونوں کا مجموعہ 4.74 آیا۔ سب سے اوپر والے rung، $315 / $320، پر توازن الٹ جاتا ہے: 0.49 debit کے مقابلے میں 4.65 credit، جس کا مجموعہ 5.14 بنتا ہے۔ تمام 6 rungs میں مجموعہ $5 width ہی رہتا ہے، سوائے ان معمولی pennies کے جو ایک closing mark اور دوسرے کے درمیان فرق پیدا کرتی ہیں۔

Payoff grid: دونوں structures کا بالمقابل موازنہ

Ladder entry prices کے بارے میں بیان ہے۔ Payoff grid expiration کے وقت اسی بیان کو ظاہر کرتا ہے۔ یہ panel اس دن stock کی trading price کے قریب ترین strikes کا جوڑا لیتا ہے اور expiration prices کی ایک range میں دونوں structures کی قیمت dollars per share میں دکھاتا ہے۔

استفسار کریںمیعاد ختم ہونے پر Profit and loss: debit structure بمقابلہ credit structure
ہر عدد کے پیچھے موجود درست SQL
WITH chain AS
(
    SELECT
        toFloat64(strike_price)                                                  AS strike,
        any(toFloat64(underlying_close))                                         AS spot,
        avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))      AS call_px,
        avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p'))       AS put_px
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = '2026-06-12'
      AND expiration_date = '2026-07-17'
      AND volume >= 50
      AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.12
    GROUP BY strike
    HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
       AND countIf(lower(option_type) IN ('put', 'p')) > 0
)
SELECT
    concat('$', toString(px.strike))                                             AS price_at_expiry,
    round(least(greatest(px.strike - lo.strike, 0.0), hi.strike - lo.strike)
        - (lo.call_px - hi.call_px), 2)                                          AS debit_structure_pl,
    round((hi.put_px - lo.put_px)
        - least(greatest(hi.strike - px.strike, 0.0), hi.strike - lo.strike), 2) AS credit_structure_pl,
    round(least(greatest(px.strike - lo.strike, 0.0), hi.strike - lo.strike)
        - (lo.call_px - hi.call_px)
        - (hi.put_px - lo.put_px)
        + least(greatest(hi.strike - px.strike, 0.0), hi.strike - lo.strike), 2) AS pl_gap
FROM chain AS px
INNER JOIN chain AS lo ON lo.strike = floor(px.spot / 5) * 5
INNER JOIN chain AS hi ON hi.strike = lo.strike + 5
ORDER BY px.strike
Run this yourself

$275 پر، دونوں strikes سے نیچے، debit structure کی قیمت -2.6 per share اور credit structure کی قیمت -2.09 ہے۔ $320 پر، دونوں strikes سے اوپر، ان کی قیمتیں بالترتیب 2.4 اور 2.91 ہیں۔ آخری column پر توجہ دینی چاہیے، اور یہ flat ہے: grid کے نچلے حصے میں -0.51 اور اوپری حصے میں -0.51۔ مستقل فرق کسی مختلف risk profile کی نشاندہی نہیں کرتا۔ یہ ایک ہی شکل ہے، جو دو مرتبہ بنائی گئی ہے۔

Worst case اور best case دونوں rows میں strikes کے width کے ساتھ جڑتے ہیں، کیونکہ کوئی بھی structure strikes کے درمیان فاصلے سے زیادہ قیمتی نہیں ہو سکتا۔ Break-even بھی اسی arithmetic سے نکلتا ہے: call version کے لیے lower strike plus debit، اور put version کے لیے higher strike minus credit۔ چونکہ debit اور credit کا مجموعہ width کے برابر ہے، اس لیے یہ دونوں prices دراصل ایک ہی price ہیں۔

Credit spread اور debit spread میں اصل فرق کیا ہے؟

عملی طور پر تین چیزیں مختلف ہوتی ہیں، جبکہ payoff diagram ان میں شامل نہیں۔

سرمایہ کیسے مختص کیا جاتا ہے

Debit version میں maximum loss debit کے برابر ہوتا ہے، اور account entry کے وقت یہ رقم پہلے ہی ادا کر چکا ہوتا ہے۔ اس کے بعد کوئی اضافی رقم hold نہیں کی جاتی۔ Credit version میں maximum loss spread کی width میں سے credit منہا کرنے کے برابر ہوتا ہے، اور broker اس رقم کو short leg کے مقابل requirement کے طور پر اس وقت تک hold کرتا ہے جب تک position بند نہ ہو جائے یا expire نہ ہو جائے۔

رقم یکساں ہوتی ہے، صرف label مختلف ہوتا ہے۔ ایک statement میں cash نکلتا ہوا دکھائی دیتا ہے، جبکہ دوسرے میں cash آنے کے ساتھ buying power میں اس سے بڑی رقم کی کمی ظاہر ہوتی ہے۔ Defined-risk vertical کو uncovered short option سے بالکل مختلف شرائط پر handle کیا جاتا ہے۔ دونوں کا موازنہ کرنے سے پہلے یہ سمجھنا ضروری ہے: naked options فروخت کرنے کے لیے margin

Early assignment مختلف leg پر ہوتی ہے

دونوں structures میں ایک option short ہوتا ہے، اور US equity options American style ہوتے ہیں، یعنی انہیں کسی بھی business day exercise کیا جا سکتا ہے۔ فرق یہ ہے کہ short leg کب in the money ہوتی ہے۔

Bull call spread میں short leg higher-strike call ہوتی ہے۔ کامیاب scenario میں یہ in the money ہوتی ہے۔ Short calls کو early exercise کا سامنا عموماً ex-dividend date سے ایک دن پہلے ہوتا ہے، جب پیش کردہ dividend call کی باقی ماندہ time value سے زیادہ ہو۔ Ex-dividend dates اور options میں اس mechanism کی وضاحت کی گئی ہے۔

Bull put spread میں short leg higher-strike put ہوتی ہے۔ ناکام scenario میں یہ in the money ہوتی ہے۔ Deep in-the-money short puts کو strike proceeds پر ملنے والے interest کی وجہ سے جلد exercise کیا جاتا ہے۔

Assignment سے defined maximum loss تبدیل نہیں ہوتا، کیونکہ long leg برقرار رہتی ہے۔ البتہ اس سے یہ بدل جاتا ہے کہ account رات بھر کیا hold کرے گا۔ اس میں stock اور margin call دونوں شامل ہو سکتے ہیں۔ American اور European options واضح کرتا ہے کہ کون سے contracts ایسا کر سکتے ہیں۔

جب option chain میں liquidity کم ہو تو execution cost

Parity کے مطابق دونوں structures کی قدر یکساں ہوتی ہے۔ لیکن اس سے fill کی price کے بارے میں کچھ معلوم نہیں ہوتا۔ ایک chain میں volume شاذونادر ہی تمام strikes پر یکساں ہوتا ہے۔

استفسار کریںاس AAPL chain میں volume کہاں تھا: strike کے لحاظ سے call contracts بمقابلہ put contracts
ہر عدد کے پیچھے موجود درست SQL
SELECT
    concat('$', toString(toFloat64(strike_price)))                                   AS strike,
    sumIf(volume, lower(option_type) IN ('call', 'c'))                               AS call_volume,
    sumIf(volume, lower(option_type) IN ('put', 'p'))                                AS put_volume,
    round(100 * sumIf(volume, lower(option_type) IN ('put', 'p')) / sum(volume), 1)  AS put_volume_share_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = '2026-06-12'
  AND expiration_date = '2026-07-17'
  AND volume > 0
  AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.12
GROUP BY strike_price
ORDER BY strike_price
Run this yourself

$260 پر، یعنی دکھائے گئے 14 strikes میں سب سے کم strike پر، traded contracts میں puts کا حصہ 99.5% تھا۔ $325 پر، جو سب سے زیادہ strike تھا، puts کا حصہ 0% رہا۔ Chain کے کم liquid حصے میں quoted market زیادہ wide ہوتی ہے، اور یہ width entry کے وقت بھی ادا کی جاتی ہے اور exit کے وقت بھی۔ options trade کرنے کی لاگت اس کی مقداری وضاحت کرتا ہے، جبکہ liquid اور volatile options کم liquid market اور تیز رفتار market میں فرق واضح کرتا ہے۔

کیا بلند implied volatility credit version کے حق میں ہے؟

عام اصول یہ ہے: جب implied volatility بلند ہو تو premium فروخت کریں، اور جب implied volatility کم ہو تو اسے خریدیں۔ یکساں strikes پر یہ جملہ صرف input کو بیان کرتا ہے، structure کو نہیں۔ دونوں verticals کی pricing ایک ہی دو strikes پر ایک ہی volatility کی بنیاد پر ہوتی ہے، اور اوپر دیا گیا ladder اسی کا حاصل ہے۔ بلند implied volatility پر put spread فروخت کرنے اور انہی strikes پر call spread خریدنے سے books میں ایک ہی position رہتی ہے، جس میں ایک break-even اور ایک worst case ہوتا ہے۔ volatility input کے بارے میں رائے کا اظہار منتخب کیے گئے strikes اور spread کی width کے ذریعے ہوتا ہے، اور نتیجہ دونوں صورتوں میں یکساں رہتا ہے۔ کیا بلند implied volatility بہتر ہے میں خود input کا تجزیہ کیا گیا ہے۔

اکثر پوچھے جانے والے سوالات

کیا credit spread، debit spread سے زیادہ محفوظ ہوتا ہے؟

ایک ہی strikes اور expiration پر نہیں۔ worst case، best case اور break-even price یکساں ہوتے ہیں۔ credit version اپنا risk short leg کے مقابل held margin requirement کی صورت میں ظاہر کرتا ہے، جبکہ debit version یہی risk پہلے سے خرچ کی گئی cash کی صورت میں دکھاتا ہے۔

کون سا کم capital روکتا ہے؟

یکساں strikes کی صورت میں دونوں میں سے کوئی نہیں۔ debit version میں debit ادا کیا جاتا ہے اور اس کے بعد مزید کوئی رقم hold نہیں کی جاتی۔ credit version میں credit وصول ہوتا ہے اور width minus credit رقم hold کی جاتی ہے۔ یہ دونوں رقمیں برابر ہوتی ہیں، کیونکہ debit اور credit کا مجموعہ width کے برابر ہوتا ہے۔

کیا credit spread کی early assignment ہو سکتی ہے؟

ہاں۔ US equity vertical کا short leg American style ہوتا ہے اور کسی بھی business day پر account کے خلاف exercise کیا جا سکتا ہے۔ long leg اپنی جگہ برقرار رہتا ہے، اس لیے defined maximum loss برقرار رہتا ہے، اگرچہ account میں overnight stock آ سکتا ہے۔

دونوں میں انتخاب کب واقعی اہم ہوتا ہے؟

جب chain کے دونوں اطراف liquidity یکساں نہ ہو، جب اس window کے دوران dividend کی ex-dividend date آ جائے، اور جب broker کی requirement کسی ایک version کو carry کرنا سستا بنا دے۔ payoff diagram کبھی فیصلہ کن input نہیں ہوتا۔


یہاں موجود ہر panel اس کے تیار کرنے والے SQL کے ساتھ فراہم کیا گیا ہے۔ کسی بھی panel کو expand کریں تاکہ دیکھا جا سکے کہ number کیسے شمار کیا گیا۔ Strasmore terminal پر انہی queries کو کسی دوسرے ticker اور expiration پر چلائیں، اور وہاں بھی اس identity کو برقرار دیکھیں۔

#options#vertical spread#credit spread#debit spread#break-even