← back to projects

The experiment is still live. You can inspect the model, discuss a stock, or ask it to reproduce the research.

Open the Stock Picker GPT →

AI-generated content disclaimer: This article was drafted and edited with AI from my experiment notes, code, and backtest results. The conclusions are mine, but the prose and summarisation are AI-assisted. Numbers may contain errors and should be independently verified.

· Abhishek Bagade · experiment log

I built a stock picker from Telegram tips. The backtest said no.

This started as a straightforward question: could I extract how a prolific Telegram contributor chose stocks, turn that intuition into explicit rules, and use those rules to find entirely new NSE candidates?

The goal was never to replay old tips. I wanted to distil a method: momentum, breakouts, volume, liquidity, entry discipline, and the difference between a stock climbing steadily and one arriving through a single violent jump. Then I wanted an AI assistant that could apply that method to the market and explain its reasoning conversationally.

I built it. I tested it. The useful result is that the main strategy did not work.

From chat export to a testable method

The raw material was a Telegram export containing years of conversation. I first isolated messages from Madhu Reddy, extracted timestamps and stock references, and classified the surrounding language: positive, negative, buy, avoid, hold, exit, recap, or general market commentary.

The recurring style was translated into a market-wide research heuristic:

Public NSE end-of-day data powered discovery. Historical intraday candles were used to reconstruct the first hour. Results were cached so a normal conversation did not need to rescan years of files. The GPT became the interface: ask about the market, inspect a stock, or challenge the methodology.

The score kept getting smarter

The first score had an obvious defect: strong candidates saturated at the same ceiling. Later versions removed the cap, ranked stocks cross-sectionally, added information continuity, demoted redundant peak features, and stopped treating numerical score gaps as confidence.

Each revision looked more sophisticated. That was precisely why the backtest mattered. Better resolution is not the same thing as better prediction.

What happened in the one-month replay

The final replay used 21 execution sessions, 63 ranked stock observations, whole shares, no leverage, and deterministic execution. These headline results are gross of brokerage, STT, taxes, and slippage.

One-month replay results, gross of costs
StrategyReturnMax drawdownTrades
Fixed Top 1-9.12%-9.12%21
Fixed Top 2-9.96%-13.91%42
Fixed Top 3-9.61%-11.26%62
Dynamic EOD-5.31%-7.34%38
First-hour confirmed+3.36%-0.72%6

The EOD ranking did not produce a profitable result. Rank 1 did not reliably beat Rank 2. Rank 2 and Rank 3 were difficult to distinguish. Daily rank correlation was approximately zero. Adding more stocks mostly added more ways to lose money.

The long-history comparison was no rescue either. Across roughly 1,300 sessions, the best broad ranking variant still had negative absolute next-session expectancy before costs. It was marginally better than the liquid-universe median, which is academically interesting and economically inadequate.

The tantalising six trades

Waiting until 10:15 changed the shape of the month. The primary rule required a first-hour return of at least 0.5% and a price above cumulative first-hour VWAP. Only six trades survived, producing +3.36% gross with a much smaller drawdown.

That sounds exciting until one more number arrives: WELCORP supplied roughly 95% of final profit. Remove one winner and the apparent edge nearly disappears before costs. Six trades are a story, not validation.

The GPT remains online because keeping it hosted costs me effectively nothing, and it is still useful as an interactive research artefact. It can explain the model, evaluate how a stock fits the rules, and reproduce the experiment. It should not be mistaken for a reliable source of trading recommendations.

The nastiest bug was in the past

The final replay exposed a subtle corporate-action trap. Some historical broker candles had been retrospectively rescaled after a later corporate action, while the matching NSE end-of-day record remained on its contemporaneous price scale. Comparing the two created a fake 80% historical gap.

A naive safety rule would have used today's adjusted history to reject a trade in the past, quietly introducing look-ahead while appearing more conservative. The lesson is broader than this project: historical data is not automatically point-in-time data, and a backtest can improve for exactly the wrong reason.

What I learned

  1. A score can become more precise without becoming more predictive. Decimal places are not calibration.
  2. Entry timing mattered more than another EOD feature. Blindly buying the open was consistently poor.
  3. Positive backtests need concentration checks. A strategy that depends on one winner is not robust.
  4. Data provenance is part of the strategy. Corporate actions, retrospective adjustment, missing sessions, and stale snapshots can dominate the result.
  5. Negative results are worth publishing. The failure is more useful than a polished screenshot of six lucky trades.

So why leave it running?

Because an experiment does not become worthless when its original thesis fails. The conversation, extraction pipeline, explainable scoring, and replay machinery remain useful. More importantly, leaving the complete thing visible makes it harder to quietly move the goalposts later.

I am keeping the GPT available as an experimental research companion. Treat every output as a prompt for further investigation, never as financial advice or a promise of returns.

Try the experiment yourself. Ask how the method works, inspect a stock, or challenge the assumptions.

Open the GPT →

Financial disclaimer: This project is an experimental research tool. Nothing in the GPT or this article is investment advice, a recommendation to buy or sell securities, or evidence of future performance.