equity.curiosta.com
Not investment advice. This is a personal learning log. The authors are not SEBI-registered investment advisers or research analysts. Nothing here is a recommendation to buy or sell any security. Intraday levels are published only after the session has closed, as a record of what was tested. The portfolio is simulated, and past results don't predict future ones. Do your own research.

NSE next-day intraday candidates

A living playbook for building an evening list of intraday candidates for the next NSE session. A trader sizes and executes the trades; the picker never places orders. Update this file after every session: log the brief and its outcome, and date any rule change under Lessons.

Ground rules

When

Each trading evening at about 7:20 PM IST, for the next session. Check the NSE holiday calendar first (for example, 2 Oct is Gandhi Jayanti and the market is closed).

Step 1: tradable universe (owner-approved 30 Sep 2026)

Step 2: price fit and sizing

The trader risks at most ₹150 per trade. Sizing (trader's rule, 30 Sep 2026): shares = ₹150 ÷ (entry − SL limit), where the SL limit is the stop minus ₹4. Example: a 1% stop on a ₹2,000 stock gives 150 ÷ 24 = 6 shares. Notional stays at or under ₹15,000, so prefer stocks priced at about ₹3,000 or less, where at least 5 shares fit. Quote share counts on this basis.

Step 3: end-of-day technicals, weighted to recent momentum

Step 3b: noise against the stop

Use or30_med (the median first-30-minute high-to-low range over the last 20 sessions), or30_vs_stop and atr14_pct from eod_tech.py. - or30_vs_stop above 1.0 means the normal opening swing is bigger than the stop. Drop the name, or flag it as noisy. - Treat 0.9–1.1 as borderline and say so. - atr14_pct above 2.5 is a backup flag, and the only test when 15-minute data is missing. - A wider stop needs a wider target. For a noisy name offered with a wider stop, the worst-case risk is the wider stop plus the trader's ₹4 SL-trigger buffer. Size it at ₹150 divided by that risk. The target must be at least 1.5× that risk away and sit at a realistic level. If no such level exists, drop the name. Whether to take the wider stop is the owner's call.

Step 4: levels

Trader's execution rules (so skip lines match)

Output (2–3 names, fewer if nothing qualifies)

Script

scripts/eod_tech.py (Python stdlib, Yahoo chart API) takes SYM ... [--date YYYY-MM-DD] [--out file]. It outputs: - O/H/L/C/V, dma20/dma50 with rising flags, and above_20/50. - rsi14, vol_x, close_pos, ret20 and rs20_pp. - Entry, stop, targets, and the share count for a ₹150 risk (check it against the Step 2 formula with the ₹4 SL buffer). - price_fit and stale. - atr14/atr14_pct, or30_med/or30_med_pct/or30_n, or30_vs_stop and noise_flag. The thresholds are constants at the top of the file.

Before 15:30 it drops today's unfinished bar. stale: true means Yahoo is missing the latest daily bar, so verify against NSE.

Daily brief log (newest last; add a row every session)

Session Candidates (entry / stop / target) Outcome Lesson
Mon 28 Sep 2026 ZYDUSLIFE 1,200 / 1,188 / 1,218–1,224 (taken); APOLLOHOSP 8,880 / 8,790 / 9,015–9,060 Skipped. Opened at 1,210.70, at or above the skip line. A stock closing near its high on strong volume often gaps up, so leave room between the entry and the skip line.
Tue 29 Sep 2026 ZYDUSLIFE 1,212 / 1,200 / 1,230; DIVISLAB 9,530 / 9,435 / 9,670–9,720 (failed price fit) Target hit. Opened at 1,217.6, so the entry and stop shifted up and the target stayed. Bought 12 at 1,217.50 and sold at 1,230 within 2 minutes. About ₹134 net. Keeping the target fixed after a gap was right, because the high was 1,232.
Wed 30 Sep 2026 EMCURE 1,959 / 1,939 / 1,995 (6 shares, skip above 1,965); LALPATHLAB 1,950 / 1,931 / 1,985–1,995 (watch) Stopped out. Opened at 1,960, bought 6 and stopped at 1,940 at 9:42. −₹120 gross, about −₹132 net. The first 30 minutes ranged 29.2 points. EMCURE's median first-30-minute range was 26.1 points against a 20-point stop (1.31×). Added Step 3b and the weak-market filter.
Thu 1 Oct 2026 DRREDDY 1,233 / 1,221 / 1,255 (9 shares, skip above 1,237); no secondary Stopped out. Official open 1,233 (no shift). Bought 9 at 1,225.90 at 09:15:08, stop filled 1,220.80 at 09:16:22. −₹45.90 gross, about −₹58 net (est.), −0.43R. Nifty −0.41% at the open. Second straight stop-out in the first minutes, despite clean noise (or30_vs_stop 0.84). In a weak market the open itself sold off. Flag names whose open is weak relative to the entry; consider a confirmation entry (owner's call).

Running tally after 3 real trades: about −₹56 net (estimated). Judge the method on the trader's R scorecard after about 20 trades.

Lessons and rule changes (dated)

Improving this skill

After every session, add a log row with the brief, the actual open, the fill, the exit, the P&L and one lesson. Every week or two, review the gap-skip rate, target-versus-stop hit rate, R per trade, and which setups worked. Change a rule only when several sessions support it, and date it under Lessons.