Understand backtesting methodology
6.2.1· Stock-Market › Backtesting Frameworks
Backtesting ek aisa process hai jisme ek trading strategy ko historical data par test kiya jaata hai — yeh evaluate karne ke liye ki woh past mein kaisi perform karti. Yeh bilkul aise hai jaise apni trading idea par ek controlled experiment chalao, real money risk karne se pehle.
Core insight: Past market data hi hamari ek maatra laboratory hai. Hum bar bar real money se experiment nahi kar sakte, lekin history ko jitni baar chahein replay kar sakte hain.
Backtesting Methodology Ke Core Components
Har Component Kyun Exist Karta Hai
Historical Data = Neev hai. Bina accurate past prices ke, tumhara backtest fiction test kar raha hai, reality nahi.
Strategy Rules = Hypothesis hai. "Agar RSI < 30 ho, toh buy karo" — yeh market behavior ke baare mein ek testable claim hai.
Execution Model = Reality check hai. Real trading mein tumhein exact closing price par zero costs ke saath fill nahi milta. Isko ignore karna tumhare backtest ko dangerously optimistic bana deta hai.
Performance Metrics = Measurement tools hain. Tumhein standardized tarike chahiye "Strategy A ne 50% banaya but ek month mein 30% gawaya" vs "Strategy B ne 40% banaya 5% max drawdown ke saath" compare karne ke liye.
Step-by-Step Backtesting Process
Yeh order kyun? Har step pichle par build karta hai. Bina data ke trades simulate nahi kar sakte, bina costs ke realistic returns calculate nahi kar sakte, bina analyze kiye ki kya fail hua strategy improve nahi kar sakte.
Detailed Breakdown
Step 1: Define Strategy Logic
Strategy logic specify karta hai KAB enter karna hai, KAB exit karna hai, aur KITNA trade karna hai.
Example Strategy: Moving Average Crossover
- Entry: Jab 50-day SMA 200-day SMA ke upar cross kare (golden cross)
- Exit: Jab 50-day SMA 200-day SMA ke neeche cross kare (death cross)
- Position Size: Capital ka 100% (full allocation)
Explicit rules kyun? "Jab momentum achha lage tab buy karo" jaisi vague rules ko backtest nahi kar sakte. Computer ko precise mathematical conditions chahiye.
Step 2: Acquire & Clean Historical Data
Yeh kyun hota hai: Corporate actions! Infosys ne 5:1 stock split kiya. Price actually 80% crash nahi hua.
The Fix: Adjusted prices use karo jo splits aur dividends ke liye account karein. Adjusted series smooth continuity dikhayegi: ₹249 → ₹248.
Cleaning kyun zaroori hai: Agar splits ke liye adjust nahi kiya, toh tumhara backtest split dates par ek massive "loss" dikhayega aur false signals generate karega.
Step 3: Simulate Trades (Walk-Forward)
Yeh backtesting ka dil hai. Hum history mein din-by-din step karte hain, sirf past data ke saath decisions lete hue.
Data:
Day 1: Price = ₹100, 20-day MA = ₹98
Day 2: Price = ₹102, 20-day MA = ₹99
Day 3: Price = ₹98, 20-day MA = ₹100
Day 4: Price = ₹101, 20-day MA = ₹100
Simulation:
-
Day 1: Price (100) > MA (98) → BUY signal. 100 shares ₹100 par kharedo. Capital used: ₹10,000.
- Yeh step kyun? Hum sirf Day 1 ka data jaante hain. Abhi Day 2 prices nahi dekh sakte.
-
Day 2: Price (102) > MA (99) → HOLD. Position mein hain abhi bhi.
- Yeh step kyun? Signal nahi badla. Hum position maintain karte hain.
-
Day 3: Price (98) < MA (100) → SELL signal. 100 shares ₹98 par becho. Proceeds: ₹9,800. Loss: ₹200.
- Yeh step kyun? Signal flip ho gaya. Walk-forward mein, hum react karte hain jab condition change hoti hai.
-
Day 4: Price (101) > MA (100) → BUY signal. ₹9,800 cash ke saath re-enter karo: 97 shares kharedo (₹9,800 ÷ ₹101 ≈ 97.03, whole shares mein round down). ₹100 leftover cash ke roop mein bachta hai.
- Yeh step kyun? Signal wapas bullish hai. Hum remaining capital ke saath re-enter karte hain, aur kyunki sirf whole shares khareed sakte hain, toh round down karte hain.
Key principle: Look-ahead bias ek fatal flaw hai jisme tum accidentally future information use kar lete ho. Walk-forward isse rokta hai — hum strictly chronological order mein data process karte hain.
Step 4: Apply Transaction Costs
Jahan:
Scratch se derivation:
Maan lo tum ₹100,000 ke shares khareed rahe ho:
- Brokerage: Equity delivery par 0.03% = ₹30
- STT (Securities Transaction Tax): Buy side par 0.1% = ₹100
- Slippage: Tum ₹100 per share chahte the lekin 1,000 shares par ₹100.20 mein fill mila = ₹200 extra
- Exchange fees + GST: ~₹50
Entry par total cost: ₹380
Jab ₹105,000 par becho (5% gain):
- Brokerage: ₹31.50
- STT: Sell par 0.1% = ₹105
- Slippage: ₹210
- Fees: ₹50
Exit par total cost: ₹396.50
Gross profit: ₹5,000
Net profit: ₹5,000 - ₹380 - ₹396.50 = ₹4,223.50
Actual return: 4.22% (5% nahi)
Yeh kyun matter karta hai: Ek strategy jo 15% annual returns dikha rahi hai woh costs ke baad sirf 8% dikha sakti hai. High-frequency strategies transaction costs se bilkul wipe out ho sakti hain.
Step 5: Calculate Performance Metrics
Yeh metrics kyun?
Total Return akele meaningless hai. "Maine 100% return banaya" — kitne time mein? Kitne risk ke saath?
Annualized Return time standardize karta hai. 5 saalon mein 100% (14.87% annual) 1 saal mein 100% se bilkul alag hai.
Maximum Drawdown dard measure karta hai. 50% return lekin 45% drawdown wali strategy emotionally unbearable hai. Zyaadatar traders recovery se pehle quit kar dete hain.
Sharpe Ratio risk-adjusted return measure karta hai. 20% return aur 30% volatility wali strategy (Sharpe = 0.67) 15% return aur 10% volatility (Sharpe = 1.5) se worse hai.
- Peak ₹12,000 par
- Trough ₹9,000 par
- Drawdown = (9,000 - 12,000) / 12,000 = -25%
Yeh calculate kyun karein? Drawdown worst-case experience dikhata hai. Yeh sawaal ka jawab deta hai: "Meri peak wealth ka kitna hissa main kho sakta tha?"
Step 6: Analyze Results & Iterate
Dhundho:
- Regime changes: Kya strategy 2010-2015 mein kaam ki lekin 2020-2025 mein fail hui? Markets evolve karte hain.
- Overfitting: Past data par perfectly fitted 100 rules future mein fail honge. Overfitting noise mein curve-fitting hai.
- Sample size: 10 saalon mein 5 trades statistically meaningful nahi hai. Tumhein luck aur skill mein fark karne ke liye kaafi trades chahiye.
Mistake 1: Look-Ahead Bias Kaisa dikhta hai: Din ke poore high/low ka use karke signals generate karna, jabki real-time mein tum sirf din khatam hone ke baad high/low jaante ho.
Kyun sahi lagta hai: "Main buy karunga agar aaj ka low ₹100 se neeche ho." Yeh logical lagta hai.
Problem: Subah 9:15 AM par tum nahi jaante ki low ₹99 hoga ya ₹101. Tum yeh condition sirf 3:30 PM par check kar sakte ho, "low par" khareedne ke liye bahut der ho jaati hai.
The fix: Signals ke liye previous day ka data use karo, ya intraday timestamps strictly sequence mein.
Mistake 2: Survivorship Bias Kaisa dikhta hai: Sirf un stocks par backtesting karna jo abhi NIFTY 50 mein hain.
Kyun sahi lagta hai: "NIFTY 50 best Indian companies ko represent karta hai."
Problem: Aaj ka NIFTY 50 un companies ko exclude karta hai jo bankrupt ho gayi ya remove kar di gayi. Sirf survivors par test karna returns artificially inflate karta hai. Tumhari strategy ne real-time mein un delist hue stocks mein se kuch khareed liye hote.
The fix: Historical index constituents use karo (2010 mein NIFTY 50 mein kaun tha, sirf abhi kaun hai nahi), ya stocks ki poori universe par test karo.
Mistake 3: Transaction Costs Ko Ignore Karna Kaisa dikhta hai: Backtest daily trading ke saath 30% annual returns dikhata hai.
Kyun sahi lagta hai: "Mere simulation mein, maine ₹100 par kharida aur ₹103 par becha, 3% banaya."
Problem: Har trade mein total ~0.5-1% lagta hai (brokerage, taxes, slippage). Daily trading = ~250 trades/year = 125% cost! Returns evaporate ho jaate hain.
The fix: Realistic costs model karo. Agar returns costs ke baad gayab ho jaayein, toh strategy unusable hai.
Mistake 4: Noise Mein Overfitting Kaisa dikhta hai: "Meri strategy kaam karti hai jab RSI 32.7 aur 34.1 ke beech ho, sirf Tuesdays ko, jab volume average ka 1.3× ho."
Kyun sahi lagta hai: Hyper-specific rules past data peaks se perfectly match karti hain.
Problem: Tumne history ki randomness yaad kar li hai. Future markets mein woh exact pattern nahi hoga.
The fix: Strategies simple rakho (Occam's Razor). Out-of-sample data par test karo. Agar performance naye data par collapse ho jaaye, toh tumne overfit kiya.
Backtesting Mein Monte Carlo Simulation
Advanced backtesting Monte Carlo simulation use karke robustness test karta hai. History mein ek linear path ki jagah, hum thousands of alternate histories generate karte hain:
- Trade order randomize karke
- Return samples bootstrapping karke
- Entry/exit prices mein noise add karke
Kyun? Ek historical path lucky ho sakti hai. Monte Carlo outcomes ki range dikhata hai.
Conclusion: Tum lucky rahe. Median outcome 8% tha. 25% repeat hone ki ummid mat rakhna.
Connections
- Forward-Testingvs-Backtesting — Backtesting tumhein kya nahi bata sakta
- Parameter-Optimization — Overfitting ke bina best strategy settings dhundhna
- Transaction-Cost-Models — Detailed cost modeling
- Statistical-Significance-of-Backtest — Kab results meaningful hain vs. lucky
- Walk-Forward-Analysis — Advanced validation technique
- Benchmark-Comparison — Strategy returns ko buy-and-hold se compare karna
Recall Feynman Explanation (Age 12)
Socho tumne cricket batting ki ek nayi technique invent ki aur jaanna chahte ho ki woh actually achhi hai ya nahi. Tum isko test karne ke liye 100 real matches nahi khel sakte — usmein saalon lag jaate hain! Toh iske badle, tum 100 past matches ki recordings dekhte ho aur imagine karte ho: "Agar maine USSITUATION mein apni technique use ki hoti, toh kya main six maarta ya out ho jaata?"
Backtesting trading ke liye exactly yehi hai. Tumhare paas ek idea hai: "Jab stock price 10% drop kare tab buy karo." Tum market ka "video" 5 saal pehle rewind karte ho aur apne rule ka use karke pretend trade karte ho. Tum dekhte ho: "Oh, main 2020 mein paise banata lekin 2022 mein kho deta."
Tricks:
- No cheating: Tum sirf wahi info use kar sakte ho jo TAB available thi, baad mein seekhi hui cheezein nahi.
- Costs count karo: Real cricket mein tum thak jaate ho, galtiyan karte ho. Real trading mein tum fees dete ho aur kabhi kabhi exactly woh price nahi milti jo tum chahte ho.
- Tape yaad mat karo: Agar tumhari technique sirf 2023 final mein Bumrah ki us ek delivery ke liye kaam karti hai, toh woh useless hai. Isse generally kaam karna chahiye.
Backtesting tumhein saalon ki jagah dino mein thousands of trades practice karne deta hai, taaki tum seekho ki tumhara idea brilliant hai ya sirf hopeful.
Flashcards
Trading mein backtesting kya hai? :: Ek trading strategy ko historical market data par test karna yeh evaluate karne ke liye ki woh past mein kaisi perform karti, real money risk karne se pehle.
Backtesting framework ke chaar core components kya hain?
Backtesting mein look-ahead bias kya hai?
Backtesting mein survivorship bias kya hai? :: Sirf un stocks par test karna jo present tak survive kar gaaye, delist ya bankrupt companies ko exclude karke, jo returns inflate karta hai kyunki yeh failed companies se real losses ignore karta hai.
Backtesting mein transaction costs kyun include karne chahiye?
Backtesting mein walk-forward simulation kya hai?
Maximum drawdown kya hai aur yeh kyun matter karta hai?
Backtesting mein overfitting kya hai? :: Aisi overly complex rules banana jo historical noise se perfectly match hoti hain lekin naye data par fail ho jaati hain. Yeh aise hai jaise specific past price patterns yaad kar lo real market dynamics capture karne ki jagah.
Backtesting mein adjusted prices kyun use karne chahiye?
Sharpe ratio kya measure karta hai?
Backtesting mein Monte Carlo simulation kya hai?
Backtesting mein net return kaise calculate karte hain?
Annualized return kya hai aur iska use kyun karte hain?
Backtesting mein win rate kya hai?
Backtesting mein sample size kyun important hai? :: Chhota sample size (jaise 10 saalon mein 5 trades) luck aur skill mein distinguish nahi kar sakta. Statistical significance ke liye tumhein kaafi trades chahiye — typically meaningful conclusions nikalne ke liye hundreds.