माझी algo स्ट्रॅटेजी का फसली? सामान्य चुका आणि उपाय
हा लेख इंग्रजीतून अनुवादित केला आहे. मूळ लेख इंग्रजीत वाचा
algo स्ट्रॅटेजी सहसा दोनपैकी एका कारणाने फसते: एकतर तुम्हाला हवे तसे तिने ट्रेड केले नाही (setup किंवा execution ची अडचण, जसे संपलेले broker session, नाकारलेली ऑर्डर किंवा कधीच trigger न होणारा नियम), किंवा तिने ठरल्याप्रमाणे ट्रेड केले आणि तोटा झाला (overfitting, दुर्लक्षित खर्च, कमकुवत जोखीम नियंत्रण, बदललेले मार्केट किंवा फक्त एक सामान्य drawdown). आधी यातले कोणते आहे ते ओळखा; दोन्हीचे उपाय पूर्णपणे वेगळे आहेत.
टप्पा 1: अपयश कोणत्या प्रकारचे आहे ते ठरवा
| लक्षण | बहुधा | काय पहायचे |
|---|---|---|
| एकही ट्रेड नाही, किंवा अपेक्षेपेक्षा खूप कमी | setup किंवा execution ची अडचण | Notification log, broker कनेक्शन, conditions |
| ऑर्डर टाकल्या पण नाकारल्या गेल्या | execution ची अडचण | Margin, ऑर्डरचा प्रकार, instrument, broker चे मेसेज |
| अपेक्षित नसलेल्या वेळी किंवा किंमतीला ट्रेड्स | लॉजिकची अडचण | Runtime data, conditions च्या व्याख्या |
| ठरल्याप्रमाणे ट्रेड्स, पण तोटा | कामगिरीची अडचण | Live vs backtest, drawdown, खर्च |
जेव्हा स्ट्रॅटेजीने ठरल्याप्रमाणे ट्रेड केले नाही
ही सर्वात सामान्य कारणे आहेत, साधारण किती वेळा येतात त्या क्रमाने:
- broker जोडलेला नाही. broker sessions सहसा नियमितपणे renew करावे लागतात. session संपले म्हणजे ऑर्डर टाकता येत नाहीत. मार्केट उघडण्याआधी कनेक्शन तपासा.
- पुरेसे margin नाही. खात्यात margin भरून निघत नसेल तर F&O ऑर्डर नाकारल्या जातात. hedges सह पूर्ण पोझिशनसाठी margin तपासा.
- कॉन्ट्रॅक्ट बदलले. NIFTY चा lot size आता 65 आणि BANK NIFTY चा 30 आहे. NSE चा साप्ताहिक index expiry (फक्त NIFTY) मंगळवारी असतो, आणि BANK NIFTY, FINNIFTY आणि MIDCPNIFTY मध्ये फक्त मासिक expiry आहेत. जुन्या setup साठी लिहिलेली स्ट्रॅटेजी चुकीचे कॉन्ट्रॅक्ट किंवा आता अस्तित्वात नसलेली साइझ निवडू शकते. आमच्या NIFTY 65 आणि BANK NIFTY 30 lot sizes वरच्या पोस्टमध्ये काय तपासायचे याची यादी आहे.
- एखादी condition कधीच खरी होऊ शकत नाही. उदाहरणार्थ, मार्केटच्या वेळेबाहेरची entry ची वेळ, किंवा एकमेकांच्या विरोधात जाणाऱ्या दोन conditions.
- ती चुकीच्या मोडमध्ये deploy केली आहे. Live Offline मध्ये ठेवलेली स्ट्रॅटेजी ट्रेड्स नोंदवते पण एक्सचेंजला काहीही पाठवत नाही; Live Auto तुमच्या broker कडे ऑर्डर पाठवते. तुम्हाला हवा तोच मोड तुम्ही पाहत आहात याची खात्री करा.
- Execution settings. वेगवान मार्केटमध्ये कधीच fill न होणारे limit pricing, कोणताही पर्याय न ठेवता, entries किंवा exits fill न होता राहू शकतात.
Tradetron वर, स्ट्रॅटेजीचा notification log आणि runtime data (दोन्ही Deployed पेजवरच्या तीन-टिंबांच्या मेन्यूमध्ये) स्ट्रॅटेजीने काय तपासले, काय ठरवले आणि काय पाठवले ते दाखवतात. Tradetron वर स्ट्रॅटेजी debug करणे या गाइडमध्ये ते टप्प्याटप्प्याने दाखवले आहेत.
जेव्हा स्ट्रॅटेजीने ठरल्याप्रमाणे ट्रेड केले आणि तोटा झाला
ती खरोखर फसते आहे, की फक्त सामान्य drawdown मध्ये आहे?
प्रत्येक स्ट्रॅटेजीत सलग तोट्यांचे काळ येतात, आणि ते बहुतेक लोकांच्या अपेक्षेपेक्षा लांब असतात. 100 स्वतंत्र ट्रेड्समध्ये, निम्म्या वेळा जिंकणाऱ्या स्ट्रॅटेजीत कुठेतरी सलग सहा तोटे येण्याची शक्यता निम्म्यापेक्षा जास्त असते, आणि 40% win-rate असलेल्या स्ट्रॅटेजीत सलग सात तोटे येण्याची शक्यता न येण्यापेक्षा जास्त असते.
स्वतंत्र ट्रेड्ससाठी मोजलेले. सलग तोट्यांच्या लांब मालिका कोणत्याही स्ट्रॅटेजीचा सामान्य भाग आहेत
स्ट्रॅटेजी बिघडली आहे असे म्हणण्याआधी, सध्याच्या drawdown ची तुलना तिच्या backtest मधल्या सर्वात वाईट drawdown शी करा. तो त्या मर्यादेत असेल, तर स्ट्रॅटेजी कदाचित आधी जे करत होती तेच करत आहे. तो स्पष्टपणे त्यापलीकडे असेल (साधारण नियम म्हणून, टेस्ट केलेल्या सर्वात वाईटच्या 1.5 पटीपेक्षा जास्त), तर काहीतरी बदलले असू शकते.
सहा नेहमीची मूळ कारणे
| कारण | काय झाले | उपाय |
|---|---|---|
| Overfitting | backtest परफेक्ट दिसेपर्यंत settings बदलल्या, त्यामुळे त्या भूतकाळातल्या noise ला फिट झाल्या | कमी settings, स्थिर range मधली values, बाजूला ठेवलेल्या डेटावर तपासणी |
| खर्चाकडे दुर्लक्ष | brokerage, कर आणि slippage टेस्टमध्ये नव्हते | backtest मध्ये वास्तववादी खर्च लावा; कमी वेळा ट्रेड करा किंवा जास्त liquid कॉन्ट्रॅक्ट्स वापरा |
| कमकुवत जोखीम व्यवस्थापन | stop नाही, दैनिक मर्यादा नाही, साइझ खूप मोठी | प्रत्येक पोझिशनवर stops, दैनिक तोट्याची मर्यादा, जोखमीनुसार साइझ |
| मार्केट बदलले | स्ट्रॅटेजी ज्या पॅटर्नवर अवलंबून होती तो फिका पडला, किंवा कॉन्ट्रॅक्ट बदलले | लॉजिकचा review करा; टेस्ट केलेल्या बदलांनी जुळवून घ्या किंवा स्ट्रॅटेजी निवृत्त करा |
| forward testing नाही | backtest वरून थेट पूर्ण साइझवर गेले | आधी Live Offline चालवा, मग छोट्या साइझने live जा |
| माणसाचा हस्तक्षेप | drawdown मध्ये बंद केली, नफ्यानंतर साइझ वाढवली, सेशनच्या मध्येच बदल केले | review च्या नियमांना आधीच बांधील राहा; फक्त टेस्टिंगमधूनच बदल करा |
1. Overfitting
सर्वात प्रसिद्ध अपयश. पन्नास प्रकारांमध्ये करून पाहिलेली आणि त्यातली सर्वोत्तम ठेवलेली स्ट्रॅटेजी live मध्ये सहसा निराश करते. backtesting मधल्या चुकांवरचे गाइड एका simulation मधून दाखवते की खरी edge नसलेली स्ट्रॅटेजी पुरेशा प्रयत्नांनंतर उत्कृष्ट कशी दिसू शकते.
2. व्यवहाराच्या खर्चाकडे दुर्लक्ष
slippage चा अंदाज कसा लावायचा यासाठी slippage समजून घेणे वाचा.
3. कमकुवत जोखीम व्यवस्थापन
stop नसलेली, किंवा खूप मोठ्या साइझची स्ट्रॅटेजी महिनोन्महिने नफ्यात राहू शकते आणि मग एका दिवसात सगळे परत देऊ शकते. drawdown कमी करण्याचे सात मार्ग मध्ये प्रत्येक स्ट्रॅटेजीला लागणारी नियंत्रणे दिली आहेत.
4. बदलत्या मार्केटमध्ये स्थिर नियम
मार्केट शांत आणि अस्थिर, trending आणि sideways अशा अवस्थांमध्ये फिरत असते. एका अवस्थेसाठी बनवलेली स्ट्रॅटेजी दुसऱ्यात अडचणीत येईल. हे नेहमी अपयश नसते; कदाचित तिला फिल्टरची गरज आहे, किंवा ती ठराविक परिस्थितीतच चालवायला हवी. ती बराच काळ फिकी पडत असेल, तर strategy fatigue वाचा.
5. live परिस्थितीत टेस्टिंग नाही
backtest ला तुमच्या broker चे fills, signal आणि ऑर्डर मधला विलंब, किंवा फक्त real time मध्येच दिसणारी लॉजिकची चूक दिसत नाही. Live Offline टेस्टिंग यातल्या बऱ्याच गोष्टी काही खर्च होण्याआधीच पकडते.
6. अस्पष्ट उद्दिष्टे
ठरलेल्या ध्येयाशिवाय (किती परतावा, कमाल किती drawdown वर, किती काळात), तुम्ही फसणारी स्ट्रॅटेजी आणि सामान्य वाईट महिना यातला फरक ओळखू शकत नाही, आणि प्रत्येक तोटा काहीतरी बदलण्याचे कारण बनतो. deploy करण्याआधी उद्दिष्ट लिहून ठेवा.
स्ट्रॅटेजी निराश करते तेव्हा सावरण्याची योजना
- नवी जोखीम थांबवा, घाबरून exit करू नका जोपर्यंत कामकाजात बिघाड नाही.
- execution तपासा: logs, broker कनेक्शन, नाकारलेल्या ऑर्डर.
- त्याच दिवसांसाठी live ची तुलना backtest शी करा. तेच ट्रेड्स? त्याच किंमती?
- drawdown ची तुलना टेस्ट केलेल्या सर्वात वाईटशी करा.
- अलीकडचा डेटा धरून backtest पुन्हा चालवा, वास्तववादी खर्चासह.
- एक गोष्ट बदला, ती टेस्ट करा, आणि Live Offline चालवा पुन्हा deploy करण्याआधी.
- edge संपली असेल तर ती निवृत्त करा. प्रत्येक स्ट्रॅटेजी वाचवायलाच हवी असे नाही.
हेही उपयोगी: live algo ट्रेड्स अपेक्षेप्रमाणे चालत नसतील तेव्हा काय करायचे.
वारंवार विचारले जाणारे प्रश्न
माझी algo स्ट्रॅटेजी ट्रेड्स का घेत नाही?
सर्वात सामान्य कारणे म्हणजे संपलेले broker session, अपुरे margin, बदललेले कॉन्ट्रॅक्ट (lot size किंवा expiry), पूर्ण न होऊ शकणाऱ्या conditions, किंवा स्ट्रॅटेजी तुम्हाला अपेक्षित नसलेल्या मोडमध्ये चालणे. स्ट्रॅटेजीचे logs यातले कोणते ते दाखवतात.
backtest नफ्यात असताना माझी स्ट्रॅटेजी live मध्ये तोट्यात का जाते?
सहसा backtest मध्ये न धरलेल्या खर्च आणि slippage मुळे, development च्या वेळी झालेल्या overfitting मुळे, किंवा टेस्ट केलेल्या काळानंतर मार्केट बदलल्यामुळे. फरक शोधण्यासाठी त्याच दिवसांसाठी live ट्रेड्सची तुलना backtest शी करा.
माझी स्ट्रॅटेजी बिघडली आहे की फक्त drawdown मध्ये आहे हे कसे ओळखायचे?
सध्याच्या drawdown ची तुलना backtest मधल्या सर्वात वाईट drawdown शी करा. तो त्या मर्यादेत असेल, तर ते सामान्य असू शकते. तो त्यापलीकडे खूप जास्त असेल, किंवा स्ट्रॅटेजी तिच्या नियमांतून येऊ नयेत असे ट्रेड्स घेत असेल, तर पुढे चालू ठेवण्याआधी तपास करा.
overfitting कसे ओळखायचे?
धोक्याची लक्षणे म्हणजे खूप सारी tune केलेली settings, एखादी setting थोडी बदलली की कोसळणारे निकाल, आणि स्ट्रॅटेजी बनवताना न वापरलेल्या डेटावर कामगिरीत मोठी घसरण.
माझी algo स्ट्रॅटेजी किती वेळा अपडेट करावी?
दर महिन्याला निकालांचा review करा आणि दर काही महिन्यांनी नव्या डेटावर पुन्हा टेस्ट करा, पण नियम क्वचितच आणि टेस्टिंगनंतरच बदला. lot size किंवा expiry चा दिवस असे कॉन्ट्रॅक्ट बदलले की लगेच अपडेट करा.
algo trading मुळे जोखीम संपू शकते का?
नाही. ते तुमचे नियम सातत्याने लागू करते आणि माणसाच्या अनेक चुका काढून टाकते, पण मार्केटची जोखीम, execution ची जोखीम आणि स्ट्रॅटेजीची edge फिकी पडण्याची जोखीम नेहमीच राहते.