Memahami Delta Portofolio dan Beta Weighting
Delta opsi mentah tidak dapat dijumlahkan lintas ticker. Pelajari cara beta weighting mengubah delta portofolio menjadi saham SPY setara melalui contoh sederhana.
Delta portofolio adalah satu angka yang menjawab satu pertanyaan: jika pasar secara luas bergerak 1%, kira-kira seberapa besar seluruh book bergerak? Menjumlahkan delta setiap posisi memang menghasilkan sebuah angka, tetapi bukan angka tersebut. Beta weighting adalah penyesuaian yang membuat penjumlahan itu bermakna, dengan menyatakan kembali setiap kepemilikan sebagai jumlah saham SPY yang setara.
Mengapa delta portofolio tidak dapat dijumlahkan lintas ticker
Delta mengukur perubahan nilai posisi untuk setiap kenaikan atau penurunan satu dolar pada aset dasarnya. Satu saham memiliki delta sebesar 1. Satu kontrak opsi mencakup 100 saham, sehingga call option dengan delta 0,30 memiliki eksposur sebesar 30 delta. Pandangan pada satu posisi ini merupakan inti dari apa yang diukur oleh delta opsi.
Masalah muncul ketika ticker kedua ditambahkan. Seratus delta pada saham dengan harga dan beta tinggi tidak sama eksposurnya dengan seratus delta pada saham defensif berharga rendah, meskipun jumlah deltanya sama. Posisi pertama bernilai saham puluhan ribu dolar yang secara historis bergerak lebih besar daripada indeks. Posisi kedua hanya bernilai saham beberapa ribu dolar yang secara historis bergerak lebih kecil. Menjumlahkannya menghasilkan 200, yaitu angka dengan satuan yang tidak dapat digunakan sebagai dasar tindakan.
Apa yang dimaksud dengan beta weighted delta?
Beta weighting menyatakan kembali setiap delta dalam book sebagai delta terhadap satu benchmark yang dipilih, biasanya SPY untuk book saham AS. Dua pengali digunakan.
Yang pertama adalah beta: sensitivitas historis suatu saham terhadap benchmark, yang diukur sebagai kemiringan return harian saham terhadap return harian indeks selama periode yang dipilih. Beta sebesar 1.4 berarti saham tersebut rata-rata bergerak sekitar 1.4% untuk setiap pergerakan 1% pada indeks selama periode tersebut.
Yang kedua adalah rasio harga, yaitu harga saham dibagi harga benchmark. Delta menghitung jumlah saham, sedangkan saham dengan harga berbeda mewakili jumlah uang yang berbeda. Rasio ini menempatkannya pada satu skala.
Kalikan delta mentah suatu posisi dengan kedua faktor tersebut. Hasilnya adalah beta weighted delta: jumlah saham SPY yang akan bergerak dengan cara yang sama selama periode pengukuran. Panel di bawah mengukur beta setiap saham berdasarkan return penutupan harian selama tahun yang berakhir pada 30 Juni 2026. Panel tersebut kemudian menampilkan harganya terhadap harga SPY serta hasil perkalian keduanya. SPY tercantum sebagai anchor, dengan beta 1 dan rasio harga 1. Karena itu, satu saham SPY sama persis dengan satu beta weighted delta.
SQL tepat di balik setiap angka
WITH
sessions AS
(
SELECT
ticker AS ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'NVDA', 'AAPL', 'MSFT', 'XOM', 'JNJ', 'KO')
AND window_start >= toDateTime('2025-07-01 04:00:00')
AND window_start < toDateTime('2026-07-01 04:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
steps AS
(
SELECT
ticker,
d,
px,
any(px) OVER (PARTITION BY ticker ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM sessions
),
daily_ret AS
(
SELECT ticker, d, (px / prev_px) - 1 AS r
FROM steps
WHERE prev_px > 0
),
bench AS
(
SELECT d, r AS spy_r
FROM daily_ret
WHERE ticker = 'SPY'
),
betas AS
(
SELECT
s.ticker AS ticker,
covarPop(s.r, b.spy_r) / varPop(b.spy_r) AS beta_vs_spy,
1 AS k
FROM daily_ret AS s
INNER JOIN bench AS b ON b.d = s.d
GROUP BY s.ticker
),
prices AS
(
SELECT ticker, argMax(px, d) AS close_px
FROM sessions
GROUP BY ticker
),
spy_price AS
(
SELECT argMax(px, d) AS spy_close, 1 AS k
FROM sessions
WHERE ticker = 'SPY'
)
SELECT
betas.ticker AS ticker,
round(betas.beta_vs_spy, 2) AS beta_vs_spy,
round(prices.close_px / spy_price.spy_close, 3) AS price_vs_spy,
round(betas.beta_vs_spy * prices.close_px / spy_price.spy_close, 3) AS spy_shares_per_share
FROM betas
INNER JOIN prices ON prices.ticker = betas.ticker
INNER JOIN spy_price ON spy_price.k = betas.k
ORDER BY beta_vs_spy DESCNVDA berada di urutan teratas dengan beta 1.86, diperdagangkan pada 0.268 kali harga SPY. Kalikan keduanya: satu saham tersebut membawa eksposur indeks setara dengan 0.498 saham SPY. Di ujung bawah dari 7 saham tersebut, nilainya berada di bawah nol. XOM mencatat beta -0.36 selama periode ini, yaitu kemiringan invers ringan terhadap indeks, bukan versi indeks dengan pergerakan yang lebih kecil. Satu sahamnya setara dengan -0.067 saham SPY. Dalam kedua kasus, terdapat satu delta dalam book. Namun eksposur delta tersebut sangat berbeda. Ini juga menjadi indikasi awal bahwa beta yang ditampilkan hingga dua angka desimal merupakan estimasi yang terkait dengan periode pengukuran, sebagaimana dibahas pada akhir artikel ini.
Asal delta option
Delta saham tetap sebesar satu per saham. Delta option tidak tetap. Delta berubah mengikuti strike, sisa waktu hingga expiry, harga aset dasar, dan implied volatility. Panel di bawah ini menampilkan delta setiap kontrak AAPL yang diperdagangkan pada 30 Juni 2026 dengan sisa waktu 20 hingga 45 hari, yang dikelompokkan dalam bucket sebesar 2% berdasarkan jarak strike dari harga penutupan.
SQL tepat di balik setiap angka
SELECT
concat(if(bucket_pct > 0, '+', ''), toString(bucket_pct), '%') AS strike_vs_spot,
round(avgIf(contract_delta, contract_delta > 0), 3) AS call_delta,
round(avgIf(contract_delta, contract_delta < 0), 3) AS put_delta,
count() AS contract_count
FROM
(
SELECT
toInt32(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50)) * 2 AS bucket_pct,
toFloat64(delta) AS contract_delta
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= toDate('2026-06-30')
AND date < toDate('2026-07-01')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.12
)
GROUP BY bucket_pct
HAVING countIf(contract_delta > 0) > 0 AND countIf(contract_delta < 0) > 0
ORDER BY bucket_pctPada bucket -12%, call memiliki delta rata-rata 0.924 dari 4 kontrak yang diperdagangkan, sedangkan put memiliki rata-rata -0.084. Pada +10%, delta rata-rata call adalah 0.106 dan put -0.834. Call dan put dengan strike yang sama memiliki delta dengan tanda berlawanan. Karena itu, short call dan long put sama-sama dapat mengimbangi posisi long saham. Perubahan keseluruhan kurva ketika expiry mendekat dibahas dalam bagaimana greeks option berubah seiring waktu.
Mengubah satu book kecil menjadi satu angka
Gunakan book tiga posisi yang ukurannya ditetapkan secara manual. Long 300 saham AAPL. Short 3 call option AAPL dengan strike sekitar 5% di atas harga saat ini dan sisa waktu hingga jatuh tempo kira-kira satu bulan, sebagai overlay covered call standar. Long 5 put option KO dengan strike dekat harga saat ini dan jatuh tempo serupa, sebagai hedge untuk saham kedua. Jumlah saham dan kontrak tersebut bersifat hipotetis. Setiap delta dan beta di panel diukur.
SQL tepat di balik setiap angka
WITH
sessions AS
(
SELECT
ticker AS ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'AAPL', 'KO')
AND window_start >= toDateTime('2025-07-01 04:00:00')
AND window_start < toDateTime('2026-07-01 04:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
steps AS
(
SELECT
ticker,
d,
px,
any(px) OVER (PARTITION BY ticker ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM sessions
),
daily_ret AS
(
SELECT ticker, d, (px / prev_px) - 1 AS r
FROM steps
WHERE prev_px > 0
),
bench AS
(
SELECT d, r AS spy_r
FROM daily_ret
WHERE ticker = 'SPY'
),
betas AS
(
SELECT
s.ticker AS ticker,
covarPop(s.r, b.spy_r) / varPop(b.spy_r) AS beta_vs_spy
FROM daily_ret AS s
INNER JOIN bench AS b ON b.d = s.d
GROUP BY s.ticker
),
prices AS
(
SELECT ticker, argMax(px, d) AS close_px, 1 AS k
FROM sessions
GROUP BY ticker
),
spy_price AS
(
SELECT argMax(px, d) AS spy_close, 1 AS k
FROM sessions
WHERE ticker = 'SPY'
),
opt_delta AS
(
SELECT
underlying_symbol AS ticker,
if(toFloat64(delta) > 0, 'call', 'put') AS kind,
avg(toFloat64(delta)) AS per_share_delta
FROM global_markets.options_greeks
WHERE date >= toDate('2026-06-30')
AND date < toDate('2026-07-01')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 40
AND (
(underlying_symbol = 'AAPL' AND toFloat64(delta) > 0
AND toFloat64(strike_price) / toFloat64(underlying_close) BETWEEN 1.03 AND 1.07)
OR (underlying_symbol = 'KO' AND toFloat64(delta) < 0
AND toFloat64(strike_price) / toFloat64(underlying_close) BETWEEN 0.97 AND 1.03)
)
GROUP BY ticker, kind
),
legs AS
(
SELECT
tupleElement(leg, 1) AS leg_no,
tupleElement(leg, 2) AS position,
tupleElement(leg, 3) AS ticker,
tupleElement(leg, 4) AS kind,
tupleElement(leg, 5) AS qty,
tupleElement(leg, 6) AS multiplier
FROM
(
SELECT arrayJoin([
(1, 'Long 300 AAPL', 'AAPL', 'stock', 300., 1.),
(2, 'Short 3 AAPL calls', 'AAPL', 'call', -3., 100.),
(3, 'Long 5 KO puts', 'KO', 'put', 5., 100.)
]) AS leg
)
)
SELECT
position AS position,
round(raw_share_delta) AS raw_share_delta,
round(beta_vs_spy, 2) AS beta_vs_spy,
round(bw_delta) AS beta_weighted_delta,
round(sum(bw_delta) OVER (ORDER BY leg_no ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS running_book_delta,
round(sum(bw_delta) OVER (ORDER BY leg_no ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) * spy_close / 100.) AS dollars_per_1pct_spy
FROM
(
SELECT
l.leg_no AS leg_no,
l.position AS position,
l.qty * l.multiplier * if(l.kind = 'stock', 1., o.per_share_delta) AS raw_share_delta,
bt.beta_vs_spy AS beta_vs_spy,
sp.spy_close AS spy_close,
raw_share_delta * bt.beta_vs_spy * pr.close_px / sp.spy_close AS bw_delta
FROM legs AS l
LEFT JOIN opt_delta AS o ON o.ticker = l.ticker AND o.kind = l.kind
INNER JOIN betas AS bt ON bt.ticker = l.ticker
INNER JOIN prices AS pr ON pr.ticker = l.ticker
INNER JOIN spy_price AS sp ON sp.k = pr.k
)
ORDER BY leg_noPosisi saham menghasilkan 300 delta bruto, satu per saham. Short call menghasilkan -98, sedangkan long put menghasilkan -217. Menjumlahkan ketiga angka tersebut menghasilkan satu angka. Beta weighting menghasilkan angka yang berbeda.
AAPL memiliki beta sebesar 0.88 selama periode pengamatan, sedangkan KO memiliki beta -0.27, yaitu kemiringan negatif terhadap indeks selama dua belas bulan tersebut. Setelah setiap posisi disesuaikan berdasarkan beta dan harganya relatif terhadap SPY, posisi saham menjadi 103 saham SPY, short call menjadi -34, dan put menjadi 6. Posisi put perlu diperhatikan. Angka mentahnya, yaitu -217 delta, menunjukkan posisi short terhadap KO. Mengalikan eksposur short dengan beta negatif menghasilkan angka positif sebesar 6 saham SPY, yang menunjukkan eksposur long kecil terhadap indeks. Terlepas dari tandanya, besarnya angka tersebut adalah hal utama: hedge yang terlihat besar dalam delta bruto berubah menjadi sebagian kecil dari angka itu dalam istilah indeks, dan fungsinya bekerja terhadap KO, bukan terhadap pasar. Kolom total berjalan mencatat setiap posisi secara berurutan, dan book tersebut berakhir pada 76 delta berbobot beta.
Makna sebenarnya dari beta weighted delta sebesar itu
Portofolio dengan beta weighted delta sebesar 76 berperilaku, selama periode pengukuran, seperti memegang saham SPY dalam jumlah tersebut. Angka positif menunjukkan bahwa portofolio memiliki eksposur long terhadap indeks. Angka negatif menunjukkan bahwa portofolio memiliki eksposur short terhadap indeks. Inilah yang dimaksud trader ketika menyebut delta short. Kolom terakhir mengonversi total berjalan tersebut ke dalam nilai uang. Perubahan 1% pada SPY, dengan asumsi tidak ada perubahan lain, mengubah nilai portofolio sebesar 565 dolar.
Untuk menetralkan angka tersebut, tambahkan beta weighted delta penyeimbang dengan ukuran yang sama dan tanda berlawanan. Short saham SPY melakukannya secara satu banding satu: satu saham SPY setara dengan satu beta weighted delta berdasarkan konstruksinya. Opsi SPY melakukannya dalam pecahan, sesuai delta kontrak yang dipilih. Mengurangi posisi saham dasar melakukannya berdasarkan tingkat konversi saham tersebut yang tercantum pada panel pertama. Setiap metode memiliki biaya dan Greeks masing-masing.
Saat beta weighting tidak lagi memadai
Beta merupakan estimasi regresi, dan periode pengukuran memengaruhi hasilnya. Panel di bawah ini menghitung ulang dua beta yang sama untuk enam periode observasi, yang semuanya berakhir pada tanggal yang sama.
SQL tepat di balik setiap angka
WITH
sessions AS
(
SELECT
ticker AS ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'AAPL', 'KO')
AND window_start >= toDateTime('2024-04-01 04:00:00')
AND window_start < toDateTime('2026-07-01 04:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
steps AS
(
SELECT
ticker,
d,
px,
any(px) OVER (PARTITION BY ticker ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM sessions
),
daily_ret AS
(
SELECT ticker, d, (px / prev_px) - 1 AS r
FROM steps
WHERE prev_px > 0
),
bench AS
(
SELECT d, r AS spy_r
FROM daily_ret
WHERE ticker = 'SPY'
),
paired AS
(
SELECT
s.ticker AS ticker,
s.r AS r,
b.spy_r AS spy_r,
row_number() OVER (PARTITION BY s.ticker ORDER BY s.d DESC) AS rn
FROM daily_ret AS s
INNER JOIN bench AS b ON b.d = s.d
WHERE s.ticker IN ('AAPL', 'KO')
),
windows AS
(
SELECT arrayJoin([30, 60, 90, 180, 252, 504]) AS lookback
)
SELECT
w.lookback AS lookback_sessions,
round(covarPopIf(p.r, p.spy_r, p.ticker = 'AAPL') / varPopIf(p.spy_r, p.ticker = 'AAPL'), 2) AS aapl_beta,
round(covarPopIf(p.r, p.spy_r, p.ticker = 'KO') / varPopIf(p.spy_r, p.ticker = 'KO'), 2) AS ko_beta
FROM paired AS p
CROSS JOIN windows AS w
WHERE p.rn <= w.lookback
GROUP BY w.lookback
HAVING countIf(p.ticker = 'AAPL') > 0 AND countIf(p.ticker = 'KO') > 0
ORDER BY lookback_sessionsDalam 30 sesi terakhir, AAPL mencatat 0.54, dibandingkan dengan 1.14 selama 504 sesi. KO mencatat -1.04 pada periode pendek dan -0.03 pada periode panjang. Semua estimasi 6 tersebut benar secara aritmetika. Namun, masing-masing menjawab pertanyaan yang berbeda. Delta portofolio berbobot beta mewarisi periode yang kebetulan dipilih platform. Saham defensif yang mencatat beta sedikit negatif pada satu periode dan sedikit positif pada periode berikutnya merupakan hal yang biasa, bukan anomali. Semua tanda dalam contoh portofolio di atas bergantung pada pilihan tersebut.
Perilaku korelasi merupakan batasan kedua. Beta adalah rata-rata dari sesi perdagangan normal. Dalam aksi jual pasar yang luas, saham yang biasanya bergerak dengan ritmenya sendiri cenderung bergerak bersama. Beta yang diukur pun berkumpul mendekati 1. Portofolio yang tampak seimbang berdasarkan beta di pasar yang tenang dapat sangat tidak seimbang pada sesi ketika hedge benar-benar diperlukan. Risiko konsentrasi menjelaskan titik buta yang sama dari sisi lain: statistik ringkasan memberi tahu Anda tentang bagian tengah distribusi, bukan ekornya.
Ketiga, perhitungan ini bersifat orde pertama dan tidak memperhitungkan gamma. Delta berbobot beta adalah kemiringan nilai portofolio pada harga saat ini, dengan asumsi bahwa kemiringan tersebut tetap. Gamma, yaitu tingkat perubahan delta, tidak muncul dalam perhitungan ini. Portofolio yang memiliki posisi short options dapat menunjukkan delta berbobot beta yang moderat, tetapi karakternya dapat berubah cepat ketika indeks bergerak 3%. Delta yang digunakan dalam perhitungan tidak lagi menggambarkan posisi tersebut pada harga baru. Perlakukan angka ini sebagai gambaran untuk pergerakan kecil. Posisi yang dirancang untuk menghadapi tail risk, seperti posisi dalam protective puts, tampak kecil berdasarkan beta weighting dan memang tidak menjalankan fungsinya dalam kisaran tersebut.
Benchmark juga merupakan pilihan. Portofolio small caps yang dibobotkan terhadap SPY menyembunyikan bagian pergerakannya yang berasal dari ukuran perusahaan, bukan dari pasar secara luas. Delta hanyalah salah satu greek dari beberapa greek. Uraian mengenai keseluruhan greek tersedia di penjelasan tentang option greeks.
FAQ
Apa yang dimaksud dengan beta weighted delta?
Beta weighted delta menyatakan kembali setiap posisi dalam portofolio sebagai jumlah saham ekuivalen dari satu benchmark, biasanya SPY. Raw delta setiap posisi dikalikan dengan beta underlying terhadap benchmark tersebut dan rasio harga keduanya. Hasilnya kemudian dijumlahkan menjadi satu angka untuk seluruh book.
Bagaimana cara menghitung beta weighted delta secara manual?
Mulailah dengan delta posisi dalam satuan saham: 1 per saham untuk saham, atau 100 kali delta opsi per kontrak. Kalikan dengan beta underlying terhadap benchmark, lalu kalikan lagi dengan harga underlying dibagi harga benchmark. Jumlahkan hasilnya untuk setiap posisi.
Apa arti beta weighted delta yang negatif?
Angka ini menggambarkan book yang dirancang untuk memperoleh nilai ketika benchmark turun dan kehilangan nilai ketika benchmark naik. Besarnya kira-kira setara dengan posisi short sebanyak jumlah saham benchmark tersebut. Trader menyebutnya sebagai delta yang condong ke posisi short. Angka ini hanya berlaku untuk pergerakan kecil.
Apakah suatu saham dapat memiliki beta negatif?
Ya, dalam periode pengukuran tertentu. Beta adalah kemiringan terukur dari return harian saham terhadap return harian indeks. Saham defensif dapat menghasilkan beta sedikit di bawah nol dalam satu periode dua belas bulan dan sedikit di atas nol pada periode berikutnya. Beta negatif membalik tanda beta weighted delta posisi tersebut. Karena itu, metrik ini harus dibaca bersama periode pengukurannya.
Periode lookback mana yang menghasilkan beta yang tepat?
Tidak ada satu periode yang selalu tepat. Beta 30 sesi mencerminkan perilaku terbaru dan banyak bergerak, sedangkan beta satu tahun atau dua tahun lebih stabil dan lebih lambat mencerminkan perubahan dalam bisnis underlying. Panel stabilitas di atas menunjukkan seberapa jauh perbedaan dua periode pengukuran untuk saham yang sama pada tanggal yang sama.
Apakah beta weighting memperhitungkan gamma atau volatilitas?
Tidak. Ini adalah ukuran orde pertama yang dibangun dari delta saat ini dan beta historis. Gamma, vega, theta, dan rho tidak terpengaruh. Karena itu, book berisi short options dapat terlihat datar berdasarkan beta weighted delta, tetapi tetap memiliki risiko besar jika terjadi pergerakan yang signifikan.
Setiap panel di atas disertai SQL yang menghasilkannya. Buka salah satunya, ganti ticker atau periode pengukuran, lalu perhitungan beta weighted yang sama akan dijalankan terhadap book apa pun yang dapat Anda definisikan di terminal Strasmore.