Discretionary trading is exhausting and error-prone. A mechanical strategy is a set of if-then rules — no judgment calls, no emotion. The rules either work or they don't; you know it from the data. This is how you turn a good idea into a repeatable system.
Discretionary trading: you look at the market, form a view, place a trade based on judgment.
Mechanical trading: fixed rules define entries, exits, sizing.
Most professional trading is mechanical. Even “discretionary” traders often use mechanical filters.
If any is vague, you’ll waffle in the moment. If all are specific, execution becomes mechanical.
Entry conditions (all must be true, checked every Monday at 10 AM):
Trade construction:
Stop-loss:
Take-profit:
Time exit:
Skip rules:
Every one of these is precise. There’s no “if I feel the market is…” — either the rule triggers or it doesn’t.
Step 1: Hypothesis
Write down what you think works. “Selling weekly iron condors on quiet Nifty weeks generates positive returns.”
Step 2: Formalize as rules
Convert the hypothesis into precise entry/exit/sizing rules as above.
Step 3: Backtest
Test the rules against historical data. Look at:
Step 4: Reality check
Step 5: Walk-forward test
Split your data:
Step 6: Paper trade
Run the strategy live but without real money for 1-3 months. Check:
Step 7: Live trading with minimum size
Start with the smallest possible position. Scale up over months as the strategy proves itself.
Options for Indian retail:
Free / low-cost:
Coding required:
Professional:
For most retail, start with Streak or Sensibull to validate the concept, then upgrade to Python if you get serious.
1. Survivorship bias: using only stocks that still exist. Fixed by using historical constituent lists.
2. Lookahead bias: using data that wouldn’t have been available at trade time. Common with EOD data used as intraday signals.
3. Overfitting: tuning parameters until backtest looks great. Almost always fails live.
4. Ignoring transaction costs: brokerage + GST + STT + slippage = ~₹50-200 per trade round-trip. Small strategies get eaten alive.
5. Ignoring liquidity: strategy trades illiquid strikes; real fills are far worse than backtest.
6. Sample size too small: 20 trades of data is nothing. Aim for 100+ trades before believing anything.
Most backtested “winning” strategies fail in live trading. Overfitting, transaction cost underestimation, and regime changes destroy them. A profitable backtest is necessary but not sufficient — walk-forward and paper testing are non-negotiable before real capital.
Once your strategy is rules-based, consider automating:
Streak (by Zerodha): point-and-click strategy builder + auto-execution. Free with Zerodha account.
Algo trading via API: Zerodha Kite Connect, Angel SmartAPI. Requires Python coding. Approved by SEBI for retail with disclosure.
Semi-automation: get alerts when rules trigger; place trades manually. Best of both worlds if you want speed + control.
Yes if:
No if:
A mechanical strategy is not “set and forget forever.” Review quarterly:
Update rules ONLY based on:
Do NOT update rules based on:
Mechanical trading isn’t about a single perfect strategy. It’s about building a personal library:
Each strategy compounds your knowledge and diversifies your income streams. The best professional traders often have 5-10 mechanical strategies running simultaneously, each contributing modestly.
Rules:
Long-run backtests: ~55% win rate, positive expectancy over 2015-2022. Fails in trending markets.
Indian adaptation: apply to Nifty weekly (Tuesday morning entry, Tuesday afternoon exit)
Rules:
Long-run US backtest (2000-2022): outperformed buy-and-hold on tested tickers by 2-4% annualized with lower drawdown.
Indian adaptation: limited by physical delivery mechanics. Best on liquid single-stock options (Reliance, TCS, HDFC).
Long-run: mixed results — works in high IV regimes, struggles in low IV.
Backtested performance (2010-2020 on SPY): ~68% win rate; ~11% CAGR with 2% risk per trade.
Indian: works on Nifty monthlies. Watch out for gap risk.
Rules for accounts < $5,000 (or ₹4L):
Indian: perfectly adapts to Nifty weekly for accounts ₹4-10L.
Optimizing parameters on the same data you evaluate on = curve-fitting. Your strategy looks great in-sample and fails live.
Split data: 60% training, 20% validation, 20% out-of-sample
Optimize on training data — find best parameters
Validate on validation set — do parameters still work?
Final test on out-of-sample — never touched during optimization
Deploy only if OOS performance ≥ 60% of in-sample
More rigorous: sliding window optimization
If OOS results across windows are consistent, strategy is robust.
Plot parameter values that optimize each window:
Whatever your backtest returns, expect 50% in reality:
Sources of gap:
Before believing any backtest:
Every good mechanical strategy fits on one page as pseudocode. Example:
STRATEGY: Nifty Weekly Iron Condor (v2.3)
CAPITAL: ₹5,00,000
RISK PER TRADE: 2% (₹10,000)
MARKET SCAN (Monday 10:00 AM):
vix = get_india_vix()
adx = get_nifty_adx(14)
events_this_week = fetch_econ_calendar(days=5)
FILTERS:
IF vix < 12 or vix > 22: SKIP # extreme regimes
IF adx > 30: SKIP # trending market
IF any_high_impact_event(events_this_week): SKIP
ENTRY (10:15 AM Monday):
spot = get_nifty_spot()
short_call = ceil((spot * 1.015) / 50) * 50
long_call = short_call + 200
short_put = floor((spot * 0.985) / 50) * 50
long_put = short_put - 200
premium = get_condor_premium(short_call, long_call, short_put, long_put)
IF premium < 25 (per share): SKIP # not enough premium
max_loss = 200 - premium
contracts = floor(10000 / (max_loss * 65))
IF contracts < 1: SKIP
PLACE_ORDER(condor, contracts)
MONITORING (every 15 min):
current_pl = get_position_pl()
IF current_pl >= 0.5 * (premium * 65 * contracts): CLOSE # 50% profit
IF current_pl <= -1.0 * (premium * 65 * contracts): CLOSE # 200% loss
TIME EXIT (Tuesday 2:00 PM):
IF still_open: CLOSE
POST-TRADE:
log_trade_result()
IF weekly_drawdown > 6%: PAUSE_NEXT_WEEKThis is trade-able as-is. Every rule is unambiguous.
Instead of one strategy always-on:
Backtest result (typical for US markets): regime-switching adds ~2-4% annualized vs. single strategy.
Simple: 2 regimes (high vol, low vol) with 2 strategies.
Intermediate: 4 regimes with 4 strategies.
Advanced: continuous regime detection with position sizing based on regime confidence.
Start simple; add complexity only after mastery.