**I Gave AI 2.4 Million Minutes of Nasdaq Data — Transcript & Summary | SozAI**
Source: https://sozai.app/transcript/gave-ai-2-4-million-minutes-nasdaq-data/

An AI-driven search of 2.4M NASDAQ minute bars yields a conditional morning trading model, tested with costs and a sealed final validation block.

## Key Takeaways

- Large data volume does not equal strong evidence; 2.4M minutes produced only 334 independent final daily observations.
- Transaction costs can erase apparent edges; many rules were profitable before costs and lost money after.
- Conditioning a trade on prior-day market state changed results far more than time-of-day alone.
- Machine learning improved validation performance in some tests but did not consistently outperform simple rules across time periods.
- Honest research requires reporting failed experiments and locking a sealed test set before evaluation.

## What the video covers

- The video documents an AI-assisted search over 2.4 million NASDAQ minute bars for a profitable intraday trading strategy on NQ futures.
- Data is split chronologically: 60% for discovery, 20% for selection, and a locked final 20% (334 sessions) for the ultimate test.
- Trading costs of $45 per completed trade are modeled, and the author stresses that only 1670 eligible sessions mean one decision per day, not millions of independent chances.
- Eight market-state hypotheses were tested (time of day, recent moves, VWAP distance, day extremes, overnight gaps, prior-day direction, opening range, volatility) across hundreds of configurations.
- Most candidates failed discovery or validation; failures are kept intentionally to show the search's true scale and avoid survivorship bias.
- Filtering the morning window to trade only after wide prior-day ranges turned a losing rule into a profitable one, suggesting conditional context matters more than time alone.
- A random forest with 15 pre-entry inputs raised validation Sharpe to 1.41, but a simpler model was not reliably better in earlier forward tests, showing complexity's benefit is inconsistent.
- Stress tests show fragility: removing the best trades or restricting to stronger forecasts sharply reduces performance, and some sub-periods lose money.
- The final frozen model was locked before the sealed test, with no post-hoc tuning permitted.
- The presenter concludes the result is a conditional morning forecast with partial validation support, not proof of a robust edge, and that 334 final observations is weak statistical evidence.

## Chapters

1. 00:00 Introduction: AI Searches NASDAQ Data for a Trade
2. 01:17 Data Splits, Costs, and Sample Limitations
3. 02:21 Testing Time-of-Day Patterns
4. 03:36 Eight Market-State Hypotheses and the Search Results
5. 04:43 Surviving Rules and the Conditional Volatility Filter
6. 06:17 Machine Learning Models and Validation Results
7. 07:43 Finalists, the Sealed Test, and Stress Tests
8. 09:39 Conclusions and Limits of the Evidence

Answers

## Questions about this video

What was the main finding of the AI trading search?

A morning model that trades only after wide prior-day ranges performed well in validation, with conditional market state appearing to matter more than the time of day. The presenter cautions that this is a conditional forecast with partial support, not a proven edge.

Why were trading costs and sample size emphasized?

A $45 cost per trade can turn profitable pre-cost rules into losers, and with only 1670 eligible sessions and 334 final observations, the effective sample is far smaller than the raw minute count suggests.

Did the machine learning model clearly beat simple rules?

Not reliably. The random forest raised validation Sharpe to 1.41, but in earlier forward tests a simple filter performed better, so the added complexity's benefit was inconsistent across periods.

## Full Transcript — Download SRT & Markdown

00:00

Speaker A

I gave an AI 2.4 million minutes of NASDAQ data and one job, find something worth trading. It came back with a morning model that made $60,935 in validation after trading costs.

00:15

Speaker A

But here's what got my attention. Two mornings both fell after the open. The model sold one and bought the other.

00:22

Speaker A

Same direction on the chart, opposite decision. What the hell was it looking at? The trail starts with yesterday's trading range. It takes us through hundreds of simple rules, a forest of decision trees, and one final test on data the model had never seen. So, let's

00:40

Speaker A

follow the decisions. Ideally, before the AI develops a podcast about its trading journey. First, the size of the file is slightly misleading. We have about 2.4 million clean minute bars, but only 1670 eligible trading sessions. The strategy gets one decision per day. It

00:59

Speaker A

does not get a million independent chances to be right. We're trading one NQ futures contract. Every completed trade gets charged $45 for modeled fees and worse than ideal execution. The broker is the only participant who already has a business model. Before

01:17

Speaker A

searching, I split the sessions in date order. 60% to discover ideas, 20% to help select them. The last 20% stays locked away for the final test.

01:29

Speaker A

That last block is 334 sessions. No shuffled days. The future doesn't get to whisper the answers to the past. There are 27 futures contract IDs, so contract switches can't become fake gap signals.

01:44

Speaker A

No duplicate or malformed rows needed removing. 54 missing cash session minutes stay missing. We don't draw in the prices we wish had happened.

01:55

Speaker A

Session times use New York with shortened days excluded. Now we can ask the cheapest possible question. Is the clock itself useful?

02:05

Speaker A

Before deploying artificial intelligence, I gave a clock a job interview. These bars show the average price change in six parts of the discovery day. Green means up, red means down. The thin lines show uncertainty around those averages. Moves inside the

02:21

Speaker A

shaded band are too small to cover our roundtrip costs. That afternoon rise looks interesting, but an average can hide a lot of ugly individual days.

02:32

Speaker A

The actual trading grid tried seven windows, buying and selling, 14 configurations. None cleared the discovery screen for aftercost performance and consistency across time.

02:45

Speaker A

One screen used sharp average daily profit relative to how much daily profit swings around. Higher is better on that measure. It isn't a win rate or a percentage return. The clock didn't earn the job. Let's give it some context.

03:01

Speaker A

Here's what we actually tested and why. First, time and weekday. Scheduled trading activity might repeat. Second, recent moves. Does buying keep attracting buyers or has everyone who wanted in already arrived? We tested following the move and betting on a

03:19

Speaker A

reversal. Third, distance from VWAP, the average traded price weighted by volume. Does price come back toward it or keep moving away? Fourth, the days extremes near the high is buying pressure winning or about to run out?

03:36

Speaker A

Same question in reverse near the low. Fifth, overnight information. Does a gap or pre-market move carry on after the open or get reversed?

03:46

Speaker A

Sixth, yesterday's direction. Does a strong day produce another strong day or a hangover? Seventh, the opening range.

03:54

Speaker A

Does breaking out of the first half hours range mean anything? And eighth, yesterday's volatility. Maybe the same trade behaves differently after a quiet day and after a day when NASDAQ has been fighting the furniture across the entry times, exits,

04:11

Speaker A

directions, and thresholds that gave us 313 configurations. We tested both directions where appropriate. The market doesn't owe us momentum just because we named a file momentum.python.

04:24

Speaker A

Each square is one configuration. 282 failed discovery. Another 28 failed validation. three passed both. We kept the failures. A couple of them are extremely educational, which is what traders call losing money when it happens in a spreadsheet.

04:43

Speaker A

This first rule followed price near the day's extremes during the final hour. It had the highest discovery sharp in the rule search 1.61 invalidation minus0.57.

04:55

Speaker A

Excellent in the interview. Set fire to the office on Monday. The second range rule was busier. Before costs, $44,055, after costs minus $855.

05:09

Speaker A

We did find a profitable participant. It was the broker. These failures tell us why we need both a new time period and realistic costs. The full lab notebook keeps every experiment, including the dead ones. Deleting the graveyard would

05:23

Speaker A

make the survivor look a lot more impressive than the search deserves. Now the three that survived.

05:30

Speaker A

One rule bought from 10:01 until noon after a wide previous session. Another followed the opening move after noon.

05:37

Speaker A

The third traded against a sufficiently large move from yesterday. The wide yesterday rule was the most balanced across discovery and validation. Its sharps was 0.87 and 0.83. Not a superhero origin story, but consistent enough to investigate.

05:54

Speaker A

Now look at this comparison. Buy that morning window every session. Lose $25,270 in validation.

06:03

Speaker A

Buy only after a wide yesterday. Make $23,910. Wide means yesterday's high to low range exceeded 1.2 times its recent median range. We know that before today's trade. Same market, same entry and exit times. A very different guest list.

06:23

Speaker A

The filter took 108 trades instead of 334. It didn't improve all the same trades.

06:31

Speaker A

It chose a different subset. That's the clue. The conditions around the trade may matter more than the time alone.

06:37

Speaker A

Could several conditions work together better than one cutoff. Now, machine learning has a reason to be here. It wasn't invited just to make the thumbnail more expensive.

06:49

Speaker A

Ridge is our linear model. It combines the inputs with weights. A random forest combines decision trees.

06:58

Speaker A

Those trees can ask different follow-up questions depending on the market conditions. Boosted trees build successive trees to correct earlier prediction errors during training. We tested three trading windows, three model families, two settings each, and three thresholds for deciding whether a forecast was large

07:18

Speaker A

enough to trade. 54 configurations in total. The windows came from the morning volatility clue, noon momentum, and the late day range signal. Every model got the same 15 inputs, all available before entry. For these morning candidates, the forest lifted validation sharp from the

07:39

Speaker A

simple filters 0.83 to 1.41. The linear model went negative. Boosted trees reached about 0.9.

07:49

Speaker A

The hollow dots matter. There are earlier forward tests on the same dates. There the simple filter beat the forest.

07:57

Speaker A

So complexity helped validation not every period and validation had already helped guide this research. The sealed final block still has the deciding job.

08:08

Speaker A

The complete search now covers 23 research families and 367 trading configurations. 42 past discovery, seven past validation. Here are all seven finalists. Their names look like Wi-Fi passwords because apparently the model's one weakness is branding.

08:27

Speaker A

The selection rule ranks each candidate by its weaker discovery or validation shop. A simpler rule gets preference if it's within 0.1 of the best score. The forest scores 0.964.

08:42

Speaker A

The best simple rule scores 0.832. That's outside the simplicity allowance. The forest gets the final test. Here's exactly what it does. At 10, use information through the 959 minute bar to forecast the move to noon. At 10:01, buy if the predicted gain exceeds 2.25

09:03

Speaker A

NQ points. Sell if the predicted fall exceeds that amount. Otherwise, stay flat. The hurdle matches our modeled trading cost. Exit at noon. One contract. no stop target or overnight hold. The model has 150 shallow trees.

09:20

Speaker A

Its weights come from discovery only. We now lock the weights, threshold, entry, and exit. No sneaking in a tiny improvement after meeting tomorrow's prices.

09:32

Speaker A

What did the forest actually use? The full 15 input model scored 1.41 in validation. A diagnostic version using just its three most important training inputs scored 1.34. Yesterday's volatility alone scored 0.04.

09:48

Speaker A

15 inputs, three doing much of the work. Apparently, machine learning also has group projects.

09:55

Speaker A

The three were morning volatility, how much price bounced around before 10, yesterday's range compared with its recent norm, and range position, whether the current price sat near the morning high or low.

10:08

Speaker A

This points to a combination of conditions. One volatility number alone didn't reproduce the result. The smaller model was a diagnostic test after the freeze. We kept the original candidate.

10:21

Speaker A

We are investigating the engine, not swapping it halfway through the race. This next chart was added afterward to explain the frozen model. It uses validation data, not the final test.

10:35

Speaker A

Every group has a relatively quiet morning. What changes is yesterday's range? After a quiet yesterday, the model sold in 77% of sessions. After a typical yesterday, it was more mixed.

10:47

Speaker A

After a wide yesterday, it bought in 89%. That's the behavior behind our clue. A quiet morning didn't mean one universal trade.

10:58

Speaker A

And before 89% sprints off to become a thumbnail, that's how often it bought, not how often it won. There were only 18 sessions in that wide yesterday group.

11:08

Speaker A

The entire group made $365 after costs. An 89% win rate headline would be doing considerably more work than the strategy.

11:19

Speaker A

Other inputs differed, too. This helps explain the model's decisions. It does not prove that yesterday's range caused the profits or give us a new independently tested rule. Here are the two mornings from the opening. Both had fallen by 10. On the left, yesterday's

11:36

Speaker A

range was about 0.63 times its recent median. The model sold. Price kept falling. Net profit $6,175.

11:47

Speaker A

On the right, yesterday's range was about 1.42 times the median. The model bought. Price recovered enough to make $460.

11:56

Speaker A

One trade bought dinner. The other apparently bought the restaurant. The shaded prices happen after the forecast.

12:03

Speaker A

We match these examples using opening information, not their later profits. They happen to be two winners. Their illustrations, not a performance sample.

12:13

Speaker A

Other model inputs also differed. The useful point is that the model could make opposite decisions after similar opening moves. Let's see whether the whole result survives less comfortable assumptions.

12:26

Speaker A

Start with the original $60,000 validation result. Raise the cost per trade from $45 to $125.

12:35

Speaker A

It still makes 38,775. Enter at 10:05 instead of 10:01. Still profitable. 68,880. Use slightly shallower or deeper trees.

12:50

Speaker A

Both variants stay profitable, too. The model doesn't appear to require the exact same 4-minute coffee break from every trader on Earth.

13:01

Speaker A

Then comes the sensible sounding change. Only trade it stronger forecasts that cuts validation from 277 trades to 68 and sharp from 1.41 to 0.42.

13:15

Speaker A

The model had bigger opinions. It did not have better opinions. Very relatable. Entire media businesses have been built on this.

13:25

Speaker A

There were 21 stress scenarios. Some alternatives even looked better, but none replaced the frozen model. Worse fills and nearby settings weren't the main weakness. Next, how many trades were actually paying the bills?

13:41

Speaker A

All 277 validation trades, $60,935. Remove the five best, 22,515. Remove the 10 best, minus 25270.

13:57

Speaker A

10 trades were worth more than the entire profit. The other 267 should probably buy them dinner. The time breakdown tells us something, too. The 2024 validation slice made 68,910.

14:12

Speaker A

The 2025 slice through May 8th lost $7,975. Deleting the best trades is deliberately harsh. It doesn't mean those trades were impossible to execute and it doesn't prove the strategy is fake. It tells us the profit depended heavily on a small

14:28

Speaker A

group of days. We have a candidate with concentrated gains and a weaker recent period. The final test now has a very specific question to answer. Does the profit repeat without changing anything?

14:43

Speaker A

Here it is. 334 sessions from May 9th, 2025 to September 11th, 2026. None of this period helped choose the model or its settings. Same weights, same 1001 entry, same noon exit, same costs. No lastminute filter called don't take the losing trades. The standards

15:06

Speaker A

were written down before opening this block. Enough trades show up of at least 0.5. both halves profitable survival under higher costs plus the development concentration check and the lower confidence bound must stay above zero.

15:21

Speaker A

We need evidence for a positive average beyond a positive total on one path. This is the original one-time result.

15:29

Speaker A

Reopening the notebook doesn't give the model another attempt. Let's see it. $39,45 after costs, $299 trades, a daily sharp of 0.63.

15:44

Speaker A

It made money in the final unseen period. The largest drop from a previous profit peak was $39,925, slightly larger than the final gain.

15:56

Speaker A

Here's that drop on the curve. This is why the journey matters. Your spreadsheet calls it draw down. Your nervous system calls it an emergency meeting.

16:06

Speaker A

The line eventually recovers, but a trader sitting in that trough doesn't have the luxury of scrolling to September.

16:14

Speaker A

Both halves made money. 11,450 then 27,955. At $125 in roundtrip costs, the full period still earned 15,485.

16:31

Speaker A

Simply buying the same morning window every day lost $525. So the model did more here than just show up long at$101.

16:41

Speaker A

Measuring positions inside the trades raises maximum draw down to $43,865. The profit repeated the performance weakened. Validation sharp was 1.41.

16:54

Speaker A

Hold out was 0.63. These are one contract dollar results with no assumed account size. Now the last question, how much confidence does this sample actually buy us? The orange dot is the observed average about 5.9 NQ points per

17:10

Speaker A

session after costs, including days with no trade. To estimate uncertainty, we resampled blocks of trading days 5,000 times. Blocks keep some short-term dependence together instead of pretending every day has amnesia.

17:27

Speaker A

The resulting 95% interval runs from about - 9.47 to plus 21.89 points per session. This is uncertainty around the average, not a prediction range for tomorrow's trade. The interval crosses zero. Under this approximate method, a losing underlying average is still

17:46

Speaker A

compatible with the sample and the interval doesn't even adjust for the entire adaptive search. So, what did we find? A conditional morning forecast with much of its validation performance retained by three market state inputs.

18:01

Speaker A

Did complexity help in validation? Yes. On the matched earlier discovery dates? No. Did profit survive the final data and higher modeled costs? Yes. Did it clear every requirement for a defendable edge? No. The uncertainty, concentrated development gains, and draw down still

18:21

Speaker A

matter. promising but unproven. A specific signal worth studying further with a profitable final test. The next promotion requires new evidence. The old hold out cannot put on a fake mustache and apply again.

18:36

Speaker A

Four things I'd take from this. First, context changed the result. Buying every morning and buying after a wide yesterday produced very different outcomes.

18:47

Speaker A

Second, a larger model forecast was not automatically a better trade. Confidence needs testing, too. Third, surviving worse costs and nearby parameters didn't remove statistical uncertainty. Those checks answer different questions.

19:03

Speaker A

And fourth, a large file doesn't guarantee strong evidence. 2.4 million minutes still gave us only 334 final daily observations.

19:14

Speaker A

Big CSV Energy, much smaller sample size. If you want to test this yourself, I put the full experiment in the research lab.

19:24

Speaker A

You get the notebook, the full Python code, every configuration I tested, every failed idea, and the final model with all of its trades. So, you don't have to take my conclusions at face value, change the assumptions, rerun the

19:38

Speaker A

tests, and see what survives. And every new research video I make gets added to the lab as well. If that's the kind of research you want access to, join us at lab.wisquant.app.

Topics: algorithmic trading NASDAQ futures NQ machine learning trading backtesting random forest overfitting walk-forward validation trading costs quantitative finance

Study this video

- [Flashcards from this video](https://sozai.app/tools/flashcard-maker/?from=transcript&id=88815)
- [Quiz on this video](https://sozai.app/tools/quiz-generator/?from=transcript&id=88815)
- [Crossword from this video](https://sozai.app/tools/crossword-maker/?from=transcript&id=88815)
- [Word search from this video](https://sozai.app/tools/word-search-maker/?from=transcript&id=88815)
- [Study guide from this video](https://sozai.app/tools/study-guide-maker/?from=transcript&id=88815)

Free, made by AI from this transcript. No signup.


---
This is the markdown twin of https://sozai.app/transcript/gave-ai-2-4-million-minutes-nasdaq-data/ — the same content, without the markup.
Published by SozAI (https://sozai.app). Reuse and quotation are allowed with attribution and a link back.
Machine-readable index: https://sozai.app/llms.txt · data API: https://sozai.app/api/
