TradeTech Analytics

Nifty 500 stocks · daily · long OTM call / put · v0.1.0 · first test 2026-10-18

Doji Ember NO EDGE

Nifty 500 daily doji + 5/20 EMA, OTM options. Daily doji after a trend (close beyond EMA5, EMA5 beyond EMA20, streak 1 to 2) triggers a one-strike out-of-the-money option bought at the next open. Option prices are Black-Scholes proxies.

Verdict

No robust edge

The result flips from +3.4% to -5.9% per trade depending on one fill assumption, so there is no reliable edge. Calls never make money; puts only in the optimistic case.

  • 17,900 trades, 2016-01 to 2025-09 (development window; the hold-out from 2025-10-01 was never loaded). Entry at the next open, one position per stock at a time.
  • Optimistic fill (the 2x target counts whenever the day's high touches it): mean +3.4% per trade on premium, median -20%, win rate 35%. Calls 0.0%, puts +10.1%.
  • Conservative fill (target tested at the close only): mean -5.9%, win rate 29%. Calls -8.7%, puts -0.3%. Negative in 9 of 10 years.
  • Liquid-stock proxy (top 40% by turnover; the real F&O list was not available): +1.5% optimistic, date-clustered t = 1.4, not significant.
  • Earlier run without the doji condition (trend only) scored +4.2%, so the doji adds nothing measurable.
  • Skipping trades with a 20% one-day jump (possible unadjusted splits or bonuses) changed results by less than 0.2 points.
  • Recommendation: do not trade this. Re-test only with real option prices and the real F&O stock list.
  • Open questions for the owner: confirm the 'ADR bars' definition (read here as consecutive up/down closes going 1 to 2); confirm the doji threshold (body at most 10% of range); choose an entry (next open used; same-day close also possible); decide whether to source real option history.

Promotion gates

FAIL
Positive net expectancy under conservative fills
-5.9% per trade.
FAIL
Calls profitable
0.0% optimistic, -8.7% conservative.
FAIL
Survives realistic fills
Sign flips with the target-fill assumption.
FAIL
Real option prices used
Black-Scholes proxy with fixed volatility; no historical option data.
PENDING
Hold-out
Sealed from 2025-10-01; not opened because the development gates failed.

Explain the strategy

The idea: when a stock pauses (a doji candle) inside a clear trend, buy a cheap option betting the trend resumes. We tested it on about 17,900 historical signals. A typical trade lost around a fifth of the premium, and whether the average was a small gain or a loss depended on assuming a very generous fill. We conclude there is nothing dependable here.

Report

Results by fill assumption and side

configtradesmean_ret_on_premiummedianwint_date_clusteredavg_days
All | Target on intraday high (optimistic)17937+3.4%-20.3%34.7%+4.601.6
Calls | Target on intraday high (optimistic)11834+0.0%-23.5%32.0%-0.951.6
Puts | Target on intraday high (optimistic)6103+10.1%-13.6%40.0%+7.541.6
Liquid proxy (top 40% turnover) | Target on intraday high (optimistic)8084+1.5%-21.2%32.9%+1.431.6
All | Target on close (conservative)17888-5.9%-23.1%29.2%-11.461.8
Calls | Target on close (conservative)11793-8.7%-25.7%26.8%-12.861.8
Puts | Target on close (conservative)6095-0.3%-17.5%33.8%-2.111.9
Liquid proxy (top 40% turnover) | Target on close (conservative)8060-6.9%-23.4%27.9%-10.171.9

Rules and parameters

Rules

  1. Universe: Nifty 500 stocks (quality label not EXCLUDE), daily bars 2016-01-01 to 2025-09-30.
  2. Doji: absolute body at most 10% of the day's high-low range.
  3. Buy setup: doji, close above EMA5, EMA5 above EMA20, up-close streak equals 2 (was 1 the day before). Sell setup: mirror with down closes.
  4. Entry: next open, one strike out of the money (call above spot, put below), nearest monthly expiry with at least 10 days left.
  5. Exit, first hit: option at 2x entry premium; daily close below EMA5 (call) or above EMA5 (put); close of the fifth day after entry.
  6. Pricing: Black-Scholes, 20-day realised volatility (floor 15%) held constant, 6.5% rate, 2% of premium haircut each side plus 1% for other costs.
  7. Skipped: trades with a 20% or larger one-day close move in the window; premiums below 0.2% of spot.

Parameters

capital
₹1,00,000 (notional, per-trade % shown)
window
2016-01-01 to 2025-09-30
doji body
10% of range
target
2x premium
time stop
5 days
haircut
2% each side + 1%
script
research/ema_doji.py

Instrument

Nifty 500 stock options (modelled, not real prices) · capital ₹100,000

Known limitations

Logs and raw data

Downloads appear once a data window is loaded.

Files are plain CSV so results can be re-computed independently. Trade dates are IST sessions; returns are net of modelled costs and slippage.