6.2.1 · HinglishBacktesting Frameworks

Understand backtesting methodology

2,929 words13 min readRead in English

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:

  1. Trade order randomize karke
  2. Return samples bootstrapping karke
  3. 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:

  1. No cheating: Tum sirf wahi info use kar sakte ho jo TAB available thi, baad mein seekhi hui cheezein nahi.
  2. 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.
  3. 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?
(1) Historical data, (2) Strategy rules (entry/exit logic), (3) Execution model (slippage, costs), (4) Performance metrics (returns, Sharpe ratio).
Backtesting mein look-ahead bias kya hai?
Future information ka use karna jo decision-making ke waqt available nahi hoti, jo backtest performance artificially inflate karta hai. Example: din ka closing high use karke morning buy signal generate karna.

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?
Kyunki real trading mein brokerage, taxes, slippage, aur impact costs lagte hain. Costs se pehle 20% returns dikhane wali strategy costs ke baad sirf 8% dikha sakti hai, ya high-frequency strategies ke liye unprofitable bhi ho sakti hai.
Backtesting mein walk-forward simulation kya hai?
Historical data ko chronologically din-by-din process karna, har step par sirf past information se decisions lena, look-ahead bias rokne aur real-time trading conditions simulate karne ke liye.
Maximum drawdown kya hai aur yeh kyun matter karta hai?
Portfolio value mein sabse bada peak-to-trough decline. Yeh matter karta hai kyunki yeh worst pain measure karta hai jo investors experience karte — 40% drawdown zyaadatar traders ko recovery se pehle emotionally quit kara deta 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?
Stock splits aur dividends ke liye account karne ke liye. Adjustment ke bina, 5:1 split 80% crash jaisi lagti hai, jo backtest mein false signals aur unrealistic losses generate karta hai.
Sharpe ratio kya measure karta hai?
Risk-adjusted return, (Return - Risk-Free Rate) / Volatility se calculate kiya jaata hai. Yeh dikhata hai ki returns liye gaye risk ko justify karte hain ya nahi — jitna zyaada utna better.
Backtesting mein Monte Carlo simulation kya hai?
Strategy robustness test karne ke liye randomized trade orders ya bootstrapped returns ke saath thousands of simulations run karna, taaki possible outcomes ki range dekhi ja sake, sirf ek historical path nahi.
Backtesting mein net return kaise calculate karte hain?
Net Return = Gross Return - Transaction Costs, jahan transaction costs mein entry aur exit dono par brokerage, slippage, taxes (STT), aur impact cost shamil hain.
Annualized return kya hai aur iska use kyun karte hain?
Ek period mein equivalent constant yearly return, se calculate kiya jaata hai. Yeh fair comparison ke liye alag alag time periods mein returns standardize karta hai.
Backtesting mein win rate kya hai?
Un trades ka percentage jo profitable rahe, (Winning Trades) / (Total Trades) se calculate kiya jaata hai. Lekin, agar losing trades bahut badi hoon toh high win rate profitability guarantee nahi karta.

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.

Concept Map

justifies

structured by

foundation

hypothesis

reality filter

report card

feeds

drives

adjusts fills for

produces

inform

refines

Backtesting on historical data

Past data as only laboratory

Backtesting Framework

Historical Data

Strategy Rules

Execution Model

Performance Metrics

Simulate Trades walk-forward

Analyze and Iterate