Strasmore Research

NVDA: Pairs Trading, Cointegration వివరణ

Pairs tradingకు cointegration ఎందుకు అవసరమో తెలుసుకోండి. Correlation వేరు అని గుర్తించి, నిజమైన ముగింపు ధరలతో hedge ratio, spread, z scoreలను నిర్మించండి.

Pairs trading, cointegration రెండూ పరస్పరం అనుసంధానమైనవి. ఈ ట్రేడ్‌లో రెండు షేర్ల ధరల మధ్య అంతరం ఏర్పడినా, అది స్థిరమైన స్థాయికి మళ్లీ మళ్లీ తిరిగి వస్తుందనే భావన ఉంటుంది. అలాంటి అంతరం వాస్తవంగా ఉందని సూచించే గణాంక లక్షణమే cointegration.

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

ఈ పేజీలో hedge ratio, spread, z scoreలను దశలవారీగా నిర్మించి చూపిస్తాం. నిజమైన ముగింపు ధరలతో ఈ మూడింటినీ కొలుస్తాం. ఆ నిర్మాణం ఎప్పుడు, ఎలా విఫలమవుతుందో కూడా సమానంగా వివరిస్తాం.

పెయిర్స్ ట్రేడింగ్‌లో cointegration అంటే ఏమిటి?

Correlation అనేది రెండు షేర్ల రోజువారీ శాతం మార్పులు ఎంత దగ్గరగా కదులుతున్నాయో తెలిపే కొలత. దీని విలువ -1 నుంచి +1 వరకు ఉంటుంది. +1 అంటే నమూనాలోని ప్రతి ట్రేడింగ్ సెషన్‌లోనూ రెండు షేర్లు కలిసి పెరిగి, కలిసి తగ్గాయని అర్థం. అయితే రెండు ధరల మధ్య దూరం గురించి ఇది ఏమీ చెప్పదు.

Cointegration ఆ దూరం గురించి చెబుతుంది. షేర్ B నుంచి షేర్ Aను ఒక స్థిర గుణకంతో గుణించిన విలువను తీసివేసి, మిగిలినదాన్ని పరిశీలించండి. ఆ మిగిలిన సిరీస్, అంటే spread, దూరంగా చెదరిపోకుండా ఒక పరిమిత పరిధిలోనే ఉంటే, ఆ రెండు షేర్లు cointegratedగా ఉంటాయి. ధరలు స్వయంగా ఏ దిశలోనైనా కదలవచ్చు. కానీ వాటి కలయిక మాత్రం అలా స్వేచ్ఛగా కదలదు.

దీనిని వివరించడానికి పాఠ్యపుస్తకాలు సాధారణంగా leashతో కట్టిన కుక్క ఉదాహరణను ఉపయోగిస్తాయి. నడిచే వ్యక్తి, కుక్క రెండూ వీధిలో అనిశ్చిత మార్గాల్లో కదులుతాయి. అయితే leash వాటి మధ్య దూరాన్ని ఒక పరిమితిలో ఉంచుతుంది. రెండు షేర్లు ఒకే సమయంలో కదులుతున్నాయా అని Correlation అడుగుతుంది. వాటి మధ్య leash పనిచేస్తుందా అని Cointegration అడుగుతుంది.

క్రింది పట్టిక 2024 మరియు 2025లో సాధారణంగా తెలిసిన ఐదు జంటలపై మొదటి భావనను కొలుస్తుంది. return_corr కాలమ్ రోజువారీ శాతం మార్పుల correlationను చూపిస్తుంది. సాధారణంగా ప్రజలు correlation అనే పదంతో ఉద్దేశించేది ఇదే. price_corr కాలమ్ ముడి ముగింపు ధరల correlationను చూపిస్తుంది. రెండూ పెరిగిన ఏ రెండు షేర్లకైనా ఈ సంఖ్య సాధారణంగా అధికంగా కనిపించవచ్చు.

క్వెరీరోజువారీ రాబడి సహసంబంధం వర్సెస్ ధర-స్థాయి సహసంబంధం, ఐదు సుపరిచిత జతలు (2024-2025)
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH
    px AS (
        SELECT
            ticker,
            date,
            toFloat64(any(close)) AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('KO', 'PEP', 'HD', 'LOW', 'XOM', 'CVX', 'V', 'MA', 'AAPL', 'MSFT')
          AND date BETWEEN '2024-01-01' AND '2025-12-31'
        GROUP BY ticker, date
    ),
    rets AS (
        SELECT
            ticker,
            date,
            close_px,
            close_px / lagInFrame(close_px) OVER (
                PARTITION BY ticker ORDER BY date
                ROWS BETWEEN 1 PRECEDING AND CURRENT ROW
            ) - 1 AS ret
        FROM px
    )
SELECT
    p.pair                                  AS pair,
    round(corr(a.ret, b.ret), 3)            AS return_corr,
    round(corr(a.close_px, b.close_px), 3)  AS price_corr
FROM
(
    SELECT
        tupleElement(t, 1) AS leg_a,
        tupleElement(t, 2) AS leg_b,
        tupleElement(t, 3) AS pair
    FROM
    (
        SELECT arrayJoin([
            ('KO',   'PEP',  'KO / PEP'),
            ('HD',   'LOW',  'HD / LOW'),
            ('XOM',  'CVX',  'XOM / CVX'),
            ('V',    'MA',   'V / MA'),
            ('AAPL', 'MSFT', 'AAPL / MSFT')
        ]) AS t
    )
) AS p
INNER JOIN rets AS a ON a.ticker = p.leg_a
INNER JOIN rets AS b ON b.ticker = p.leg_b AND b.date = a.date
WHERE isFinite(a.ret) AND isFinite(b.ret)
GROUP BY pair
ORDER BY return_corr DESC
Run this yourself

రోజువారీ మార్పుల correlation ఆధారంగా ర్యాంక్ చేస్తే, HD / LOW పట్టికలో 0.868తో అగ్రస్థానంలో ఉంది. అదే వ్యవధిలో రెండు ధర స్థాయిల correlation 0.849గా నమోదైంది. చివరి వరుసలో, AAPL / MSFTకు return correlation 0.479గా, price correlation 0.508గా ఉంది. ఈ రెండు కాలమ్‌లలో ఏదీ pairs trader అడిగే ప్రశ్నకు సమాధానం ఇవ్వదు. రెండూ కలిసి కదలికను కొలుస్తాయి. కానీ ఈ ట్రేడ్‌కు దూరాన్ని కొలిచే ప్రమాణం అవసరం.

హెడ్జ్ రేషియో, స్ప్రెడ్‌ను ఎలా లెక్కిస్తారు?

ముగింపు ధరల రెండు జాబితాలపై, కింది ఐదు దశలను ఇదే క్రమంలో అమలు చేయాలి. math ఒక్కటే importగా ఉన్న Plain Pythonతో ఇవన్నీ చేయవచ్చు. అదనపు packages, data vendor లేదా network అవసరం లేదు.

  1. ప్రతి సిరీస్‌ను కేంద్రీకరించండి. mean_a = sum(a) / len(a), అలాగే b జాబితాకూ ఇదే చేయాలి.
  2. హెడ్జ్ రేషియోను అంచనా వేయండి. ఇది Aపై Bకు సరళ రేఖను అమర్చినప్పుడు వచ్చే slope: beta = sum((a[i] - mean_a) * (b[i] - mean_b) for i in range(len(a))) / sum((x - mean_a) ** 2 for x in a). Bలోని ఒక యూనిట్‌ను offset చేయడానికి అవసరమైన A యూనిట్ల సంఖ్యగా దీన్ని అర్థం చేసుకోవాలి.
  3. స్ప్రెడ్‌ను నిర్మించండి. spread = [b[i] - beta * a[i] for i in range(len(a))]. Cointegrated pairలో ఈ సిరీస్ నిర్దిష్ట స్థాయి చుట్టూ కదులుతుంది; నిరంతరం ఒకే దిశలో ట్రెండ్ అవదు.
  4. వెనుకబడిన window తీసుకోండి. w = spread[i - win + 1 : i + 1]తో window mean mu = sum(w) / len(w), sample standard deviation sd = math.sqrt(sum((x - mu) ** 2 for x in w) / (len(w) - 1)) అవుతాయి. Trailing అంటే స్కోర్ చేస్తున్న రోజుతో window ముగుస్తుంది; ఆ రోజు తర్వాతి డేటాను ఉపయోగించదు.
  5. స్కోర్ చేసి ప్రింట్ చేయండి. z = (spread[i] - mu) / sd. తర్వాత abs(z) > 1.5 ఉన్నప్పుడు entry lineను, abs(z) < 0.5 అయిన తర్వాత exit lineను ప్రింట్ చేయాలి. z విలువ 2 అంటే spread తన ఇటీవలి సగటు కంటే రెండు standard deviations ఎక్కువగా ఉందని అర్థం.

ఈ లెక్కింపు నడుస్తున్న విధానాన్ని పరిశీలించడానికి హార్డ్-కోడ్ చేసిన రెండు price lists సరిపోతాయి. winను 5గా ఉంచితే చిన్న ఉదాహరణను సులభంగా చదవచ్చు. వాస్తవిక విశ్లేషణలో సాధారణంగా దాదాపు 63 sessions, అంటే సుమారు ఒక త్రైమాసికం, ఉపయోగిస్తారు. Entry threshold 1.5, exit threshold 0.5 అనే విలువలు ఒక tutorial నుంచి మరొకదానికి వచ్చిన సంప్రదాయాలు మాత్రమే. అవి పరిశోధనలో కనుగొన్న ఫలితాలు కావు. కింది panelsలోని ఏదీ వాటిని ఎంచుకోలేదు.

నిజమైన ధరలపై pairs trading z score ఎలా కనిపిస్తుంది?

ఇదే లెక్కను రెండు ప్రముఖ పానీయాల కంపెనీలైన KO, PEPపై చూద్దాం. Hedge ratioను 2023 ముగింపు ధరల ఆధారంగానే లెక్కించి, చార్ట్ చూపించే 2024, 2025 కాలానికి దాన్ని స్థిరంగా ఉంచాం. తర్వాత మీరు score చేయబోయే అదే sampleపై slopeను fit చేయడం backtestingలో look-ahead biasకు దారితీస్తుంది. Fit window, scoring windowలను వేరుగా ఉంచడం దాన్ని నివారించే అత్యంత తక్కువ ఖర్చు మార్గం.

క్వెరీKO/PEP స్ప్రెడ్‌ యొక్క వారపు z స్కోరు, హెడ్జ్ నిష్పత్తి 2023 సంవత్సరపు డేటాపైనే అమర్చబడింది
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH
    daily AS (
        SELECT
            date,
            anyIf(toFloat64(close), ticker = 'PEP') AS pep,
            anyIf(toFloat64(close), ticker = 'KO')  AS ko
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('KO', 'PEP')
          AND date BETWEEN '2023-01-01' AND '2025-12-31'
        GROUP BY date
        HAVING pep > 0 AND ko > 0
    ),
    fitted AS (
        SELECT covarSamp(pep, ko) / varSamp(ko) AS beta
        FROM daily
        WHERE date < '2024-01-01'
    ),
    spread AS (
        SELECT
            daily.date                          AS date,
            daily.pep - fitted.beta * daily.ko  AS spread_usd
        FROM daily
        CROSS JOIN fitted
    ),
    scored AS (
        SELECT
            date,
            (spread_usd - avg(spread_usd) OVER (
                 ORDER BY date ROWS BETWEEN 62 PRECEDING AND CURRENT ROW))
            / stddevSampStable(spread_usd) OVER (
                 ORDER BY date ROWS BETWEEN 62 PRECEDING AND CURRENT ROW) AS z
        FROM spread
    )
SELECT
    toString(toMonday(date))   AS week,
    round(argMax(z, date), 2)  AS z_score
FROM scored
WHERE date >= '2024-01-01'
  AND isFinite(z)
GROUP BY week
ORDER BY week
Run this yourself

ఈ traceలో 105 వారాల readings ఉన్నాయి. ఇది windowను -1.53 z score వద్ద ప్రారంభించి, -0.68 వద్ద ముగిస్తుంది. ఏ ఒక్క pointను కాకుండా మొత్తం ఆకారాన్ని గమనించండి. Strategy ఊహించిన విధంగా పనిచేసే pair thresholdను దాటి, కొన్ని వారాలు సున్నా వైపు తిరిగి కదిలి, మళ్లీ thresholdను దాటుతుంది. Mean reversion ఆగిపోయిన pair thresholdకు అవతలే నిలిచిపోతుంది. చార్ట్‌లో ఇది మధ్యస్థానానికి దూరంగా ఉన్న పొడవైన సమతల భాగంలా కనిపిస్తుంది.

కోయిన్‌టిగ్రేటెడ్ spread ఎప్పుడూ తిరిగి వస్తుందా?

లేదు. దీనిని అర్థం చేసుకోవడానికి నిజాయితీగల మార్గం ప్రతి ప్రారంభ స్థానం తర్వాత ఏమి జరిగిందో కొలవడం. కింది ప్యానెల్ 2019 నుంచి 2025 చివరి దశ వరకు ప్రతి సెషన్‌ను ఆ రోజు z score ఆధారంగా వర్గీకరిస్తుంది. ఆ తర్వాత అదే spreadకు ఇరవై సెషన్ల తర్వాత ఉన్న సగటు z scoreను చూపిస్తుంది. ఇందులో fitted spreadకు బదులుగా ధరల నిష్పత్తి యొక్క logను ఉపయోగించారు. అందువల్ల తర్వాత చేసిన regression ఏదీ ఈ చార్ట్‌ను ప్రభావితం చేయదు.

క్వెరీప్రారంభ z స్కోరు ఆధారంగా, ఇరవై ట్రేడింగ్ సెషన్ల తర్వాత KO/PEP స్ప్రెడ్ స్థానం (2019-2025)
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH
    daily AS (
        SELECT
            date,
            anyIf(toFloat64(close), ticker = 'PEP') AS pep,
            anyIf(toFloat64(close), ticker = 'KO')  AS ko
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('KO', 'PEP')
          AND date BETWEEN '2018-01-01' AND '2025-12-31'
        GROUP BY date
        HAVING pep > 0 AND ko > 0
    ),
    spread AS (
        SELECT
            date,
            log(pep / ko) AS log_ratio
        FROM daily
    ),
    scored AS (
        SELECT
            date,
            (log_ratio - avg(log_ratio) OVER (
                 ORDER BY date ROWS BETWEEN 62 PRECEDING AND CURRENT ROW))
            / stddevSampStable(log_ratio) OVER (
                 ORDER BY date ROWS BETWEEN 62 PRECEDING AND CURRENT ROW) AS z
        FROM spread
    ),
    horizon AS (
        SELECT
            date,
            z,
            leadInFrame(z, 20) OVER (
                ORDER BY date ROWS BETWEEN CURRENT ROW AND 20 FOLLOWING
            ) AS z_fwd
        FROM scored
        WHERE isFinite(z)
    )
SELECT
    multiIf(z < -2, 'z below -2',
            z < -1, 'z -2 to -1',
            z <  0, 'z -1 to 0',
            z <  1, 'z 0 to 1',
            z <  2, 'z 1 to 2',
                    'z above 2')  AS z_bucket,
    round(avg(z), 2)              AS avg_z_start,
    round(avg(z_fwd), 2)          AS avg_z_20d_later,
    count()                       AS episode_count
FROM horizon
WHERE date >= '2019-01-01'
  AND date <= '2025-11-15'
  AND isFinite(z_fwd)
GROUP BY z_bucket
ORDER BY avg_z_start
Run this yourself

z below -2 bucketలో ప్రారంభమైన సెషన్ల ఆ రోజు సగటు -2.42గా ఉంది. ఇరవై సెషన్ల తర్వాత అదే spread సగటు -0.84గా నమోదైంది. ఈ లెక్క 138 సెషన్లపై ఆధారపడింది. మరో చివరలో, z above 2 bucket 2.64 వద్ద ప్రారంభమై, ఇరవై సెషన్ల తర్వాత 0.92గా నమోదైంది. రెండు చివరల నుంచీ సున్నా వైపు కదిలే వక్రరేఖ mean reversionకు సాధారణంగా కనిపించే ఆకృతి.

దీనిని count columnను కూడా గమనిస్తూ చదవాలి. బయటి bucketsలో సెషన్ల సంఖ్య తక్కువగా ఉంటుంది. ఒకే bucketలోని సెషన్లు ఎక్కువగా పరస్పరం overlap అవుతాయి. అందువల్ల కొన్ని దీర్ఘకాలిక దశలే ఎక్కువ rowsకు కారణమవుతాయి. సగటు ఏ ఒక్క entryకూ హామీ కాదు.

పెయిర్స్ ట్రేడింగ్ ఎందుకు పనిచేయడం ఆపేస్తుంది?

హెడ్జ్ రేషియో స్థిరంగా ఉండదు. ప్రతి క్యాలెండర్ సంవత్సరంలో దాన్ని మళ్లీ అంచనా వేయాలి; అప్పుడు అది మారుతుంది.

క్వెరీప్రతి క్యాలెండర్ సంవత్సరానికి మళ్లీ అమర్చిన హెడ్జ్ నిష్పత్తి, రెండు రంగాల జతలు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH daily AS (
    SELECT
        date,
        anyIf(toFloat64(close), ticker = 'PEP') AS pep,
        anyIf(toFloat64(close), ticker = 'KO')  AS ko,
        anyIf(toFloat64(close), ticker = 'LOW') AS lowes,
        anyIf(toFloat64(close), ticker = 'HD')  AS hd
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('KO', 'PEP', 'HD', 'LOW')
      AND date BETWEEN '2019-01-01' AND '2025-12-31'
    GROUP BY date
    HAVING ko > 0 AND pep > 0 AND hd > 0 AND lowes > 0
)
SELECT
    toYear(date)                                  AS year,
    round(covarSamp(pep, ko) / varSamp(ko), 3)    AS pep_on_ko_beta,
    round(covarSamp(lowes, hd) / varSamp(hd), 3)  AS lowes_on_hd_beta
FROM daily
GROUP BY year
ORDER BY year
Run this yourself

2.338 నుంచి 2019 వరకు, అలాగే -0.543 నుంచి 2025 వరకు కొలిచిన PEPపై KO వాలుదనం. పోలిక కోసం రెండో సెక్టార్ జంటను కూడా పక్కన చూపించారు. మొత్తం చరిత్రకు ఒకే వాలుదనాన్ని అంచనా వేసి, మొదటి రోజునుంచే దానితో ట్రేడింగ్ చేసే బ్యాక్‌టెస్ట్, ఆ సమయంలో ఎవరూ కలిగి ఉండలేని సంఖ్యను ప్రతి ప్రారంభ ట్రేడ్‌కు వర్తింపజేస్తుంది. పరిష్కారం సాధారణమైనదే కానీ ప్రభావవంతమైనది: గత కాలాన్ని కవర్ చేసే విండోలో మళ్లీ అంచనా వేయాలి; ప్రతి రోజును ఆ రోజున అందుబాటులో ఉన్న పారామీటర్లతో స్కోర్ చేయాలి. పునరుత్పాదక బ్యాక్‌టెస్ట్ ద్వారా ఈ క్రమశిక్షణను మరొకరు కూడా తనిఖీ చేయగలరు.

కార్పొరేట్ చర్యలు రాత్రికి రాత్రే ఒక లెగ్‌ను మార్చేస్తాయి. four-for-one splitలో ఒక షేర్ నాలుగు షేర్లుగా మారుతుంది, కోట్ చేసిన ధర నాలుగో వంతుకు తగ్గుతుంది. ఆ తేదీకి ముందు, తర్వాతి unadjusted ధరలతో లెక్కించిన spread, అసలు ఎప్పుడూ ట్రేడ్ కాని స్థాయికి ఒక్కసారిగా దూకుతుంది. Mergers, spin-offs, index మార్పులు కూడా ఇదే ప్రభావాన్ని కొంత నిశ్శబ్దంగా చూపిస్తాయి. ముందుగా split-adjusted ధరల చరిత్రను ఉపయోగించాలి. ఒక tickerను పూర్తిగా వేరే కంపెనీకి కేటాయించవచ్చని కూడా గుర్తుంచుకోవాలి. ఇదే ticker symbols డేటాసెట్లను ఎందుకు దెబ్బతీస్తాయో చెప్పే కారణం.

విచ్ఛిన్నం, అవకాశం—జరుగుతున్న సమయంలో రెండూ ఒకేలా కనిపిస్తాయి. ఒక జంటలో ఇప్పటివరకు నమోదైన అత్యంత విస్తృత z score, ఆ జంట ఇచ్చిన అత్యుత్తమ ప్రవేశ అవకాశం కావచ్చు. లేదా ఆ సంబంధం ముగిసిన మొదటి వారం కావచ్చు. ఆ రోజున రెండూ విస్తరించిన spreadలా కనిపిస్తాయి. గణాంకాలు చెప్పలేని భారాన్ని position sizing మోస్తుంది. Kelly criterion position sizing, volatility targeting position sizing—ఒక spread ఖాతాలో ఎంత భాగాన్ని ప్రభావితం చేయవచ్చో నిర్ణయించే రెండు విధానాలు. అలాగే maximum drawdown సగటు వైపు తిరిగి రాని పరిస్థితి equity curveపై దీర్ఘకాలం చూపే ప్రభావాన్ని కొలుస్తుంది.

Rolling z score cointegration test కాదు. ఇందుకోసం అధికారిక పరీక్షలు ఉన్నాయి. Engle-Granger విధానం ముందుగా regressionను నిర్వహిస్తుంది. తర్వాత మిగిలిన spread స్థిరంగా ఉందా అని పరీక్షిస్తుంది. Johansen test ఈ ఆలోచనను రెండు పేర్లకు మించి విస్తరిస్తుంది. z score, ఈ పరీక్షలు పరిశీలించే లక్షణం ఇప్పటికే ఉందని ఊహిస్తుంది. స్థిరమైన సగటు లేని spreadపైనా అది పెద్ద సంఖ్యను చూపిస్తుంది. ఎందుకంటే trending series తన trailing averageకు ఎప్పుడూ చాలా దూరంలోనే ఉంటుంది.

డేటా గమనికలు, ఈ సంఖ్యల్లో లేనివి

Correlation panel 2024-01-01 నుంచి 2025-12-31 వరకు రోజువారీ closing ధరలను ఉపయోగిస్తుంది. వరుస closing ధరల నుంచి returnsను లెక్కిస్తుంది. ప్రతి పేరుకు సంబంధించిన మొదటి sessionను తొలగిస్తుంది. z score trace 2023 closing ధరలతో మాత్రమే hedge ratioను అంచనా వేస్తుంది. తర్వాత 2024, 2025 సంవత్సరాలకు trailing 63-session mean, sample standard deviationతో స్కోర్ చేస్తుంది. ప్రతి వారంలోని చివరి readingను మాత్రమే తీసుకుంటుంది. Reversion panel 2018 నుంచి చరిత్రను లోడ్ చేసి, 2019 నుంచి నివేదిస్తుంది. అందువల్ల ప్రతి స్కోర్ చేసిన రోజుకు వెనుక పూర్తి trailing window ఉంటుంది. ఇది 2025 నవంబర్ మధ్యలో ఆగుతుంది. దీంతో sampleలో ప్రతి రోజుకు ముందుగా ఇరవై sessions అందుబాటులో ఉంటాయి.

ఈ panelsలో ఏదీ ఒక strategy కాదు. వీటిలో trading costs, bid-ask spread, short legపై borrow fee, dividends లేదా financing ఏవీ లేవు. ఇవి closing pricesను మాత్రమే ఉపయోగిస్తాయి. అందువల్ల close వద్ద నమోదు చేసిన entryను నిజంగా ఎవరూ ఆ ధరకు అమలు చేయలేకపోయి ఉండవచ్చు.

తరచుగా అడిగే ప్రశ్నలు

Correlation మరియు cointegration మధ్య తేడా ఏమిటి?

Correlation రెండు షేర్లు ఒకే రోజుల్లో, ఒకే దిశలో కదులుతున్నాయా అనే విషయాన్ని -1 నుంచి +1 వరకు ఉన్న స్కేల్‌పై కొలుస్తుంది. Cointegration వాటి ధరల మధ్య దూరం స్థిరమైన పరిధిలో కొనసాగుతుందా అనే విషయాన్ని కొలుస్తుంది. ఒక జంటకు మొదటి కొలతలో అధిక స్కోరు ఉండి, రెండో దానిలో విఫలం కావచ్చు. Correlation screen చూపించిన జంటలు తరువాత పరస్పరం దూరమవడానికి ఇదే సాధారణ కారణం.

Pairs tradingలో hedge ratioను ఎలా లెక్కిస్తారు?

ఒక షేరు ధరను మరొక షేరు ధరపై ఆధారపడి straight lineగా fit చేసి, ఆ రేఖ slopeను తీసుకుంటారు. ఆ slope, రెండో షేరు యొక్క ఒక యూనిట్‌ను offset చేయడానికి అవసరమైన మొదటి షేరు యూనిట్ల సంఖ్యను సూచిస్తుంది. ఇది మారుతూ ఉండే పరిమాణం. అందుకే చాలా అమలు విధానాల్లో మొత్తం sampleపై ఒక్కసారి fit చేయకుండా, trailing window ఆధారంగా మళ్లీ fit చేస్తారు.

Pairs traders ప్రవేశించడానికి, నిష్క్రమించడానికి ఏ z scoreను ఉపయోగిస్తారు?

Tutorial ఉదాహరణల్లో trailing mean నుంచి సాధారణంగా 1.5 నుంచి 2 standard deviations దూరంలో ఉన్నప్పుడు ప్రవేశించి, దూరం సుమారు 0.5కి చేరుకున్నప్పుడు నిష్క్రమిస్తారు. ఈ సంఖ్యలు కొలిచిన optimal values కంటే, పాత write-ups నుంచి వచ్చిన సంప్రదాయాలు. వీటిని మార్చితే trades సంఖ్యతో పాటు ప్రతి tradeను ఎంతకాలం ఉంచుతారన్నది కూడా మారుతుంది.

తక్కువ correlation ఉన్న రెండు షేర్లు cointegratedగా ఉండగలవా?

అవును. Correlationను రోజువారీ మార్పులపై లెక్కిస్తారు. Cointegrationను gap స్థాయిపై లెక్కిస్తారు. అందువల్ల రోజువారీ కదలికలు తరచుగా ఒకే దిశలో లేకపోయినా, రెండు షేర్ల మధ్య దీర్ఘకాలిక దూరం స్థిరంగా ఉండవచ్చు. దీనికి విరుద్ధమైన పరిస్థితి కూడా జరుగుతుంది: రోజువారీ correlation అధికంగా ఉన్నప్పటికీ, gap ప్రతి సంవత్సరం విస్తరిస్తూ ఉండవచ్చు.

Cointegrated pair ఎందుకు పనిచేయడం ఆపుతుంది?

Gapను కలిపి ఉంచే సంబంధం మారవచ్చు. ఇందుకు merger, spin-off, ఒక కంపెనీ business mixలో మార్పు, లేదా షేరును ఎవరు కలిగి ఉన్నారో మార్చే index మార్పు కారణాలు కావచ్చు. Breakకు ముందు రోజుల గణాంకాలు, సాధారణ reversionకు ముందు రోజుల గణాంకాల మాదిరిగానే కనిపిస్తాయి. అందువల్ల ఈ ప్రమాదాన్ని ముందుగా అంచనా వేయడం కంటే, position sizeలో దానికి తగిన పరిమితి ఉంచాలి.


ఇక్కడి ప్రతి panelకు కింద exact SQL అందుబాటులో ఉంటుంది. అందువల్ల windows, fit period, bucket edges అన్నీ స్పష్టంగా కనిపిస్తాయి. మీరు అనుసరించే pairపై అదే spread మరియు z scoreను అమలు చేయాలంటే, Strasmore terminalలో ప్రశ్నను సాధారణ ఆంగ్లంలో అడగండి.

#pairs trading#cointegration#mean reversion#backtesting#statistics