என் Algo Strategy ஏன் தோல்வி அடைந்தது? பொதுவான தவறுகளும் தீர்வுகளும்
இந்தக் கட்டுரை ஆங்கிலத்திலிருந்து மொழிபெயர்க்கப்பட்டது. மூலக் கட்டுரையை ஆங்கிலத்தில் படியுங்கள்
ஒரு algo strategy பொதுவாக இரண்டு காரணங்களில் ஒன்றால் தோல்வி அடைகிறது: அது நீங்கள் நினைத்தபடி டிரேட் செய்யவில்லை (காலாவதியான broker session, நிராகரிக்கப்பட்ட ஆர்டர், ஒருபோதும் trigger ஆகாத விதி போன்ற setup அல்லது execution பிரச்சினை), அல்லது அது வடிவமைத்தபடியே டிரேட் செய்து நஷ்டம் அடைந்தது (overfitting, புறக்கணிக்கப்பட்ட செலவுகள், பலவீனமான ரிஸ்க் கட்டுப்பாடு, மாறிய மார்க்கெட், அல்லது வெறும் சாதாரண drawdown). முதலில் எது என்று கண்டறியுங்கள்; இரண்டுக்குமான தீர்வுகள் முற்றிலும் வேறுபட்டவை.
படி 1: இது எந்த வகைத் தோல்வி என்று கண்டறியுங்கள்
| அறிகுறி | பெரும்பாலும் | எதைப் பார்க்க வேண்டும் |
|---|---|---|
| டிரேடுகளே இல்லை, அல்லது எதிர்பார்த்ததை விட மிகக் குறைவு | Setup அல்லது execution பிரச்சினை | Notification log, broker இணைப்பு, conditions |
| ஆர்டர்கள் போடப்பட்டன, ஆனால் நிராகரிக்கப்பட்டன | Execution பிரச்சினை | Margin, ஆர்டர் வகை, instrument, broker செய்திகள் |
| நீங்கள் எதிர்பார்க்காத நேரங்களில் அல்லது விலைகளில் டிரேடுகள் | Logic பிரச்சினை | Runtime data, condition வரையறைகள் |
| வடிவமைத்தபடியே டிரேடுகள், ஆனால் நஷ்டம் | Performance பிரச்சினை | Live vs backtest, drawdown, செலவுகள் |
Strategy நினைத்தபடி டிரேட் செய்யாதபோது
இவைதான் மிகப் பொதுவான காரணங்கள், அவை எவ்வளவு அடிக்கடி வருகின்றன என்ற தோராயமான வரிசையில்:
- Broker இணைக்கப்படவில்லை. Broker session-களைப் பொதுவாக அடிக்கடி புதுப்பிக்க வேண்டும். Session காலாவதியானால் ஆர்டர்களைப் போட முடியாது. மார்க்கெட் திறப்பதற்கு முன் இணைப்பைச் சரிபாருங்கள்.
- போதுமான margin இல்லை. அக்கவுண்டால் margin-ஐ ஈடுகட்ட முடியாவிட்டால் F&O ஆர்டர்கள் நிராகரிக்கப்படுகின்றன. Hedge-கள் உட்பட முழு position-க்குமான margin-ஐச் சரிபாருங்கள்.
- Contract மாறிவிட்டது. NIFTY-ன் lot size இப்போது 65, BANK NIFTY-ன் lot size 30. NSE-ன் வாராந்திர index expiry (NIFTY மட்டும்) செவ்வாய்க்கிழமை, BANK NIFTY, FINNIFTY, MIDCPNIFTY-க்கு மாதாந்திர expiry-கள் மட்டுமே. பழைய setup-க்காக எழுதப்பட்ட strategy தவறான contract-ஐயோ, இப்போது இல்லாத ஒரு அளவையோ தேர்ந்தெடுக்கலாம். NIFTY 65, BANK NIFTY 30 lot size-கள் பற்றிய எங்கள் பதிவு என்ன சரிபார்க்க வேண்டும் என்று பட்டியலிடுகிறது.
- ஒரு condition ஒருபோதும் உண்மையாக முடியாது. உதாரணமாக, மார்க்கெட் நேரத்துக்கு வெளியே ஒரு entry நேரம், அல்லது ஒன்றுக்கொன்று முரண்படும் இரண்டு conditions.
- தவறான mode-ல் deploy செய்யப்பட்டிருக்கிறது. Live Offline-ல் விடப்பட்ட strategy டிரேடுகளைப் பதிவு செய்யும், ஆனால் exchange-க்கு எதையும் அனுப்பாது; Live Auto உங்கள் broker-க்கு ஆர்டர்களை அனுப்புகிறது. நீங்கள் நினைத்த mode-ஐத்தான் பார்க்கிறீர்கள் என்று உறுதி செய்யுங்கள்.
- Execution settings. வேகமான மார்க்கெட்டில் ஒருபோதும் fill ஆகாத limit pricing, மாற்று வழி இல்லாமல் இருந்தால், entry-களையோ exit-களையோ fill ஆகாமல் விட்டுவிடலாம்.
Tradetron-ல், strategy-ன் notification log மற்றும் runtime data (இரண்டும் Deployed பக்கத்தில் உள்ள மூன்று-புள்ளி menu-வில்) strategy எதைச் சரிபார்த்தது, என்ன முடிவு செய்தது, எதை அனுப்பியது என்று காட்டுகின்றன. Tradetron-ல் ஒரு strategy-ஐ debug செய்வது வழிகாட்டி அவற்றை விளக்குகிறது.
Strategy வடிவமைத்தபடியே டிரேட் செய்து நஷ்டம் அடைந்தபோது
அது உண்மையிலேயே தோல்வி அடைகிறதா, அல்லது சாதாரண drawdown-ல் இருக்கிறதா?
ஒவ்வொரு strategy-க்கும் தொடர் நஷ்டங்கள் உண்டு, அவை பெரும்பாலானோர் எதிர்பார்ப்பதை விட நீளமானவை. 100 சுதந்திரமான டிரேடுகளில், பாதி நேரம் ஜெயிக்கும் ஒரு strategy-க்கு எங்காவது தொடர்ந்து ஆறு நஷ்டங்கள் வருவதற்கான வாய்ப்பு பாதிக்கும் மேல், 40% win rate கொண்ட strategy தொடர்ந்து ஏழு நஷ்டங்களைப் பார்ப்பதற்கான வாய்ப்பு அதிகம்.
சுதந்திரமான டிரேடுகளுக்குக் கணக்கிடப்பட்டது. நீண்ட தொடர் நஷ்டங்கள் எந்த strategy-க்கும் சாதாரணமான பகுதி
ஒரு strategy உடைந்துவிட்டது என்று சொல்வதற்கு முன், தற்போதைய drawdown-ஐ அதன் backtest-ல் உள்ள மிக மோசமான drawdown-உடன் ஒப்பிடுங்கள். அது அந்த வரம்புக்குள் இருந்தால், strategy முன்பு செய்ததையே சரியாகச் செய்துகொண்டிருக்கலாம். தெளிவாக அதைத் தாண்டியிருந்தால் (தோராயமான விதியாக, சோதித்த மிக மோசமானதை விட 1.5 மடங்குக்கு மேல்), ஏதோ மாறியிருக்கலாம்.
வழக்கமான ஆறு அடிப்படைக் காரணங்கள்
| காரணம் | என்ன நடந்தது | தீர்வு |
|---|---|---|
| Overfitting | Backtest கச்சிதமாகத் தெரியும் வரை settings மாற்றப்பட்டன, அதனால் அவை கடந்த கால சத்தத்துக்குப் பொருந்துகின்றன | குறைவான settings, நிலையான range-லிருந்து மதிப்புகள், ஒதுக்கி வைத்த டேட்டாவில் சரிபார்ப்பு |
| செலவுகளைப் புறக்கணிப்பது | Brokerage, வரிகள், slippage சோதனையில் இல்லை | Backtest-ல் யதார்த்தமான செலவுகளைச் சேருங்கள்; குறைவாக டிரேட் செய்யுங்கள் அல்லது அதிக liquid contract-களில் டிரேட் செய்யுங்கள் |
| பலவீனமான ரிஸ்க் மேனேஜ்மென்ட் | Stop இல்லை, தினசரி வரம்பு இல்லை, அளவு மிகப் பெரியது | ஒவ்வொரு position-க்கும் stop, தினசரி நஷ்ட வரம்பு, ரிஸ்க்கை வைத்து அளவு |
| மார்க்கெட் மாறியது | Strategy நம்பியிருந்த pattern மங்கியது, அல்லது contract மாறியது | Logic-ஐ review செய்யுங்கள்; சோதித்த மாற்றங்களோடு மாற்றியமையுங்கள் அல்லது strategy-ஐ ஓய்வுபெறச் செய்யுங்கள் |
| Forward testing இல்லை | Backtest-லிருந்து நேராக முழு அளவுக்குப் போனது | முதலில் Live Offline-ல் ஓட்டுங்கள், பிறகு சின்ன அளவில் live போங்கள் |
| மனிதத் தலையீடு | Drawdown-ல் நிறுத்தப்பட்டது, ஒரு வெற்றிக்குப் பிறகு அளவு கூட்டப்பட்டது, session நடுவில் மாற்றப்பட்டது | Review விதிகளுக்கு முன்கூட்டியே உறுதி கொடுங்கள்; சோதனை மூலம் மட்டுமே மாற்றுங்கள் |
1. Overfitting
பாரம்பரியமான தோல்வி. ஐம்பது வடிவங்களில் முயற்சி செய்து, அதில் சிறந்ததை வைத்துக்கொண்ட strategy, live-ல் பொதுவாக ஏமாற்றம் தரும். உண்மையான edge இல்லாத ஒரு strategy போதுமான முயற்சிகளுக்குப் பிறகு எப்படி அருமையாகத் தோன்றலாம் என்பதை backtesting தவறுகள் வழிகாட்டி ஒரு simulation மூலம் காட்டுகிறது.
2. டிரான்சாக்ஷன் செலவுகளைப் புறக்கணிப்பது
அதை எப்படி மதிப்பிடுவது என்று தெரிந்துகொள்ள slippage-ஐப் புரிந்துகொள்வது படியுங்கள்.
3. மோசமான ரிஸ்க் மேனேஜ்மென்ட்
Stop இல்லாத, அல்லது மிகப் பெரிய அளவில் வைக்கப்பட்ட strategy, மாதக்கணக்கில் லாபம் தந்துவிட்டு ஒரே நாளில் எல்லாவற்றையும் திருப்பிக் கொடுத்துவிடலாம். ஒவ்வொரு strategy-க்கும் தேவையான கட்டுப்பாடுகளை drawdown-ஐக் குறைக்க ஏழு வழிகள் விளக்குகிறது.
4. மாறும் மார்க்கெட்டில் மாறாத விதிகள்
மார்க்கெட்கள் அமைதிக்கும் volatile நிலைக்கும், trending-க்கும் sideways-க்கும் இடையே நகர்கின்றன. ஒரு நிலைக்காக உருவாக்கப்பட்ட strategy மற்றதில் சிரமப்படும். அது எப்போதும் தோல்வி அல்ல; அதற்கு ஒரு filter தேவைப்படலாம், அல்லது குறிப்பிட்ட நிலைகளில் மட்டுமே அது ஓட வேண்டியிருக்கலாம். நீண்ட காலமாக அது மங்கிக்கொண்டிருந்தால், strategy fatigue படியுங்கள்.
5. Live நிலைமைகளில் சோதனை இல்லாதது
உங்கள் broker-ன் fills, signal-க்கும் ஆர்டருக்கும் இடையிலான தாமதங்கள், நேரடி நேரத்தில் மட்டுமே தெரியும் logic பிழை, இவற்றை ஒரு backtest-ஆல் பார்க்க முடியாது. Live Offline testing இவற்றில் பலவற்றை, அவை எதையும் செலவாக்குவதற்கு முன்பே பிடித்துவிடுகிறது.
6. தெளிவில்லாத நோக்கங்கள்
வரையறுக்கப்பட்ட இலக்கு இல்லாமல் (என்ன return, அதிகபட்சம் எந்த drawdown-ல், எந்தக் காலகட்டத்தில்), தோல்வி அடையும் strategy-க்கும் ஒரு சாதாரண மோசமான மாதத்துக்கும் வித்தியாசம் சொல்ல முடியாது, ஒவ்வொரு நஷ்டமும் எதையாவது மாற்றுவதற்கான காரணமாகிவிடும். Deploy செய்வதற்கு முன் நோக்கத்தை எழுதி வையுங்கள்.
ஒரு strategy ஏமாற்றம் தரும்போது மீட்சித் திட்டம்
- புதிய ரிஸ்க்கை நிறுத்துங்கள், பதற்றத்தில் exit செய்யாதீர்கள், operational கோளாறு இருந்தால் தவிர.
- Execution-ஐச் சரிபாருங்கள்: log-கள், broker இணைப்பு, நிராகரிக்கப்பட்ட ஆர்டர்கள்.
- அதே நாட்களுக்கு live-ஐ backtest-உடன் ஒப்பிடுங்கள். அதே டிரேடுகளா? அதே விலைகளா?
- Drawdown-ஐச் சோதித்த மிக மோசமானதுடன் ஒப்பிடுங்கள்.
- சமீபத்திய டேட்டாவையும் சேர்த்து backtest-ஐ மீண்டும் ஓட்டுங்கள், யதார்த்தமான செலவுகளுடன்.
- ஒரு விஷயத்தை மாற்றுங்கள், அதைச் சோதியுங்கள், Live Offline-ல் ஓட்டுங்கள், மீண்டும் deploy செய்வதற்கு முன்.
- Edge போய்விட்டால் அதை ஓய்வுபெறச் செய்யுங்கள். ஒவ்வொரு strategy-யையும் காப்பாற்ற வேண்டியதில்லை.
இதுவும் பயனுள்ளது: Live algo டிரேடுகள் எதிர்பார்த்தபடி செயல்படாதபோது என்ன செய்வது.
அடிக்கடி கேட்கப்படும் கேள்விகள்
என் algo strategy ஏன் டிரேடுகள் எடுக்கவில்லை?
மிகப் பொதுவான காரணங்கள்: காலாவதியான broker session, போதுமான margin இல்லாதது, மாறிய contract (lot size அல்லது expiry), பூர்த்தி செய்ய முடியாத conditions, அல்லது நீங்கள் எதிர்பார்த்ததை விட வேறு mode-ல் strategy ஓடுவது. எது என்பதை strategy-ன் log-கள் காட்டும்.
Backtest லாபகரமாக இருந்தபோதும் என் strategy live-ல் ஏன் பணத்தை இழக்கிறது?
பொதுவாக backtest-ல் சேர்க்கப்படாத செலவுகள், slippage, உருவாக்கத்தின்போது நடந்த overfitting, அல்லது சோதித்த காலகட்டத்துக்குப் பிறகு மாறிய மார்க்கெட் காரணமாக. இடைவெளியைக் கண்டுபிடிக்க, அதே நாட்களுக்கு live டிரேடுகளை backtest-உடன் ஒப்பிடுங்கள்.
என் strategy உடைந்துவிட்டதா அல்லது வெறும் drawdown-ல் இருக்கிறதா என்று எப்படித் தெரிந்துகொள்வது?
தற்போதைய drawdown-ஐ backtest-ல் உள்ள மிக மோசமான drawdown-உடன் ஒப்பிடுங்கள். அந்த வரம்புக்குள் இருந்தால், அது சாதாரணமாக இருக்கலாம். அதைத் தாண்டி வெகுதூரம் இருந்தால், அல்லது அதன் விதிகள் உருவாக்கக் கூடாத டிரேடுகளை strategy எடுத்துக்கொண்டிருந்தால், தொடர்வதற்கு முன் ஆராயுங்கள்.
Overfitting-ஐ எப்படிக் கண்டறிவது?
எச்சரிக்கை அறிகுறிகள்: மாற்றியமைக்கப்பட்ட நிறைய settings, ஒரு setting கொஞ்சம் மாறினாலும் சரிந்துவிடும் முடிவுகள், strategy-ஐ உருவாக்கப் பயன்படுத்தப்படாத டேட்டாவில் performance-ல் பெரிய வீழ்ச்சி.
என் algo strategy-ஐ எவ்வளவு அடிக்கடி update செய்ய வேண்டும்?
ஒவ்வொரு மாதமும் முடிவுகளை review செய்யுங்கள், சில மாதங்களுக்கு ஒருமுறை புதிய டேட்டாவில் மீண்டும் சோதியுங்கள், ஆனால் விதிகளை அரிதாகவும் சோதனைக்குப் பிறகு மட்டுமேயும் மாற்றுங்கள். Lot size அல்லது expiry நாள் போன்ற contract மாறும்போது உடனடியாக update செய்யுங்கள்.
Algo trading ரிஸ்க்கை நீக்க முடியுமா?
இல்லை. அது உங்கள் விதிகளைச் சீராக அமல்படுத்துகிறது, பல மனிதத் தவறுகளை நீக்குகிறது, ஆனால் மார்க்கெட் ரிஸ்க், execution ரிஸ்க், strategy-ன் edge மங்கும் ரிஸ்க் எப்போதும் இருக்கின்றன.