Strasmore Research
నేర్చుకోండి Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-08-05

Maximum Drawdown: పతనం లోతు, కోలుకునే సమయం

Maximum drawdown అంటే విలువలో గరిష్ఠ స్థాయి నుంచి కనిష్ఠ స్థాయికి పడిన అతిపెద్ద పతనం. అది ఎంత లోతుగా ఉంటుందో, కొత్త గరిష్ఠానికి చేరేందుకు ఎందుకు ఎక్కువ సమయం పడుతుందో తెలుసుకోండి.

Maximum drawdown అనేది విలువల శ్రేణిలో గరిష్ఠ స్థాయి నుంచి కనిష్ఠ స్థాయికి నమోదైన అతిపెద్ద పతనం. దీన్ని ఆ సమయంలోని గరిష్ఠ విలువకు శాతంగా కొలుస్తారు. ఒక ఖాతా $120,000కు పెరిగి, తర్వాత $84,000కు పడిపోయి, తిరిగి కోలుకుంటే, దాని maximum drawdown 30% అవుతుంది. ఆ తర్వాత ఖాతా కోలుకున్నా ఈ సంఖ్య మారదు. ఎందుకంటే ఈ గణాంకం ప్రస్తుత పరిస్థితిని కాకుండా, ఇప్పటివరకు నమోదైన అత్యంత చెత్త దశను నమోదు చేస్తుంది.

చాలామంది పతనం ఎంత లోతుగా ఉందో మాత్రమే చెబుతారు. కానీ అదే గణాంకంలో మరో రెండు కాల పరిమాణాలు ఉంటాయి. మొదటిది గరిష్ఠ స్థాయి నుంచి కనిష్ఠ స్థాయికి పడిపోవడానికి పట్టిన సమయం. రెండోది ఆ కనిష్ఠ స్థాయి నుంచి తిరిగి కొత్త గరిష్ఠాన్ని చేరడానికి పట్టే, సాధారణంగా చాలా ఎక్కువైన సమయం.

గరిష్ఠ డ్రాడౌన్‌ను ఎలా లెక్కిస్తారు?

ఈ లెక్కింపు మొత్తం సిరీస్‌పై ఒకే పాస్‌లో పూర్తవుతుంది. ప్రతి పరిశీలన వద్ద ఇప్పటివరకు ఉన్న గరిష్ఠ విలువను నవీకరించాలి, ప్రస్తుత విలువను దానితో పోల్చాలి, ఇప్పటివరకు నమోదైన అత్యంత ప్రతికూల విలువను నిల్వ చేయాలి.

  1. రన్నింగ్ పీక్‌ను మొదటి విలువగా సెట్ చేయండి.
  2. ప్రతి కొత్త విలువ వద్ద, అది ఎక్కువగా ఉంటే పీక్‌ను పెంచండి.
  3. ఆ దశలో డ్రాడౌన్‌ను లెక్కించండి: విలువను పీక్‌తో భాగించి, ఒకటిని తీసివేయండి.
  4. అత్యంత ప్రతికూల విలువను నిల్వ చేయండి. అదే గరిష్ఠ డ్రాడౌన్.

ఇందులో returns సిరీస్, volatility estimate లేదా distribution assumption ఏదీ అవసరం లేదు. Python standard library ఉపయోగించి సాధారణ సంఖ్యల జాబితాపై ఈ లూప్ నడుస్తుంది. కొత్త Ubuntu వ్యవస్థలో ముందుగా interpreterను ఇన్‌స్టాల్ చేయండి:

apt-get update && apt-get install -y python3

ఈ లూప్‌ను maxdd.pyగా సేవ్ చేయండి. కింద ఉన్న ధరలు చేతితో తనిఖీ చేయడానికి వీలుగా చిన్నగా ఉంచిన, కల్పిత పది-పాయింట్ల సిరీస్:

prices = [100.0, 104.0, 98.0, 92.0, 95.0, 88.0, 90.0, 101.0, 99.0, 106.0]

peak = prices[0]
max_dd = 0.0

for price in prices:
    if price > peak:
        peak = price
    drawdown = price / peak - 1.0
    if drawdown < max_dd:
        max_dd = drawdown

print(f"maximum drawdown: {max_dd * 100:.1f}%")

python3 maxdd.pyను అమలు చేస్తే maximum drawdown: -15.4% వస్తుంది. దీనిని చేతితో తనిఖీ చేయండి: కనిష్ఠానికి ముందు ఉన్న పీక్ 104, కనిష్ఠ విలువ 88, మరియు 88ను 104తో భాగిస్తే 0.846 వస్తుంది. ఆ తర్వాత సిరీస్ 106 వద్ద, అంటే ఆల్-టైమ్ హై వద్ద, ముగుస్తుంది. అయినప్పటికీ 15.4% డ్రాడౌన్‌గానే ఉంటుంది. గరిష్ఠ డ్రాడౌన్ అనేది ఒక sampleలో నమోదైన అత్యంత ప్రతికూల క్షణానికి శాశ్వత రికార్డు. సిరీస్ ప్రస్తుతం ఎక్కడ ఉందో అది చెప్పదు. అదే లూప్‌లో మరో రెండు variables ఉపయోగిస్తే సమయాన్ని కూడా గుర్తించవచ్చు: పీక్ నమోదైన index, అలాగే అత్యంత ప్రతికూల విలువ నమోదైన index.

డ్రాడౌన్ వక్రరేఖ ఎలా కనిపిస్తుంది

డ్రాడౌన్ వక్రరేఖ ప్రతి దశలో స్టెప్ 3ను కొనసాగిస్తుంది. దాన్ని అత్యంత చెడు ఒకే విలువకు తగ్గించదు. సిరీస్ కొత్త గరిష్ఠాన్ని నమోదు చేసినప్పుడు రేఖ సున్నా వద్ద ఉంటుంది. మధ్యలో మాత్రం సున్నా కంటే దిగువకు వెళ్తుంది. అందుకే ఈ అంతరాన్ని “నీటి అడుగున” అని పిలుస్తారు. జనవరి 2016 నుంచి నెలాఖరు ముగింపు ధరల ఆధారంగా, S&P 500ను అనుసరించే exchange traded fund అయిన SPYకి సంబంధించిన ఆ వక్రరేఖ ఇది.

క్వెరీSPY నీటిమునిగిన వక్రరేఖ: 2016 నుంచి 2026 వరకు నెలాఖరు ముగింపు, దాని రన్నింగ్ పీక్‌తో పోల్చి
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH monthly AS (
    SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY month_start
),
runs AS (
    SELECT month_start,
           close_px,
           max(close_px) OVER (ORDER BY month_start
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
    FROM monthly
)
SELECT formatDateTime(month_start, '%Y-%m') AS month,
       round(100 * (close_px / running_peak - 1), 2) AS drawdown_pct
FROM runs
ORDER BY month_start
Run this yourself

మొత్తం 127 నెలాఖరు రీడింగ్స్‌లో, రేఖ చాలా కాలం సున్నాకు సమీపంలో స్థిరంగా ఉంటుంది. కొన్ని సందర్భాల్లో మాత్రం లోతైన పతనాల్లోకి దిగుతుంది. రికార్డులోని చివరి నెల, కొనసాగుతున్న గరిష్ఠంతో పోలిస్తే -1.27%గా ఉంది. ఈ ఆకృతిలోని రెండు లక్షణాలు విషయాన్ని స్పష్టంగా చూపిస్తాయి. పునరుద్ధరణలు ఒక్కసారిగా ఎగసే బౌన్స్‌లుగా కాకుండా, నెమ్మదిగా పైకి సాగే పెరుగుదలలుగా ఉంటాయి. ప్రతి కొత్త గరిష్ఠం వక్రరేఖను మళ్లీ సున్నాకు తీసుకువెళ్తుంది. దాంతో అంతకుముందు జరిగినదాని దృశ్య జ్ఞాపకం చెరిగిపోతుంది.

డ్రాడౌన్‌ నుంచి కోలుకోవడానికి ఎంత సమయం పడుతుంది?

ఒకే డ్రాడౌన్‌లో మూడు వేర్వేరు సంఖ్యలు ఉంటాయి. వాటిని ఒకటిగా పరిగణించడం పనితీరు పట్టికను తప్పుగా అర్థం చేసుకునే అత్యంత సాధారణ కారణం:

  1. లోతు: గరిష్ఠ స్థాయి కంటే విలువ ఎంత శాతం దిగువకు పడిపోయిందో.
  2. కనిష్ఠ స్థాయికి చేరే సమయం: గరిష్ఠ స్థాయి నుంచి కనిష్ఠ స్థాయికి చేరే వరకు గడిచిన క్యాలెండర్ రోజులు.
  3. రికవరీ సమయం: కనిష్ఠ స్థాయి నుంచి కొత్త గరిష్ఠ స్థాయికి తిరిగి చేరే వరకు గడిచిన క్యాలెండర్ రోజులు.

సాధారణంగా మూడవది ఎక్కువ కాలం పడుతుంది. కానీ హెడ్‌లైన్ సంఖ్యలో అది ఎప్పుడూ కనిపించదు. దిగువ ప్యానెల్ 2016 నుంచి SPYలో రోజువారీ ముగింపు ధరల ఆధారంగా పూర్తయిన ప్రతి డ్రాడౌన్ దశను తిరిగి నిర్మిస్తుంది. ఒక గరిష్ఠ స్థాయి నమోదైన రోజున దశ ప్రారంభమవుతుంది. ఫండ్ ఆ స్థాయి కంటే మొదటిసారి పైగా ముగిసిన రోజున అది ముగుస్తుంది.

క్వెరీ2016 నుంచి పూర్తయిన SPY డ్రాడౌన్‌లు: లోతు, తగ్గిన రోజులు, తిరిగి పెరిగిన రోజులు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
runs AS (
    SELECT session_date,
           close_px,
           max(close_px) OVER (ORDER BY session_date
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
    FROM daily
),
episodes AS (
    SELECT running_peak AS peak_px,
           min(session_date) AS peak_date,
           argMin(session_date, close_px) AS trough_date,
           min(close_px) AS trough_px
    FROM runs
    GROUP BY running_peak
),
sequenced AS (
    SELECT peak_px,
           peak_date,
           trough_date,
           trough_px,
           leadInFrame(peak_date, 1) OVER (ORDER BY peak_date
                                           ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS recovery_date
    FROM episodes
)
SELECT formatDateTime(peak_date, '%b %Y') AS episode_label,
       round(100 * (1 - trough_px / peak_px), 1) AS fall_from_peak_pct,
       dateDiff('day', peak_date, trough_date) AS days_to_trough,
       dateDiff('day', trough_date, recovery_date) AS days_to_new_high,
       dateDiff('day', peak_date, recovery_date) AS days_underwater
FROM sequenced
WHERE recovery_date > trough_date
  AND round(100 * (1 - trough_px / peak_px), 1) >= 5
ORDER BY fall_from_peak_pct DESC
LIMIT 8
Run this yourself

జాబితాలో పూర్తయిన దశల్లో అత్యంత లోతైనది Feb 2020లో ప్రారంభమై, మునుపటి గరిష్ఠ స్థాయి కంటే 34.2% దిగువకు చేరింది. అది పడిపోవడానికి 33 క్యాలెండర్ రోజులు, తిరిగి కోలుకోవడానికి 148 రోజులు తీసుకుంది. మొత్తం 181 రోజులు మునుపటి గరిష్ఠ స్థాయి కంటే దిగువనే ఉంది. తదుపరి నమోదు Jan 2022కు చెందినది. అది 25.4% వద్ద తక్కువ లోతుతో ఉన్నప్పటికీ, ఫండ్‌ను పాత గరిష్ఠ స్థాయి కంటే 746 రోజులు దిగువన ఉంచింది.

లోతు, వ్యవధి పూర్తిగా వేర్వేరు విషయాలు. వేగంగా పడిపోయి త్వరగా తిరిగి కోలుకున్న పతనం, అలాగే సంవత్సరాల పాటు నెమ్మదిగా కొనసాగిన స్వల్ప డ్రాడౌన్—రెండూ ఒకే శాతం సంఖ్యలో కుదించబడతాయి. మార్చి 2020 క్రాష్ మొదటి రకానికి స్పష్టమైన ఉదాహరణ. క్రాష్‌ల తర్వాత మార్కెట్లు ఎలా కోలుకుంటాయి అనేది ఆ ప్రయాణంలోని రెండవ దశను వివరిస్తుంది.

ఎంత ఎక్కువ కాలం కొలిస్తే maximum drawdown ఎందుకు మరింత అధ్వాన్నంగా కనిపిస్తుంది

Maximum drawdown ఒక గరిష్ఠ కొలత. అందువల్ల చారిత్రక డేటాను జోడిస్తే అది మారకుండా ఉండవచ్చు లేదా మరింత లోతుగా మారవచ్చు. ఎక్కువ కాలం ఉన్న విండోలో ప్రతి దశలోని running peak, తక్కువ కాలం ఉన్న విండోలోని peak కంటే కనీసం అంతే ఎక్కువగా ఉంటుంది. అందుకే ఈ గణితం తప్పనిసరిగా పనిచేస్తుంది. జూలై 31, 2026తో ముగిసే ఐదు విండోల్లో అదే ఫండ్‌ను కొలిస్తే ఈ ప్రభావం కనిపిస్తుంది.

క్వెరీఅదే ఫండ్, ఐదు లుక్‌బ్యాక్ విండోలు: 2026 జూలై 31 వరకు నమూనా వ్యవధి ఆధారంగా SPY గరిష్ఠ డ్రాడౌన్
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
scoped AS (
    SELECT arrayJoin([1, 2, 3, 5, 10]) AS lookback_years,
           session_date,
           close_px
    FROM daily
),
windowed AS (
    SELECT lookback_years, session_date, close_px
    FROM scoped
    WHERE session_date >= subtractYears(toDate('2026-07-31'), lookback_years)
),
runs AS (
    SELECT lookback_years,
           session_date,
           close_px,
           max(close_px) OVER (PARTITION BY lookback_years ORDER BY session_date
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
    FROM windowed
)
SELECT concat(toString(lookback_years), if(lookback_years = 1, ' year', ' years')) AS lookback,
       round(100 * max(1 - close_px / running_peak), 1) AS max_drawdown_pct,
       formatDateTime(argMax(session_date, 1 - close_px / running_peak), '%b %Y') AS worst_point
FROM runs
GROUP BY lookback_years
ORDER BY lookback_years
Run this yourself

గత 1 year విండోలో నమోదైన అత్యధిక పతనం 9.1%. అదే సిరీస్‌ను 10 years వరకు పొడిగిస్తే ఈ కొలత 34.2% అవుతుంది. అత్యంత తీవ్రమైన పతనం Mar 2020లో నమోదవుతుంది. ఫండ్ మరింత ప్రమాదకరంగా మారలేదు. పరిశీలించిన కాలం మాత్రమే పొడిగింది.

ఇదే గణితం వ్యూహాల మధ్య పోలికలను కూడా వక్రీకరిస్తుంది. మూడు సంవత్సరాల backtest, ఇరవై సంవత్సరాల backtest ఒకే ప్రవర్తనను వివరించినా, వాటి drawdownలు చాలా భిన్నంగా ఉండవచ్చు. అందువల్ల కొలతకు సంబంధించిన విండోను పేర్కొనకుండా ఆ సంఖ్యకు పెద్దగా అర్థం ఉండదు. backtestingలో look-ahead bias శుభ్రంగా కనిపించే backtest తన పనితీరును మరొక విధంగా ఎలా అతిశయోక్తి చేసుకుంటుందో వివరిస్తుంది.

గరిష్ఠ పతనం వర్సెస్ అస్థిరత

అస్థిరత ఒక రోజులో ధర సాధారణంగా ఎంత మేరకు, ఏ దిశలో కదులుతుందో కొలుస్తుంది. గరిష్ఠ పతనం ఒక నిర్దిష్ట దిగువ ప్రయాణాన్ని కొలుస్తుంది. రెండూ రిస్క్ సూచికలే, కానీ వేర్వేరు ప్రశ్నలకు సమాధానమిస్తాయి. 2026 జూలై 31తో ముగిసిన ఐదు సంవత్సరాల కాలానికి, రోజువారీ ముగింపు ధరల ఆధారంగా వార్షికీకరించిన అస్థిరతతో, ఎనిమిది ప్రముఖ కంపెనీలకు సంబంధించిన ఈ రెండు కొలతలను ప్యానెల్ పక్కపక్కన చూపిస్తుంది.

క్వెరీవార్షికీకృత అస్థిరతతో పోల్చిన గరిష్ఠ డ్రాడౌన్: 2026 జూలై 31 వరకు ఐదు సంవత్సరాల్లో ఎనిమిది పెద్ద క్యాప్‌లు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'CVX', 'VZ', 'PG')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-08-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session_date
),
runs AS (
    SELECT ticker,
           session_date,
           close_px,
           max(close_px) OVER (PARTITION BY ticker ORDER BY session_date
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak,
           lagInFrame(close_px, 1) OVER (PARTITION BY ticker ORDER BY session_date
                                         ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    FROM daily
)
SELECT ticker,
       round(100 * max(1 - close_px / running_peak), 1) AS max_drawdown_pct,
       round(100 * sqrt(252) * stddevSampIf(close_px / prev_close - 1, prev_close > 0), 1) AS annualized_volatility_pct
FROM runs
GROUP BY ticker
HAVING countIf(prev_close > 0) > 20
ORDER BY max_drawdown_pct DESC
Run this yourself

ఈ రెండు కాలమ్‌లను కలిపి చూడండి. VZ సమూహంలోనే అత్యంత లోతైన పతనాన్ని, 45.4% వద్ద, నమోదు చేసింది. దీనికి వార్షికీకరించిన అస్థిరత 22.6%. మరోవైపు, తక్కువ పతనం నమోదైన షేరు KO; దాని పతనం 20.9%, అస్థిరత 16.7%. అస్థిరత అనేది మొత్తం కాలవ్యవధిలోని ప్రతి రోజుకు సంబంధించిన సగటు. దీర్ఘకాలం నెమ్మదిగా జరిగే క్షీణతను సగటులు తక్కువగా చూపించవచ్చు. గరిష్ఠ పతనం అంటే ధర వాస్తవంగా సాగిన అత్యంత ప్రతికూల ప్రయాణం. రెండు సంవత్సరాల పాటు నెమ్మదిగా దిగజారే ప్రశాంతమైన పెట్టుబడి, సాధారణంగా కనిపించే అస్థిరత ఉన్నప్పటికీ లోతైన గరిష్ఠ పతనాన్ని నమోదు చేయవచ్చు.

తక్కువ అస్థిరత వ్యత్యాసం దీర్ఘకాల వ్యవధుల్లో ప్రశాంతంగా కదిలే పేర్లు ఎలా ప్రవర్తిస్తాయో పరిశీలిస్తుంది. Kelly ప్రమాణం ఆధారిత పొజిషన్ పరిమాణ నిర్ణయం గరిష్ఠ పతనాన్ని భరించే సామర్థ్యం ఎలా పొజిషన్ పరిమాణంగా మారుతుందో చూపిస్తుంది.

సంఖ్య మీకు చెప్పలేనిది

గుర్తుంచుకోవాల్సిన నాలుగు పరిమితులు ఉన్నాయి:

  1. ఇది ఒకసారి వాస్తవంగా నమోదైన మార్గం మాత్రమే. వేరే డ్రాలో ఇదే ప్రక్రియ చాలా అధ్వాన్నమైన గణాంకాన్ని ఇవ్వవచ్చు.
  2. ఇది నమూనా కాలవ్యవధిపై ఆధారపడి ఉంటుంది. అందువల్ల రెండు drawdownsను ఒకే కాలవ్యవధుల్లోనే పోల్చాలి.
  3. ఇది sampling frequencyపై ఆధారపడి ఉంటుంది. నెలాఖరు ముగింపు ధరలు రోజులోని కనిష్ఠాలను దాచిపెడతాయి. అదే కాలానికి రోజువారీ ముగింపు ధరలతో లెక్కించిన దానికంటే చిన్న సంఖ్య వస్తుంది.
  4. ఇది భవిష్యత్తు గురించి ఎలాంటి సమాచారాన్ని ఇవ్వదు. గరిష్ఠ స్థాయి కంటే 30% దిగువన ఉండటం వల్ల 31వ స్థాయి రేపే వస్తుందా లేదా అనేది తెలియదు.

ఈ చివరి పరిమితి కారణంగానే automated systemకు drawdown threshold కంటే drawdown policy అవసరం. “20% వద్ద ఆపండి” అనేది ఒక ప్రశ్నకు మాత్రమే సమాధానం ఇస్తుంది. మరో రెండు ప్రశ్నలు మిగిలిపోతాయి: ఆపినప్పుడు open positionsకు ఏమవుతుంది? సిస్టమ్‌ను మళ్లీ ప్రారంభించడానికి ఏ ఆధారం అవసరం? ట్రేడింగ్ బాట్లకు సర్క్యూట్ బ్రేకర్లు ఆ policy నిర్మాణాన్ని వివరిస్తుంది. యాదృచ్ఛికంగా నిర్ణయించిన స్థిర నియమం వల్ల కలిగే ఖర్చు recovery legలో కనిపిస్తుంది. కనిష్ఠ స్థాయికి సమీపంలో ఆగి, ఆలస్యంగా మళ్లీ ప్రారంభించే సిస్టమ్ పైకి వచ్చే ర్యాలీలోని భాగాన్ని కోల్పోతుంది. అత్యుత్తమ రోజులను కోల్పోవడం ఆ లెక్కను సంఖ్యలతో చూపిస్తుంది.

రెండు గణాంకాలను పోల్చే ముందు ఒక measurement detail ముఖ్యం. ఫండ్ price seriesపై లెక్కించిన drawdown, నిజమైన ఖాతాపై లెక్కించిన drawdown ఒకేలా ఉండవు. ఖాతాలోకి నగదు రావడం లేదా ఖాతా నుంచి నగదు వెళ్లడం, అలాగే డివిడెండ్లు జమ కావడం ఇందుకు కారణాలు. నెలవారీ రాబడులను ఎలా కొలుస్తారు ఈ అంశాన్ని పూర్తిగా వివరిస్తుంది.

గరిష్ఠ తగ్గుదలపై తరచుగా అడిగే ప్రశ్నలు

మంచి గరిష్ఠ తగ్గుదల ఎంత ఉండాలి?

అందరికీ వర్తించే ఒకే సంఖ్య లేదు. పోల్చడానికి ఒక బెంచ్‌మార్క్, కొలవడానికి ఒక కాలవ్యవధి అవసరం. జూలై 31, 2026తో ముగిసిన పది సంవత్సరాల్లో, SPY తన కొనసాగుతున్న గరిష్ఠ స్థాయి నుంచి అత్యంతగా పడిపోయిన పరిమాణం రోజువారీ ముగింపు ధరల ఆధారంగా 34.2%. తక్కువ కాలవ్యవధిలో చిన్న సంఖ్యను చూపించే వ్యూహం తప్పనిసరిగా మరింత సురక్షితమైనదని అర్థం కాదు.

గరిష్ఠ తగ్గుదల, అస్థిరత ఒకటేనా?

కాదు. అస్థిరత సాధారణ రోజువారీ మార్పును వివరిస్తుంది. గరిష్ఠ తగ్గుదల మాత్రం గరిష్ఠ స్థాయి నుంచి కనిష్ఠ స్థాయికి జరిగిన అత్యంత ప్రతికూల ప్రయాణాన్ని వివరిస్తుంది. రెండు సంవత్సరాల పాటు క్రమంగా పడిపోయే తక్కువ-అస్థిరత పెట్టుబడికి, ఎప్పటికప్పుడు కొత్త గరిష్ఠాలను నమోదు చేసే చంచలమైన పెట్టుబడికంటే లోతైన తగ్గుదల ఉండవచ్చు.

గరిష్ఠ తగ్గుదల నుంచి కోలుకోవడానికి ఎంత సమయం పడుతుంది?

ఇది మారుతూ ఉంటుంది. తిరిగి పుంజుకునే దశ తరచుగా ఎక్కువ కాలం పడుతుంది. 2016 నుంచి SPYలో, మునుపటి గరిష్ఠ స్థాయి కంటే దిగువన పూర్తిగా గడిచిన అత్యంత దీర్ఘ కాలం గరిష్ఠ స్థాయి నుంచి కొత్త గరిష్ఠానికి చేరుకునే వరకు 181 క్యాలెండర్ రోజులు కొనసాగింది. అందులో 33 రోజులు పతనంలో గడిచాయి.

గరిష్ఠ తగ్గుదల భవిష్యత్ నష్టాలను అంచనా వేయగలదా?

కాదు. ఇది ఇప్పటికే జరిగిన ఒక ధర ప్రయాణాన్ని మాత్రమే వివరిస్తుంది. అలాగే, ఎక్కువ కాలవ్యవధిని పరిశీలిస్తే సాధారణంగా పెద్ద సంఖ్య లభిస్తుంది. ఒక వ్యూహం ఇప్పటివరకు తట్టుకున్న పరిస్థితులను ఇది నమోదు చేస్తుంది. ఇక ముందు ఏమి జరుగుతుందో దీనికి పరిమితి విధించదు.


పైన ఉన్న ప్రతి ప్యానెల్ వెనుక ఉన్న SQLను నిల్వ చేస్తుంది. ఒక ప్యానెల్‌ను తెరిచి, ticker లేదా కాలవ్యవధిని మార్చి, Strasmore terminalలో అదే drawdown గణనను అమలు చేయండి.

#risk#drawdown#backtesting#performance metrics#python