AI Summary
What this is: A hands-on test of TrendSpider’s machine learning tools, run on a live account on 6 August 2026.
Who it’s for: Anyone curious whether AI trading software actually works, whether or not you trade.
The key idea: One model passed three checks in a row and then failed the fourth. The fourth one is the only one that mattered.
Skip if: You want a feature list. Read our TrendSpider review instead.
Most reviews of AI trading software describe the buttons. This one is a record of pressing them.
I have been building a swing trading system in Python that implements Mark Minervini’s method from end to end. Partway through, the obvious question surfaced. Why not just use TrendSpider, which sells a machine learning tool for exactly this?
So I built two models inside it, one for Minervini’s method and one for a trader called Qullamaggie, and I tested them properly. The results went in both directions, and the most useful finding was a failure.
What is TrendSpider’s ML Quant Lab?
TrendSpider is charting software for people who trade stocks. Most of it is ordinary automation. The ML Quant Lab is the part that uses real machine learning, and it is worth being precise about what that means.
You are not asking a chatbot for stock tips. You pick some measurements, you define what a good outcome looks like, and the software searches the past for conditions that came before that outcome. It then scores today against what it found.
In plain terms: you give it the ingredients, it looks for the recipe.
- Maximum three markets per model. A market means one symbol on one timeframe over one date range.
- Up to 10,000 daily bars per range, which is roughly 40 years.
- The last 20% is held back automatically as a test, with about 100 bars skipped in between so slow indicators cannot leak information across the join.
- You define success as a profit target, a stop loss, and a deadline in days.
That held-back 20% matters more than it sounds. It is the software refusing to let you mark your own homework.
The four model types, in plain English
| Model | Complexity | What it does |
|---|---|---|
| Naive Bayes | 1 of 4 | Counts how many of your signals agree |
| Logistic Regression | 2 of 4 | Draws one straight dividing line through the data |
| K-Nearest Neighbors | 3 of 4 | Finds the most similar days in history and sees what happened next |
| Random Forest | 4 of 4 | Builds many decision trees. Powerful, and the easiest to overfit with |
I used K-Nearest Neighbors for both tests, and not by choice. More on that shortly.
There is one rule that shapes everything you build. TrendSpider’s documentation says never to use inputs with an unbounded range. No raw prices, no plain moving averages. Everything has to be a ratio or a percentage, so that a value means the same thing on a $5 stock and a $500 one.
I also hit two limits that are worth knowing before you waste an afternoon. You cannot put maths inside the first argument of a function, and you cannot take a past value of a function’s result. To measure whether a 200 day average was rising, I had to compare a 200 day average against a 221 day average instead. Same answer, legal syntax.
Test one: teaching it Mark Minervini’s method
Minervini is a well known American trader whose approach starts with a checklist. A stock has to clear all eight conditions to qualify, things like trading above its 50 day, 150 day and 200 day moving averages.
The decision that shaped the whole test
I deliberately did not ask the model to learn that checklist, and this is the part I would most want a beginner to understand.
A checklist is a gate. Every condition has to pass. A machine learning model does not work in gates, it works in weights. Give it Minervini’s eight conditions and it will happily buy a stock that fails one of them, as long as it scores well on the others. That is not his method with maths added. It is a different method wearing his indicators.
So I pointed the model at a question the checklist cannot answer. Given a stock that already qualifies, which conditions predict that its next breakout holds instead of failing?
TrendSpider overruled my model choice, and it was right
I picked Logistic Regression. The lab refused, and told me why: with three different stocks in the training set, one straight dividing line cannot serve all of them, because the same reading means different things on a calm stock and a wild one. It suggested K-Nearest Neighbors, which compares like with like instead. That is a quality gate doing its job.

The result: meh
That is TrendSpider’s own grade, not mine. Its verdict was that the model probably would not produce enough winning signals to be worth trading.
It was worse than weak. The relationship ran backwards. With a 2 to 1 reward to risk setup you need to win about 33% of the time to break even, and my win rates ran from 28% to 38%. The signals the model was most confident about won only 29% of the time, below breakeven, while the ones it was least sure of did better. A model that is most wrong when it is most certain has found nothing.
The useful part was the ranking of which inputs carried information:
| Rank | What it measures | Importance |
|---|---|---|
| 1 | Buying pressure, measured as up volume against total volume | 100% |
| 2 | Whether the 200 day average is rising | High |
| 3 | Six month performance | 71% |
| … | Volatility squeezing in, the VCP signature | 20% |
| Last | How close the stock is to its 52 week high | 2% |
The most famous criterion in Minervini’s checklist finished dead last. That makes sense once you see it. Among stocks that already qualify, being near the high does not separate the breakouts that work from the ones that fail. It is a gate, not a predictor. The data arrived at the same conclusion I had reasoned my way to earlier.
Why did the Minervini model fail?
My first thought was that the target was wrong rather than the inputs. I had asked for a 12% gain within 40 days that never once dipped 6% against me. On a stock that routinely swings 3% to 4% in a day, a 6% dip happens inside almost every winning move. I had defined success as something these stocks essentially never do.
So I relaxed it to allow a dip along the way. The direction corrected, the size did not:
| Strict version | Relaxed version | |
|---|---|---|
| Win rate range | 28% to 38% | 32% to 47% |
| Confidence relationship | Backwards | Correct |
| Top input | Buying pressure | Rising 200 day average |
| Distance to 52 week high | 2% | 41% |
Still meh. And look at that last row, because it is the finding.
I changed one setting. Not the data, not the inputs. The ranking of what mattered reshuffled completely, and one input went from nearly worthless to the second most important thing in the model. A model that has found something real does not rewrite its own explanation that dramatically when you nudge the definition of success. It was fitting my target, not the market.
Two attempts, both meh, and I stopped. TrendSpider’s own guidance is to discard bad models quickly. Sweeping through settings until something finally turns green is exactly how people fool themselves.
The finding that made the day worthwhile
I ran TrendSpider’s own official Minervini scanner, built by them and used by around 1,800 people, and compared it against what my Python system produced for the same day.
- My own code returned: an oil and gas company, a retail property trust, and an airline.
- TrendSpider’s scanner returned: insurers, banks and oil refiners.
- The same scanner pointed at a wider list of stocks returned: refiners, insurers, banks and a discount retailer.
Three separate implementations of the same screen, and not one growth company between them. That is not a bug in any of the three. The Nasdaq had entered its second correction of 2026 in late July, and when growth stocks break down, money rotates into energy, banks and defensive names. Those were the only stocks still qualifying.
The screen was working. There was simply nothing to find. My own system’s strange looking output had been independently confirmed by a commercial product built by other people, which is the sort of check that is very hard to arrange for yourself.
Test two: Qullamaggie’s method scored much better
Same tool, same afternoon, different question. Qullamaggie is a Norwegian trader whose approach lives almost entirely in price and volume over three to ten days.
I expected this one to work, for a structural reason. Minervini’s edge depends on company earnings, on which industry is leading, and on the mood of the whole market. The lab can see none of those things. Qullamaggie’s edge is price and volume, which is exactly and only what the lab can see.
The grade came back green. TrendSpider estimated the model might win about 39% of the time, against a 33% breakeven, and told me to go and backtest it.
What it found most important is the striking part:
| Rank | What it measures | Importance |
|---|---|---|
| 1 | Average daily range, how much the stock typically moves in a day | 100% |
| 2 | How tight the recent price range has become | 93% |
| 3 | Volatility squeezing in over a short window | 77% |
| 4 | Where price sits within its recent range | High |
That is Qullamaggie’s method described in four numbers, worked out from price data alone. Average daily range is the measure he built his entire position sizing around, and the model reached for it first without being told it mattered.
Did the backtest hold up across 20 stocks?
A backtest replays a strategy across old data to see what would have happened. TrendSpider warns you directly not to trust one run on the same stocks the model learned from, its training data, which is a warning worth repeating because it is the single most common way people mislead themselves.
So I tested on NVDA, which the model had never seen.


| Measure | Result |
|---|---|
| Trades | 29 |
| Win rate | 59% |
| Average win | +7.63% |
| Average loss | -4.35% |
| Average per trade | +2.67% |
| Worst drawdown | -20.4% |
The model predicted 39% and delivered 59%. Encouraging, and almost meaningless on its own, because 29 trades across ten years is three trades a year. TrendSpider flags that number in red for a reason. At that sample size the true win rate could plausibly sit anywhere between about 41% and 77%.
So I widened it. TrendSpider has a group tester that runs one strategy across a whole list at once.


893 trades. Twelve of twenty profitable. An average of +22.9% per stock. Better still, the strategy barely moved with the market, because it only holds a position for about ten days at a time.
The number buried in that table
Two stocks fired 198 and 167 trades. Every other stock was between 9 and 68. Those two alone made up 41% of every trade in the test, and they were the two worst performers, one of them down 92.8%.
They were also the two most volatile stocks in the list.
The model had ranked daily range as its single most important input. That is precisely what made it trade the wildest stocks most often, where a fixed 5% stop loss sits inside the everyday noise. A stock that swings 8% to 10% in a normal day will hit a 5% stop constantly, by accident, long before the idea has a chance to work.
And the fix is what Qullamaggie actually does. His stops are sized to each stock’s daily range, not set at a flat percentage. The model found the right variable and the strategy wrapper then ignored it. That mismatch was the largest single source of loss in the whole test.
The walk-forward test broke it
Everything above shares one weakness. The model trained on 2016 to 2026 and was tested on 2016 to 2026. Different stocks, same decade. Correlated companies living through the same events.
The stronger test is called walk-forward. Train on the past, then test only on what came after. So I trained a fresh model on data ending 31 December 2022 and tested it on 2023 onward.
The model itself looked fine. It graded green again, and daily range came out as the most important input again, on a completely different training window. I took that consistency as a good sign.


Then it met the years it had not seen.
| Same decade | Walk-forward | |
|---|---|---|
| Trades | 893 | 146 |
| Average per stock | +22.9% | +1.19% |
| NVDA trades | 32 | 1 |
Two things went wrong, and both are visible in that table.
First, it mostly stopped firing, an 84% collapse in activity. One stock produced zero trades and five produced exactly one each. This is what K-Nearest Neighbors does when it has not generalised. It works by finding similar days in history, so when the new years do not resemble the old ones, it never becomes confident enough to signal. It had not learned a pattern. It had memorised a neighbourhood.
Second, where it did trade in volume, it lost. Among the five stocks with enough trades to mean anything, three lost money and two made it. The stocks with the most activity won 23%, 27% and 32% of the time, against a breakeven the software itself displays at 38.6%.
The single trade entries showing a 100% win rate are noise, not evidence. One trade tells you nothing at all.
What that actually means
The edge did not survive. The 59% win rate and the +22.9% average were substantially an artefact of the model having already seen that decade.
This is the test almost nobody runs, and I understand why. The earlier result looked good. It had a sensible story, a plausible ranking of inputs, positive returns and a passing grade from the platform’s own quality check. Stopping there and calling it a success would have been easy and entirely wrong.
I also got something wrong myself, and it is worth naming. I treated daily range ranking first in both training windows as evidence the model was sound. It is not. It is evidence that the measurement is informative. Whether the model can trade on it is a separate question, and here the answer was no.
What about Sidekick, the AI chat inside the charts?
TrendSpider also has a chat assistant called Sidekick docked next to the chart. It is a different thing from the ML Quant Lab and worth covering separately, because it is the part most people will actually touch.
The distinction that matters for beginners: this is not a chatbot in another tab that you paste a screenshot into. It reads the chart you are looking at, and it can act on the software.
You choose which AI model answers you. In my account Gemini is the entry option, Claude Sonnet 4.6 sits above it, and an OpenAI model sits at the top. The free allowance is 25 messages a month, plus 50 extra in your first month, so it is metered rather than included.
Asking it about a chart
On one stock that had just jumped 19% on earnings, TrendSpider’s own Minervini checklist read a perfect 10 out of 10. Every box green. Sidekick’s summary called the intermediate trend strongly bullish and then said the short term condition was overextended, with high risk if I was thinking of chasing the move.
It went on to say that if I already liked the stock before the jump then the earnings report supported that view, but if I only liked it because it had just gone vertical, that is the bias that traps people.
That gap is the useful bit. A perfect checklist score and a cautious read, side by side, on the same screen. Beginners tend to assume those two things always agree.
It then offered to mark support and resistance on the chart, or to create price alerts for me at specific levels. That is the real difference from a general chatbot. It can do things, not just describe them.
Where it struggled
I asked it to build a scanner for Minervini’s five part setup. It correctly listed all five criteria, said the scanner could handle two of them well and the rest only partly, then ran the search.
No results. It loosened the criteria and tried again. No results again. Then it simplified down to moving average alignment, saved the scanner, and the finished product was five moving average comparisons.
The scanner works. But a beginner looking at the result would think they were running Minervini’s full method, when they are running roughly one fifth of it. If you use this, read what it built rather than what you asked for.
What AI can’t do here
- It cannot tell you what it cannot see. The lab reads price and volume. Earnings growth, which industry is leading, and the mood of the whole market are invisible to it, and it will not warn you.
- It cannot decide how much to risk. The model found the right measurement and the risk settings threw the benefit away. That step was mine to get right.
- It cannot tell a real pattern from a memorised one. Only testing on strictly later data does that, and choosing to run that test is a human decision.
- It cannot supply the judgement to stop. Nothing prevented me from tuning settings until something turned green. The discipline not to is the whole job.
So is it worth using?
For the right question, yes, with clear eyes.
The tool was straight with me throughout. It graded my weak model weak, twice. It refused a model type that did not suit my data and explained why. It warned me not to trust a backtest on training data. Its quality check is not a rubber stamp, and that is rarer than it should be in this category.
The Minervini model failed for a structural reason rather than a technical one. His method depends on five things and the lab can see one of them. No amount of clever inputs fixes that.
Qullamaggie’s method suited the tool because his edge really is price and volume over ten days. Same software, same afternoon, opposite outcome, and the difference had nothing to do with the software.
The lesson I would hand to a beginner is smaller and more general than any of this. Three of my four checks said yes. The fourth, the one that took the most effort and was the easiest to talk myself out of, said no. If you take one thing from a day of testing AI trading software, take that.
If you are weighing up tools, our guide to AI trading platforms covers the wider field, and our piece on trading bot claims is worth reading before you spend anything.
Caveats I would want you to know
- Survivorship bias. Every stock I trained on survived to 2026. That flatters any result.
- Trading costs were set to zero. A realistic 0.3% round trip takes the better result from about +2.7% to +2.4% per trade.
- Twenty stocks is still one basket, and I chose it. A different basket gives a different answer.
- None of this is advice. It is a record of two models built in an afternoon, and one of them failed.
Common questions about TrendSpider AI
Do I need to be able to code to use the ML Quant Lab?
No, but you do need to write formulas, which sit somewhere between a spreadsheet and code. If you have built a complicated Excel formula you will manage.
What is overfitting, in one sentence?
It is when a model memorises the past instead of learning from it, which looks like brilliance on old data and falls apart on new data.
Why does a 39% win rate count as good?
Because the wins were worth about twice the losses. At 2 to 1 you only need to be right a third of the time to break even, so win rate on its own tells you very little.
Is the AI actually picking stocks for me?
No. It scores conditions you chose against outcomes you defined. Every meaningful decision, including which measurements to feed it, stays with you.
Could I have made the failing model work with more tuning?
Possibly, and that is the trap. Adjusting settings until results turn green is how you build something that fits the past and fails in future.
Does this mean AI trading tools do not work?
No. It means one method suited this tool and another did not, and that testing told me which was which in an afternoon.
One AI Tool, Tested Properly, Every Morning
Free daily newsletter for AI beginners. Plain English, no jargon, no paywall.
Free forever. Unsubscribe anytime.
What I read to write this
- TrendSpider, AI Trading Strategy Lab product documentation
- TrendSpider, strategy development and backtesting tools
- Grokipedia, machine learning
- My own TrendSpider account. All models, scanners and backtests described here were run on 6 August 2026 and are saved.
Read next
- TrendSpider AI: what it really does
- DeepVue vs TrendSpider
- Best AI trading platforms in 2026
- AI for stock trading: what works and what is hype
- AI stock chart analysis: what actually works
- Are AI trading bots a scam?
- Glossary: what is machine learning?
- The full AI glossary
Two ways to go further
The AI Prompt Library
1,000+ ready-to-use prompts for Claude, ChatGPT, and Gemini. Stop staring at a blank box.
Get it for $39 →2-Hour Live AI Crash Course
A private, beginner-friendly session across Claude, ChatGPT, Gemini, and the wider landscape.
Book for $125 →