Strasmore Research

Historical Implied Volatility Data کہاں ملے گا؟

Historical implied volatility data کے ذرائع، دو 30-day IV series کے اختلاف، free اور paid options، اور خود چلانے کے لیے query shape کی وضاحت۔

Historical implied volatility کا data derived ہوتا ہے، recorded نہیں۔ یہی ایک حقیقت بتاتی ہے کہ اسے price history کے مقابلے میں source کرنا کیوں مشکل ہے۔ IV وہ عدد ہے جو option کی market price کو pricing model میں الٹی سمت سے چلا کر حاصل کیا جاتا ہے، یہاں تک کہ model کی value اس price کے برابر ہو جائے جو screen پر دکھائی دے رہی ہو۔ کوئی exchange اسے tape پر print نہیں کرتا۔ اس لیے شائع ہونے والی ہر IV history میں model، quote، contract selection اور interpolation کے بارے میں کچھ نہ کچھ انتخاب شامل ہوتے ہیں۔ یہی انتخاب ان دو series کے درمیان بنیادی فرق پیدا کرتے ہیں جو بظاہر ایک ہی چیز کو measure کرنے کا دعویٰ کرتی ہیں۔

اگر آپ پہلے definition دیکھنا چاہتے ہیں تو implied volatility کیا ہے اور implied volatility کیسے calculate کی جاتی ہے میں mechanics کی وضاحت موجود ہے۔ آگے بتایا گیا ہے کہ یہ history کہاں ملتی ہے اور دو مختلف versions کے درمیان فرق کیسے پہچانا جائے۔

تاریخی implied volatility data حاصل کرنا price data کے مقابلے میں زیادہ مشکل کیوں ہے؟

روزانہ کا closing price مشاہدے میں آتا ہے: اس کی trade print ہوتی ہے، اور ہر vendor یہی number رپورٹ کرتا ہے۔ IV level calculate کیا جاتا ہے، اور اس calculation کے چار inputs source کے لحاظ سے مختلف ہو سکتے ہیں۔

  • Model: European Black-Scholes solve، discrete dividends کے ساتھ American binomial tree، یا vendor کا ایسا variant جس میں اس کے اپنے interest-rate اور borrow assumptions شامل ہوں۔
  • استعمال ہونے والی price: bid، ask، mid، last trade، یا exchange settlement price۔
  • کن contracts کو شامل کیا جائے: ایک at-the-money strike، moneyness band، یا volume یا open-interest filter۔
  • number کو fixed maturity تک کیسے پہنچایا جائے: ان دو expiries کے درمیان interpolation کی جائے جو 30 دن کے دونوں طرف ہوں، یا days-to-expiry window کے اندر آنے والی تمام values کی average لی جائے۔

ایک input تبدیل کریں تو level بدل جاتا ہے۔ چاروں inputs تبدیل کریں تو ایک ہی session کے لیے دو محتاط sources کے volatility levels میں کئی points کا فرق آ سکتا ہے، اور ان میں سے کوئی بھی غلط نہیں ہوتا۔

یہ فرق ایک ہی نام کے اندر بھی شروع ہو جاتا ہے۔ ذیل کا panel June 2026 کے دوران AAPL کو دکھاتا ہے۔ اس میں صرف وہ contracts شامل ہیں جن کے strike prices spot price سے 5% کے اندر ہیں، اور انہیں expiry تک باقی وقت کے مطابق تقسیم کیا گیا ہے۔

استفسار کریںایک نام، ایک ماہ: expiry تک مدت کے لحاظ سے implied volatility (AAPL، جون 2026)
ہر عدد کے پیچھے موجود درست SQL
SELECT
    dte_band,
    round(100 * quantileDeterministic(0.25)(iv, contract_hash), 1) AS iv_p25_pct,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS iv_median_pct,
    round(100 * quantileDeterministic(0.75)(iv, contract_hash), 1) AS iv_p75_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        multiIf(days_to_expiry <=   7, '01-07d',
                days_to_expiry <=  21, '08-21d',
                days_to_expiry <=  45, '22-45d',
                days_to_expiry <=  90, '46-90d',
                days_to_expiry <= 180, '91-180d',
                                       '181d+')  AS dte_band,
        toFloat64(implied_volatility)             AS iv,
        cityHash64(ticker)                        AS contract_hash,
        days_to_expiry                            AS dte
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry > 0
      AND underlying_close > 0
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY dte_band
ORDER BY min(dte)
Run this yourself

Underlying، month اور near-the-money strikes ایک ہی ہیں۔ نظر آنے والے سب سے مختصر band، 01-07d، کی median IV 29.6% تھی۔ سب سے طویل band 181d+، پر 28.1% رہی۔ صرف پہلے band کے اندر 25th اور 75th percentiles بالترتیب 24.9% اور 35.8% تھے۔ Expiries کے درمیان یہ shape term structure کہلاتی ہے، جبکہ strikes کے درمیان اس کی متعلقہ شکل volatility skew کہلاتی ہے۔ یہاں کوئی ایک IV موجود نہیں۔ ایک volatility surface موجود ہے، اور شائع کردہ AAPL IV figure اسی surface کا ایک خلاصہ ہوتی ہے۔ ہماری AAPL implied volatility page اسی کو track کرتی ہے۔

دو 30-day IV charts مختلف اعداد کیوں دکھاتے ہیں؟

ایک liquid underlying، ایک سال کے sessions اور ایک ہی rows استعمال کرتے ہوئے 30-day IV کو تین طریقوں سے تیار کریں۔ پہلے column میں spot سے 1% کے اندر کے strikes اور 25 سے 35 دن کی expiries شامل کی جاتی ہیں، جو دستیاب readings میں سب سے محدود دائرہ ہے۔ دوسرے میں دائرہ بڑھا کر spot سے 5% کے اندر کے strikes اور 20 سے 45 دن کی expiries شامل کی جاتی ہیں۔ جب ہر session میں data مکمل کرنا ہو تو یہی عملی default ہے۔ تیسرے میں اس وسیع دائرے کو contract volume کے لحاظ سے weight کیا جاتا ہے، جس سے average ان strikes کی طرف جھک جاتا ہے جہاں واقعی trading ہوئی ہو۔

استفسار کریںSPY کے لیے 30-day IV بنانے کے تین طریقے، ایک ہی rows سے
ہر عدد کے پیچھے موجود درست SQL
WITH
    near_money AS
    (
        SELECT
            toMonday(date)                                                 AS week_start,
            toFloat64(implied_volatility)                                  AS iv,
            days_to_expiry                                                 AS dte,
            volume                                                         AS vol,
            abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2025-08-01'
          AND date <  '2026-08-01'
          AND iv_converged = 1
          AND volume > 0
          AND underlying_close > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    ),
    weekly AS
    (
        SELECT
            week_start,
            avgIf(iv, dte BETWEEN 25 AND 35 AND moneyness < 0.01) AS tight_atm,
            avg(iv)                                               AS wide_atm,
            sum(iv * vol) / sum(vol)                              AS volume_weighted
        FROM near_money
        GROUP BY week_start
        HAVING countIf(dte BETWEEN 25 AND 35 AND moneyness < 0.01) > 0
    )
SELECT
    toString(week_start) AS week,
    concat(monthName(week_start), ' ', toString(toDayOfMonth(week_start)), ', ', toString(toYear(week_start))) AS week_label,
    round(100 * tight_atm, 1)       AS tight_atm_pct,
    round(100 * wide_atm, 1)        AS wide_atm_pct,
    round(100 * volume_weighted, 1) AS volume_weighted_pct,
    round(100 * (greatest(tight_atm, wide_atm, volume_weighted)
               - least(tight_atm, wide_atm, volume_weighted)), 1) AS spread_pp
FROM weekly
ORDER BY week_start
Run this yourself

پہلے زیرِمشاہدہ ہفتے، July 28, 2025، میں ان تین طریقوں سے بالترتیب 16.616.4% اور 16.7% کی readings آئیں۔ ان میں سب سے زیادہ اور سب سے کم reading کا فرق 0.2 percentage points تھا، جبکہ spread column تمام 53 ہفتوں میں اس gap کو track کرتا ہے۔ ان تینوں میں سے کوئی بھی fund کی حقیقی 30-day IV نہیں ہے۔ ہر reading قدرے مختلف سوال کا جواب دیتی ہے، اور vendor chart انہی میں سے ایک ہوتا ہے، مگر اس کے label میں استعمال شدہ recipe درج نہیں ہوتی۔

فی contract implied volatility کی تاریخ کتنی پرانی ہے؟

ان panels کے پیچھے موجود dataset global_markets.options_greeks ہے: ہر contract اور ہر trading day کے لیے ایک row۔ اس میں implied volatility کے ساتھ delta، gamma، vega، theta اور rho، نیز strike، expiration، days to expiry، underlying symbol اور underlying close شامل ہیں۔ یہ end-of-day data ہے، live chain snapshot نہیں۔ ذیل کا panel ہر quarter میں ان distinct underlying names کی تعداد دکھاتا ہے جن کے لیے کم از کم ایک converged IV row موجود ہے۔

استفسار کریںconverged daily IV والے underlying names، سہ ماہی کے لحاظ سے
ہر عدد کے پیچھے موجود درست SQL
SELECT
    concat(toString(toYear(date)), '-Q', toString(toQuarter(date))) AS quarter,
    uniqExact(underlying_symbol)                                    AS underlyings_covered
FROM global_markets.options_greeks
WHERE iv_converged = 1
  AND volume > 0
  AND underlying_symbol NOT IN ('SPCX')
  AND date < '2026-07-01'
GROUP BY quarter
ORDER BY min(date)
Run this yourself

Coverage 2014-Q2 سے 2026-Q2 تک ہے، یعنی مجموعی طور پر 49 quarters۔ دکھائے گئے آخری مکمل quarter میں 5799 underlying names کے لیے converged daily IV موجود ہے۔

اس طرح کے dataset کو query کرتے وقت چار filters زیادہ تر کام انجام دیتے ہیں۔

  • iv_converged = 1 برقرار رکھیں۔ Solver ہمیشہ convergence حاصل نہیں کرتا، اور unconverged row کم reading نہیں بلکہ failed fit ہوتی ہے۔
  • volume > 0 برقرار رکھیں۔ ایسا contract جس میں کبھی trading نہ ہوئی ہو، stale quote کی بنیاد پر حل شدہ IV رکھتا ہے۔
  • underlying_symbol کے لحاظ سے group کریں۔ ticker column میں OCC contract code ہوتا ہے، اس لیے اس کے لحاظ سے grouping کرنے سے ہر company کے لیے ایک row کے بجائے ہر strike اور expiry کے لیے ایک row ملتی ہے۔
  • Contracts کا انتخاب سوچ سمجھ کر کریں: انہیں near the money اور days-to-expiry کی مقررہ window کے اندر رکھیں۔ یہ مرحلہ چھوڑنے سے skew اور term structure ایک ہی figure میں average ہو جاتے ہیں۔

کیا کوئی free implied volatility API موجود ہے؟

Free sources موجود ہیں، لیکن ہر source کی اپنی مخصوص محدودیت ہے۔

  • Broker platforms اپنے option chains پر IV خود calculate کرتے ہیں اور اسے live دکھاتے ہیں۔ Downloadable history مختصر ہوتی ہے یا دستیاب نہیں ہوتی، اور یہ number کسی standard کے بجائے متعلقہ broker کے model پر مبنی ہوتا ہے۔
  • Exchange-published volatility indices کئی دہائیوں پر محیط data فراہم کرتے ہیں اور ان کی کوئی لاگت نہیں ہوتی۔ ہر index ایک basket کے لیے ایک واحد blended figure ہوتا ہے۔ اس لیے یہ market-wide سوال کا جواب دیتا ہے، کسی single-name کا نہیں۔
  • General market data APIs عموماً prices تک محدود رہتی ہیں۔ تقریباً ہر جگہ per-contract greeks ایک الگ product ہوتے ہیں، اور جن free tiers میں یہ شامل ہوں وہ عموماً archive کے بغیر live snapshot فراہم کرتے ہیں۔ ہماری free stock market data API کی تفصیل بتاتی ہے کہ open tiers حقیقت میں کیا فراہم کرتے ہیں۔
  • Vendor-priced per-contract history میں single-name کے طویل archives موجود ہوتے ہیں۔ یہ data عموماً month یا year کے حساب سے end-of-day files کی صورت میں فروخت کیا جاتا ہے، جبکہ realtime chains کی قیمت historical set سے کہیں زیادہ ہوتی ہے۔ real time market data کی قیمت میں ان price lists کی ساخت واضح کی گئی ہے۔

Snapshot اور end-of-day کے فرق کی اہمیت price جتنی ہی ہے۔ 4:00 p.m. ET پر لیا گیا snapshot اسی لمحے دستیاب quotes استعمال کرتا ہے۔ Settlement prices سے تیار کی گئی file بالکل مختلف input استعمال کرتی ہے، اور دونوں میں سب سے زیادہ فرق تیز رفتار market days پر آتا ہے۔

Blended index volatility اور single-name volatility ایک دوسرے کا متبادل نہیں ہیں۔ Index option کسی basket کی حرکت کو price کرتا ہے، جہاں members کی باہمی مخالف حرکات مجموعی move کو کم کر دیتی ہیں۔ Single-name option کسی ایک کمپنی کی اپنی price path کو price کرتا ہے۔ ذیل کا panel یکساں filters کے تحت ایک ماہ کے دوران معروف ناموں کا تقابلی جائزہ پیش کرتا ہے۔

استفسار کریںMedian near-the-money IV، expiry تک 20 سے 45 دن (جون 2026)
ہر عدد کے پیچھے موجود درست SQL
SELECT
    underlying_symbol                                              AS symbol,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS median_iv_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        underlying_symbol,
        toFloat64(implied_volatility) AS iv,
        cityHash64(ticker)            AS contract_hash
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'XOM', 'TLT')
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND underlying_close > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY symbol
ORDER BY median_iv_pct DESC
Run this yourself

June 2026 کے دوران 20 سے 45 دن کی window میں median near-the-money IV 38.5% سے NVDA تک، اور 10.4% سے TLT تک رہی، جس میں 8 names شامل تھے۔ Window ایک ہی تھی، filters ایک جیسے تھے، اور solve بھی ایک ہی تھا۔ ایسی ranking اسی وقت برقرار رہتی ہے جب اس میں شامل ہر name کے لیے recipe مستقل رکھی جائے۔

کیا IV rank اور IV percentile کے لیے source اہم ہے؟

یہی جواب طے کرتا ہے۔ IV rank آج کی IV کو lookback مدت، عموماً ایک سال، کی بلند ترین اور کم ترین قدروں کے مقابلے میں ناپتا ہے، جبکہ IV percentile یہ شمار کرتا ہے کہ اس مدت کے کتنے دنوں کی IV آج کی IV سے کم تھی۔ دونوں metrics ایک ہی series کو ابتدا سے انتہا تک پڑھتے ہیں، اس لیے series میں تبدیلی score کو بدل سکتی ہے، خواہ market میں کوئی تبدیلی نہ آئی ہو۔ اگر آپ broker کی mid-quote IV کو کسی vendor کے settlement-based archive کے ساتھ جوڑ دیں تو lookback کے درمیان ایک مستقل step پیدا ہو جائے گا، اور اس کے اوپر calculate کیا جانے والا ہر rank اسی step کو شامل کرے گا۔ IV rank بمقابلہ IV percentile دونوں calculations کی وضاحت کرتا ہے۔ یہی تقاضا اس وقت بھی لاگو ہوتا ہے جب آپ implied movement کا realized movement سے موازنہ کریں: historical volatility بمقابلہ implied volatility اس جوڑے کا جائزہ لیتا ہے۔

عملی معیار provenance rule ہے۔ ایک source، ایک model، ایک contract-selection recipe اور ایک maturity convention منتخب کریں، پھر پوری lookback مدت میں ان چاروں کو یکساں رکھیں۔ ایسی series جو اندرونی طور پر consistent ہو، چاہے وہ باقی سب کی series سے قدرے مختلف ہو، اس stitched series سے زیادہ قابلِ اعتماد ہوتی ہے جو مختلف حصوں میں ہر vendor سے مطابقت رکھتی ہو۔

عمومی سوالات

تاریخی implied volatility کا ڈیٹا کہاں سے حاصل کیا جا سکتا ہے؟

طویل مدت کے single-name ریکارڈز options data vendors سے ملتے ہیں، جو عموماً ہر contract کے end-of-day greeks ماہانہ یا سالانہ فائلوں میں فروخت کرتے ہیں۔ Exchanges index-level volatility کی تاریخی سیریز مفت شائع کرتے ہیں۔ Broker platforms اپنی options chains میں live IV دکھاتے ہیں، لیکن قابلِ ڈاؤن لوڈ تاریخی ڈیٹا بہت کم فراہم کرتے ہیں۔ اوپر موجود panels ہر listed contract کا converged fit شامل کرنے والے per-contract daily data set پر چلتے ہیں۔

کیا implied volatility کے لیے کوئی مفت API موجود ہے؟

Per-contract greeks شامل کرنے والے free tiers نایاب ہیں، اور جو دستیاب ہیں وہ عموماً archive کے بجائے live snapshot فراہم کرتے ہیں۔ Index volatility کی history واقعی دستیاب سب سے اہم مفت طویل سیریز ہے۔ Single-name کی گہری تاریخی سیریز عموماً paid product ہوتی ہے۔

ایک ہی stock کے لیے دو sources مختلف implied volatility کیوں دکھاتے ہیں؟

اس کی وجوہات مختلف pricing models، مختلف input quotes، contract selection میں فرق اور maturity interpolation کے مختلف طریقے ہیں۔ اوپر والا panel ایک ہی rows کے set سے 30-day کی تین سیریز بناتا ہے، اور صرف پہلے ہفتے میں ان کے درمیان 0.2 percentage points کا فرق ہوتا ہے۔ اس لیے دو vendors کے درمیان gap متوقع ہے، اسے error نہیں سمجھنا چاہیے۔

implied volatility کا ڈیٹا کتنی پرانی تاریخ تک دستیاب ہے؟

یہ source پر منحصر ہے، اور ہر جگہ per-contract archives، price archives کے مقابلے میں مختصر ہوتے ہیں۔ اس page کے پیچھے موجود set 2014-Q2 سے شروع ہوتا ہے اور اس کے بعد سے ہر converged contract کے لیے daily rows شامل کرتا ہے۔


یہاں ہر panel اس کے تیار کرنے والی SQL کے ساتھ فراہم کیا گیا ہے۔ یہ دیکھنے کے لیے کسی panel کو expand کریں کہ number میں بالکل کون سے contracts شامل تھے۔ کسی دوسرے name، window یا recipe کے لیے یہی series بنانے کو Strasmore terminal پر plain English میں درخواست دیں۔