Strasmore Research
ஆழ்ந்த ஆய்வு Matt Connorஆசிரியர் Matt Connor

Pairs Trading மற்றும் Cointegration விளக்கம்

Pairs trading முறைக்கு Cointegration அவசியம். Correlation மற்றும் Cointegration இடையேயான வேறுபாடுகளை அறிந்து, hedge ratio, spread மற்றும் z score ஆகியவற்றை கணக்கிடுவது எப்படி?

Pairs trading மற்றும் cointegration

Pairs trading மற்றும் cointegration ஆகிய இரண்டும் ஒன்றோடொன்று தொடர்புடையவை. இரண்டு பங்குகளின் விலைகளுக்கு இடையே உள்ள இடைவெளி மீண்டும் மீண்டும் ஒரு நிலையான நிலைக்குத் திரும்பும் என்ற அடிப்படையில் இந்த வர்த்தகம் அமைகிறது. இத்தகைய இடைவெளி இருப்பதை உறுதிப்படுத்தும் புள்ளிவிவரப் பண்பே cointegration ஆகும். Correlation என்பது முற்றிலும் வேறொன்றை அளவிடுகிறது. இரண்டு பங்குகள் அதிக correlation கொண்டிருந்தாலும், அவை காலப்போக்கில் நிரந்தரமாக விலகிச் செல்லக்கூடும். அதே சமயம், தினசரி விலை மாற்றங்கள் ஒத்துப்போகாத இரண்டு பங்குகளும் பல ஆண்டுகளாக நிலையான இடைவெளியைத் தக்கவைக்கக்கூடும்.

கணக்கீட்டு முறை மற்றும் அதன் சவால்கள்

இந்தக் கட்டுரை hedge ratio, spread மற்றும் z score ஆகியவற்றை எவ்வாறு கைமுறையாக உருவாக்குவது என்பதை விளக்குகிறது. உண்மையான closing prices-ஐக் கொண்டு இவை மூன்றையும் எவ்வாறு கணக்கிடுவது என்பதை விவரிப்பதோடு, இந்த கட்டுமான முறை தோல்வியடையும் சூழல்கள் குறித்தும் சமமான முக்கியத்துவத்துடன் அலசுகிறது.

Pairs trading-ல் cointegration என்றால் என்ன?

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

Cointegration என்பது அந்த இடைவெளியைப் பற்றிய ஒரு அளவீடு ஆகும். பங்கு B-யின் விலையிலிருந்து, பங்கு A-யின் விலையை ஒரு குறிப்பிட்ட மடங்கால் பெருக்கி கழித்தால், மீதமுள்ள மதிப்பைக் கவனிக்க வேண்டும். அந்த மீதமுள்ள தொடர், அதாவது spread, ஒரு குறிப்பிட்ட எல்லைக்குள் (bounded range) நீடித்தால், அந்த இரண்டு பங்குகளும் cointegrated ஆக உள்ளன என்று பொருள். பங்குகளின் விலைகள் தனித்தனியாக எங்கு வேண்டுமானாலும் செல்லலாம், ஆனால் அவற்றின் இந்த சேர்க்கை ஒரு எல்லைக்குள் கட்டுப்பட்டிருக்கும்.

இதனை விளக்க பாடப்புத்தகங்கள் பயன்படுத்தும் உதாரணம்: ஒரு நாய் மற்றும் அதன் உரிமையாளர். இருவரும் தெருவில் நடக்கும்போது, இருவரும் வெவ்வேறு திசைகளில் கணிக்க முடியாத பாதைகளில் செல்லலாம். ஆனால், அவர்கள் இணைக்கப்பட்டிருக்கும் சங்கிலி (leash) அவர்களுக்கு இடையிலான தூரத்தை ஒரு எல்லைக்குள் வைத்திருக்கும். Correlation என்பது இருவரும் ஒரே நேரத்தில் அடி எடுத்து வைக்கிறார்களா என்று கேட்கிறது. Cointegration என்பது அந்தச் சங்கிலி அவர்களைப் பிணைத்து வைத்திருக்கிறதா என்று கேட்கிறது.

கீழே உள்ள அட்டவணை, 2024 மற்றும் 2025-ஆம் ஆண்டுகளில் ஐந்து பிரபலமான ஜோடிகளில் முதல் கருத்தை அளவிடுகிறது. return_corr நெடுவரிசை தினசரி சதவீத நகர்வுகளின் correlation-ஐக் காட்டுகிறது; இதுவே பொதுவாக மக்கள் இந்த வார்த்தையால் குறிப்பிடுவது. price_corr நெடுவரிசை, பங்குகளின் மூலமான closing விலைகளின் 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 ஆனது 0.479 என்ற return correlation-ஐயும், 0.508 என்ற விலை correlation-ஐயும் கொண்டுள்ளது. இந்த இரண்டு நெடுவரிசைகளும் ஒரு pairs trader கேட்கும் கேள்விக்கு விடையளிக்கவில்லை. இரண்டும் ஒரே மாதிரியான நகர்வை (co-movement) மட்டுமே அளவிடுகின்றன; ஆனால், இந்த வர்த்தகத்திற்குத் தேவைப்படுவது விலைகளுக்கு இடையிலான தூரத்தை அளவிடும் ஒரு கருவியாகும்.

Hedge ratio மற்றும் spread-ஐ எவ்வாறு கணக்கிடுவது?

மூடிய விலைப்பட்டியல்களின் இரண்டு தொகுப்புகளைக் கொண்டு, வரிசைப்படி ஐந்து படிகள் உள்ளன. math மட்டுமே இறக்குமதி (import) செய்யப்படுகிறது; எந்த கூடுதல் தொகுப்புகளோ (packages), தரவு விற்பனையாளர்களோ அல்லது இணைய இணைப்போ தேவையில்லை.

  1. ஒவ்வொரு தொடரையும் மையப்படுத்துதல் (Center): mean_a = sum(a) / len(a), மற்றும் பட்டியல் b-க்கும் அதே முறை.
  2. Hedge ratio-வை பொருத்துதல் (Fit): இது 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-யை ஈடுசெய்யும் A-யின் அலகுகளின் எண்ணிக்கை எனப் புரிந்துகொள்ளவும்.
  3. Spread-ஐ உருவாக்குதல்: spread = [b[i] - beta * a[i] for i in range(len(a))]. Cointegrated ஜோடியில், இந்தத் தொடர் ஒரு போக்கைப் பின்பற்றுவதற்குப் பதிலாக, ஒரு குறிப்பிட்ட நிலையைச் சுற்றி நகரும்.
  4. Trailing window-வை எடுத்தல்: w = spread[i - win + 1 : i + 1] உடன், window-ன் சராசரி 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. மதிப்பீடு மற்றும் அச்சிடுதல் (Score and print): z = (spread[i] - mu) / sd, பின்னர் abs(z) > 1.5 ஆக இருக்கும்போது ஒரு நுழைவு வரியையும் (entry line), abs(z) < 0.5 ஆக இருக்கும்போது ஒரு வெளியேற்ற வரியையும் (exit line) அச்சிடவும். Z-மதிப்பு இரண்டு என்பது, spread அதன் சமீபத்திய சராசரியை விட இரண்டு திட்ட விலக்கங்கள் மேலே இருப்பதைக் குறிக்கிறது.

இதன் செயல்பாட்டைக் கவனிக்க இரண்டு கடின-குறியீட்டு (hard-coded) விலைப்பட்டியல்கள் போதுமானது, மேலும் win-ஐ ஐந்தாக வைப்பது இந்த மாதிரி உதாரணத்தைப் புரிந்துகொள்ள எளிதாக இருக்கும். தீவிரமான பணிகளுக்கு அறுபத்து மூன்று அமர்வுகள் (சுமார் ஒரு காலாண்டு) போன்ற கால அளவு பயன்படுத்தப்படுகிறது. நுழைவதற்கு ஒன்று புள்ளி ஐந்து மற்றும் வெளியேறுவதற்கு பூஜ்ஜியம் புள்ளி ஐந்து என்ற அந்த வரம்புகள், ஒரு பயிற்சியிலிருந்து அடுத்த பயிற்சிக்குக் கடத்தப்படும் மரபுகள் ஆகும். இவை கண்டறியப்பட்ட முடிவுகள் அல்ல, கீழே உள்ள எந்தப் பலகங்களும் (panels) இவற்றைத் தேர்ந்தெடுக்கவில்லை.

உண்மையான விலைகளில் pairs trading z-score எவ்வாறு அமைகிறது?

இதோ, பானங்கள் தயாரிக்கும் முன்னணி நிறுவனங்களான KO மற்றும் PEP ஆகியவற்றின் விலைகளைக் கொண்டு செய்யப்பட்ட அதே கணக்கீடு. 2023-ஆம் ஆண்டின் இறுதி விலைகளை மட்டும் கொண்டு hedge ratio கணக்கிடப்பட்டு, அது 2024 மற்றும் 2025 ஆகிய ஆண்டுகளில் மாறாமல் நிலைநிறுத்தப்பட்டுள்ளது; இதுவே வரைபடம் காட்டும் கால அளவு. எந்த மாதிரியான தரவுகளைக் கொண்டு slope-ஐ கணக்கிடுகிறீர்களோ, அதே தரவுகளைக் கொண்டு மதிப்பெண் (score) வழங்குவது backtesting-ல் ஏற்படும் look-ahead bias ஆகும். கணக்கீட்டிற்கான கால அளவையும், மதிப்பெண் வழங்கும் கால அளவையும் தனித்தனியாக வைத்திருப்பதே இதிலிருந்து தற்காத்துக்கொள்ளும் எளிய வழியாகும்.

வினவவும்KO/PEP ஸ்பிரெட்டின் வாராந்திர z-score, 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

இந்த வரைபடம் 105 வாராந்திர அளவீடுகளைக் கொண்டுள்ளது. இது -1.53 என்ற z-score அளவில் தொடங்கி, -0.68 என்ற அளவில் முடிவடைகிறது. ஏதேனும் ஒரு புள்ளியை மட்டும் பார்க்காமல், வரைபடத்தின் ஒட்டுமொத்த வடிவத்தைக் கவனியுங்கள். இந்த உத்தி எதிர்பார்ப்பது போல செயல்படும் ஒரு ஜோடி, அதன் எல்லையைக் கடந்து, சில வாரங்களில் மீண்டும் பூஜ்ஜியத்தை நோக்கி நகர்ந்து, மீண்டும் எல்லையைக் கடக்கும். Mean reversion எனப்படும் சராசரிக்குத் திரும்பும் தன்மையை இழந்த ஒரு ஜோடி, எல்லையைத் தாண்டி அங்கேயே தங்கிவிடும். வரைபடத்தில் இது மையத்திலிருந்து வெகு தொலைவில் நீண்ட தட்டையான கோடாகத் தெரியும்.

Cointegrated spread எப்போதும் பழைய நிலைக்குத் திரும்புமா?

இல்லை. ஒவ்வொரு தொடக்கப் புள்ளியிலிருந்தும் என்ன நடந்தது என்பதை அளவிடுவதே இதைப் புரிந்துகொள்வதற்கான நேர்மையான வழியாகும். கீழே உள்ள அட்டவணை, 2019 முதல் 2025-ன் பிற்பகுதி வரையிலான ஒவ்வொரு வர்த்தக அமர்வையும் அந்தந்த நாளின் z score அடிப்படையில் வகைப்படுத்துகிறது. பின்னர், இருபது அமர்வுகளுக்குப் பிறகு அதே spread-ன் சராசரி z score-ஐக் காட்டுகிறது. இது fitted spread-க்கு பதிலாக விலையின் விகிதத்தின் log மதிப்பைப் பயன்படுத்துகிறது; எனவே, பின்னோக்கிச் செய்யப்பட்ட எந்த regression மதிப்பீடும் இந்த வரைபடத்தைப் பாதிக்காது.

வினவவும்இருபது அமர்வுகளுக்குப் பிறகு KO/PEP ஸ்பிரெட்டின் நிலை, ஆரம்ப z-score வாரியாக (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 பிரிவில் தொடங்கிய அமர்வுகள் அந்த நாளில் சராசரியாக -2.42 ஆக இருந்தன. இருபது அமர்வுகளுக்குப் பிறகு, அதே spread சராசரியாக -0.84 ஆக இருந்தது; இது மொத்தம் 138 அமர்வுகளைக் கொண்டது. மறுமுனையில், z above 2 பிரிவு 2.64-ல் தொடங்கி, இருபது அமர்வுகளுக்குப் பிறகு 0.92 என அளவிடப்பட்டது. இரு முனைகளிலிருந்தும் பூஜ்ஜியத்தை நோக்கிச் செல்லும் வளைவு, mean reversion-ன் தன்மையைக் காட்டுகிறது.

இதை count நெடுவரிசையைக் கவனித்து வாசிக்கவும். வெளிப்புறப் பிரிவுகள் மிகக் குறைந்த அமர்வுகளையே கொண்டுள்ளன. மேலும், ஒரு பிரிவுக்குள் இருக்கும் அமர்வுகள் ஒன்றுடன் ஒன்று பெரிதும் ஒத்துப்போவதால், நீண்ட கால நீட்டிப்புகள் கொண்ட சில தரவுகளே பெரும்பாலான வரிசைகளை வழங்குகின்றன. ஒரு சராசரி என்பது எந்தவொரு தனிப்பட்ட வர்த்தகத்திற்கும் உறுதியளிக்கும் வாக்குறுதி அல்ல.

Pairs trading ஏன் செயலிழக்கிறது?

Hedge ratio என்பது மாறிலி அல்ல. ஒவ்வொரு காலண்டர் ஆண்டிலும் இதை மீண்டும் கணக்கிடும்போது, அதன் மதிப்பு மாறுகிறது.

வினவவும்ஒவ்வொரு ஆண்டும் மாற்றியமைக்கப்பட்ட ஹெட்ஜ் விகிதம், இரண்டு துறை சார்ந்த ஜோடிகள்
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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

PEP மற்றும் KO ஆகியவற்றின் சரிவு (slope) 2.338 முதல் 2019 வரையிலும், -0.543 முதல் 2025 வரையிலும் அளவிடப்பட்டது; ஒப்பீட்டிற்காக இரண்டாவது துறை சார்ந்த ஜோடி (sector pair) அருகில் கொடுக்கப்பட்டுள்ளது. முழு வரலாற்றுத் தரவிற்கும் ஒரே சரிவை வைத்துக்கொண்டு, முதல் நாளிலிருந்தே வர்த்தகம் செய்யும் ஒரு backtest, அந்தந்த காலகட்டத்தில் எவராலும் பெற்றிருக்க முடியாத லாபத்தை காட்டும். இதற்கு எளிய மற்றும் பயனுள்ள தீர்வு: trailing window முறையில் மீண்டும் கணக்கிடுவது மற்றும் அந்தந்த நாளில் கிடைக்கும் அளவுருக்களைக் கொண்டு ஒவ்வொரு நாளையும் மதிப்பிடுவது. ஒரு மறுஉருவாக்கம் செய்யக்கூடிய backtest (reproducible backtest), இந்த ஒழுக்கத்தை மற்றவர்கள் சரிபார்க்க வழிவகை செய்கிறது.

நிறுவன நடவடிக்கைகள் (Corporate actions) ஒரே இரவில் ஒரு பங்கின் நிலையை மாற்றுகின்றன. ஒரு 4-for-1 பங்குப் பிரிப்பு (split), ஒரு பங்கை நான்காக மாற்றுகிறது மற்றும் அதன் விலையை நான்கில் ஒரு பங்காகக் குறைக்கிறது. சரிசெய்யப்படாத விலைகளைக் கொண்டு கணக்கிடப்படும் spread, வர்த்தகம் செய்யப்படாத ஒரு நிலைக்குத் திடீரென உயரும். இணைப்புகள் (mergers), spin-offs மற்றும் குறியீட்டு மாற்றங்கள் (index changes) இதே போன்ற மாற்றங்களை அமைதியாகச் செய்கின்றன. Split-adjusted விலை வரலாற்றைக் கொண்டு தொடங்குங்கள். மேலும், ஒரு ticker symbol முற்றிலும் வேறொரு நிறுவனத்திற்கு ஒதுக்கப்படலாம் என்பதை கவனத்தில் கொள்ளுங்கள்; இதுவே ticker symbols தரவுத்தொகுப்புகளைச் சிதைப்பதற்கான காரணம்.

ஒரு முறிவு (break) மற்றும் ஒரு வாய்ப்பு (opportunity) நடக்கும்போது ஒரே மாதிரியாகத் தோன்றும். ஒரு ஜோடி இதுவரை காட்டிய மிக அதிக z score என்பது, அது வழங்கிய சிறந்த நுழைவுப் புள்ளியாகவோ அல்லது முடிவுக்கு வந்த ஒரு உறவின் முதல் வாரமாகவோ இருக்கலாம். அந்த நாளில், இரண்டுமே விரிவடைந்த spread போலவே தோன்றும். புள்ளிவிவரங்களால் செய்ய முடியாத வேலையை, முதலீட்டு அளவு (sizing) செய்கிறது: Kelly criterion position sizing மற்றும் volatility targeting position sizing ஆகிய இரண்டு கட்டமைப்புகள், ஒரு spread-க்கு கணக்கில் எவ்வளவு இடமளிக்கலாம் என்பதைத் தீர்மானிக்கின்றன. Maximum drawdown, சராசரிக்கு மாறான திசையில் நீண்ட காலம் இருந்தால் அது equity curve-ஐ எவ்வாறு பாதிக்கும் என்பதை அளவிடுகிறது.

Rolling z score என்பது ஒரு cointegration சோதனை அல்ல. இதற்கென முறையான சோதனைகள் உள்ளன. Engle-Granger செயல்முறை regression-ஐ இயக்கி, மீதமுள்ள spread-ன் நிலைத்தன்மையை (stationarity) சோதிக்கிறது; Johansen சோதனை இந்த முறையை இரண்டுக்கும் மேற்பட்ட பெயர்களுக்கு நீட்டிக்கிறது. Z score என்பது அந்தச் சோதனைகள் சரிபார்க்கும் பண்புகளை அடிப்படையாகக் கொண்டது. நிலையான சராசரி இல்லாத spread-க்கும் இது பெரிய மதிப்புகளைக் காட்டும், ஏனெனில் ஒரு trending series எப்போதும் அதன் trailing average-லிருந்து வெகு தொலைவிலேயே இருக்கும்.

தரவு குறிப்புகள் மற்றும் இந்த எண்கள் எவற்றைத் தவிர்க்கின்றன

Correlation பேனல் 2024-01-01 முதல் 2025-12-31 வரையிலான தினசரி இறுதி விலைகளைப் (daily closes) பயன்படுத்துகிறது. ஒவ்வொரு பங்கின் முதல் அமர்வைத் தவிர்த்து, அடுத்தடுத்த இறுதி விலைகளிலிருந்து வருமானம் கணக்கிடப்படுகிறது. Z score trace, 2023-ன் இறுதி விலைகளை மட்டும் கொண்டு hedge ratio-வை அமைக்கிறது. பின்னர் 2024 மற்றும் 2025-ஐ 63-அமர்வு trailing mean மற்றும் sample standard deviation ஆகியவற்றைக் கொண்டு மதிப்பிடுகிறது; இது ஒவ்வொரு வாரத்தின் கடைசி வாசிப்பில் எடுக்கப்படுகிறது. Reversion பேனல் 2018-லிருந்து வரலாற்றை ஏற்றி, 2019 முதல் அறிக்கையிடுகிறது. எனவே, மதிப்பிடப்பட்ட ஒவ்வொரு நாளுக்கும் பின்னால் ஒரு முழுமையான trailing window உள்ளது. இது நவம்பர் 2025 பாதியில் முடிவடைகிறது, இதனால் ஒவ்வொரு நாளுக்கும் முன்னால் மாதிரிக்குள் இருபது அமர்வுகள் உள்ளன.

இந்த பேனல்கள் எதுவும் ஒரு வர்த்தக உத்தி (strategy) அல்ல. இதில் வர்த்தகச் செலவுகள், bid-ask spread, short leg-க்கான கடன் கட்டணம் (borrow fee), dividends மற்றும் நிதிச் செலவுகள் எதுவும் சேர்க்கப்படவில்லை. இறுதி விலைகள் மட்டுமே பயன்படுத்தப்பட்டுள்ளன; அதாவது, ஒரு குறிப்பிட்ட விலையில் குறிக்கப்பட்ட நுழைவு என்பது, அந்த விலையில் எவராலும் வர்த்தகம் செய்திருக்க முடியாத ஒன்றாகும்.

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

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

Correlation என்பது இரண்டு பங்குகள் ஒரே நாட்களில் ஒரே திசையில் நகர்கின்றனவா என்பதை -1 முதல் +1 வரையிலான அளவில் அளவிடுகிறது. Cointegration என்பது அந்தப் பங்குகளின் விலைகளுக்கு இடையே உள்ள இடைவெளி ஒரு நிலையான வரம்பிற்குள் இருக்கிறதா என்பதை அளவிடுகிறது. ஒரு ஜோடி பங்குகள் முதல் அளவீட்டில் அதிக மதிப்பெண் பெற்று, இரண்டாவது அளவீட்டில் தோல்வியடையலாம்; correlation அடிப்படையில் தேர்ந்தெடுக்கப்படும் ஜோடிகள் காலப்போக்கில் விலகிச் செல்வதற்கு இதுவே பொதுவான காரணமாகும்.

Pairs trading-ல் hedge ratio-வை எவ்வாறு கணக்கிடுவது?

ஒரு பங்கின் விலையை மற்றொன்றின் விலையுடன் ஒப்பிட்டு ஒரு நேர்க்கோட்டை (straight line) வரைந்து, அதன் சாய்வை (slope) கணக்கிட வேண்டும். அந்தச் சாய்வு என்பது, இரண்டாவது பங்கின் ஒரு அலகை ஈடுசெய்யத் தேவையான முதல் பங்கின் அலகுகளின் எண்ணிக்கையைக் குறிக்கும். இது மாறக்கூடிய அளவு என்பதால், பெரும்பாலான நடைமுறைகளில் முழு மாதிரியையும் ஒரே நேரத்தில் கணக்கிடுவதற்குப் பதிலாக, நகரும் கால இடைவெளியில் (trailing window) மீண்டும் மீண்டும் கணக்கிடப்படுகிறது.

Pairs traders நுழைவு மற்றும் வெளியேற்றத்திற்கு எந்த z score-ஐப் பயன்படுத்துகிறார்கள்?

பயிற்சி உதாரணங்களில், பொதுவாக trailing mean-லிருந்து 1.5 முதல் 2 standard deviations அளவில் நுழைந்து, 0.5-க்கு அருகில் வெளியேறுவார்கள். இந்த எண்கள் முந்தைய கட்டுரைகளிலிருந்து பெறப்பட்ட மரபுகள் தானே தவிர, இவை அளவிடப்பட்ட உகந்த மதிப்புகள் அல்ல. இவற்றை மாற்றும்போது, வர்த்தகங்களின் எண்ணிக்கை மற்றும் ஒவ்வொரு வர்த்தகமும் நீடிக்கும் காலம் ஆகியவையும் மாறும்.

குறைந்த correlation கொண்ட இரண்டு பங்குகள் cointegrated ஆக இருக்க முடியுமா?

ஆம். Correlation என்பது தினசரி மாற்றங்களின் அடிப்படையில் கணக்கிடப்படுகிறது, ஆனால் cointegration என்பது விலைகளுக்கு இடையிலான இடைவெளியின் அடிப்படையில் கணக்கிடப்படுகிறது. எனவே, தினசரி நகர்வுகள் அரிதாகவே ஒத்துப்போகும் இரண்டு பங்குகள், நீண்ட கால அடிப்படையில் நிலையான இடைவெளியைக் கொண்டிருக்க முடியும். இதற்கு நேர்மாறாகவும் நடக்கலாம்: தினசரி correlation அதிகமாக இருந்தாலும், அந்தப் பங்குகளுக்கு இடையிலான இடைவெளி ஆண்டுதோறும் அதிகரித்துக்கொண்டே செல்லலாம்.

ஒரு cointegrated ஜோடி ஏன் செயல்படாமல் போகிறது?

அந்த இடைவெளியைத் தக்கவைக்கும் பிணைப்பு மாறக்கூடும்: ஒரு இணைப்பு (merger), பிரிவினை (spin-off), ஒரு நிறுவனத்தின் வணிகக் கலவையில் மாற்றம் அல்லது பங்குகளை வைத்திருப்பவர்களை மாற்றும் ஒரு குறியீட்டு மாற்றம் (index change) போன்றவை காரணமாக இருக்கலாம். இத்தகைய முறிவுக்கு முந்தைய நாட்களில் உள்ள புள்ளிவிவரங்கள், சாதாரண விலைத் திருத்தத்திற்கு (reversion) முந்தைய நாட்களைப் போலவே இருக்கும். இதை முன்கூட்டியே கணிப்பதை விட, இதற்கேற்ப இடர் மேலாண்மை (sizing) செய்வதே அவசியமானது.


இங்குள்ள ஒவ்வொரு பேனலும் அதற்கான துல்லியமான SQL குறியீட்டைக் கொண்டுள்ளது, எனவே windows, fit period மற்றும் bucket edges ஆகியவற்றை நீங்கள் காணலாம். நீங்கள் கண்காணிக்கும் ஒரு ஜோடிக்கு அதே spread மற்றும் z score-ஐப் பயன்படுத்த, Strasmore terminal-ல் உங்கள் கேள்வியை எளிய ஆங்கிலத்தில் கேட்கவும்.

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