जास्तीत जास्त ROI साठी तुमचा Trading Algorithm कसा Optimize करायचा
हा लेख इंग्रजीतून अनुवादित केला आहे. मूळ लेख इंग्रजीत वाचा
चांगल्या ROI साठी trading algorithm optimize करायचा असेल, तर जुन्या data वरचा कच्चा नफा नाही, तर risk आणि भांडवलाच्या प्रत्येक युनिटमागचा return सुधारा. प्रत्यक्षात: आधी खर्च आणि slippage कमी करा, positions ची size ठरलेल्या risk नुसार ठेवा, strategy ज्या परिस्थिती नीट सांभाळत नाही त्या वगळणारे filters जोडा, आणि settings फक्त चालणाऱ्या ranges मध्येच tune करा, आणि प्रत्येक बदल तो निवडताना न वापरलेल्या data वर तपासा.

Algo strategy साठी ROI चा खरा अर्थ
ROI म्हणजे नफा भागिले त्यासाठी लागणारं भांडवल. म्हणजे तुमच्याकडे एक नाही, तीन levers आहेत:
| Lever | तुम्ही काय बदलता | उदाहरण |
|---|---|---|
| Net नफा वाढवा | चांगल्या entries आणि exits, कमी वाईट trades | Short straddle साठी trend days वगळणारा filter |
| खर्च कमी करा | Slippage, charges, अनावश्यक trades | कमी entries, जास्त liquid strikes |
| लागणारं भांडवल कमी करा | त्याच exposure साठी लागणारं margin | Hedge केलेल्या option positions ना naked positions पेक्षा अनेकदा कमी margin लागतं |
आणि एक बंधन: drawdown तुम्ही सहन करू शकाल अशा पातळीवरच राहायला हवा. वार्षिक return मध्ये 5% भर घालणारा पण सगळ्यात वाईट drawdown दुप्पट करणारा बदल सहसा सुधारणा नसतो.
Optimization चा योग्य क्रम
ज्या बदलांमध्ये overfitting ची शक्यता सगळ्यात कमी आहे तिथून सुरुवात करा आणि ज्यात सगळ्यात जास्त आहे तिथे शेवटी या:
- खर्च आणि execution सुधारा. Overfitting चा धोका नाही; नुसता फायदा.
- Position sizing सुधारा. यामुळे risk बदलतो, signal नाही.
- Risk नियम जोडा किंवा सुधारा (stops, daily limits, trailing stops), ज्यांच्या असण्याला स्पष्ट कारण आहे.
- Market filters जोडा, ज्यांच्यामागे स्पष्ट logic आहे.
- आकड्यांच्या settings शेवटी tune करा, ranges मध्ये, आणि त्यातल्या फक्त थोड्याच.
1. खर्च आणि slippage कमी करा
Slippage मधला वाचलेला प्रत्येक रुपया म्हणजे नफ्याचा एक रुपया, strategy च्या logic मध्ये काहीही न बदलता.
- कमी, पण चांगल्या entries घ्या. दिवसात दहा वेळा entry घेणारी strategy दहा वेळा खर्च भरते.
- Liquid instruments ट्रेड करा. ATM च्या जवळच्या (near-the-money) index options चे spreads लांबच्या strikes पेक्षा कमी असतात.
- Order ची किंमत समजूतदारपणे ठरवा. Tradetron वर Advanced Settings मध्ये live orders निवडलेल्या किमतीने सुरू करता येतात (उदाहरणार्थ, bid आणि ask ची सरासरी), ठरावीक ticks ने बदलता येतात, आणि timeout नंतर fallback करता येतो, प्रत्येक वेळी spread पार करण्याऐवजी.
- मोठे orders tranching ने तोडा, म्हणजे एक मोठा order किंमत तुमच्या विरोधात हलवणार नाही.
परिणाम मोजा: backtest report च्या खर्चाच्या विभागात तुमचं खरं slippage टाका आणि break-even पातळी शोधा. अधिक माहिती slippage समजून घेणं मध्ये.
2. Positions ची size ठरलेल्या risk नुसार ठेवा
Position size मुळे ROI आणि drawdown दोन्ही एकत्र बदलतात. दोन नेहमीच्या पद्धती:
Fixed-risk sizing. प्रत्येक trade वर तुम्ही स्वीकारणारा रुपयांतला तोटा ठरवा (समजा भांडवलाच्या 1%) आणि size अशी ठेवा की stop लागल्यावर नेमका तेवढाच तोटा होईल. यामुळे volatility बदलली तरी risk सारखा राहतो.
Kelly वर आधारित sizing (सावधपणे). Kelly fraction म्हणजे दिलेल्या edge साठी दीर्घकालीन वाढ सगळ्यात जास्त करणारा भांडवलाचा हिस्सा:
Tradetron वर size प्रत्येक position वरच्या lots ने ठरते, आणि deployment च्या वेळचा multiplier संपूर्ण strategy मोठी किंवा छोटी करतो.
3. कारण असलेले risk नियम सुधारा
Risk नियम सगळ्यात वाईट तोटे कापून ROI वाढवू शकतात, पण फक्त ते strategy च्या वागण्यावर आधारित असतील तरच:
- प्रत्येक leg वर stop loss, प्रत्येक position च्या SL trigger मधून.
- Daily loss limit, strategy च्या P&L वरच्या Universal Exit मधून.
- Trailing stop, उघडा नफा सुरक्षित ठेवण्यासाठी; Tradetron वर TSL कसं काम करतं पाहा.
- Time exit, ज्या strategies ची edge दिवसाच्या उत्तरार्धात कमी होते त्यांच्यासाठी.
प्रत्येक नियम baseline विरुद्ध वेगळा तपासा. सगळ्यात वाईट दिवस कापणारा पण अनेक चांगल्या दिवसांतूनही बाहेर काढणारा stop ROI कमी करू शकतो; कोणता ते backtest दाखवेल.
4. स्पष्ट logic असलेले market filters जोडा
बहुतेक strategies ना काही परिस्थिती नीट सांभाळता येत नाहीत. Filter strategy ला त्यांच्यापासून दूर ठेवतो:
| Strategy चा प्रकार | कधी अडचणीत येते | संभाव्य filter |
|---|---|---|
| Option selling | Volatility अचानक वाढते, मोठे trend days | Entry च्या वेळेपर्यंत दिवसाची range आधीच मोठी असेल तर entry वगळा |
| Trend following | Sideways, choppy बाजार | किंमत लांबच्या moving average च्या वर किंवा खाली असेल तेव्हाच ट्रेड करा |
| Mean reversion | मजबूत trends | ADX सारखं trend चं माप जास्त असेल तेव्हा वगळा |
चांगला filter म्हणजे जो तुम्ही निकाल पाहण्याआधी समजावून सांगू शकला असता. वीस filters वापरून पाहिल्यावरच तो सापडला असेल, तर त्याच्याकडे संशयाने पाहा.
5. आकडे शेवटी tune करा, आणि plateau निवडा
आता stop-loss टक्का, entry ची वेळ किंवा indicator ची length यांसारख्या आकड्यांच्या settings बदला. नियम: एकच सगळ्यात चांगली value निवडू नका; ज्या range मध्ये निकाल सातत्याने चांगले आहेत तिच्या मधली value निवडा.
चित्र: स्थिर range हा खऱ्या परिणामाचा पुरावा असतो; एकटं शिखर सहसा नसतं
Tradetron च्या backtest form मध्ये sweep पर्याय आहे, जो strategy मधल्या एका आकड्याच्या अनेक values शेजारी-शेजारी चालवतो, त्यामुळे plateau सहज दिसतो. Tune करत असलेल्या settings ची संख्या कमी ठेवा: दोन-तीन, दहा नाही.
Optimization खरं आहे हे कसं तपासायचं
- Baseline शी तुलना करा, तोच काळ आणि त्याच settings वर चालवून.
- बाजूला ठेवलेला data तपासा. Sweep मध्ये तुम्ही काळाचा एक भाग बाजूला ठेवू शकता; निवडलेलं version तिथे तपासा. ते तिथे कोसळलं, तर तो curve fit होता.
- प्रत्येक वर्ष वेगळं पाहा. फक्त एका वर्षामुळे आलेली सुधारणा नाजूक असते.
- खर्चानंतर पुन्हा तपासा. काही "सुधारणा" trades वाढवतात आणि खर्च लावल्यावर गायब होतात.
- पुढे जाऊन तपासा. नवीन version Live Offline चालवा, जिथे strategy चालते आणि प्रत्येक trade नोंदवते पण exchange कडे काहीच पाठवलं जात नाही, आणि त्याच दिवसांवर जुन्या version शी तिची तुलना करा.
Overfitting बद्दल अधिक माहितीसाठी backtesting मधल्या दहा सगळ्यात सामान्य चुका वाचा.
किती वेळा re-optimize करायचं?
तुम्हाला वाटतं त्यापेक्षा कमी वेळा. Strategy चा प्रत्येक वाईट आठवडा आला की पुन्हा tune करणं म्हणजे हळू गतीने केलेलं overfitting. एक समजूतदार routine:
- दर महिन्याला: live निकाल backtest शी तुलना करून पाहा; काहीतरी स्पष्टपणे बिघडलं नसेल तर settings बदलू नका.
- दर तिमाही किंवा सहामाही: अलीकडचा data घेऊन backtest पुन्हा चालवा आणि निवडलेल्या settings अजूनही स्थिर range मध्ये आहेत का ते तपासा.
- लगेच: फक्त काहीतरी रचनात्मक बदललं तरच, जसं lot size किंवा expiry day मधला बदल, किंवा strategy ज्यावर अवलंबून आहे असा एखादा नियम.
बराच काळ performance कमी झाला असेल, तर tune करायचं की strategy बंद करायची हे ठरवण्याआधी strategy fatigue वाचा.
वारंवार विचारले जाणारे प्रश्न
Trading algorithm कसा optimize करायचा?
Baseline backtest ने सुरुवात करा. मग खर्च आणि execution, position sizing आणि risk नियम सुधारा, स्पष्ट कारण असलेले filters जोडा, आणि शेवटी काही आकड्यांच्या settings tune करा, स्थिर range मधल्या values निवडून. प्रत्येक बदल बाजूला ठेवलेल्या data वर आणि Live Offline testing मध्ये पक्का करा.
Algorithmic trading मध्ये overfitting म्हणजे काय?
Overfitting म्हणजे strategy जुन्या data ला इतकी जवळून tune करणं की ती खऱ्या pattern ऐवजी noise पकडते. हे backtest चे उत्तम निकाल दिसतात पण ते नवीन data वर किंवा live trading मध्ये टिकत नाहीत तेव्हा लक्षात येतं.
कोणत्या metric साठी optimize करायचं?
Risk विचारात घेणाऱ्या metric साठी, जसं maximum drawdown च्या तुलनेत return (Calmar) किंवा Sharpe ratio, खर्चानंतर. कच्च्या नफ्यासाठी optimize केलं तर सहसा सगळ्यात जोखमीचं, सगळ्यात जास्त overfitted version निवडलं जातं.
माझी strategy किती वेळा re-optimize करायची?
दर महिन्याला review करा, दर काही महिन्यांनी नवीन data सह पुन्हा test करा, आणि settings क्वचितच बदला. Lot sizes किंवा expiry days सारखं काहीतरी रचनात्मक बदललं तरच लगेच बदला.
Tradetron मध्ये optimization tool आहे का?
Tradetron च्या backtest form मध्ये sweep आहे, जो तुमच्या strategy मधल्या एका आकड्याच्या अनेक values शेजारी-शेजारी तपासतो, आणि निवडलेली value न पाहिलेल्या data वर तपासण्यासाठी काळाचा एक भाग बाजूला ठेवू शकतो.
माझ्या algorithm ला optimize करायची गरज आहे की बदलायची, हे कसं ओळखायचं?
खर्चानंतरही strategy मध्ये सकारात्मक edge दिसत असेल पण ती थोडी भरकटली असेल, तर छोटा, तपासलेला बदल मदत करू शकतो. ती ज्या market pattern वर अवलंबून आहे तोच गेला असेल, उदाहरणार्थ contracts ट्रेड होण्याच्या पद्धतीत बदल झाल्यामुळे, तर tune करत राहण्यापेक्षा ती बदलणं सहसा चांगलं.