Equal weight முறை எப்போது உகப்பாக்கத்தை விடச் சிறந்தது?
தரவுகள் குறைவாக இருக்கும்போது Equal weight முறை உகப்பாக்கத்தை விடச் சிறப்பாகச் செயல்படுகிறது. Python உருவகப்படுத்துதல் மூலம் தரவு அளவு அதிகரிக்கும்போது ஏற்படும் மாற்றங்களை அறியலாம்.
சமமான பங்கீடு (Equal weight) ஏன் சிறந்தது
எதிர்பார்க்கப்படும் வருவாயைத் துல்லியமாகக் கணிக்க போதுமான தரவுகள் இல்லாதபோது, சமமான பங்கீடு (Equal weight) முறையே உகந்த நிலை அளவு (optimized position sizing) முறையை விடச் சிறப்பாகச் செயல்படுகிறது. நிதிச் சந்தைகளில் குறுகிய கால தரவுகளே வழக்கமாக உள்ளன, நீண்ட கால தரவுகள் அரிதானவை.
தரவு மற்றும் கணிப்புச் சிக்கல்கள்
ஒரு ஆப்டிமைசர் (optimizer) என்பது சரியான கணித முறைதான், ஆனால் அது தவறாகக் கணிக்கப்பட்ட உள்ளீடுகளை (inputs) அடிப்படையாகக் கொண்டது. 1/N போர்ட்ஃபோலியோ அல்லது சமமான பங்கீடு முறை எதையும் கணிப்பதில்லை. கணிப்புகள் தவறாக இருக்கும்போது, இந்த முறை நிலைத்து நிற்பதற்குக் காரணமே அதன் இந்த எளிமைதான்.
சமமான பங்கீடு (Equal weight) உண்மையில் உகப்பாக்கத்தை (optimization) விடச் சிறந்ததா?
ஒரு குறிப்பிட்ட சூழலில், ஆம். இந்த விதிமுறைகளை ஒவ்வொன்றாகப் பார்ப்போம். Equal weight, அதாவது 1/N என்பது, மூலதனத்தை N எண்ணிக்கையிலான பங்குகளில் சமமாகப் பிரித்து முதலீடு செய்வதாகும்; இதற்கு எந்தவிதமான கணிப்பும் தேவையில்லை. Mean variance optimization என்பது, மதிப்பிடப்பட்ட variance-ன் ஒரு அலகுக்கு அதிகபட்ச எதிர்பார்க்கப்படும் வருவாயைத் தரும் பங்கீட்டு விகிதங்களைக் கண்டறிகிறது. Kelly criterion என்பது நீண்ட கால கூட்டு வளர்ச்சியை அதிகப்படுத்தும் விகிதங்களைக் கண்டறிகிறது; தொடர்பில்லாத சொத்துகளுக்கு, அதன் விடை என்பது ஒவ்வொரு சொத்தின் எதிர்பார்க்கப்படும் கூடுதல் வருவாயை அதன் variance-ஆல் வகுக்கும் விகிதத்திற்குச் சமமாகும். எங்களது Kelly criterion position sizing வழிகாட்டி அந்த சூத்திரத்தை விரிவாக விளக்குகிறது.
இரண்டு உகப்பாக்க முறைகளுக்கும் ஒரே உள்ளீடு தேவைப்படுகிறது: ஒரு சொத்தின் எதிர்பார்க்கப்படும் வருவாய். இதுவே ஒரு மாதிரியில் மிக மோசமாக மதிப்பிடப்படும் அளவீடு ஆகும். Volatility-ஐ ஒரு குறுகிய கால இடைவெளியில் ஓரளவுக்குத் துல்லியமாகக் கணிக்க முடியும். ஆனால் சராசரி வருவாயை அவ்வாறு கணிக்க முடியாது; இந்த இரண்டிற்கும் இடையிலான இடைவெளி எந்தவொரு விலை வரலாற்றிலும் தெளிவாகத் தெரியும். கீழே உள்ள அட்டவணை, பரவலாக முதலீடு செய்யப்படும் ஆறு பங்குகளை எடுத்துக்கொண்டு, 2015 முதல் 2024 வரையிலான ஒவ்வொரு காலண்டர் ஆண்டையும் தனித்தனியாக அளவிடுகிறது. மேலும், அந்த ஆண்டுகளில் கணிக்கப்பட்ட அதிகபட்ச மற்றும் குறைந்தபட்ச வருவாய் மதிப்பீடுகளுக்கு இடையே எவ்வளவு இடைவெளி உள்ளது என்பதையும் காட்டுகிறது. ஒவ்வொரு பங்கிற்கும் இது இரண்டு முறை செய்யப்படுகிறது: ஒன்று வருடாந்திர சராசரி தினசரி வருவாய்க்கும், மற்றொன்று வருடாந்திர volatility-க்கும்.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH prices AS
(
SELECT
ticker,
date,
toFloat64(max(close)) AS c
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO', 'JNJ')
AND date >= '2015-01-01'
AND date < '2025-01-01'
GROUP BY ticker, date
),
rets AS
(
SELECT
ticker,
date,
c / lagInFrame(c, 1) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM prices
),
yearly AS
(
SELECT
ticker,
toYear(date) AS yr,
avg(ret) * 252 * 100 AS mean_pct,
stddevPop(ret) * sqrt(252) * 100 AS vol_pct
FROM rets
WHERE isFinite(ret)
GROUP BY ticker, yr
HAVING count() >= 200
)
SELECT
ticker,
round(max(mean_pct) - min(mean_pct), 1) AS mean_estimate_range_pct,
round(max(vol_pct) - min(vol_pct), 1) AS vol_estimate_range_pct
FROM yearly
GROUP BY ticker
ORDER BY mean_estimate_range_pct DESCNVDA-க்கு, அந்த பத்து ஆண்டுகளில் வருடாந்திர சராசரி மதிப்பீடு 184.7 சதவீத புள்ளிகள் வரை வேறுபடுகிறது. அதே காலகட்டத்தில், அதே பங்கின் volatility மதிப்பீட்டில் 28.6 புள்ளிகள் மட்டுமே வேறுபாடு உள்ளது. இந்த பட்டியலில் மிகவும் நிலையான பங்கான KO-ன் வருடாந்திர சராசரி மதிப்பீடு கூட 23.9 புள்ளிகள் வரை நகர்ந்துள்ளது. கடந்த ஆண்டின் சராசரி வருவாயை இந்த ஆண்டின் எதிர்பார்க்கப்படும் வருவாயாக ஒரு உகப்பாக்க கருவிக்கு (optimizer) வழங்கும் எந்தவொரு திட்டமும், இவ்வளவு பெரிய மாறுபாடு கொண்ட ஒரு எண்ணையே அதற்கு வழங்குகிறது.
எதிர்பார்க்கப்படும் வருவாயை மதிப்பிட எவ்வளவு கால அளவுள்ள தரவு தேவை?
மதிப்பிடப்பட்ட சராசரி வருவாயின் standard error என்பது, அந்தச் சொத்தின் volatility-ஐ தரவு கால அளவின் (ஆண்டுகளில்) வர்க்கமூலத்தால் (square root) வகுப்பதன் மூலம் கிடைப்பதாகும். இது நாட்களின் எண்ணிக்கையல்ல, ஆண்டுகளின் அடிப்படையில் கணக்கிடப்பட வேண்டும்; ஒரே பன்னிரண்டு மாத காலத்தை தினசரி தரவுகளுக்குப் பதிலாக மணிநேர அடிப்படையில் ஆய்வு செய்வதால் எந்தப் பயனும் இல்லை. இருபது சதவீத volatility கொண்ட ஒரு சொத்தை இந்தச் சூத்திரத்தில் இட்டால், ஓராண்டு தரவு இருபது சதவீத புள்ளிகள் என்ற standard error-ஐத் தரும். நான்கு ஆண்டுகள் தரவு இதைப் பாதியாகக் குறைத்து பத்து சதவீத புள்ளிகளாக்கும். இரண்டு சொத்துகளின் உண்மையான சராசரி வருவாய்க்கு இடையே உள்ள இரண்டு சதவீத புள்ளிகள் வித்தியாசத்தை துல்லியமாக அறிய வேண்டுமெனில், நான்கு நூற்றாண்டுகால தரவு தேவைப்படும்.
Volatility இதற்கு நேர்மாறானது. அதன் துல்லியம் கால அளவை விட, தரவுப் புள்ளிகளின் எண்ணிக்கையைப் பொறுத்தே அமைகிறது. எனவே, சில மாத கால தினசரி தரவுகளே அதன் மதிப்பைச் சில புள்ளிகளுக்குள் கொண்டு வந்துவிடும். கீழே உள்ள அட்டவணை, ஒரு index fund-ன் இருபது ஆண்டுகால தினசரி வருவாயை, குறிப்பிட்ட கால அளவு கொண்ட ஒன்றையொன்று சாராத தொகுதிகளாகப் பிரித்து, ஒவ்வொரு தொகுதிக்குள்ளும் இந்த இரண்டு மதிப்பீடுகளையும் கணக்கிட்டு, தொகுதிகளுக்கு இடையே அந்த மதிப்பீடுகள் எவ்வளவு வேறுபடுகின்றன என்பதைக் காட்டுகிறது.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH prices AS
(
SELECT
date,
toFloat64(max(close)) AS c
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2005-01-01'
AND date < '2025-01-01'
GROUP BY date
),
rets AS
(
SELECT
date,
c / lagInFrame(c, 1) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM prices
),
numbered AS
(
SELECT
ret,
row_number() OVER (ORDER BY date ASC) AS i
FROM rets
WHERE isFinite(ret)
),
sweep AS
(
SELECT
arrayJoin([21, 63, 126, 252, 504]) AS n,
i,
ret
FROM numbered
),
blocks AS
(
SELECT
n,
intDiv(i - 1, n) AS blk,
avg(ret) * 252 * 100 AS mean_pct,
stddevPop(ret) * sqrt(252) * 100 AS vol_pct
FROM sweep
GROUP BY n, blk
HAVING count() = n
)
SELECT
concat(toString(n), ' sessions') AS sample_length,
round(stddevPop(mean_pct), 1) AS mean_estimate_spread_pct,
round(stddevPop(vol_pct), 1) AS vol_estimate_spread_pct,
count() AS window_count
FROM blocks
GROUP BY n
ORDER BY n ASC21 sessions கால அளவுள்ள தொகுதிகளில், சராசரி மதிப்பீடு 53.7 சதவீத புள்ளிகள் வரை வேறுபடுகிறது; அதே தொகுதிகளில் கணக்கிடப்பட்ட volatility மதிப்பீடு 10.9 புள்ளிகள் என்ற அளவில் உள்ளது. தொகுதியின் கால அளவை 504 sessions ஆக நீட்டிக்கும்போது, சராசரி வேறுபாடு 10.6 புள்ளிகளாகக் குறைகிறது. இது வர்க்கமூல அடிப்படையில் குறைகிறது: பிழையை பாதியாகக் குறைக்க, நான்கு மடங்கு கூடுதல் தரவு தேவைப்படுகிறது.
நீங்களே இயக்கிப் பார்க்கக்கூடிய ஒரு seeded simulation
மதிப்பீட்டுப் பிழை (estimation error) 1/N முறைக்கு வெற்றியைத் தரும் அளவுக்குப் பெரியது என்பதை இது நிரூபிக்கிறது. இதற்கான வழிமுறைக்கு Python நிறுவல் மட்டுமே போதும்; தரவுக் கோப்புகள், பதிவிறக்கங்கள் அல்லது மூன்றாம் தரப்பு தொகுப்புகள் எதுவும் தேவையில்லை. இது நீங்கள் தேர்ந்தெடுக்கும் அளவீடுகளிலிருந்து வருமானத்தை (returns) உருவாக்குவதால், உண்மையான விடை என்னவென்று தெரியும்; இரண்டு ஒதுக்கீட்டு முறைகளையும் (allocations) அதன் அடிப்படையில் மதிப்பிடலாம்.
import randomமற்றும்import statisticsஆகிய இரண்டு தொகுதிகள், மற்றும்from math import logஆகியவற்றை இறக்குமதி செய்யவும். அடுத்த வரியில்random.seed(20260816)கொண்டு seed-ஐ அமைக்கவும்.- ஐந்து சொத்துக்களை (assets) வரையறுக்கவும். அவற்றின் உண்மையான ஆண்டு வருமான எதிர்பார்ப்பு முறையே ஐந்து, ஆறு, ஏழு, எட்டு மற்றும் ஒன்பது சதவீதம் ஆகும். ஒவ்வொன்றிற்கும் இருபது சதவீத உண்மையான ஆண்டு ஏற்ற இறக்கம் (volatility) இருக்க வேண்டும், இவை ஒன்றுக்கொன்று தொடர்பற்றவை.
mu_d = mu_a / 252மற்றும்sd_d = sd_a / (252 ** 0.5)மூலம் இவற்றை தினசரி நிலைக்கு மாற்றவும். [60, 125, 250, 500, 1000, 2500, 5000]-லிருந்து ஒரு மாதிரி நீளம் T-ஐத் தேர்ந்தெடுக்கவும்.random.gauss(mu_d, sd_d)மூலம் ஒவ்வொரு சொத்திற்கும் T தினசரி வருமானங்களை வரையவும். இந்தத் தரவு மட்டுமே மேலாளர் பார்க்கக்கூடிய முழு வரலாறாகும்.statistics.meanமூலம் ஒவ்வொரு சொத்தின் சராசரியையும்,statistics.stdevமூலம் அதன் ஏற்ற இறக்கத்தையும் மதிப்பிடவும். இந்த இரண்டு மதிப்பீடுகள் மட்டுமே optimizer-க்குத் தெரிந்தவை.- ஐந்து சொத்துக்களுக்கும் தலா 0.2 என ஒதுக்கி, சம எடை கொண்ட (equal weight) போர்ட்ஃபோலியோவை உருவாக்கவும். இது எந்த மதிப்பீட்டையும் பயன்படுத்துவதில்லை.
- ஒவ்வொரு raw weight-ஐயும்
mu_hat / (sd_hat ** 2)என அமைத்து, பின் ஒவ்வொரு எடையையும் மொத்த raw weights-ன் கூட்டுத்தொகையால் வகுத்து, optimized போர்ட்ஃபோலியோவை உருவாக்கவும். இது இரண்டு போர்ட்ஃபோலியோக்களையும் ஒரே gross exposure-ல் வைக்கிறது. - உண்மையான அளவீடுகளிலிருந்து சொத்து ஒன்றிற்கு 2520 தினசரி வருமானங்கள் கொண்ட புதிய out-of-sample பாதையை உருவாக்கவும். இந்தத் தரவை எந்த ஒதுக்கீட்டு முறையும் பார்த்ததில்லை.
log(1 + r)-ன் சராசரியைக் கொண்டு இரண்டையும் மதிப்பிடவும்; இதில் r என்பது அந்த நாளில் ஐந்து சொத்து வருமானங்களின் எடையிடப்பட்ட கூட்டுத்தொகை ஆகும்.- ஒவ்வொரு T-க்கும் 2000 சுயாதீன சோதனைகளுக்கு 4 முதல் 9 வரையிலான படிகளை மீண்டும் செய்யவும். எத்தனை சோதனைகளில் equal weight முறை optimized weights-ஐ விடச் சிறப்பாகச் செயல்படுகிறது என்பதைக் குறித்துக்கொள்ளவும்.
குறுகிய T-யிலிருந்து நீண்ட T வரை இந்த வரிசையைப் படிக்கவும். குறுகிய காலத்தில், பெரும்பாலான சோதனைகளில் equal weight முறையே வெற்றி பெறுகிறது. T வளர வளர இந்த வெற்றி விகிதம் சீராகக் குறைகிறது, நீண்ட காலத்தில் optimized weights பெரும்பாலானவற்றில் வெற்றி பெறுகின்றன. இடையில் எங்கோ ஒரு புள்ளியில் இவை இரண்டும் சந்திக்கின்றன. இந்தச் சந்திப்புப் புள்ளி seed மற்றும் உண்மையான சராசரிகளுக்கு இடையிலான spread-ஐப் பொறுத்து மாறுகிறது. ஆனால் திசை மாறுவதில்லை: அதிக தரவு optimizer-க்குச் சாதகமானது, குறைந்த தரவு 1/N முறைக்குச் சாதகமானது. இதை மீண்டும் செய்ய, random.seed(20260816)-க்குள் உள்ள எண்ணை மாற்றிவிட்டு மீண்டும் இயக்கவும்.
தவறான சராசரி மதிப்பீட்டை optimizer ஏன் பெரிதாக்குகிறது
மதிப்பீடுகள் எடையை (weight) எவ்வாறு தீர்மானிக்கின்றன என்று பாருங்கள். மதிப்பிடப்பட்ட சராசரி தொகுதியிலும் (numerator), மதிப்பிடப்பட்ட மாறுபாடு (variance) பகுதியிலும் (denominator) அமைகின்றன. சராசரி மதிப்பீட்டை இருமடங்காக்கினால், எடையும் இருமடங்காகும். மாறுபாடு மதிப்பீட்டில் கால் பகுதியை குறைத்தால், எடை மூன்றில் ஒரு பங்கு உயரும். அதிர்ஷ்டவசமான ஒரு மாதிரியில், இரண்டு பிழைகளும் ஒரே திசையில் அமையும்: தொடர்ச்சியான நல்ல முடிவுகள் அளவிடப்பட்ட சராசரியை உயர்த்துகின்றன, அதே கால இடைவெளியில் அளவிடப்பட்ட மாறுபாட்டைக் குறைக்கின்றன. அந்த சொத்தை குழுவிலேயே சிறந்ததாக optimizer கருதி, அதற்கேற்ப அளவை ஒதுக்குகிறது. மாதிரிக்கு வெளியே (out of sample), அது மீண்டும் குழுவில் ஒரு சாதாரண உறுப்பினராகவே மாறுகிறது. சம எடை (equal weight) முறை இத்தகைய அதிர்ஷ்டமான மாதிரிகளைப் பார்ப்பதில்லை.
இந்தச் சிக்கலின் மென்மையான வடிவம் தான் உருவகப்படுத்துதல் (simulation). ஒன்றுக்கொன்று தொடர்பில்லாத ஐந்து சொத்துகள் ஒரு மூலைவிட்ட covariance matrix-ஐ உருவாக்குகின்றன, இதில் தலைகீழாக மாற்ற (invert) எதுவும் இல்லை. உண்மையான போர்ட்ஃபோலியோக்கள் ஒன்றுடன் ஒன்று தொடர்புடையவை, மேலும் சொத்துகளின் எண்ணிக்கையை விட சற்று அதிகமான அவதானிப்புகளைக் கொண்டு உருவாக்கப்பட்ட ஒரு மாதிரி covariance matrix, singular நிலைக்கு அருகில் இருக்கும். அதை தலைகீழாக மாற்றும்போது, சிறிய உள்ளீட்டு பிழைகள் மிகப்பாரிய எடைகளாகப் பெருகுகின்றன. இதனால்தான், ஒரு optimizer ஒரு பங்கில் மூலதனத்தை விட பல மடங்கு பெரிய நிலையை எடுத்து, அதற்கு மாற்றாக அதன் நெருங்கிய மாற்றீட்டில் short நிலையை எடுக்கிறது. போர்ட்ஃபோலியோவில் செறிவு அபாயம் குறித்த எங்கள் குறிப்பு, அத்தகைய எடை ஒரு சரிவின் போது (drawdown) என்ன செய்யும் என்பதை விளக்குகிறது.
உள்ளீட்டுத் தரவுகளும் நிலையாக இருப்பதில்லை. கீழே உள்ள வரைபடம், ஒரு பரந்த index fund மற்றும் ஒரு பெரிய consumer staples நிறுவனத்தின் பங்கிற்கான, ஓராண்டு கால சராசரி தினசரி வருவாயை (வருடாந்திரமாக்கப்பட்டு, மாதந்தோறும் கணக்கிடப்பட்டது) காட்டுகிறது.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH prices AS
(
SELECT
ticker,
date,
toFloat64(max(close)) AS c
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'KO')
AND date >= '2015-10-01'
AND date < '2025-01-01'
GROUP BY ticker, date
),
rets AS
(
SELECT
ticker,
date,
c / lagInFrame(c, 1) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1 AS ret
FROM prices
),
trailing AS
(
SELECT
ticker,
date,
avg(ret) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 251 PRECEDING AND CURRENT ROW) * 252 * 100 AS trailing_mean_pct,
row_number() OVER (PARTITION BY ticker ORDER BY date ASC) AS i
FROM rets
WHERE isFinite(ret)
)
SELECT
toString(toStartOfMonth(date)) AS month,
round(avgIf(trailing_mean_pct, ticker = 'SPY'), 1) AS spy_trailing_mean_pct,
round(avgIf(trailing_mean_pct, ticker = 'KO'), 1) AS ko_trailing_mean_pct
FROM trailing
WHERE i >= 252
AND date >= '2017-01-01'
GROUP BY month
ORDER BY month ASCஅந்த இரண்டு கோடுகளிலும் உள்ள ஒவ்வொரு புள்ளியும், ஒரு குறிப்பிட்ட தேதியில் எதிர்பார்க்கப்படும் வருவாயாக ஏதோ ஒரு optimizer ஏற்றுக்கொண்ட எண்ணாகும். SPY-க்கான முதல் மாத வாசிப்பு 17.7% மற்றும் கடைசி வாசிப்பு 25.8% ஆகும், அவற்றுக்கிடையே 96 வாசிப்புகள் உள்ளன. KO அதே கால இடைவெளியை -0.4% இல் தொடங்குகிறது. இந்தத் தரவுத் தொடரை மாதந்தோறும் பயன்படுத்தும் ஒரு எடை நிர்ணய முறை, அதில் உள்ள ஒவ்வொரு ஏற்ற இறக்கத்தையும் அப்படியே உள்வாங்கிக்கொள்கிறது.
Half Kelly மற்றும் shrinkage முறைகள் இதைச் சரிசெய்கிறதா?
இவை பாதிப்பைக் குறைக்கின்றன. நடைமுறையில் நான்கு வகையான மாற்றங்கள் கையாளப்படுகின்றன. ஒவ்வொன்றும் கோட்பாட்டு ரீதியான உகந்த நிலையை (theoretical optimum) விட்டுக்கொடுத்து, மதிப்பீட்டின் மீதான உணர்திறனைக் (sensitivity) குறைக்கின்றன.
- Half Kelly என்பது ஒவ்வொரு பங்களிப்பையும் (weight) பாதியாகக் குறைக்கிறது. Kelly வளர்ச்சி வளைகோடு அதன் உச்சியில் சமதளமாகவும், அதற்கு கீழே செங்குத்தாகவும் இருக்கும். எனவே, ஒரு பாதி பங்கு (half stake) என்பது கோட்பாட்டு வளர்ச்சி விகிதத்தில் ஒரு சிறிய பகுதியை மட்டுமே விட்டுக்கொடுக்கிறது, ஆனால் மிகைப்படுத்தப்பட்ட மதிப்பீட்டினால் ஏற்படும் பாதிப்பை கணிசமாகக் குறைக்கிறது. Volatility targeting முறையும் இதே தர்க்கத்தையே பயன்படுத்துகிறது; ஒரு குறுகிய கால தரவுத் தொகுப்பிலிருந்து கிடைக்கக்கூடிய ஒரே உள்ளீட்டை வைத்து இது அளவீடுகளைத் தீர்மானிக்கிறது.
- Shrinkage என்பது ஒவ்வொரு மதிப்பீட்டு சராசரியையும், அந்த மதிப்பீடுகளின் குறுக்குவெட்டு சராசரியை (cross-sectional average) நோக்கி இழுக்கிறது. தரவுத் தொகுப்பு சுருங்கச் சுருங்க, இந்த இழுவிசை அதிகரிக்கிறது. இதை உச்சகட்டத்திற்கு எடுத்துச் சென்றால், அனைத்து சொத்துகளும் ஒரே மாதிரியான எதிர்பார்க்கப்படும் வருவாயைக் கொண்டிருக்கும்; சமமான ஏற்ற இறக்கங்கள் (volatilities) இருக்கும்போது, உகப்பாக்கி (optimizer) தானாகவே சமமான எடையை (equal weight) வழங்கும். Equal weight என்பது முழுமையாகச் சுருக்கப்பட்ட போர்ட்ஃபோலியோ ஆகும்.
- கட்டுப்பாடுகள் (Constraints), அதாவது shorting செய்யாமை மற்றும் ஒரு குறிப்பிட்ட பங்கிற்கு உச்ச வரம்பு விதித்தல் போன்றவை, ஒரு அதிர்ஷ்டமான மதிப்பீடு ஒரு குறிப்பிட்ட எடையை எவ்வளவு தூரம் உயர்த்த முடியும் என்பதைக் கட்டுப்படுத்துகின்றன. இவை மதிப்பீட்டை மேம்படுத்துவதை விட, சேதத்தைக் கட்டுப்படுத்தும் நடவடிக்கைகளாகும்.
- எதிர்பார்க்கப்படும் வருவாயை முற்றிலுமாக நீக்குவது, minimum variance மற்றும் risk parity ஆகிய முறைகளுக்கு இட்டுச் செல்கிறது. இவை covariance-ஐ மட்டுமே பயன்படுத்துகின்றன. இது மட்டுமே ஒரு தரவுத் தொகுப்பிலிருந்து நம்பகத்தன்மையுடன் பெறக்கூடிய உள்ளீடாகும்.
இந்த நான்கு முறைகளும் தரவுத் தொகுப்பில் இல்லாத எந்தவொரு புதிய தகவலையும் உருவாக்குவதில்லை. உங்களிடம் இல்லாத தகவல்களின் மீது போர்ட்ஃபோலியோ எவ்வளவு தூரம் சார்ந்திருக்கிறது என்பதை மட்டுமே இவை மாற்றியமைக்கின்றன.
மேம்படுத்தல் (Optimization) எப்போது பலனளிக்கிறது
இந்த மாற்றம் இரு திசைகளிலும் நிகழ்கிறது. உண்மையான சராசரிகளுக்கு இடையிலான spread-ஐ விட T பெரியதாக வளரும்போது, மேம்படுத்தப்பட்ட ஒதுக்கீடு (optimized allocation) முன்னிலை பெற்று அங்கேயே நிலைத்துவிடுகிறது; அந்த spread எவ்வளவு அதிகமாக இருக்கிறதோ, அவ்வளவு விரைவாக இது நிகழ்கிறது. தரவுகள் வழங்கும் உள்ளீடுகளைப் பயன்படுத்தும்போதெல்லாம் மேம்படுத்தல் ஒரு சரியான கருவியாக அமைகிறது: எதிர்பார்க்கப்படும் வருவாயை (expected returns) விட, covariance மற்றும் hedge ratios ஆகியவை மிகச் சிறந்த மதிப்பீடுகளை வழங்குகின்றன.
சம எடை (Equal weight) அதன் சொந்த செலவுகளைக் கொண்டுள்ளது. இது உங்களிடம் உள்ள உண்மையான தகவல்களைப் புறக்கணிக்கிறது, மேலும் சிறிய universe-ல் இது எந்தவொரு optimizer-ஐயும் போலவே அதிக செறிவைக் கொண்டுள்ளது. எடைகள் இதுவரை பார்த்திராத தரவுகளில், எந்தவொரு மாற்று எடை முறையும் விஞ்ச வேண்டிய அடிப்படை அளவுகோலாக (baseline) இதைக் கருதுங்கள். எடைகளை அமைத்து, அதே மாதிரியில் அவற்றை மதிப்பிடுவது என்பது backtesting-ல் எதிர்காலத்தை முன்னரே அறிதல் (look-ahead bias) என்பதன் மற்றொரு வடிவமாகும், இது ஒவ்வொரு முறையும் optimizer-க்கு சாதகமாகவே அமைகிறது. ஒற்றை புள்ளி மதிப்பீட்டிற்குப் பதிலாக, அளவிடப்பட்ட விளிம்பைச் சுற்றியுள்ள நேர்மையான வரம்பிற்கு, bootstrapped confidence intervals தரப்படுத்தப்பட்ட கருவியாகும்.
அடிக்கடி கேட்கப்படும் கேள்விகள் (FAQ)
Equal weight முறை உண்மையில் mean variance optimization-ஐ விடச் சிறந்ததா?
குறுகிய கால மாதிரிகளில் இது பெரும்பாலும் சிறப்பாகச் செயல்படுகிறது. ஒரு optimizer-க்கு ஒவ்வொரு சொத்தின் எதிர்பார்க்கப்படும் வருவாய் (expected return) குறித்த மதிப்பீடு தேவைப்படுகிறது. அந்த மதிப்பீட்டில், சொத்தின் volatility-ஐ மாதிரியின் கால அளவின் வர்க்கமூலத்தால் (square root of the sample length) வகுப்பதன் மூலம் கிடைக்கும் ஒரு standard error இருக்கும். அந்த error, சொத்துக்களுக்கு இடையிலான உண்மையான வித்தியாசத்தை விட அதிகமாக இருக்கும் வரை, optimizer வெறும் இரைச்சலைத்தான் (noise) வரிசைப்படுத்துகிறது. Equal weight முறையில் தவறாக மதிப்பிட எந்தக் காரணியும் இல்லை.
எதிர்பார்க்கப்படும் வருவாயை மதிப்பிட எத்தனை தரவுகள் தேவை?
எவரிடமும் இருப்பதை விட அதிக தரவுகள் தேவை. 20 சதவீத volatility கொண்ட ஒரு சொத்திற்கு, ஒரு வருட தினசரி தரவுகளைப் பயன்படுத்தினால், ஆண்டுக்கு சுமார் 20 சதவீத புள்ளிகள் என்ற அளவில் standard error இருக்கும். அந்த error-ஐ பாதியாகக் குறைக்க, நான்கு மடங்கு அதிக கால அளவு தேவைப்படும். ஒரே வருடத்திற்குள் intraday தரவுகளைச் சேர்ப்பது உதவாது. மாறாக, சில மாத தரவுகளைக் கொண்டே volatility-ஐ ஓரளவிற்குத் துல்லியமாகக் கணிக்க முடியும்.
Half Kelly என்பது வெறும் சிறிய பந்தயமா?
இது சாதகமான சூழலில் இடப்படும் ஒரு சிறிய பந்தயம். Kelly growth curve அதன் உச்சியில் தட்டையாக இருக்கும். எனவே, பந்தயத் தொகையைப் பாதியாகக் குறைப்பதன் மூலம், கோட்பாட்டு ரீதியான வளர்ச்சி விகிதத்தில் மிகச் சிறிய அளவை மட்டுமே இழக்கிறோம். அதே சமயம், பயணத்தின் volatility பாதியாகக் குறைகிறது மற்றும் மிகைப்படுத்தப்பட்ட கணிப்பினால் ஏற்படும் இழப்புச் செலவும் குறைகிறது.
1/N போர்ட்ஃபோலியோ என்றால் என்ன?
இது N எண்ணிக்கையிலான ஒவ்வொரு முதலீட்டிலும் சமமான மூலதனத்தை முதலீடு செய்து, குறிப்பிட்ட கால இடைவெளியில் rebalance செய்யும் ஒரு போர்ட்ஃபோலியோ ஆகும். இதற்கு வருவாய் கணிப்போ அல்லது covariance மதிப்பீடோ தேவையில்லை. இதனால்தான், கணிப்புகள் தேவைப்படும் மற்ற அனைத்து weighting முறைகளுக்கும் இது ஒரு தரப்படுத்தப்பட்ட அளவுகோலாக (benchmark) விளங்குகிறது.
பேனல்கள் எவ்வாறு உருவாக்கப்படுகின்றன
மூன்று பேனல்களும் தினசரி closing விலைகளைப் படித்து, close-to-close வருவாயைக் கணக்கிடுகின்றன. ஒரே ticker-க்கு ஒரே தேதியில் பல பதிவுகள் இருந்தால், அவை ஒன்றாக இணைக்கப்படுகின்றன. சராசரி தினசரி வருவாயை 252 அமர்வுகளால் பெருக்குவதன் மூலம் சராசரி வருவாய் ஆண்டுப்படுத்தப்படுகிறது (annualized). தினசரி standard deviation-ஐ 252-ன் வர்க்கமூலத்தால் பெருக்குவதன் மூலம் volatility ஆண்டுப்படுத்தப்படுகிறது. வருடாந்திர பேனலில், குறைந்தபட்சம் 200 அமர்வுகள் உள்ள காலண்டர் ஆண்டுகள் மட்டுமே சேர்க்கப்படுகின்றன. Block பேனல் ஒன்றுடன் ஒன்று சேராத தொகுப்புகளைப் பயன்படுத்துகிறது மற்றும் ஒவ்வொரு கால அளவின் இறுதியிலும் உள்ள முழுமையற்ற தொகுப்பை நீக்குகிறது. அதன் window count நெடுவரிசை, ஒவ்வொரு கால அளவும் எத்தனை தொகுப்புகளை உருவாக்கியது என்பதைக் காட்டுகிறது. இதில் dividends சேர்க்கப்படவில்லை, எனவே இவை வெறும் விலை வருவாய்கள் (price returns) மட்டுமே. Dividend வழங்கும் பங்குகளைப் பொறுத்தவரை, சராசரி வருவாய் குறைவாகவே காட்டப்படும். மதிப்பீடுகளின் பரவல் (spread) மட்டுமே இங்கு முக்கியமே தவிர, அதன் அளவு அல்ல.
இங்குள்ள ஒவ்வொரு பேனலும் சார்ட்டின் கீழே உள்ள துல்லியமான SQL-ஐக் கொண்டுள்ளது, மேலும் இந்த simulation அதன் seed-ஐயும் கொண்டுள்ளது. உங்கள் சொந்தப் பங்குகள் பட்டியலில் இதே போன்ற மதிப்பீட்டு நிலைத்தன்மை சோதனையைச் செய்ய, Strasmore terminal-ல் எளிய ஆங்கிலத்தில் அதைக் கேட்கவும்.