तुमचा Backtest आणि Live Trading जुळत नाही याची नऊ कारणं

Huzefa Kudrati अपडेट Oct 7, 2026 10 मिनिटांत वाचा

हा लेख इंग्रजीतून अनुवादित केला आहे. मूळ लेख इंग्रजीत वाचा

तुमचा Backtest आणि Live Trading जुळत नाही याची नऊ कारणं

backtest आणि live strategy यांच्यात फरक पडतो, आणि त्यामागे नऊ ओळखता येणारी कारणं असतात. slippage हे त्यापैकी फक्त एक आहे. सर्वात मोठी कारणं म्हणजे fill price, तुम्ही हिशोबात न धरलेले खर्च, bar च्या आत होणाऱ्या किंमतीच्या हालचाली ज्या backtest ला दिसत नाहीत, आणि live मधलं असं वर्तन जे कोणतंही simulation पुन्हा करून दाखवू शकत नाही, जसं की नाकारलेल्या orders आणि partial fills. नेमकं कोणतं कारण आहे हे कळलं की बहुतेक फरक मोजता येतो.

ज्या trader ने strategy live चालवली आहे, त्याच्यासोबत हा क्षण नक्की आला असेल. backtest मध्ये स्वच्छ equity curve दिसत होता. सहा आठवड्यांनंतर live account कुठेतरी वेगळीकडेच आहे, आणि strategy मध्ये एक ओळही बदललेली नाही.

यावर नेहमीचं उत्तर असतं "slippage". ते खरं आहे, पण जवळपास निरुपयोगी आहे. ही आहे पूर्ण यादी, साधारणपणे प्रत्येक कारण किती नुकसान करतं त्या क्रमाने.

नऊ कारणं एका नजरेत

# कारण सर्वात जास्त नुकसान कोणाला
1 Fill price पातळ strikes, मोठ्या orders
2 bar च्या आतल्या हालचाली घट्ट stop आणि target, scalping
3 सोडून दिलेले costs High-frequency strategies
4 ज्या runs नी कधीच निकाल द्यायला नको होता जुने reports नव्यांशी तुलना करणारा कोणीही
5 बाहेरून येणारे signals TradingView, webhook आणि API वर चालणाऱ्या strategies
6 Liquidity, partial fills, freeze limits Far OTM options, multi-leg positions, मोठा size
7 Broker कडच्या अडचणी सगळेच, विशेषतः volatile दिवशी
8 Overfitting आणि look-ahead bias खूप tune केलेल्या strategies
9 Contract बदलला lot size किंवा expiry बदलांपूर्वी test केलेलं काहीही

1. Fill price हे फरकाचं सर्वात मोठं एकटं कारण आहे

backtest तुमचा trade historical bar data मधून घेतलेल्या किंमतीवर fill करतो. live मध्ये, तुमची order पोहोचते त्या क्षणी order book जे देतं तेच तुम्हाला मिळतं. ATM च्या जवळच्या liquid NIFTY option वर हे दोन आकडे जवळ असू शकतात. पातळ strike वर, कदाचित नसतील.

2. bar च्या आतल्या किंमतीच्या हालचाली दिसत नाहीत

ticks ऐवजी bars पुन्हा चालवणाऱ्या engine ला प्रत्येक bar मध्ये काही मोजक्या किंमती दिसतात, त्यांच्या मधला मार्ग दिसत नाही. bar च्या आत फक्त क्षणभर स्पर्श झालेली पातळी पूर्णपणे सुटू शकते, आणि जर तुमचा stop आणि target दोन्ही एकाच bar च्या range मध्ये असतील, तर आधी कोणता लागला हे backtest ला कळू शकत नाही.

एका price bar चं चित्र, वर target आणि खाली stop, आणि bar च्या आत दोन शक्य मार्ग: मार्ग A आधी target गाठतो, मार्ग B आधी stop गाठतो; दोन्हीसाठी bar चा data सारखाच दिसतोएकच bar, उलटे निकाल. bar data ला हे दोन वेगळे ओळखता येत नाहीत

हा bar data चा गुणधर्म आहे, दोष नाही. पण त्यामुळे एका विशिष्ट प्रकारच्या strategy चं चित्र जास्त चांगलं दिसतं: घट्ट stop सोबत घट्ट target, scalping, आणि ज्यात entry आणि exit एकाच bar मध्ये trigger होऊ शकतात असं काहीही.

3. तुम्ही चालू न केलेले costs

कोणत्याही निकालावर विश्वास ठेवण्याआधी costs set करा. report च्या cost settings मध्ये brokerage, slippage, STT, exchange charges, SEBI charges, GST आणि stamp duty येतात, आणि gross आणि net निकाल शेजारी शेजारी दिसतात.

महिन्याला काही हजार रुपये कमावण्याचं लक्ष्य असलेल्या strategy साठी ही काही किरकोळ चूक नाही. हीच तर पूर्ण strategy आहे. अधिक माहिती slippage समजून घेणे मध्ये.

4. काहीच न देणारा run तुम्हाला काहीतरी सांगत असतो

backtest एकही trade fill न करता पूर्ण होऊ शकतो. आधीच्या engine मध्ये असे runs पूर्ण झाल्यासारखे दिसू शकत होते, आणि पातळ report अपयश म्हणून न वाचता पातळ निकाल म्हणून वाचला जाऊ शकत होता.

FastBT त्याऐवजी नकार देतो: जर एखादा run प्रामाणिक report देऊ शकत नसेल, तर तो तसं स्पष्ट सांगतो आणि credit आपोआप परत केलं जातं. जी strategy आधी report देत होती ती आता कमी निकाल देत असेल किंवा नाकारली जात असेल, तर engine जास्त खरं बोलतंय, कमी सक्षम झालेलं नाही. strategy खराब झाली असा निष्कर्ष काढण्याआधी, जुना report नव्याशी तुलना करताना हे आधी तपासा.

5. काही strategies चा backtest होऊच शकत नाही

जर तुमची strategy बाहेरून पाठवलेल्या signals वर चालत असेल, जसं की TradingView alert, custom webhook किंवा third-party API, तर पुन्हा चालवण्यासारखं काहीच नसतं. historical price data उपलब्ध आहे; तुमच्या signals चा इतिहास नाही. त्यासाठी तुम्ही बनवलेला कोणताही backtest signal चा अंदाज test करतो, खरा signal नाही.

अशा strategies Live Offline चालवून तपासा: strategy चालते आणि प्रत्येक trade नोंदवते, पण exchange ला काहीही पाठवलं जात नाही. खरा trigger मार्ग वापरून पाहणारं हे एकमेव environment आहे. तुम्ही TradingView वापरत असाल, तर TradingView strategies Tradetron शी जोडणे पहा.

6. Liquidity, partial fills आणि freeze limits

backtest गृहीत धरतो की तुमची order fill होते. live मध्ये ती अर्धवट, उशिरा किंवा अजिबात fill होणार नाही असंही होऊ शकतं. याचा सर्वात जास्त फटका far out-of-the-money options ना, volatility बदलल्यावर strategy निवडते त्या illiquid strikes ना, आणि मोठ्या size कडे वाढणाऱ्या कोणत्याही गोष्टीला बसतो. exchange च्या freeze quantity पेक्षा जास्त असलेली एकच order नाकारली जाते आणि ती तोडावी लागते, ज्यामुळे तुमची average price आणि timing दोन्ही बदलतात.

Multi-leg positions मध्ये हे आणखी वाढतं. चार-leg structure चा एक leg fill झाला नाही, तर तुम्ही test केलेली strategy चालवत नसता; तुमच्याकडे नको असलेली position असते. तुमची strategy ही परिस्थिती हाताळते याची खात्री करा.

7. Broker कडची वास्तविकता

तुमची strategy आणि exchange यांच्यामध्ये broker असतो, आणि त्याच्या स्वतःच्या अडचणी असतात: order rejections, margin कमी पडणे, session expire होणे, rate limits आणि कधीकधी latency. backtest मध्ये यातलं काहीच नसतं; प्रत्येक order लगेच स्वीकारली जाते.

म्हणून live निकालांमध्ये असे काही trades असतात जे झालेच नाहीत, किंवा उशिरा झाले, आणि ते समान पसरलेले नसतात. ते volatile दिवशी एकत्र येतात, जेव्हा margin सर्वात घट्ट असतं आणि order flow सर्वात जास्त असतो, आणि अनेकदा याच दिवसांवर तुमची strategy अवलंबून असते.

8. Overfitting, look-ahead bias, आणि ते कसे ओळखायचे

backtest चांगला दिसेपर्यंत तुम्ही settings बदलत राहिलात, तर तुम्ही strategy अंशतः इतिहासाच्या त्या काळाला fit केली आहे. तीन खुणा:

  1. Trade count. तीस trades वर उभा असलेला निकाल म्हणजे chart घातलेला noise.
  2. Regime coverage. trending market चे सहा महिने फक्त एकच regime test करतात.
  3. Look-ahead bias. असा नियम जो trigger होण्याच्या क्षणी उपलब्ध नसलेली माहिती वापरतो, बहुतेक वेळा त्याच bar किंवा session मधल्या नंतरच्या वेळेची value. Tradetron सारखा no-code builder रचनेमुळेच हे मर्यादित करतो, कारण तुम्ही arbitrary code ऐवजी ठरलेल्या building blocks मधून conditions बनवता, पण ही पूर्ण हमी नाही. repainting indicator, ज्याच्या मागच्या values नंतर बदलतात, तोही हेच लक्षण निर्माण करतो.

backtest असामान्यपणे स्वच्छ दिसत असेल, तर कोणती condition फक्त भविष्यातल्या माहितीनेच evaluate होऊ शकली असती का ते तपासा. मग test window रुंद करा: वर्षानुवर्षांचा data उपलब्ध असताना फक्त सहा महिने test करण्यात फारसा अर्थ नाही. टाळायच्या backtesting चुका मध्ये overfitting तुम्हाला कसं फसवतं ते दाखवलं आहे.

9. तुमचा backtest कदाचित वेगळ्या contract बद्दल सांगत असेल

Contract specifications बदलतात. NSE ने January 2026 series पासून index derivative lot sizes बदलले, NIFTY 75 वरून 65 आणि BANK NIFTY 35 वरून 30 केले. Weekly expiries सुद्धा बदलल्या आहेत: NSE वर आता एकच weekly index expiry आहे (NIFTY, मंगळवारी), आणि BANK NIFTY ला फक्त monthly expiries आहेत. जुन्या काळावरचा backtest रुपयांचे आकडे जुन्या contract sizes वर दाखवतो आणि आता अस्तित्वात नसलेल्या expiries trade करू शकतो. टक्केवारीतले निकाल साधारणपणे उपयोगी राहतात; absolute नफा, तोटा आणि drawdown नाही. lot size बदलानंतर काय तपासायचं पहा.

Coverage आता पूर्वीइतकी मर्यादा राहिलेली नाही: FastBT NSE F&O आणि cash, BSE, MCX, crypto आणि US markets वर चालतो, आणि custom Python आणि list-based strategies ना support आहे. जुना engine cover करत नसलेल्या market साठी तुम्ही आधी काही जुगाड केला असेल, तर तो जुगाड आता चूक वाढवत असू शकतो.

फरक कसा कमी करायचा

  1. चालवण्याआधी: costs चालू करा आणि नेहमीपेक्षा निराशावादी slippage गृहीतक वापरा.
  2. चालवण्याआधी: window इतकी रुंद करा की त्यात strategy ला नुकसान व्हायला हवं होतं असा काळ येईल.
  3. चालवल्यानंतर: अर्थपूर्ण संख्येने trades जमा होतील इतका वेळ Live Offline test करा. rejections, partial fills, उशीर आणि बाहेरचे signals दाखवणारी ही एकमेव पायरी आहे.
  4. चालवल्यानंतर: सर्वात लहान खऱ्या size ने live जा, आणि size वाढवण्याआधी live fills आणि backtest fills यांची trade दर trade तुलना करा.

live strategy ची तिच्या backtest शी जुळवणी कशी करायची

जवळपास कोणीच हे करत नाही, आणि यामुळे अस्पष्ट निराशेचं रूपांतर अशा आकड्यात होतं ज्यावर तुम्ही काम करू शकता. त्याच कालावधीसाठी तुमच्या backtest report मधले trades आणि तुमचा live trade log download करा, आणि मग या चार प्रश्नांवर क्रमाने काम करा:

प्रश्न उत्तर नाही किंवा मोठं असेल तर त्याचा अर्थ
तेच trades trigger झाले का? entry times ची तुलना करा. live ने वेगळे किंवा कमी trades घेतले ही signal किंवा execution ची अडचण आहे, cost ची नाही. costs बदलून हे सुटणार नाही
fill मध्ये किती फरक होता? प्रत्येक trade साठी सरासरी live fill वजा backtest fill. सातत्याने येणारा फरक या strategy साठी हाच तुमचा खरा slippage आहे. तो costs मध्ये टाका आणि पुन्हा चालवा; बहुतेक फरक साधारणपणे इथेच भरून निघतो
काय उरलं? लहान, स्थिर उरलेला भाग साधारणपणे partial fills किंवा strategy कशी deploy केली आहे ते. लहान असेल तर अपेक्षित आहे
उरलेला भाग volatility सोबत वाढतो का? market सर्वात जास्त हललं त्या दिवशी सर्वात वाईट Liquidity आणि broker चे परिणाम (कारणं 6 आणि 7). logic पुन्हा लिहून नाही, तर size आणि order handling ने दुरुस्त करा

report स्वतः कसा वाचायचा यासाठी backtesting guide आणि strategy च्या performance चं मूल्यमापन कसं करायचं पहा. आमचा State of Retail Algo Trading in India 2026 report हे patterns platform वर कसे दिसतात ते दाखवतो.

वारंवार विचारले जाणारे प्रश्न

माझा backtest नफ्यात आहे पण live trading नाही, असं का?

सर्वात सामान्य कारणं म्हणजे हिशोबात न धरलेले costs, fill price मधला फरक, आणि live मधलं असं वर्तन जे कोणतंही simulation पुन्हा करून दाखवत नाही, जसं की partial fills आणि नाकारलेल्या orders. हे slippage च आहे असं गृहीत धरण्याऐवजी, कोणतं कारण लागू होतं ते शोधण्यासाठी trade दर trade जुळवणी करा.

Tradetron चा backtest मला worst price गृहीत धरू देतो का?

नाही. Best price, worst price आणि bid-ask average हे deploy केलेल्या strategy साठी live order-execution settings आहेत, backtest options नाहीत. त्याऐवजी slippage cost मधून निराशावादी fill धरा.

backtest मध्ये brokerage आणि कर धरले जातात का?

धरले जाऊ शकतात. brokerage, slippage, STT, exchange charges, SEBI charges, GST आणि stamp duty धरणारे costs set करा, आणि report gross आणि net निकाल शेजारी शेजारी दाखवतो.

माझी strategy आधीपेक्षा कमी backtest निकाल का देते?

FastBT जो report प्रामाणिकपणे बनवू शकत नाही तो देण्यास नकार देतो आणि credit आपोआप परत करतो, fills नसलेला पण पूर्ण झाल्यासारखा दिसणारा run देण्याऐवजी. अशा वेळी कमी निकाल म्हणजे engine जास्त अचूक आहे.

TradingView alerts वर चालणाऱ्या strategy चा backtest करता येतो का?

अर्थपूर्णपणे नाही. बाहेरून trigger होणाऱ्या strategies अशा signals वर चालतात जे इतिहासात कधीच नोंदवले गेले नाहीत, त्यामुळे पुन्हा चालवण्यासारखं काहीच नसतं. त्याऐवजी त्या Live Offline test करा.

मी किती slippage गृहीत धरावा?

अंदाज लावण्याऐवजी तो मोजा. strategy लहान size ने live चालवा, प्रत्येक live fill ची backtest fill शी तुलना करा, आणि सरासरी फरक वापरा.

January 2026 पूर्वीचे backtest निकाल अजून वैध आहेत का?

टक्केवारीतले निकाल साधारणपणे उपयोगी राहतात, पण रुपयांचे आकडे जुन्या lot sizes प्रमाणे आहेत, आणि test केलेल्या काही expiries आता अस्तित्वात नाहीत. capital ठरवण्यासाठी वापरण्याआधी पुन्हा चालवा.

Tradetron मध्ये सामील व्हायचे आहे?

हजारो traders नी algo trading सुरू केले आहे. तुमचा नंबर द्या, आमची टीम सुरुवात करायला मदत करेल.