Strasmore Research
Học tập Matt ConnorBởi Matt Connor

Credit spread và debit spread có giống nhau không?

Credit spread và debit spread cùng strike có payoff như nhau. Xem bảng payoff, phép toán parity và ba điểm khác biệt thực tế giữa hai cấu trúc.

Một credit spread và một debit spread được xây dựng trên cùng hai mức giá thực hiện, cùng ngày đáo hạn và cùng hướng vị thế thực chất là cùng một vị thế. Một chiến lược thu tiền ngay từ đầu, còn chiến lược kia phải chi tiền. Khi đáo hạn, đường lãi lỗ của hai chiến lược chồng khít lên nhau. Sau khi đã hiểu điều này, chỉ còn một số khác biệt thực tế đáng kể; hình dạng payoff không nằm trong số đó.

Vertical spread dưới dạng debit và credit là gì

Vertical spread là một cặp quyền chọn cùng loại, trên cùng tài sản cơ sở, có cùng ngày đáo hạn nhưng khác strike. Một quyền chọn được mua và một quyền chọn được bán. Khoảng cách giữa hai strike là độ rộng của spread. Đây cũng là mức giá trị tối đa mà cấu trúc này có thể đạt được. (Nếu khác nhau về ngày đáo hạn thay vì strike, đó là một cấu trúc khác: calendar spread.)

Bull call spread mua call có strike thấp hơn và bán call có strike cao hơn. Call được mua có giá cao hơn call được bán, nên tiền rời khỏi tài khoản. Khoản thanh toán đó là debit. Bull put spread bán put có strike cao hơn và mua put có strike thấp hơn. Put được bán có giá trị cao hơn, nên tiền chảy vào tài khoản. Khoản thu đó là credit. Cả hai cấu trúc đều có lợi khi giá cổ phiếu tăng về phía strike cao hơn, và đều ngừng gia tăng lợi nhuận khi giá vượt strike này. Cách tháo từng chân của cấu trúc được trình bày trong mua và bán call option.

Quyền chọn mua-bán (put-call parity) liên kết hai mức giá

Put-call parity là phép tính số học, không phải mô hình. Với cùng một giá thực hiện và ngày đáo hạn, giá quyền chọn mua trừ giá quyền chọn bán bằng giá cổ phiếu trừ giá thực hiện, được chiết khấu từ ngày đáo hạn về hiện tại. Quyền chọn mua-bán (put-call parity) cho thấy một bộ phận arbitrage duy trì mối quan hệ này như thế nào. Bảng dưới đây thể hiện đẳng thức trên một chuỗi quyền chọn AAPL duy nhất, với mức giá tại thời điểm đóng cửa vào Jun 12, 2026 cho các hợp đồng đáo hạn vào Jul 17, 2026.

Truy vấnPut-call parity trên một chain AAPL: call trừ put so với cổ phiếu trừ strike
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Đối chiếu cột chênh lệch giữa giá quyền chọn mua và giá quyền chọn bán với cột chênh lệch giữa giá cổ phiếu và giá thực hiện. Tại mức giá thực hiện $280, quyền chọn mua đóng cửa cao hơn quyền chọn bán 12.26, trong khi khoảng cách giữa giá cổ phiếu và giá thực hiện là 11.52. Mối quan hệ này lặp lại ở cả 5 mức giá thực hiện trong bảng. Cột cuối cùng thể hiện phần chênh lệch còn lại. Phần này nằm gần 0 nhưng không bằng 0. Đó là tiền lãi phát sinh trên giá thực hiện trong khoảng thời gian còn lại đến ngày đáo hạn, sau khi trừ mọi khoản cổ tức trong giai đoạn này. Box spread định giá riêng phần chênh lệch đó.

Bull call spread và bull put spread có payoff giống nhau không?

Hãy áp dụng công thức đồng nhất này. Bull call spread có chi phí bằng giá quyền chọn mua (call) ở strike thấp hơn trừ giá quyền chọn mua ở strike cao hơn. Thay mỗi call bằng dạng tương đương theo put-call parity: một quyền chọn bán (put) cộng với cổ phiếu, trừ strike được chiết khấu. Các khoản liên quan đến cổ phiếu sẽ triệt tiêu. Phần còn lại là độ rộng spread đã chiết khấu trừ đi khoản tín dụng của put spread. Tóm lại, khoản debit đã trả và khoản credit nhận được luôn cộng lại bằng độ rộng của spread.

Mệnh đề này có một con số cụ thể. Dưới đây là con số đó cho mọi vertical spread rộng $5 trong cùng một chain.

Truy vấnMỗi vertical rộng $5 trên một chain AAPL: debit đã trả so với credit đã nhận
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Bậc thấp nhất nằm sâu trong vùng có lãi, tức strike cách xa về phía có lợi so với giá cổ phiếu. Tại đó, call spread $275 / $280 bằng 3.7 độ rộng $5, trong khi put spread với đúng các strike đó mang lại 1.04. Hai khoản này cộng lại thành 4.74. Ở bậc cao nhất, $315 / $320, cán cân đảo chiều: debit 0.49 so với credit 4.65, tổng cộng là 5.14. Qua toàn bộ 6 bậc, tổng vẫn bằng độ rộng $5, chênh lệch không đáng kể do vài cent giữa các mức giá đóng vị thế.

Lưới payoff: đặt hai cấu trúc cạnh nhau

Bậc thang thể hiện các mức giá vào lệnh. Lưới payoff thể hiện chính mối quan hệ đó tại thời điểm đáo hạn. Phần này lấy cặp strike gần nhất với mức giá cổ phiếu trong ngày hôm đó và định giá cả hai cấu trúc theo một khoảng giá đáo hạn, tính bằng USD trên mỗi cổ phiếu.

Truy vấnLãi và lỗ khi đáo hạn: cấu trúc debit so với cấu trúc credit
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Tại $275, thấp hơn cả hai strike, cấu trúc ghi nợ có giá -2.6 trên mỗi cổ phiếu, còn cấu trúc tín dụng có giá -2.09. Tại $320, cao hơn cả hai strike, hai cấu trúc lần lượt có giá 2.42.91. Cột cuối cùng là cột cần theo dõi, và nó không đổi: -0.51 ở cuối dưới của lưới và -0.51 ở cuối trên. Một độ lệch không đổi không tạo ra hồ sơ rủi ro khác. Đó là cùng một hình dạng được vẽ hai lần.

Mức lỗ tối đa và lợi nhuận tối đa đều cộng thêm vào độ rộng spread ở mỗi đầu, vì không cấu trúc nào có thể có giá trị lớn hơn khoảng cách giữa hai strike. Điểm hòa vốn cũng được tính từ cùng phép toán đó: strike thấp hơn cộng debit đối với phiên bản call, và strike cao hơn trừ credit đối với phiên bản put. Vì debit và credit cộng lại bằng độ rộng spread, hai mức giá hòa vốn này thực chất là một mức giá.

Credit spread và debit spread: thực tế khác nhau ở điểm nào

Trên thực tế, có ba điểm khác nhau, còn biểu đồ lợi nhuận thì không.

Cách ghi nhận khoản vốn

Mức lỗ tối đa của phiên bản debit là khoản debit, và tài khoản đã thanh toán khoản này khi mở vị thế. Không có khoản tiền nào khác bị giữ lại. Mức lỗ tối đa của phiên bản credit là độ rộng spread trừ khoản credit, và công ty môi giới giữ số tiền đó làm khoản ký quỹ cho đến khi vị thế được đóng hoặc đáo hạn. Cùng một lượng tiền, nhưng được thể hiện dưới hai tên gọi khác nhau. Một sao kê cho thấy tiền đã bị chi; sao kê kia cho thấy tiền đã vào tài khoản nhưng buying power bị giảm nhiều hơn. Vertical spread có rủi ro xác định được được xử lý hoàn toàn khác với quyền chọn bán short không có tài sản bảo đảm. Bạn nên hiểu điểm này trước khi so sánh hai cấu trúc: xem margin khi bán quyền chọn naked.

Early assignment xảy ra ở một leg khác

Cả hai cấu trúc đều có một quyền chọn short, và quyền chọn cổ phiếu Mỹ theo kiểu American, có thể được thực hiện vào bất kỳ ngày làm việc nào. Điểm khác biệt là thời điểm leg short đó ở trạng thái in the money. Trong bull call spread, leg short là call có strike cao hơn. Leg này ở trạng thái in the money trong kịch bản có lợi nhuận. Short call chủ yếu đối mặt với early exercise vào ngày trước ex-dividend date, khi cổ tức sắp nhận cao hơn time value còn lại của call. Ngày ex-dividend và quyền chọn giải thích cơ chế này. Trong bull put spread, leg short là put có strike cao hơn. Leg này ở trạng thái in the money trong kịch bản thua lỗ. Short put ở sâu trong trạng thái in the money có thể bị thực hiện sớm để nhận lãi trên khoản tiền tương ứng với strike. Assignment không làm thay đổi mức lỗ tối đa đã xác định, vì leg long vẫn còn đó. Tuy nhiên, nó làm thay đổi tài sản được giữ qua đêm trong tài khoản, có thể là cổ phiếu và một margin call. Quyền chọn American và European giải thích những hợp đồng nào có thể xảy ra việc này.

Chi phí khớp lệnh khi chain có thanh khoản thấp

Nguyên lý parity cho thấy hai cấu trúc có cùng giá trị. Tuy nhiên, nguyên lý này không nói gì về mức giá khớp lệnh. Khối lượng giao dịch hiếm khi phân bổ đối xứng trên toàn bộ chain.

Truy vấnKhối lượng tập trung ở đâu trên chain AAPL: hợp đồng call so với hợp đồng put, theo strike
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Tại $260, mức strike thấp nhất trong 14 strike được hiển thị, put chiếm 99.5% số hợp đồng được giao dịch. Tại $325, mức cao nhất, tỷ trọng put là 0%. Phía có thanh khoản thấp trong chain thường có quoted market rộng hơn. Nhà đầu tư phải trả độ rộng này khi mở vị thế và một lần nữa khi đóng vị thế. Chi phí giao dịch quyền chọn đưa ra các số liệu cụ thể, còn quyền chọn thanh khoản cao và quyền chọn biến động mạnh phân biệt thị trường thanh khoản thấp với thị trường biến động nhanh.

Biến động hàm ý cao có lợi cho phiên bản nhận tín dụng không?

Quy tắc kinh nghiệm quen thuộc là: bán premium khi biến động hàm ý cao và mua premium khi biến động hàm ý thấp. Với cùng mức giá thực hiện, câu này chỉ mô tả đầu vào, không mô tả cấu trúc giao dịch. Cả hai vertical spread đều được định giá dựa trên cùng một mức biến động tại cùng hai mức giá thực hiện, còn bậc thang ở trên cho thấy dòng tiền nhận được. Bán put spread khi biến động hàm ý ở mức cao và mua call spread tại các mức giá thực hiện đó sẽ để lại một vị thế duy nhất trên sổ sách, với một điểm hòa vốn và một mức lỗ tối đa. Quan điểm về biến động hàm ý được thể hiện thông qua các mức giá thực hiện và độ rộng spread được lựa chọn, nên kết quả là như nhau trong cả hai trường hợp. Biến động hàm ý cao có tốt không phân tích riêng chính yếu tố đầu vào này.

Câu hỏi thường gặp

Credit spread có an toàn hơn debit spread không?

Với cùng strike và ngày đáo hạn, không. Kịch bản xấu nhất, kịch bản tốt nhất và mức giá hòa vốn đều giống nhau. Ở phiên bản credit, rủi ro được thể hiện bằng yêu cầu ký quỹ được giữ để bảo đảm cho leg bán. Ở phiên bản debit, cùng rủi ro đó được thể hiện bằng khoản tiền đã chi ra.

Phiên bản nào cần ít vốn hơn?

Không phiên bản nào, nếu strike giống hệt nhau. Phiên bản debit chỉ yêu cầu thanh toán khoản debit và không phải giữ thêm tiền. Phiên bản credit nhận khoản credit và phải giữ phần bằng độ rộng spread trừ khoản credit. Hai khoản này là cùng một lượng tiền, vì debit cộng credit bằng độ rộng spread.

Credit spread có thể bị exercise sớm không?

Có. Leg bán của vertical trên cổ phiếu Mỹ là kiểu American và có thể bị thực hiện quyền đối với tài khoản vào bất kỳ ngày làm việc nào. Leg mua vẫn giữ nguyên, nên mức lỗ tối đa được xác định trước vẫn không đổi, dù tài khoản có thể phải nắm giữ cổ phiếu qua đêm.

Khi nào việc lựa chọn giữa hai phiên bản thực sự quan trọng?

Khi thanh khoản ở hai phía của option chain không tương đương, khi có cổ tức trong khoảng thời gian này, hoặc khi yêu cầu của broker khiến một phiên bản có chi phí duy trì thấp hơn. Biểu đồ payoff không bao giờ là yếu tố quyết định.


Mỗi bảng trong bài này đều đi kèm SQL đã tạo ra bảng đó. Bạn có thể mở rộng bất kỳ bảng nào để xem cách con số được tính. Hãy chạy cùng các truy vấn đó với ticker và ngày đáo hạn khác trên terminal Strasmore để thấy mối quan hệ này vẫn được duy trì.

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