नौ कारण क्यों आपका Backtest Live Trading से मेल नहीं खाता

Huzefa Kudrati अपडेट Oct 7, 2026 13 मिनट में पढ़ें

यह लेख अंग्रेज़ी से अनुवाद किया गया है। मूल लेख अंग्रेज़ी में पढ़ें

नौ कारण क्यों आपका Backtest Live Trading से मेल नहीं खाता

Backtest और live strategy के नतीजे नौ पहचाने जा सकने वाले कारणों से अलग हो जाते हैं, और slippage उनमें से सिर्फ एक है। सबसे बड़े कारण हैं fill price, वो खर्चे जो आपने model नहीं किए, bar के अंदर की price movement जो backtest देख नहीं सकता, और live का ऐसा व्यवहार जो कोई simulation दोहरा नहीं सकता, जैसे rejected orders और partial fills। जब आपको पता हो कि आप कौन सा कारण देख रहे हैं, तो ज़्यादातर फर्क मापा जा सकता है।

जिस भी trader ने कोई strategy live चलाई है, उसके साथ यह पल आया है। Backtest में equity curve साफ-सुथरी दिख रही थी। छह हफ्ते बाद live account कहीं और खड़ा है, और strategy में एक लाइन भी नहीं बदली।

आमतौर पर इसकी वजह "slippage" बताई जाती है, जो सही है पर लगभग बेकार है। यहां पूरी लिस्ट है, मोटे तौर पर इस क्रम में कि हर कारण कितना नुकसान करता है।

नौ कारण एक नज़र में

# कारण सबसे ज़्यादा किसे नुकसान
1 Fill price पतले strikes, बड़े orders
2 Bar के अंदर की movement Tight stops और targets, 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, बड़ा साइज़
7 Broker की तरफ की दिक्कतें सभी, खासकर volatile दिनों में
8 Overfitting और look-ahead bias बहुत ज़्यादा tune की गई strategies
9 Contract बदल गया Lot size या expiry बदलने से पहले टेस्ट की गई हर चीज़

1. Fill price फर्क का सबसे बड़ा अकेला कारण है

Backtest आपका trade historical bar data से लिए गए price पर fill करता है। Live में आपको वही मिलता है जो order book उस पल दे रही है जब आपका order पहुंचता है। ATM के पास के liquid NIFTY option पर ये दोनों नंबर करीब हो सकते हैं। पतले strike पर शायद न हों।

2. Bar के अंदर की price movement दिखती नहीं

जो engine ticks की जगह bars replay करता है, वह हर bar में कुछ ही prices देखता है, उनके बीच का रास्ता नहीं। कोई level जो bar के अंदर बस थोड़ी देर के लिए छुआ गया, वह पूरी तरह छूट सकता है, और अगर आपका stop और target दोनों एक ही bar की range के अंदर हैं, तो backtest नहीं जान सकता कि पहले कौन सा hit हुआ।

एक price bar का diagram जिसमें ऊपर target और नीचे stop है, और bar के अंदर दो संभावित रास्ते: रास्ता A पहले target hit करता है, रास्ता B पहले stop hit करता है; दोनों के लिए bar का data एक जैसा दिखता हैBar एक, नतीजे उल्टे। Bar data इनमें फर्क नहीं कर सकता

यह bar data की प्रकृति है, कोई खराबी नहीं। लेकिन यह एक खास तरह की strategy को असल से बेहतर दिखाता है: tight targets के साथ tight stops, scalping, और ऐसी हर चीज़ जहां entry और exit एक ही bar में trigger हो सकते हैं।

3. वो costs जो आपने चालू नहीं किए

किसी भी नतीजे पर भरोसा करने से पहले costs सेट करें। 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 को failure की जगह कमज़ोर नतीजा समझा जा सकता था।

FastBT ऐसा करने से मना कर देता है: अगर कोई run ईमानदार report नहीं बना सकता, तो वह साफ बता देता है और credit अपने-आप refund हो जाता है। अगर कोई strategy जो पहले report लौटाती थी अब कम नतीजे लौटाती है, या मना कर दी जाती है, तो इसका मतलब है engine ज़्यादा सच बोल रहा है, कम काबिल नहीं है। पुरानी report की नई से तुलना करते समय पहले यही चेक करें, यह मानने से पहले कि strategy कमज़ोर हो गई है।

5. कुछ strategies का backtest हो ही नहीं सकता

अगर आपकी strategy बाहर से भेजे गए signals पर चलती है, जैसे TradingView alert, custom webhook या third-party API, तो replay करने के लिए कुछ है ही नहीं। Historical price data मौजूद है; आपके signals का इतिहास नहीं है। इसके लिए आप जो भी backtest बनाएंगे, वह signal के एक अंदाज़े को टेस्ट करेगा, असली signal को नहीं।

इन्हें Live Offline में चलाकर परखें: strategy चलती है और हर trade रिकॉर्ड करती है, लेकिन exchange पर कुछ नहीं भेजा जाता। यही अकेला माहौल है जो असली trigger path को चलाकर देखता है। अगर आप TradingView इस्तेमाल करते हैं, तो TradingView strategies को Tradetron से जोड़ना देखें।

6. Liquidity, partial fills और freeze limits

Backtest मानता है कि आपका order fill हो जाएगा। Live में यह आधा fill हो सकता है, देर से हो सकता है, या बिल्कुल नहीं। यह सबसे ज़्यादा नुकसान far out-of-the-money options पर करता है, उन illiquid strikes पर जो volatility बदलने पर strategy चुन लेती है, और ऐसी हर चीज़ पर जो बड़े साइज़ तक बढ़ती है। Exchange की freeze quantity से ऊपर एक अकेला order reject हो जाता है और उसे तोड़ना पड़ता है, जिससे आपका average price और timing दोनों बदल जाते हैं।

Multi-leg positions में यह और बढ़ जाता है। अगर चार-leg वाले structure की एक leg fill नहीं होती, तो आप वह strategy नहीं चला रहे जो आपने टेस्ट की थी; आप एक अनचाही position पकड़े बैठे हैं। पक्का करें कि आपकी strategy यह स्थिति संभाल सके।

7. Broker की तरफ की असलियत

आपकी strategy और exchange के बीच एक broker बैठा है, जिसकी अपनी दिक्कतें हैं: order rejections, margin की कमी, expired sessions, rate limits और कभी-कभी latency। Backtest में इनमें से कुछ नहीं होता; हर order तुरंत accept हो जाता है।

इसलिए live नतीजों में ऐसे trades का एक हिस्सा होता है जो हुए ही नहीं, या देर से हुए, और ये बराबर बंटे नहीं होते। ये volatile दिनों में इकट्ठा होते हैं, जब margin सबसे तंग और order flow सबसे भारी होता है, और अक्सर यही वो दिन होते हैं जिन पर आपकी strategy टिकी होती है।

8. Overfitting, look-ahead bias, और इन्हें कैसे पहचानें

अगर आपने settings तब तक बदलीं जब तक backtest अच्छा न दिखने लगे, तो आपने strategy को कुछ हद तक इतिहास के उसी हिस्से पर फिट कर दिया। तीन संकेत:

  1. Trade की गिनती। तीस trades पर बना नतीजा chart पहने हुए noise है।
  2. Regime coverage। Trending market के छह महीने सिर्फ एक regime को टेस्ट करते हैं।
  3. Look-ahead bias। ऐसा rule जो ऐसी जानकारी इस्तेमाल करता है जो उसके fire होने के पल उपलब्ध नहीं थी, अक्सर उसी bar या session में बाद की कोई value। Tradetron जैसा no-code builder बनावट से ही इसे सीमित करता है, क्योंकि आप conditions मनमाने code की जगह तय building blocks से बनाते हैं, लेकिन यह पूरी गारंटी नहीं है। Repainting indicator, जिसकी पुरानी values बाद में बदल जाती हैं, भी यही लक्षण पैदा करता है।

अगर कोई backtest असामान्य रूप से साफ दिखे, तो चेक करें कि क्या कोई condition सिर्फ भविष्य की जानकारी से ही evaluate हो सकती थी। फिर test window बढ़ाएं: जब सालों का data मौजूद है तो छह महीने टेस्ट करने की कोई खास वजह नहीं है। 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, Tuesday को), और BANK NIFTY की सिर्फ monthly expiries हैं। पुराने समय का backtest पुराने contract sizes पर रुपये के आंकड़े दिखाता है और ऐसी expiries trade कर सकता है जो अब मौजूद नहीं हैं। Percentage नतीजे मोटे तौर पर काम के रहते हैं; absolute profit, loss और drawdown नहीं। Lot size बदलने के बाद क्या चेक करें देखें।

Coverage अब पहले जितनी रुकावट नहीं है: FastBT NSE F&O और cash, BSE, MCX, crypto और US markets पर चलता है, और custom Python और list-based strategies भी सपोर्ट करता है। अगर आपने पहले किसी ऐसे market के लिए कोई जुगाड़ लगाया था जिसे पुराना engine कवर नहीं करता था, तो वह जुगाड़ अब गलती बढ़ा रहा हो सकता है।

फर्क कैसे कम करें

  1. Run करने से पहले: costs चालू करें और ऐसा slippage अंदाज़ा लें जो आम से ज़्यादा निराशावादी हो।
  2. Run करने से पहले: window तब तक बढ़ाएं जब तक उसमें ऐसा दौर न आ जाए जिसमें strategy को नुकसान होना चाहिए था।
  3. Run करने के बाद: इसे Live Offline में इतनी देर टेस्ट करें कि trades की ठीक-ठाक गिनती जमा हो जाए। यही अकेला कदम है जो rejections, partial fills, देरी और बाहरी signals दिखाता है।
  4. Run करने के बाद: सबसे छोटे असली साइज़ पर live जाएं, और साइज़ बढ़ाने से पहले live fills की backtest fills से trade-by-trade तुलना करें।

Live strategy को उसके backtest से कैसे मिलाएं

लगभग कोई यह नहीं करता, और यह एक धुंधली निराशा को ऐसे नंबर में बदल देता है जिस पर आप कदम उठा सकें। उसी समय के लिए अपनी backtest report से trades और अपना live trade log डाउनलोड करें, फिर इन चार सवालों को क्रम से देखें:

सवाल अगर जवाब "नहीं" या बड़ा है इसका मतलब
क्या वही trades trigger हुए? Entry times मिलाएं। Live में अलग या कम trades हुए Signal या execution की दिक्कत, cost की नहीं। Costs बदलने से यह ठीक नहीं होगा
Fill में कितना फर्क था? हर trade पर औसत live fill घटा backtest fill। लगातार एक जैसा फर्क यही इस strategy का आपका असली slippage है। इसे costs में डालें और फिर से run करें; ज़्यादातर फर्क आमतौर पर यहीं खत्म हो जाता है
बचा क्या? छोटा, स्थिर बचा हुआ हिस्सा आमतौर पर partial fills या strategy को deploy करने का तरीका। छोटा हो तो उम्मीद के मुताबिक है
क्या बचा हुआ हिस्सा volatility के साथ बढ़ता है? सबसे खराब उन दिनों में जब market सबसे ज़्यादा हिला Liquidity और broker का असर (कारण 6 और 7)। इसे साइज़ और order handling से ठीक करें, logic दोबारा लिखकर नहीं

Report को पढ़ने के लिए backtesting guide और strategy की performance कैसे परखें देखें। हमारी State of Retail Algo Trading in India 2026 report दिखाती है कि ये पैटर्न पूरे platform पर कैसे सामने आते हैं।

अक्सर पूछे जाने वाले सवाल

मेरा backtest profitable है लेकिन live trading नहीं, ऐसा क्यों?

सबसे आम कारण हैं वो costs जो model नहीं किए गए, fill price का फर्क, और live का ऐसा व्यवहार जो कोई simulation दोहरा नहीं सकता, जैसे partial fills और rejected orders। यह मान लेने की जगह कि यह slippage है, trade-by-trade मिलाकर पता करें कि कौन सा कारण लागू है।

क्या Tradetron का backtest मुझे worst price मानने देता है?

नहीं। Best price, worst price और bid-ask average deployed strategy की live order-execution settings हैं, backtest के options नहीं। निराशावादी fill को slippage cost के ज़रिए model करें।

क्या backtest में brokerage और taxes शामिल होते हैं?

हो सकते हैं। Brokerage, slippage, STT, exchange charges, SEBI charges, GST और stamp duty वाले costs सेट करें, और report gross और net नतीजे साथ-साथ दिखाती है।

मेरी strategy पहले से कम backtest नतीजे क्यों लौटाती है?

FastBT ऐसी report बनाने से मना कर देता है जो वह ईमानदारी से नहीं बना सकता, और बिना fills वाला पूरा दिखता run लौटाने की जगह credit अपने-आप refund कर देता है। ऐसे में कम नतीजों का मतलब है engine ज़्यादा सटीक हो रहा है।

क्या मैं TradingView alerts पर चलने वाली strategy का backtest कर सकता हूं?

किसी काम के तरीके से नहीं। बाहर से trigger होने वाली strategies ऐसे signals पर चलती हैं जो इतिहास में कभी रिकॉर्ड नहीं हुए, इसलिए replay करने को कुछ नहीं है। इन्हें Live Offline में टेस्ट करें।

मुझे कितना slippage मानना चाहिए?

अंदाज़ा लगाने की जगह इसे मापें। Strategy को छोटे साइज़ पर live चलाएं, हर live fill की backtest fill से तुलना करें, और औसत फर्क इस्तेमाल करें।

क्या January 2026 से पहले के backtest नतीजे अब भी सही हैं?

Percentage नतीजे मोटे तौर पर काम के रहते हैं, लेकिन रुपये के आंकड़े पुराने lot sizes पर हैं, और टेस्ट की गई कुछ expiries अब मौजूद नहीं हैं। Capital का साइज़ तय करने में इनका इस्तेमाल करने से पहले फिर से run करें।

Tradetron से जुड़ना चाहते हैं?

हज़ारों traders algo trading अपना चुके हैं। अपना नंबर दीजिए, हमारी टीम शुरुआत में आपकी मदद करेगी।