# Supertrend, Open = Low and Camarilla: three favourite intraday setups, tested on 10 years

> Three of the most shared intraday setups in India, run on every NIFTY 50 stock from 2016 to August 2026 with real costs. 217,034 trades between them, and every one of the three loses money in all three periods.

- Published: 2026-10-07
- URL: https://datapointx.com/research/in/popular-intraday-setups-tested/
- Tags: supertrend, camarilla, open-high-low, strategy-test
- Verdict: Supertrend −₹1.19 Cr, Open=Low −₹31 L, Camarilla −₹2.27 Cr. All three lose in every period.
- Source: DataPointX Research (education and research only, not investment advice)

Ask any Indian intraday Telegram group for a setup and you'll hear one of these three. We tested each in its most
common form, with no tweaking:

- **Supertrend (10, 3)** on 15-minute candles. Go long when it flips up, short when it flips down. The opposite flip
  reverses the position, and everything closes at 15:15.
- **Open = Low / Open = High.** At 09:25, if a stock's day low is still its open (within 0.1%) and it's trading above
  the open, buy, with a stop just under the day's low. Mirror for Open = High shorts.
- **Camarilla fade.** From yesterday's range, sell the first touch of H3 (stop at H4) and buy the first touch of L3
  (stop at L4). Hold to 15:15.

Every NIFTY 50 stock on the days it was in the index, ₹5 lakh per trade, discount-broker and statutory charges plus 1 bp of
slippage on each fill.

| Variant | Trades | Gross / trade | Win % | Net after costs | Net with +3 bps | 2016-20 | 2021-23 | 2024-26 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| Supertrend (10, 3) on 15-min candles | 70,319 | 3.1 bps | 45.8% | −₹1.19 Cr | −₹3.30 Cr | −₹33.0 L | −₹47.4 L | −₹38.9 L |
| Open = High / Open = Low at 09:25 | 48,263 | 5.2 bps | 37.5% | −₹30.6 L | −₹1.75 Cr | −₹37,808 | −₹7.9 L | −₹22.3 L |
| Camarilla H3/L3 fade, stop H4/L4 | 98,452 | 1.9 bps | 35.5% | −₹2.27 Cr | −₹5.22 Cr | −₹73.0 L | −₹66.6 L | −₹87.1 L |

_₹5 lakh per trade, 5-minute bars, v2026.08 snapshot (Jan 2016 – Aug 2026), NIFTY 50 point-in-time members, discount-broker (₹20/order) and statutory charges + 1 bp slippage per fill._

## Supertrend: always in the market, always paying

Supertrend flips often on 15-minute candles, and every flip is a new round trip: 70,319 trades, about 26 a day
across the index. Its gross edge of 3.1 bps is real but less than half the cost, so after costs it lost ₹1.19 crore,
in nine of eleven years.

## Open = Low: the best of the three, and still a loser

Open = Low / Open = High had the highest gross edge, 5.2 bps per trade. A stock that hasn't traded below its open in
the first 15 minutes does lean slightly upward for the rest of the day. But it lands in the same place: about 1 bp
short of costs, −₹31 lakh in total, and −₹1.75 crore with 3 bps of extra slippage per fill. It lost money in all
three periods, barely in 2016–20 (−₹38,000) and most in 2024–26 (−₹22 lakh).

## Camarilla: fading H3 rarely works

The Camarilla fade bets that price touching H3 or L3 will turn back. It made just 35% winners and lost ₹2.27 crore,
the worst of the three, losing in ten of the eleven years. NIFTY 50 stocks reaching H3 early in the day are more often
trending than stretched.

## What to take from this

- **"Works on the chart" is not "works after costs".** All three show a small positive edge before costs, which is
  why they look convincing on a chart: you can find plenty of examples that worked.
- **More signals are not more edge.** The setup that trades most (Supertrend) loses steadily on costs alone.
- **Look at 2024–26 separately.** None of the three turned profitable in the most recent period.

### The exact code we ran

```python
def open_high_low(check='09:25', tol=0.001):
    """'Open = Low' buy / 'Open = High' sell: at the close of the `check` bar, if the day's low so far is within
    `tol` of the open and price is above the open -> long (stop just below the day's low); mirror for shorts."""
    def strategy(p):
        o, lo, hi, c = p.day_open, p.day_low, p.day_high, p.close
        at = p.bcast(p.at(check))
        long = at & (lo >= o * (1 - tol)) & (c > o)
        short = at & (hi <= o * (1 + tol)) & (c < o)
        stop = ((c - lo) / c).where(long, (hi - c) / c).clip(lower=0.002) + 0.0005
        return bt.Signals(long=long, short=short, stop=stop)
    return strategy
```
