Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-21

Value at Risk கணக்கிடும் மூன்று முக்கிய முறைகள்

SPY வருவாய் தரவுகளைக் கொண்டு Historical, parametric மற்றும் Monte Carlo முறைகளில் VaR கணக்கிடுவது எப்படி என்பதை விளக்குகிறோம். VaR கணக்கில் விடுபடும் expected shortfall பற்றியும்

Value at Risk (VaR) கணக்கீடு

Value at Risk, அல்லது VaR, ஒரு குறிப்பிட்ட கால அளவை நிர்ணயித்து, ஒரு நம்பிக்கைத் தன்மையை (confidence level) உறுதிசெய்து, வருவாய் வரிசையிலிருந்து (return series) ஒரு percentile-ஐக் கணக்கிடுவதன் மூலம் பெறப்படுகிறது. ஒரு நாள் 99% VaR என்பது இரண்டு சதவீதம் எனில், நூறு அமர்வுகளில் தொண்ணூற்று ஒன்பது அமர்வுகளில் இழப்பு இரண்டு சதவீதத்திற்குள் இருக்கும் என்றும், நூறாவது அமர்வில் அது இரண்டு சதவீதத்தைத் தாண்டும் என்றும் பொருள். ஒரே மாதிரியான உள்ளீடுகளைக் கொண்டு இந்த வினாவுக்கு விடையளிக்க மூன்று தரப்படுத்தப்பட்ட முறைகள் உள்ளன; ஆனால், பெரும்பாலானோர் எதிர்பார்ப்பதை விட இந்த முறைகளுக்கு இடையே அதிக வேறுபாடுகள் காணப்படுகின்றன.

Value at risk (VaR) உண்மையில் எதை அளவிடுகிறது

VaR என்பது இழப்புப் பரவலின் (loss distribution) ஒரு குவாண்டைல் (quantile) ஆகும். ஒரு குறிப்பிட்ட காலப்பகுதியில் கிடைத்த தினசரி வருவாய்களை மோசமானதிலிருந்து சிறந்ததாக வரிசைப்படுத்துங்கள். மோசமான முனையிலிருந்து ஒரு சதவீத தூரம் சென்றால், நீங்கள் அடையும் வருவாய் புள்ளி, நேர்மறையான இழப்பாகக் கணக்கிடப்படும்போது, அதுவே ஒரு நாள் 99% historical VaR ஆகும். இந்த மதிப்பீட்டு முறையில், இதுவே மிக மோசமான நிலை என்று எங்கும் உறுதியளிக்கப்படவில்லை. இது மதிப்பீடு விவரிக்கத் தவறும் எல்லைப் பகுதியை மட்டுமே குறிக்கிறது.

இந்தத் தன்மையைத்தான் வாசகர்கள் அடிக்கடி தவறாகப் புரிந்துகொள்கிறார்கள். 99% VaR என்பது, மிக மோசமான ஒரு சதவீத நாட்கள் இந்த எல்லையைத் தாண்டி இருக்கும் என்று மட்டுமே கூறுகிறது; அந்த எல்லைக்கு அப்பால் எவ்வளவு தூரம் இழப்பு செல்லும் என்பது பற்றி அது மௌனம் காக்கிறது. Maximum drawdown என்பது முற்றிலும் மாறுபட்ட ஒரு கேள்விக்கு விடையளிக்கிறது; அதாவது, ஒரு முதலீட்டுத் தொகுப்பு (book) உண்மையில் சந்தித்த உச்சத்திலிருந்து வீழ்ச்சி வரையிலான இழப்பை இது காட்டுகிறது. இவை இரண்டும் ஒரே முதலீட்டுத் தொகுப்புகளை வெவ்வேறு வரிசைப்படுத்தல்களில் காட்டக்கூடும்.

கீழே உள்ள ஒவ்வொரு புள்ளிவிவரமும் ஒரே தரவுத் தொடரை அடிப்படையாகக் கொண்டது: 2010-ஆம் ஆண்டின் தொடக்கத்திலிருந்து 2025-ஆம் ஆண்டின் இறுதி வரை SPY-ன் தினசரி நிறைவு விலைகள், நிறைவு முதல் நிறைவு வரையிலான சதவீத மாற்றங்களாக மாற்றப்பட்டுள்ளன. இந்த கால அளவு நகரும் தன்மையற்றது (pinned), ஒவ்வொரு பகுதியும் அதே தேதிகளிலிருந்து தரவுத் தொடரை மீண்டும் கட்டமைக்கிறது, எனவே இயங்கும் முறைகளுக்கு இடையே எண்களில் மாற்றம் இருக்காது.

வினவவும்நிர்ணயிக்கப்பட்ட வருவாய் வரிசை: 2010 முதல் 2025 வரையிலான SPY தினசரி வருவாய் (காலண்டர் ஆண்டு வாரியாக)
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
px AS
(
    SELECT date, max(toFloat64(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2009-12-01'
      AND date <  '2026-01-01'
    GROUP BY date
),
rets AS
(
    SELECT date, 100 * (close_px / prev_close - 1) AS ret_pct
    FROM
    (
        SELECT date, close_px,
               lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
        FROM px
    )
    WHERE date >= '2010-01-01' AND prev_close > 0
)
SELECT
    toString(toYear(date))        AS year,
    count()                       AS sessions,
    round(avg(ret_pct), 3)        AS mean_return_pct,
    round(stddevSamp(ret_pct), 2) AS daily_sigma_pct
FROM rets
GROUP BY year
ORDER BY year
Run this yourself

இந்தத் தரவுத் தொடர் 16 காலண்டர் ஆண்டுகளை உள்ளடக்கியது, இதில் 2010 ஆண்டில் மட்டும் 252 வர்த்தக அமர்வுகள் உள்ளன. பின்வரும் அனைத்திற்கும் இந்தத் தரவின் இரண்டு அம்சங்கள் முக்கியமானவை. இந்த கால அளவில் சராசரி அமர்வு வருவாய் என்பது கிட்டத்தட்ட முக்கியமற்றது: 2010-ல் 0.054%, அதேசமயம் தினசரி திட்ட விலக்கம் (standard deviation), அதாவது sigma, 1.13% ஆக உள்ளது. மேலும், sigma என்பது மாறிலி அல்ல. 2020-ல் இது ஒரு நாளைக்கு 2.11% ஆக இருந்தது, 2017-ல் இது 0.43% ஆக இருந்தது. ஒரே ஒரு sigma மதிப்பால் இவை இரண்டையும் விவரிக்க முடியாது.

Value at Risk (VaR) கணக்கிடப்படும் மூன்று வழிகள்

Historical VaR: கடந்த கால நிகழ்வுகளின் அடிப்படையில் சதவீதத்தை அறிதல்

உண்மையான வருவாய்களை வரிசைப்படுத்தி, அதிலிருந்து தேவையான சதவீதத்தை (percentile) எடுக்க வேண்டும். இதில் எந்தவொரு பரவல் (distribution) மாதிரியும் எடுத்துக்கொள்ளப்படுவதில்லை என்பது இதன் சிறப்பம்சமாகும். ஆனால், இந்த முறை ஒரு முக்கிய அனுமானத்தை அடிப்படையாகக் கொண்டது: நாம் மதிப்பீடு செய்ய விரும்பும் காலக்கட்டத்தில், ஏற்கனவே நிகழ்ந்த மோசமான சந்தை நாட்கள் தரவுத் தொகுப்பில் இருக்க வேண்டும். நம்பிக்கை அளவை (confidence level) மிக அதிகமாக உயர்த்தினால், அந்த முழு காலக்கட்டத்திலும் நிகழ்ந்த மிக மோசமான சில நாட்கள் மட்டுமே விடையைத் தீர்மானிக்கும்.

Parametric VaR: சராசரி மற்றும் z-sigma ஆகியவற்றின் பயன்பாடு

வருவாய் வரிசையை அதன் சராசரி (mean) மற்றும் திட்ட விலக்கம் (sigma) ஆகியவற்றைக் கொண்டு சுருக்கி, வருவாய்கள் இயல்பு பரவலைப் (normal distribution) பின்பற்றுவதாகக் கருத வேண்டும். VaR என்பது z பெருக்கல் sigma கழித்தல் சராசரி ஆகும்; இதில் z என்பது standard normal quantile ஆகும்: 95% நம்பிக்கைக்கு 1.645, 99% நம்பிக்கைக்கு 2.326, மற்றும் 99.9% நம்பிக்கைக்கு 3.090. இதன் கணக்கீடு உடனடியானது, ஆனால் இந்த அனுமானம் ஒரு குறிப்பிட்ட திசையில் தோல்வியடைகிறது. தினசரி பங்குச் சந்தை வருவாய்கள், இயல்பு பரவல் வளைவை விட மையத்தில் நெருக்கமாகவும், உச்சக்கட்டங்களில் (extremes) நீண்ட தூரத்திலும் அமைகின்றன. இங்குள்ள sigma, Sharpe ratio-வின் பகுதியாகவும் செயல்படுகிறது, மேலும் இது fat-tailed தரவுகளில் அதே குறைபாட்டைக் கொண்டுள்ளது.

Monte Carlo VaR: சீட் (seed) மதிப்பை நிர்ணயித்து உருவகப்படுத்துதல்

ஒரு குறிப்பிட்ட செயல்முறையிலிருந்து பெரிய செயற்கை தரவுத் தொகுப்பை உருவாக்கி, அதிலிருந்து சதவீதத்தை எடுக்க வேண்டும். கீழே உள்ள அட்டவணை, Box-Muller உருமாற்றம் மூலம் உருவாக்கப்பட்ட 40,000 standard normal தரவுகளைப் பயன்படுத்துகிறது; இவை ஒரு hash-சீட் செய்யப்பட்ட சீரான வரிசையிலிருந்து பெறப்பட்டு, தொடரின் சராசரி மற்றும் sigma-விற்கு ஏற்ப அளவிடப்படுகின்றன. சீட் மதிப்பு SQL-ல் இருப்பதால், ஒவ்வொரு முறை இயக்கும்போதும் தரவுகள் மாறாமல் இருக்கும். உருவகப்படுத்துதல் (simulation) நெகிழ்வுத்தன்மை, பாதை சார்பு (path dependence) மற்றும் பல சொத்துக்களுக்கு இடையிலான தொடர்பு ஆகியவற்றை வழங்குகிறது, ஆனால் இது எதார்த்தத்தை உறுதிப்படுத்துவதில்லை: இதற்கு இயல்பு பரவலை வழங்கினால், அது மாதிரி இரைச்சலுடன் (sampling noise) கூடிய parametric விடையையே திருப்பித் தரும். இதற்குப் பதிலாக, bootstrapped confidence intervals நுட்பத்தைப் பயன்படுத்தி, அவதானிக்கப்பட்ட வருவாய்களை மீண்டும் மாதிரி எடுத்தால், உண்மையான சந்தை உச்சக்கட்டங்களை (tail) கணக்கில் கொள்ள முடியும்.

வினவவும்ஒரே வரிசை, மூன்று முறைகள்: ஆறு நம்பிக்கை நிலைகளில் 1-நாள் VaR
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
px AS
(
    SELECT date, max(toFloat64(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2009-12-01'
      AND date <  '2026-01-01'
    GROUP BY date
),
rets AS
(
    SELECT date, 100 * (close_px / prev_close - 1) AS ret_pct
    FROM
    (
        SELECT date, close_px,
               lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
        FROM px
    )
    WHERE date >= '2010-01-01' AND prev_close > 0
),
emp AS
(
    SELECT
        avg(ret_pct)                  AS mu,
        stddevSamp(ret_pct)           AS sd,
        quantileExact(0.100)(ret_pct) AS h90,
        quantileExact(0.050)(ret_pct) AS h95,
        quantileExact(0.025)(ret_pct) AS h975,
        quantileExact(0.010)(ret_pct) AS h99,
        quantileExact(0.005)(ret_pct) AS h995,
        quantileExact(0.001)(ret_pct) AS h999
    FROM rets
),
draws AS
(
    SELECT
        quantileExact(0.100)(z) AS z90,
        quantileExact(0.050)(z) AS z95,
        quantileExact(0.025)(z) AS z975,
        quantileExact(0.010)(z) AS z99,
        quantileExact(0.005)(z) AS z995,
        quantileExact(0.001)(z) AS z999
    FROM
    (
        SELECT sqrt(-2 * log(u1)) * cos(2 * pi() * u2) AS z
        FROM
        (
            SELECT
                (cityHash64('var-seed-u1', i) % 999999937 + 1) / 999999938.0 AS u1,
                (cityHash64('var-seed-u2', i) % 999999937 + 1) / 999999938.0 AS u2
            FROM (SELECT arrayJoin(range(40000)) AS i)
        )
    )
)
SELECT
    tupleElement(lvl, 1)                                                  AS confidence,
    round(-1 * tupleElement(lvl, 2), 2)                                   AS historical_var_pct,
    round(tupleElement(lvl, 3) * sd - mu, 2)                              AS parametric_var_pct,
    round(-1 * (mu + sd * tupleElement(lvl, 4)), 2)                       AS monte_carlo_var_pct,
    round(-1 * tupleElement(lvl, 2) - (tupleElement(lvl, 3) * sd - mu), 2) AS method_spread
FROM
(
    SELECT
        mu,
        sd,
        arrayJoin([
            ('90.0%', h90,  1.281552, z90,  1),
            ('95.0%', h95,  1.644854, z95,  2),
            ('97.5%', h975, 1.959964, z975, 3),
            ('99.0%', h99,  2.326348, z99,  4),
            ('99.5%', h995, 2.575829, z995, 5),
            ('99.9%', h999, 3.090232, z999, 6)
        ]) AS lvl
    FROM emp
    CROSS JOIN draws
)
ORDER BY tupleElement(lvl, 5)
Run this yourself

95.0% அளவில், மூன்று முறைகளும் ஒன்றுக்கொன்று நெருக்கமான முடிவுகளைத் தருகின்றன: 1.66% historical, 1.74% parametric, 1.71% simulated. 99.9% அளவில் இவை மாறுபடுகின்றன: 5.85% historical மற்றும் 3.31% parametric ஆகியவற்றுக்கு இடையே, ஒரே தரவுகளில் 2.54 சதவீதப் புள்ளிகள் இடைவெளி உள்ளது. simulated நெடுவரிசை ஒவ்வொரு நிலையிலும் parametric நெடுவரிசைக்கு அருகிலேயே அமைகிறது; இது ஒரு குறைபாடு அல்ல, மாறாக ஒரு பாடமாகும். ஒரு உருவகப்படுத்துதல், அதற்கு வழங்கப்பட்ட பரவலை அப்படியே பிரதிபலிக்கிறது.

ஒரு நெடுவரிசையை மேலிருந்து கீழாகப் பார்த்தால், நம்பிக்கை அளவு அதிகரிக்கும்போது வரம்பு (threshold) விரிவடைகிறது. ஒரு வரிசையை இடமிருந்து வலமாகப் பார்த்தால், பரவலின் மையப்பகுதியில் முறைத் தேர்வு பெரிய மாற்றத்தை ஏற்படுத்துவதில்லை, ஆனால் உச்சக்கட்டங்களில் (tail) அதுவே தீர்மானிக்கிறது. ஒரு VaR வரம்பு, அதன் முறை மற்றும் காலக்கட்டம் குறிப்பிடப்படாமல் வழங்கப்பட்டால், அதை மற்றவர்களால் மீண்டும் கணக்கிட முடியாது.

VaR எதைச் சொல்லாது: expected shortfall

Expected shortfall, இது conditional VaR என்றும் அழைக்கப்படுகிறது, VaR-ஐ மீறும் நாட்களில் ஏற்படும் இழப்புகளின் சராசரியைக் கணக்கிடுகிறது. VaR என்பது இழப்பு விளிம்பு தொடங்கும் இடத்தைக் குறிக்கிறது. Expected shortfall அந்த விளிம்பிற்குள் என்ன இருக்கிறது என்பதை அளவிடுகிறது.

வினவவும்VaR மற்றும் எதிர்பார்க்கப்படும் பற்றாக்குறை (Expected Shortfall): வரம்பிற்கு அப்பால் உள்ள சராசரி இழப்பு
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
px AS
(
    SELECT date, max(toFloat64(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2009-12-01'
      AND date <  '2026-01-01'
    GROUP BY date
),
rets AS
(
    SELECT date, 100 * (close_px / prev_close - 1) AS ret_pct
    FROM
    (
        SELECT date, close_px,
               lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
        FROM px
    )
    WHERE date >= '2010-01-01' AND prev_close > 0
),
qs AS
(
    SELECT
        quantileExact(0.100)(ret_pct) AS q90,
        quantileExact(0.050)(ret_pct) AS q95,
        quantileExact(0.025)(ret_pct) AS q975,
        quantileExact(0.010)(ret_pct) AS q99,
        quantileExact(0.005)(ret_pct) AS q995,
        quantileExact(0.001)(ret_pct) AS q999
    FROM rets
),
tails AS
(
    SELECT
        any(q90)                        AS var90,
        any(q95)                        AS var95,
        any(q975)                       AS var975,
        any(q99)                        AS var99,
        any(q995)                       AS var995,
        any(q999)                       AS var999,
        avgIf(ret_pct, ret_pct <= q90)  AS es90,
        avgIf(ret_pct, ret_pct <= q95)  AS es95,
        avgIf(ret_pct, ret_pct <= q975) AS es975,
        avgIf(ret_pct, ret_pct <= q99)  AS es99,
        avgIf(ret_pct, ret_pct <= q995) AS es995,
        avgIf(ret_pct, ret_pct <= q999) AS es999
    FROM rets
    CROSS JOIN qs
    HAVING countIf(ret_pct <= q999) > 0
)
SELECT
    tupleElement(lvl, 1)                                  AS confidence,
    round(-1 * tupleElement(lvl, 2), 2)                   AS historical_var_pct,
    round(-1 * tupleElement(lvl, 3), 2)                   AS expected_shortfall_pct,
    round(tupleElement(lvl, 3) / tupleElement(lvl, 2), 2) AS es_to_var_ratio
FROM
(
    SELECT
        arrayJoin([
            ('90.0%', var90,  es90,  1),
            ('95.0%', var95,  es95,  2),
            ('97.5%', var975, es975, 3),
            ('99.0%', var99,  es99,  4),
            ('99.5%', var995, es995, 5),
            ('99.9%', var999, es999, 6)
        ]) AS lvl
    FROM tails
)
ORDER BY tupleElement(lvl, 4)
Run this yourself

99.0%-இல், இந்தத் தொடரின் VaR 3.09% ஆகவும், expected shortfall 4.43% ஆகவும், அல்லது வரம்பின் 1.44 மடங்காகவும் உள்ளது. ஒரு சாதாரண பரவலின் (normal distribution) கீழ், அதே நிலையில் அந்த விகிதம் 1.15-க்கு அருகில் இருக்கும். 99.9%-இல் கூட, வரம்பு ஏற்கனவே 5.85%-ஐ எட்டியுள்ள நிலையில், சராசரி மீறல் நாள் 8.14%-இல் அமைகிறது. VaR-ஐ மட்டும் அடிப்படையாகக் கொண்ட ஒரு வரம்பு, ஒவ்வொரு மீறலையும் ஒரே மாதிரியான நிகழ்வாகக் கருதுகிறது; விகித நெடுவரிசை (ratio column) அது எவ்வளவு தவறானது என்பதை அளவிடுகிறது.

ஒரு நாள் 99% VaR என்பது ஒரு நிறுவனத்திற்கும் வர்த்தகருக்கும் ஒரே பொருளைத் தருகிறதா?

இல்லை, இதில் உள்ள முரண்பாடு பெரும்பாலும் கால அளவைப் பொறுத்தது. ஒரே நாளில் நிலையை முடித்துக்கொள்ளும் (flat overnight) ஒரு வர்த்தகர் சில மணிநேரங்களுக்கு மட்டுமே அபாயத்தை எதிர்கொள்கிறார். எனவே, ஒரு அமர்வுக்கான வரம்பு அவரது முதலீட்டு காலத்துடன் ஒத்துப்போகிறது; இருப்பினும், வர்த்தக நேரத்திற்குள் விலை நகர்வு, ஒரு நாள் முடிவின் விலையை விட அதிகமாக இருக்கலாம். நீண்ட காலக் கடன்களைக் கொண்ட ஒரு நிறுவனம் பல ஆண்டுகளாகப் பங்குகளை வைத்திருக்கிறது, அதன் அபாயம் பல காலாண்டுகளுக்கு நீடிக்கிறது. அத்தகைய நிறுவனத்திற்கு, ஒரு நாள் 99% VaR என்பது அதன் உண்மையான அபாயத்தைக் குறிக்கும் அளவீடாக இல்லாமல், மூலதனம் மற்றும் கண்காணிப்புக்கான ஒரு கருவியாகவே செயல்படுகிறது. வங்கிகளின் மூலதன விதிகள் பல ஆண்டுகளாக ஒரு நாள் 99% VaR அடிப்படையிலேயே அமைக்கப்பட்டிருந்தன, பின்னர் Basel சந்தை அபாயக் கட்டமைப்பு இந்த அளவீட்டை 97.5% expected shortfall ஆக மாற்றியது.

கால அளவுகளுக்கு இடையிலான பொதுவான இணைப்பு, காலத்தின் வர்க்கமூலத்தை (square root of time) கொண்டு அளவிடுவது ஆகும்: ஒரு அமர்வுக்கான தொகையை, அமர்வுகளின் எண்ணிக்கையின் வர்க்கமூலத்தால் பெருக்க வேண்டும். இந்த முறை, வருவாய்கள் நிலையான sigma உடன் ஒன்றையொன்று சாராமல் இருப்பதாகக் கருதுகிறது. ஆனால், மேலே உள்ள ஆண்டு வாரியான sigma நெடுவரிசை, அந்த அனுமானம் தோல்வியடைவதைக் காட்டுகிறது.

வினவவும்கால அளவை மாற்றியமைத்தல் (Square root of time scaling): அளவிடப்பட்ட பல அமர்வு இழப்புகளுக்கு எதிராக, 99% நிலையில்
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
px AS
(
    SELECT date, max(toFloat64(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2009-11-01'
      AND date <  '2026-01-01'
    GROUP BY date
),
multi AS
(
    SELECT
        date,
        100 * (close_px / p1  - 1) AS r1,
        100 * (close_px / p5  - 1) AS r5,
        100 * (close_px / p10 - 1) AS r10,
        100 * (close_px / p20 - 1) AS r20
    FROM
    (
        SELECT
            date,
            close_px,
            lagInFrame(close_px, 1)  OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND CURRENT ROW) AS p1,
            lagInFrame(close_px, 5)  OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND CURRENT ROW) AS p5,
            lagInFrame(close_px, 10) OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND CURRENT ROW) AS p10,
            lagInFrame(close_px, 20) OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND CURRENT ROW) AS p20
        FROM px
    )
    WHERE date >= '2010-01-01' AND p20 > 0
),
q AS
(
    SELECT
        quantileExact(0.01)(r1)  AS q1,
        quantileExact(0.01)(r5)  AS q5,
        quantileExact(0.01)(r10) AS q10,
        quantileExact(0.01)(r20) AS q20
    FROM multi
)
SELECT
    tupleElement(h, 1)                                             AS horizon,
    round(-1 * tupleElement(h, 3), 2)                              AS actual_var_pct,
    round(-1 * q1 * sqrt(tupleElement(h, 2)), 2)                   AS sqrt_scaled_var_pct,
    round(tupleElement(h, 3) / (q1 * sqrt(tupleElement(h, 2))), 2) AS actual_to_scaled_ratio
FROM
(
    SELECT
        q1,
        arrayJoin([
            ('1 session',   1.0,  q1,  1),
            ('5 sessions',  5.0,  q5,  2),
            ('10 sessions', 10.0, q10, 3),
            ('20 sessions', 20.0, q20, 4)
        ]) AS h
    FROM q
)
ORDER BY tupleElement(h, 4)
Run this yourself

முதல் வரி ஒரு சரிபார்ப்பு: 1 session இல், கணக்கிடப்பட்ட மதிப்பும் அளவிடப்பட்ட மதிப்பும் சமமாக உள்ளன, இதன் விகிதம் 1 ஆகும். 20 sessions இல் இவை இரண்டும் பிரிகின்றன, இது வழக்கமாக எச்சரிக்கப்படும் திசையில் இல்லை: ஒரு அமர்வுக்கான எண்ணை பெருக்கும்போது 13.8% கிடைக்கிறது, ஆனால் அந்த கால அளவில் அளவிடப்பட்ட வருவாய் 10.7% ஆக உள்ளது, இதன் விகிதம் 0.78 ஆகும். இந்த கால இடைவெளியில், கணக்கிடப்பட்ட மதிப்பு, அளவிடப்பட்ட பல அமர்வு வால் பகுதியை விட அதிகமாக உள்ளது. இங்கே இரண்டு வடிவங்கள் ஒன்றுக்கொன்று எதிராகச் செயல்படுகின்றன. ஒரு அமர்வின் தடிமனான வால் (fat-tailed) விநியோகம், வருவாய்கள் சேர்க்கப்படும்போது மெலிதாகிறது, மேலும் ஒருங்கிணைக்கப்பட்ட 99% quantile, காலத்தின் வர்க்கமூலத்தை விட மெதுவாகவே விரிவடைகிறது. Volatility clustering இதற்கு நேர்மாறாகச் செயல்பட்டு, ஒரு குறிப்பிட்ட கால இடைவெளிக்குள் தீவிரமான அமர்வுகளைக் குவிக்கிறது. இந்தத் தொடரில், முதல் வடிவமே பெரியதாக உள்ளது. எந்தவொரு கால இடைவெளியிலும் அல்லது சொத்திலும் எந்த திசை அமையும் என்பது உறுதியற்றது; இதுவே முக்கிய அம்சம்: இந்த பெருக்கி ஒரு அளவீடு அல்ல, அது ஒரு அனுமானம் மட்டுமே. அந்த clustering-ஐத்தான் volatility targeting தனது நிலைகளை மாற்றியமைக்கும்போது பயன்படுத்துகிறது.

இன்னொரு வரம்பை தெளிவாகக் கூறுவோம். மேலே உள்ள அனைத்தும் ஒரு பரந்த index fund-ன் ஒற்றைச் சொத்து VaR ஆகும். பத்து தொடர்புடைய பங்குகளைக் கொண்ட ஒரு தொகுப்பில் concentration risk உள்ளது. இதை portfolio VaR ஒரு correlation மதிப்பீடு மூலம் கையாள்கிறது, ஆனால் அந்த மதிப்பீடு மிக முக்கியமான தருணத்தில்தான் correlations அதிகம் மாறுகின்றன.

முறை மற்றும் மரபுகள்
  • Percentiles என்பது மாதிரி மதிப்பீட்டிலிருந்து பெறப்படாமல், துல்லியமான quantile-லிருந்து பெறப்பட்டது. Monte Carlo வரைபடங்கள் SQL-ல் எழுதப்பட்ட hash seeded uniform வரிசையிலிருந்து பெறப்பட்டவை, எனவே இங்கே உள்ள ஒவ்வொரு எண்ணும் மீண்டும் கணக்கிடும்போது அதே மதிப்பையே தரும்.
  • வருவாய்கள் என்பது dividend மறுமுதலீடு இல்லாத, விலை மாற்றத்தின் அடிப்படையில் கணக்கிடப்பட்டவை; இது ஒரு அமர்வு VaR-க்கான பொதுவான மரபு.
  • கால அளவு குழு (horizon panel) ஒன்றுடன் ஒன்று மேலெழும் சாளரங்களைப் (overlapping windows) பயன்படுத்துகிறது: தொடர்ச்சியான 20 அமர்வு வருவாய்கள் 19 நாட்களைப் பகிர்ந்து கொள்கின்றன, எனவே அதன் வால் பகுதி, வரிசைகளின் எண்ணிக்கை குறிப்பதை விட மிகக் குறைவான சுயாதீனமான அவதானிப்புகளைக் கொண்டுள்ளது.

அடிக்கடி கேட்கப்படும் கேள்விகள் (FAQ)

1-நாள் 99% VaR என்றால் என்ன?

இது ஒரு வர்த்தக அமர்வில், நூறு நாட்களில் மோசமான ஒரு நாளில் ஏற்படக்கூடிய இழப்பு அளவைக் குறிக்கிறது. மேலே உள்ள தரவுத் தொடரில் வரலாற்று மதிப்பீடு 3.09% ஆகும். இந்த எண் ஒரு எல்லையை மட்டுமே குறிக்கிறது; அந்த எல்லைக்கு அப்பால் ஏற்படும் இழப்புகளின் அளவு குறித்து இது எதையும் கூறாது.

எந்த VaR கணக்கீட்டு முறை மிகவும் துல்லியமானது?

இந்த மூன்றில் எதுவுமே முழுமையாகத் துல்லியமானவை அல்ல, ஏனெனில் ஒவ்வொன்றும் வெவ்வேறு அனுமானங்களின் அடிப்படையில் கேள்விக்கு விடையளிக்கின்றன. Historical VaR கொடுக்கப்பட்ட தரவுகளுக்கு உண்மையாக இருக்கும், ஆனால் தரவுகளில் விடுபட்டவை குறித்து மௌனமாக இருக்கும். Parametric VaR செலவு குறைவானது, ஆனால் பங்குச் சந்தையின் தீவிர சரிவுகளை (tails) குறைவாகவே மதிப்பிடுகிறது. Monte Carlo முறை, அதற்கு வழங்கப்படும் தரவுகளின் தரத்தைப் பொறுத்தே அமையும்.

VaR மற்றும் expected shortfall ஆகியவற்றுக்கு இடையே உள்ள வேறுபாடு என்ன?

VaR என்பது தேர்ந்தெடுக்கப்பட்ட நம்பிக்கை மட்டத்தில் (confidence level) உள்ள ஒரு எல்லையாகும். Expected shortfall என்பது அந்த எல்லையைத் தாண்டும் நாட்களில் ஏற்படும் இழப்புகளின் சராசரியாகும். இந்தத் தொடரில், 99% மட்டத்தில் expected shortfall என்பது VaR-ஐ விட 1.44 மடங்கு அதிகமாக உள்ளது; இது சாதாரண பரவல் (normal distribution) முறையில் சுமார் 1.15 மடங்காக இருக்கும்.

1-நாள் VaR-ஐ 10-நாள் VaR ஆக மாற்ற முடியுமா?

10-ன் வர்க்கமூலத்தால் (square root of 10) பெருக்குவது ஒரு பொதுவான குறுக்குவழியாகும்; இது வருவாய்கள் ஒன்றையொன்று சாராதவை மற்றும் நிலையான ஏற்ற இறக்கம் (volatility) கொண்டவை என்ற அனுமானத்தில் செயல்படுகிறது. கால அளவு குறித்த பகுதி இந்த இடைவெளியை அளவிடுகிறது: இருபது அமர்வுகளில், கணக்கிடப்பட்ட மதிப்பு 13.8% ஆக இருந்தது, ஆனால் உண்மையான அளவீடு 10.7% ஆக இருந்தது.


மேலே உள்ள ஒவ்வொரு பகுதியிலும் அதை உருவாக்கிய SQL குறியீடு உள்ளது. வேறொரு ticker அல்லது கால அளவிற்கு இதே மூன்று கணக்கீடுகளைச் செய்ய, Strasmore terminal-இல் எளிய ஆங்கிலத்தில் கேட்கவும்.

#risk#value at risk#expected shortfall#quant#position sizing