Portfolio Delta ও Beta Weighting কীভাবে কাজ করে
বিভিন্ন ticker-এর option delta সরাসরি যোগ হয় না। Beta weighting পোর্টফোলিওর delta-কে SPY-এর সমতুল্য শেয়ারে রূপান্তর করে, ছোট একটি উদাহরণসহ।
পোর্টফোলিও delta হলো এমন একটি একক সংখ্যা, যা একটি প্রশ্নের উত্তর দেয়: বিস্তৃত বাজার 1% ওঠানামা করলে পুরো পোর্টফোলিও আনুমানিক কতটা পরিবর্তিত হবে? প্রতিটি পজিশনের delta যোগ করলে একটি সংখ্যা পাওয়া যায়, কিন্তু সেটি এই প্রশ্নের উত্তর দেয় না। Beta weighting হলো সেই সমন্বয়, যা যোগফলটিকে অর্থবহ করে। এতে প্রতিটি হোল্ডিংকে SPY-এর সমতুল্য শেয়ারসংখ্যা হিসেবে পুনর্নির্ধারণ করা হয়।
টিকারভেদে পোর্টফোলিওর delta যোগফল কেন মেলে না
Delta নির্দেশ করে, অন্তর্নিহিত সম্পদের দামে 1 ডলারের পরিবর্তন হলে কোনো পজিশনের মূল্য কতটা বদলাবে। একটি শেয়ারের delta হলো 1। একটি option contract 100টি শেয়ার কভার করে। তাই 0.30 delta দেখানো একটি call-এ 30 delta-র exposure থাকে। এই একক-পজিশনভিত্তিক দৃষ্টিভঙ্গিই option delta কী পরিমাপ করে-র বিষয়।
সমস্যা শুরু হয় দ্বিতীয় ticker যুক্ত হলে। উচ্চমূল্যের, high-beta শেয়ারে 100 delta এবং সস্তা defensive শেয়ারে 100 delta একই সংখ্যা হলেও exposure মোটেই এক নয়। প্রথমটি এমন শেয়ারের exposure, যার মূল্য কয়েক দশ হাজার ডলার এবং যা ঐতিহাসিকভাবে সূচকের তুলনায় বেশি ওঠানামা করেছে। দ্বিতীয়টি এমন শেয়ারের exposure, যার মূল্য কয়েক হাজার ডলার এবং যা ঐতিহাসিকভাবে কম ওঠানামা করেছে। এগুলো যোগ করলে 200 হয়, কিন্তু এই সংখ্যা এমন এককে প্রকাশিত যে তা দিয়ে বাস্তবে কোনো সিদ্ধান্ত নেওয়া যায় না।
বেটা-ওয়েটেড ডেল্টা কী?
বেটা-ওয়েটিং পদ্ধতিতে পোর্টফোলিওর প্রতিটি ডেল্টাকে একটি নির্বাচিত বেঞ্চমার্কের ডেল্টা হিসেবে প্রকাশ করা হয়। US equity পোর্টফোলিওর ক্ষেত্রে সাধারণত SPY ব্যবহৃত হয়। এই হিসাবের জন্য দুটি গুণক কাজ করে।
প্রথমটি হলো বেটা। এটি বেঞ্চমার্কের প্রতি কোনো শেয়ারের ঐতিহাসিক সংবেদনশীলতা। নির্বাচিত সময়সীমায় সূচকের দৈনিক রিটার্নের বিপরীতে শেয়ারটির দৈনিক রিটার্নের ঢাল দিয়ে এটি মাপা হয়। বেটা 1.4 হলে বোঝায়, ওই সময়সীমায় সূচক 1% উঠানামা করলে শেয়ারটি গড়ে প্রায় 1.4% উঠানামা করেছে।
দ্বিতীয়টি হলো মূল্য অনুপাত। এটি শেয়ারের মূল্যকে বেঞ্চমার্কের মূল্য দিয়ে ভাগ করে পাওয়া যায়। ডেল্টা শেয়ারের সংখ্যা গণনা করে। কিন্তু ভিন্ন মূল্যের শেয়ারের সংখ্যা সমান হলেও বিনিয়োগের অর্থমূল্য সমান নয়। মূল্য অনুপাত এগুলোকে একই ভিত্তিতে আনে।
কোনো পজিশনের raw delta-কে এই দুটি গুণক দিয়ে গুণ করলে beta weighted delta পাওয়া যায়। এর অর্থ হলো, পরিমাপের সময়সীমায় একইভাবে আচরণ করত এমন SPY শেয়ারের সংখ্যা। নিচের প্যানেলে 30 জুন 2026-এ শেষ হওয়া এক বছরে দৈনিক ক্লোজিং রিটার্ন ব্যবহার করে প্রতিটি নামের বেটা মাপা হয়েছে। এরপর SPY-এর তুলনায় তার মূল্য এবং এই দুই মানের গুণফল দেখানো হয়েছে। তালিকায় SPY ভিত্তি হিসেবে রয়েছে। এর বেটা 1 এবং মূল্য অনুপাত 1। ফলে একটি SPY শেয়ার ঠিক এক beta weighted delta-এর সমান।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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 তালিকার শীর্ষে রয়েছে। এর বেটা 1.86 এবং এটি SPY-এর দামের 0.268 গুণ দামে লেনদেন করছে। এই দুটি মান গুণ করলে দেখা যায়, এর একটি শেয়ার 0.498টি SPY শেয়ারের সমান সূচক-এক্সপোজার বহন করেছে। তালিকার 7টি নামের শেষ প্রান্ত শূন্যের নিচে রয়েছে। এই সময়সীমায় XOM-এর বেটা ছিল -0.36। অর্থাৎ সূচকের বিপরীতে এর ঢাল ছিল সামান্য ঋণাত্মক, কেবল সূচকের তুলনায় কম সংবেদনশীল নয়। একটি শেয়ার রূপান্তরিত হয় -0.067টি SPY শেয়ারে। দুই ক্ষেত্রেই পোর্টফোলিওতে একটি করে ডেল্টা রয়েছে। কিন্তু ওই ডেল্টাগুলোর এক্সপোজারে বড় পার্থক্য আছে। একই সঙ্গে এটি দেখায় যে দুই দশমিক ঘরে প্রকাশিত বেটা একটি নির্দিষ্ট সময়সীমার ওপর নির্ভরশীল অনুমান। এই বিষয়টি পোস্টের শেষে আরও আলোচনা করা হয়েছে।
অপশনের delta কোথা থেকে আসে
প্রতি শেয়ারের ক্ষেত্রে একটি স্টকের delta নির্দিষ্টভাবে 1। কিন্তু কোনো অপশনের delta নির্দিষ্ট নয়। strike, মেয়াদ শেষ হওয়া পর্যন্ত অবশিষ্ট সময়, underlying-এর দাম এবং implied volatility পরিবর্তিত হলে delta-ও বদলে যায়। নিচের প্যানেলে 30 জুন 2026 তারিখে লেনদেন হওয়া, মেয়াদ শেষ হতে 20 থেকে 45 দিন বাকি থাকা প্রতিটি AAPL কনট্রাক্টের delta দেখানো হয়েছে। ক্লোজিং দামের তুলনায় strike-এর দূরত্ব অনুযায়ী এগুলো 2% ব্যবধানের bucket-এ ভাগ করা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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_pct-12% bucket-এ লেনদেন হওয়া 4টি কনট্রাক্টের মধ্যে কলের গড় delta ছিল 0.924, আর পুটের গড় delta ছিল -0.084। +10%-এ কলের গড় delta ছিল 0.106 এবং পুটের -0.834। একই strike-এ থাকা একটি কল ও একটি পুটের delta-র চিহ্ন বিপরীত হয়। এ কারণেই একটি short call এবং একটি long put—দুটিই long stock position-এর ঝুঁকি আংশিকভাবে সমন্বয় করে। মেয়াদ শেষ হওয়ার সময় ঘনিয়ে এলে পুরো curve কীভাবে সরে যায়, তা সময়ের সঙ্গে option greeks কীভাবে পরিবর্তিত হয় অংশে ব্যাখ্যা করা হয়েছে।
একটি ছোট বুককে একটি সংখ্যায় নামিয়ে আনা
হাতে মাপা তিন-পজিশনের একটি বুক বিবেচনা করুন। AAPL-এর 300 শেয়ার লং। প্রায় এক মাস মেয়াদ বাকি এবং অ্যাট-দ্য-মানি স্তরের প্রায় 5% ওপরে থাকা AAPL কলের 3টি শর্ট—এটাই প্রচলিত covered-call overlay। কাছাকাছি strike এবং একই ধরনের মেয়াদে KO-এর 5টি put লং—দ্বিতীয় একটি নামের ওপর হেজ। শেয়ার ও কনট্র্যাক্টের সংখ্যা কাল্পনিক। প্যানেলে দেখানো প্রতিটি delta এবং beta পরিমাপ করা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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_noশেয়ার লেগে প্রতি শেয়ারের জন্য একটি করে মোট 300 raw delta রয়েছে। শর্ট কলগুলো যোগ করে -98 এবং লং put যোগ করে -217। এই তিনটি সংখ্যা যোগ করলে একটি মোট সংখ্যা পাওয়া যায়। Beta weighting করলে ভিন্ন একটি সংখ্যা পাওয়া যায়।
এই সময়পর্বে AAPL-এর beta ছিল 0.88 এবং KO-এর -0.27; বারো মাসে সূচকের বিপরীতে KO-এর ঢাল ছিল ঋণাত্মক। প্রতিটি লেগকে তার beta এবং SPY-এর তুলনায় দামের ভিত্তিতে সমন্বয় করার পর, শেয়ার লেগ দাঁড়ায় 103 SPY শেয়ারে, শর্ট কল -34-এ এবং put 6-এ। Put লেগটি আলাদা করে দেখার মতো। এর -217 raw delta KO-তে শর্ট এক্সপোজার নির্দেশ করে। শর্ট এক্সপোজারকে ঋণাত্মক beta দিয়ে গুণ করলে হিসাবের ইতিবাচক পাশে 6 SPY শেয়ার আসে—অর্থাৎ সূচকে সামান্য লং অবস্থান। চিহ্নের বিষয়টি বাদ দিলেও পরিমাণটি গুরুত্বপূর্ণ। raw delta-তে যে হেজটি বড় মনে হয়, সূচক-ভিত্তিক হিসাবে তা ওই সংখ্যার একটি ছোট অংশে নেমে আসে। এর প্রভাবও বাজারের ওপর নয়, KO-এর ওপর কাজ করছে। Running total কলামে লেগগুলো ক্রমানুসারে যোগ করা হয়। শেষ পর্যন্ত বুকটি 76 beta weighted delta-তে দাঁড়ায়।
এই আকারের beta weighted delta আসলে কী বোঝায়
76 beta weighted delta-তে থাকা একটি পোর্টফোলিও পরিমাপের সময়সীমায় ওই সংখ্যক SPY শেয়ার ধরে রাখার মতো আচরণ করেছে। ধনাত্মক অঙ্ক পোর্টফোলিওটির সূচকে long অবস্থান নির্দেশ করে। ঋণাত্মক অঙ্ক সূচকে short অবস্থান নির্দেশ করে, যাকে ট্রেডাররা delta short করার দিকে ঝোঁকা হিসেবে বোঝান। শেষ কলামে চলতি মোট অঙ্ককে অর্থমূল্যে রূপান্তর করা হয়েছে। অন্য সবকিছু অপরিবর্তিত থাকলে SPY-এর 1% মূল্যপরিবর্তনে পোর্টফোলিওটির মূল্য 565 ডলার পরিবর্তিত হবে।
অঙ্কটি শূন্যের কাছাকাছি আনতে সমান আকারের এবং বিপরীত চিহ্নের beta weighted delta যোগ করতে হয়। SPY শেয়ার short করলে এক-অনুপাত-এক হারে এটি করা যায়: গঠনগতভাবে 1টি SPY শেয়ার 1টি beta weighted delta-এর সমান। SPY options ব্যবহার করলে নির্বাচিত contract-এর delta অনুযায়ী ভগ্নাংশে সমন্বয় করা যায়। অন্তর্নিহিত শেয়ারের অবস্থান কমালে প্রথম প্যানেলে দেখানো ওই শেয়ারের নিজস্ব রূপান্তর হারে সমন্বয় হয়। প্রতিটি পদ্ধতির নিজস্ব খরচ এবং নিজস্ব greeks রয়েছে।
বিটা-ওয়েটিং যেখানে কার্যকারিতা হারায়
বিটা একটি regression estimate, এবং যে সময়পর্বে এটি মাপা হয়, তা বদলালে ফলও বদলে যায়। নিচের প্যানেলে একই দুটি beta ছয়টি lookback period-এ নতুন করে হিসাব করা হয়েছে। প্রতিটি period একই তারিখে শেষ হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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_sessionsসাম্প্রতিক 30টি সেশনে AAPL-এর beta ছিল 0.54, আর 1.14-এর বিপরীতে 504টি সেশনে এর beta ছিল। KO-এর beta স্বল্প সময়পর্বে -1.04 এবং দীর্ঘ সময়পর্বে -0.03 ছিল। সব 6-এর হিসাব গাণিতিকভাবে সঠিক। তবে এগুলো ভিন্ন প্রশ্নের উত্তর দেয়। কোনো প্ল্যাটফর্ম যে সময়পর্ব বেছে নিয়েছে, beta-weighted book delta-ও সেই সময়পর্বের ফল অনুসরণ করে। কোনো defensive stock এক সময়পর্বে সামান্য negative beta এবং পরের সময়পর্বে সামান্য positive beta দেখানো অস্বাভাবিক নয়; এটিই সাধারণ ঘটনা। ওপরের উদাহরণভিত্তিক book-এর প্রতিটি sign এই নির্বাচনের ওপর নির্ভর করছে।
Correlation-এর আচরণ দ্বিতীয় সীমাবদ্ধতা। Beta সাধারণ সেশনগুলোর গড়ের ওপর ভিত্তি করে তৈরি হয়। বিস্তৃত selloff-এর সময় যেসব নাম সাধারণত নিজস্ব গতিতে চলে, সেগুলোও প্রায়ই একসঙ্গে নড়াচড়া করে এবং measured beta-গুলো 1-এর দিকে জমা হয়। শান্ত বাজারের beta অনুযায়ী ভারসাম্যপূর্ণ মনে হওয়া একটি book সেই সেশনে যথেষ্ট ভারসাম্যহীন হতে পারে, যেদিন hedge-এর প্রয়োজন হয়। Concentration risk একই blind spot-কে অন্য দিক থেকে ব্যাখ্যা করে: একটি summary statistic distribution-এর মধ্যভাগ সম্পর্কে তথ্য দেয়, tail সম্পর্কে নয়।
তৃতীয়ত, এই হিসাবটি first-order এবং gamma সম্পর্কে কিছুই জানে না। Beta-weighted delta হলো আজকের দামে book-এর মূল্যের slope, এবং এতে ধরে নেওয়া হয় যে slope অপরিবর্তিত থাকবে। Delta যে হারে নিজে পরিবর্তিত হয়, সেই হার হলো gamma; beta-weighted delta-তে gamma-এর কোনো প্রতিফলন নেই। Short options থাকা একটি book সামান্য beta-weighted delta দেখাতে পারে, অথচ index 3% নড়লেই দ্রুত তার বৈশিষ্ট্য বদলে যেতে পারে। যে delta দিয়ে হিসাব করা হয়েছিল, সেই দামে ওই position-গুলোর জন্য তা আর প্রযোজ্য থাকে না। এই figure-কে ছোট price move-এর বর্ণনা হিসেবে বিবেচনা করুন। protective puts-এর মতো tail risk মোকাবিলার জন্য তৈরি position-গুলো beta-weighted হিসাবে ছোট দেখায়, এবং ওই range-এ তারা মূল কাজটিও করে না।
Benchmark-ও একটি নির্বাচন। SPY-এর বিপরীতে small-cap stock দিয়ে গঠিত একটি book-এর movement-এর যে অংশ broad market-এর বদলে কোম্পানির আকারের কারণে হয়, তা আড়াল হয়ে যায়। Delta হলো কয়েকটি greek-এর মধ্যে একটি। বাকি greek-গুলোর ব্যাখ্যা the option greeks explained-এ দেওয়া হয়েছে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Beta weighted delta কী?
Beta weighted delta একটি পোর্টফোলিওর প্রতিটি পজিশনকে একটি বেঞ্চমার্কের, সাধারণত SPY-এর, সমতুল্য শেয়ারসংখ্যা হিসেবে প্রকাশ করে। প্রতিটি পজিশনের raw delta-কে সংশ্লিষ্ট underlying-এর ওই বেঞ্চমার্কের বিপরীতে beta এবং দুই দামের অনুপাত দিয়ে গুণ করা হয়। এরপর পুরো পোর্টফোলিওর জন্য ফলাফলগুলো যোগ করে একটি সংখ্যা নির্ধারণ করা হয়।
হাতে beta weighted delta কীভাবে হিসাব করবেন?
প্রথমে শেয়ার হিসেবে পজিশনের delta নির্ধারণ করুন: স্টকের ক্ষেত্রে প্রতি শেয়ারে 1, অথবা প্রতি options contract-এ option delta-কে 100 দিয়ে গুণ করে। এরপর underlying-এর বেঞ্চমার্কের বিপরীতে beta দিয়ে গুণ করুন। তারপর underlying-এর দামকে বেঞ্চমার্কের দাম দিয়ে ভাগ করা ফল দিয়ে আবার গুণ করুন। প্রতিটি পজিশনের ফল যোগ করুন।
Negative beta weighted delta-এর অর্থ কী?
এর অর্থ হলো, বেঞ্চমার্ক কমলে এই পোর্টফোলিওর মূল্য বাড়ার এবং বেঞ্চমার্ক বাড়লে মূল্য কমার প্রবণতা রয়েছে। এর প্রভাব মোটামুটি ওই সংখ্যক বেঞ্চমার্ক শেয়ারে short position রাখার সমান। Traders একে delta short দিকে ঝুঁকে থাকা বলে। এই হিসাব কেবল ছোট দামের পরিবর্তনের ক্ষেত্রে প্রযোজ্য।
কোনো স্টকের negative beta থাকতে পারে?
হ্যাঁ, নির্দিষ্ট কোনো সময়পর্বে থাকতে পারে। Beta হলো স্টকের দৈনিক রিটার্ন এবং সূচকের দৈনিক রিটার্নের মধ্যে পরিমাপ করা ঢাল। কোনো defensive stock-এর beta একটি বারো মাসের সময়পর্বে সামান্য শূন্যের নিচে এবং পরের সময়পর্বে সামান্য শূন্যের ওপরে থাকতে পারে। Negative beta ওই পজিশনের beta weighted delta-এর চিহ্ন উল্টে দেয়। তাই যে সময়পর্বে beta মাপা হয়েছে, metric-টি তার সঙ্গে মিলিয়ে পড়তে হয়।
কোন lookback window-এর beta সঠিক?
একটি নির্দিষ্টভাবে সঠিক window নেই। 30-session beta সাম্প্রতিক আচরণ অনুসরণ করে এবং অনেক ওঠানামা করে। বিপরীতে, এক বছর বা দুই বছরের beta বেশি স্থিতিশীল এবং underlying business-এ পরিবর্তন ধীরে প্রতিফলিত করে। উপরের stability panel একই তারিখে একই স্টকের জন্য দুটি window কতটা ভিন্ন হতে পারে, তা দেখায়।
Beta weighting কি gamma বা volatility বিবেচনায় নেয়?
না। এটি current delta এবং historical beta দিয়ে তৈরি একটি first-order measure। Gamma, vega, theta এবং rho এতে পরিবর্তিত হয় না। তাই short options-এর কোনো পোর্টফোলিও beta weighted delta-এর হিসাবে প্রায় স্থির দেখালেও বড় দামের পরিবর্তনে উল্লেখযোগ্য ঝুঁকি বহন করতে পারে।
উপরের প্রতিটি panel-এর সঙ্গে সেটি তৈরির SQL দেওয়া আছে। একটি panel খুলে ticker বা measurement window পরিবর্তন করুন। এরপর Strasmore terminal-এ আপনি যে কোনোভাবে বর্ণনা করতে পারেন, এমন যেকোনো পোর্টফোলিওর ওপর একই beta weighted arithmetic চালানো যাবে।