Order Flowमुळे Implied Volatility कशी बदलते
Balanced bookपासून एकतर्फी call buyingपर्यंत एका strikeचा प्रवास पाहा, तसेच दैनंदिन vol आणि volumeच्या आकड्यांतून order flowचा परिणाम समजून घ्या.
Order flowमुळे implied volatility प्रत्येक quoteसोबत बदलते. Optionचा quote देणारा market maker शेअरची दिशा कुठे असेल यावर मत मांडत नसतो. तो bid आणि offer दोन्ही बाजूंना किंमत देतो. खरेदी सतत एकाच बाजूने होत राहिली, तर flow मंदावेत किंवा position बाळगण्याचा खर्च भरून निघेपर्यंत तो देऊ इच्छित असलेली volatility वाढवतो. या संपूर्ण प्रक्रियेत शेअरची किंमत स्थिर राहू शकते आणि अनेकदा तशीच राहते.
Market maker प्रत्यक्षात काय quote करतो
Optionला dollar bid आणि dollar offer असतो. परंतु दुसऱ्या बाजूचा trading desk volatilityमध्ये काम करतो. Implied volatility म्हणजे strike, expiryपर्यंतचे उरलेले दिवस, शेअरची किंमत आणि interest rate लक्षात घेता optionच्या किमतीशी सुसंगत असलेली annualized टक्केवारीतील हालचाल. Pricing modelमध्ये किंमत दिली, तर volatility मिळते. Volatility दिली, तर किंमत मिळते. Implied volatility ही किंमत वेगळ्या एककांत मांडलेली असते. म्हणूनच options are quoted in volatility हे professionalsमध्ये dollarमध्ये नव्हे तर volatilityमध्ये quote केले जातात.
ही कल्पना स्पष्ट करण्यासाठी एक काल्पनिक उदाहरण पाहू. एक महिना expiry बाकी असलेला $220 call सकाळी $5.20 offerवर आहे. दुपारपर्यंत तोच contract $5.60 offerवर आहे, शेअरची किंमत अजूनही $220 आहे आणि expiryपर्यंत एक दिवस कमी उरला आहे. Strike बदललेला नाही. Rate बदललेला नाही. एक दिवस लोटल्यामुळे optionची किंमत उलट दिशेने जाणे अपेक्षित असते. त्यामुळे वाढलेले 40 cents volatility inputमध्येच आहेत; इतर कुठेही नाहीत.
एका strikeवर order flowमुळे implied volatility कशी बदलते
खालील panelमध्ये शेअरच्या किमतीपासून 5%च्या आत असलेले आणि expiryला 20 ते 45 दिवस शिल्लक असलेले प्रत्येक AAPL option घेतले आहेत. प्रत्येक sessionचे तीन प्रकारे मापन केले आहे: त्या दिवसाच्या contract volumeपैकी callsमध्ये trade झालेला हिस्सा, त्या near-the-money contractsची average implied volatility आणि windowच्या पहिल्या दिवशीच्या पातळीच्या तुलनेत शेअर कोणत्या पातळीवर बंद झाला.
प्रत्येक आकड्यामागील अचूक SQL
WITH
(
SELECT toFloat64(close)
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2026-05-01'
ORDER BY date
LIMIT 1
) AS start_close
SELECT
toString(date) AS date,
round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
round(100 * avg(implied_volatility), 1) AS atm_iv_pct,
round(100 * (toFloat64(any(underlying_close)) / start_close - 1), 1) AS stock_pct_vs_start
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-05-01' AND '2026-06-30'
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.05
GROUP BY date
ORDER BY dateMay आणि June 2026 मधील 41 sessionsमध्ये call shareने windowची सुरुवात near-the-money volumeच्या 71% पासून केली आणि शेवट 80.7% वर केला. त्याच contractsची volatility 22.5% वरून 27.8% पर्यंत गेली. या काळात शेअर सुरुवातीच्या पातळीपासून 3.2% वर बंद झाला.
दोन्ही lines प्रत्येक sessionला एकमेकांशी जुळत नाहीत. हीच या प्रक्रियेची अचूक रूपरेषा आहे. एका दिवशी असंतुलित खरेदी quoteला एका tickने हलवते. सलग अनेक दिवसांचा flow पातळी बदलतो. कारण makerला दर सकाळी त्याच positionपैकी अधिक हिस्सा अशा किमतीवर ठेवण्यास सांगितले जाते, जी मागणी कमी करण्याइतकी वाढलेली नसते. या प्रक्रियेत शेअरची किंमत कुठेही जाणे आवश्यक नाही.
एका strikeचे IV शेजारच्या strikesपेक्षा जास्त का असते
एकच session निश्चित करून दिवसांऐवजी strikesच्या across पाहू. खालील panelमध्ये date आणि expiry निश्चित ठेवले आहेत. त्या sessionमधील सर्वाधिक व्यवहार झालेल्या expirationमध्ये शेअरच्या किमतीखालील strikeपासून वरच्या strikeपर्यंतचा क्रम पाहिला आहे.
प्रत्येक आकड्यामागील अचूक SQL
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= '2026-06-30'
) AS session_date,
(
SELECT expiration_date
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
GROUP BY expiration_date
ORDER BY sum(volume) DESC
LIMIT 1
) AS busy_expiry
SELECT
concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
round(100 * avg(implied_volatility), 1) AS offered_iv_pct,
sum(volume) AS contract_volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
AND expiration_date = busy_expiry
AND iv_converged = 1
AND volume > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.06
GROUP BY strike_price
ORDER BY strike_priceया panelमधील प्रत्येक contract त्याच शेअरवर, त्याच दिवशी आणि त्याच dateला expire होतो. एका rowमधून दुसऱ्या rowमध्ये फक्त strike बदलतो. त्यासोबत offered volatilityही बदलते: $275 strikeवर 26.2%, तर $305 strikeवर 23.3%; एकूण 7 strikes आहेत. एका strikeपासून पुढील strikeपर्यंतचा हा फरक म्हणजे volatility skew. खरेदी-विक्रीचे संतुलन त्याला आकार देणाऱ्या घटकांपैकी एक आहे. एका option chainमध्ये मागणी सर्व strikesवर समान प्रमाणात येत नाही. मागणी ज्या strikeची गरज आहे तिथेच येते. त्यामुळे त्या strikeचा quote बदलतो.
त्याच sessionचे option typeनुसार विभाजन केल्यास चित्र अधिक स्पष्ट होते. कारण शेअरच्या किमतीपासून समान अंतरावर असलेले calls आणि puts त्याच क्षणी त्याच deskकडून quote केले जातात.
प्रत्येक आकड्यामागील अचूक SQL
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= '2026-06-30'
) AS session_date
SELECT
multiIf(bucket = 0, 'at spot',
bucket < 0, concat(toString(abs(bucket)), '% below'),
concat(toString(bucket), '% above')) AS strike_vs_spot,
round(100 * avgIf(iv, is_call), 1) AS call_iv_pct,
round(100 * avgIf(iv, NOT is_call), 1) AS put_iv_pct
FROM
(
SELECT
implied_volatility AS iv,
startsWith(lower(toString(option_type)), 'c') AS is_call,
round(((toFloat64(strike_price) / toFloat64(underlying_close)) - 1) * 100 / 2.5) * 2.5 AS bucket
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
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.10
)
GROUP BY bucket
HAVING countIf(is_call) > 0 AND countIf(NOT is_call) > 0
ORDER BY bucket7.5% below येथे putsची volatility 30% होती, तर callsची 27.6% होती. 10% above येथे त्याच दोन मापनांचे prints अनुक्रमे 33.3% आणि 25.7% होते. शेअर तोच, minute तोच आणि model तोच. फरक हा traders सातत्याने ज्या strikesची मागणी करतात त्यात असतो.
Maker दुसरी बाजू quote करत राहतो
Offerची किंमत वाढवणे म्हणजे trade नाकारण्यासारखे नाही. स्थिर मागणीमध्ये calls विकत राहणाऱ्या deskकडे शेवटी ते calls short होतात. त्याविरुद्ध stock खरेदी करणे हा standard बचाव असतो. याला delta hedging म्हणतात: optionचा directional exposure offset करण्यासाठी ठेवलेली stock position, जी शेअरची किंमत बदलताना समायोजित केली जाते. Hedge विनामूल्य नसतो. शेअरची किंमत प्रत्येक वेळी हलली की rebalancingचा खर्च येतो. तसेच stockने offset न करता येणारा risk — म्हणजे positionची volatilityप्रती असलेली sensitivity — प्रत्येक विकलेल्या contractसोबत वाढतो.
Offer वाढवणे म्हणजे त्याच riskचा आणखी एक unit स्वीकारण्यासाठी आकारली जाणारी किंमत. Bidही त्यासोबत वाढतो. कारण deskला ते calls अधिक चांगल्या पातळीवर परत खरेदी करणे पसंत असेल. दोन्ही बाजूंमधील spread हा how market makers make money आहे; तो दिशेवरील कोणताही अंदाज नाही.
Electronic quote काय पाहू शकतो आणि काय पाहू शकत नाही
Trading floorवर order एखाद्या व्यक्तीसोबत येत असे. Broker crowdमध्ये येत असे आणि makerला orderचा size तसेच त्यामागील firm दिसत असे. त्यांनी दिलेल्या किमतीचा तो contextचा भाग होता. Screens आल्यानंतर हा context नाहीसा झाला. आधुनिक maker नंतर tapeवरून flowचा pattern वाचतो: strike आणि expiryनुसार volume, open interestमधील overnight बदल — म्हणजे अजून outstanding असलेल्या contractsची संख्या — resting offer किती वेगाने lift केला जातो आणि volatility वाढवल्यानंतर खरेदी पुन्हा येते का. Institutional order आणि retail order यांच्यात फरक करणे बहुतेक वेळा शक्य नसते. Quote traderची ओळख पाहून नव्हे, तर tradingच्या patternनुसार बदलतो.
प्रत्येक आकड्यामागील अचूक SQL
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
AND date <= '2026-06-30'
) AS session_date
SELECT
underlying_symbol AS symbol,
round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
round(100 * avg(implied_volatility), 1) AS atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
AND date = session_date
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.05
GROUP BY underlying_symbol
ORDER BY call_share_pct DESCत्या sessionमध्ये AMZN हा groupमध्ये सर्वाधिक होता. त्याच्या near-the-money volumeपैकी 91.9% callsमध्ये होते आणि near-the-money vol 38.7% होती. Panelमधील दोन्ही columns खाली वाचल्यास प्रत्येक rowमध्ये त्यांची जुळवाजुळव होत नाही. एका दिवसाचा flow हा volatility surfaceमधील एक input आहे. त्या surfaceमध्ये प्रत्येक nameचा स्वतःचा trading history आणि deskकडे आधीपासून असलेली positionही समाविष्ट असते.
याचा अर्थ काय नाही
Quote हा forecast नसतो. Higher offer म्हणजे deskने पुढील contract विकण्यासाठी अधिक compensation मागितली आहे. त्यातून शेअर पुढे कुठे जाईल याबद्दल काहीही निष्पन्न होत नाही. Implied volatility ही लोक किती किंमत देत आहेत त्यावर ठरलेली price आहे. gap between implied and historical volatility पाहिल्यास price आणि प्रत्यक्ष outcome किती वेळा वेगळे ठरतात हे समजू शकते. 40% volवर quote केलेल्या strikeने 40% हालचालीचा अंदाज वर्तवलेला नसतो. तो contract घेऊ इच्छिणाऱ्या कोणीतरी त्याची bid वाढवलेली असते.
हे panels कसे मोजले जातात
प्रत्येक panelमध्ये modelची volatility solution converge झालेली आणि त्या दिवशी प्रत्यक्ष trade झालेली contractsच घेतली आहेत. त्यानंतर 20 ते 45 दिवस expiry बाकी असलेले near-the-money strikes ठेवले आहेत. अतिशय कमी किंवा अतिशय दीर्घ expiry असलेल्या contractsमुळे होणारे distortions टाळून volatility level वाचण्यासाठी ही standard window आहे. Bucketमधील contractsवर averages unweighted आहेत. Call shareमध्ये traded contracts मोजले जातात; ग्राहकाने खरेदी केली की विक्री, हे मोजले जात नाही. कारण tapeवर trade buy होता की sell, याची खूण नसते.
वारंवार विचारले जाणारे प्रश्न
Options खरेदी केल्याने implied volatility वाढते का?
एखाद्या strikeवर सातत्याने एकाच बाजूने खरेदी झाल्यास त्या strikeवरील offered volatility वाढताना दिसते. दुसऱ्या बाजूचा desk contracts विकतो आणि त्यानंतर त्यांना hedge करावे लागते. पुढील contractची किंमत offerमध्ये ठरवली जाते. एखादा छोटा स्वतंत्र order liquid nameची volatility सहसा दिसण्याइतकी बदलत नाही.
Market makers दिशेवर आधारित मत ठेवतात का?
Two-sided market quote करणे हा bid आणि offerमधील spreadवर आधारित व्यवसाय आहे. Stock exposure hedge केले जाते; ते तसाच ठेवले जात नाही. इतरांचे orders भरताना maker long किंवा short होतो; साधारणतः ते दिशेवरील मतामुळे नसते.
त्याच शेअरवरील दोन strikesची implied volatility वेगळी का असते?
प्रत्येक strike हा स्वतंत्र contract असतो आणि त्याची supply व demand स्वतंत्र असते. Skew म्हणजे एकाच expiryमध्ये downside आणि upside strikes वेगवेगळ्या volatilityवर quote होण्याचा pattern.
Implied volatility वाढत असल्याचा अर्थ शेअर हलणार आहे का?
नाही. Implied volatility म्हणजे optionची price टक्केवारीच्या रूपात मांडलेली असते. Price म्हणजे लोक आज किती देत आहेत. प्रत्यक्ष हालचाल option marketने आकारलेल्या किमतीपेक्षा कमी किंवा जास्त ठरणे नेहमीच घडते.
कोण खरेदी करत आहे हे market makerला कळू शकते का?
Electronic marketमध्ये सहसा नाही. Tapeवर contracts, strikes, expiries आणि timestamps दिसतात; ग्राहकाचे नाव जोडलेले नसते. Floorवर makerला crowdमधील broker दिसत असे. Screensकडे झालेल्या स्थलांतरानंतर तो context नाहीसा झाला.
वरील प्रत्येक panelसोबत ते तयार करणारी SQL दिलेली आहे. त्यामुळे हेच मापन कोणत्याही अन्य nameवर किंवा कोणत्याही अन्य weekवर लागू करता येते. Strasmore terminalवर plain Englishमध्ये विचार करा.