ML signal engine
84 features over five years of one-minute data, validated walk-forward. The one-minute model is sampled every five minutes rather than retrained on five-minute candles, because five-minute bars measured worse.
Walk-forward validated · NIFTY index options
ScalpRadar scores the NIFTY tape on a five-minute cadence with a model validated walk-forward on five years of one-minute data. Most bars it says nothing. When one qualifies it arms a single signal, freezes the levels, and watches it to target or stop — then writes it into your journal.
A looping illustration of the signal lifecycle. Every number in it is invented for the animation and is not market data. The line below narrates the state it is currently showing.
IDLE — nothing armed. The engine scores each five-minute bar and withholds everything that does not qualify. Most bars look like this.
The lifecycle
Four states, and the engine is locked for the middle two. Nothing else can be shown to you while a signal is running.
The board watches. On five-minute bar timestamps the model scores the tape; a bar that is choppy, or whose ATR-derived target sits under the minimum, is graded CHOPPY and never offered as tradeable.
Arming is server-decided and only succeeds on a genuine ENTER card. Entry, target and stop freeze at fire time. Further qualifying setups are counted and withheld, and the board says how many.
You trade it yourself with your own broker and record the lots. The monitor recomputes distance to target and stop, progress along the track, and the minutes left on the horizon on every poll.
Resolution happens without you: target crossed, stop crossed, or the horizon elapsed. It is recorded once, the journal row closes with server-computed P&L, and the engine unlocks.
What is actually in the box
84 features over five years of one-minute data, validated walk-forward. The one-minute model is sampled every five minutes rather than retrained on five-minute candles, because five-minute bars measured worse.
Open interest, implied volatility, gamma exposure, the put-call ratio and the futures basis sit beside the price and volatility features — so the model reads positioning, not only candles.
A detector that withholds trades. Across the two logged replay sessions, 424 of 750 bars had a sub-minimum target and every one of the 750 graded CHOPPY. Silence is the feature.
While a signal is armed the engine is locked and the same frozen card keeps coming back. You are never handed a second setup to chase, and the setups it withheld are counted openly rather than hidden.
Distance to target and stop, progress between the two, unrealised points and rupees, minutes left on the horizon — recomputed from the latest spot every time the board polls, and auto-resolved when a level is crossed.
Every tracked trade is written with entry, exit, lots and the lot size stamped at open, so editing config later cannot rewrite closed history. P&L is computed server-side only. One click exports the lot as CSV.
Walk-forward backtest — out-of-sample directional accuracy. Measured, never promised.
Backtest on five years of one-minute data. A past measurement is not a prediction, and these figures are gross of brokerage, taxes and slippage.
Read this part
The uncomfortable list, put first rather than last.
There is no broker-order route in this app and none to mount. It displays signals and journals trades you placed yourself.
It is a model output with its levels, its confidence and its reasons attached. It is not personalised investment advice and nobody here is a licensed adviser.
Index options can lose their whole premium inside one session. A directional edge above a coin flip is not a promise about your next trade, or your next fifty.
58.5% at the 0.70 threshold is a measured out-of-sample number from walk-forward validation. It is history, before costs, and it can decay.
Signals are scored on five-minute closes. Every second between the bar closing and your order filling eats into the measured edge — a late entry is a different trade from the one that was tested.
The app collects no payment information anywhere. Broker access comes from the UPSTOX_ACCESS_TOKEN environment variable only, and is never displayed, logged or returned.
Questions
A state (ENTER, WAIT or CHOPPY), a direction and a confidence, the index entry, target and stop with their point distances and R:R, a row of feature chips, and a suggested contract with strike, option type and premiums. Where the option chain has no quote for that strike the premium comes back empty with a warning — a price is never invented to fill the hole.
Because most bars are not worth trading. The choppy detector and the minimum-target rule between them withhold the setup rather than dress it up. On the two logged replay sessions all 750 bars graded CHOPPY, 424 of them for a sub-minimum target. A board that finds you a trade every five minutes is not measuring anything.
No. You place every order yourself with your own broker. The app tracks what you did, monitors the armed levels against live spot, and journals the result. There is no order-placing code path in it.
Out-of-sample directional accuracy from walk-forward validation on five years of one-minute data: 58.5% at the 0.70 confidence threshold, 55.9% at 0.65, 54.2% at 0.60. Raising the threshold raises accuracy and cuts the number of trades. These are backtest measurements, gross of costs, and they are not a projection of what your account will do.
The live signal stream is NIFTY 50 today, lot size 75. BANK NIFTY (lot 35) and SENSEX (lot 20) show market data and option chains but no signals yet — and the board says so plainly instead of returning an error or a fabricated card.
Into an environment variable on your own machine, and nowhere else. UPSTOX_ACCESS_TOKEN is read by the server process; it is never stored in the database, never written to a log, and never returned through the API. The app asks for no payment details at any point.
That is what a filter looks like from the inside. When a bar finally qualifies, you will know.