Nathan Smith’s ChatGPT-powered micro-cap bot is up 23.8% in four weeks—blowing past the Russell 200 and pro stock pickers.
Unlike viral AI trading claims, Smith’s experiment is fully documented, open-source, and ready for anyone to try.
Wall Street’s bots watch their backs: Smith’s journey from rural high schooler to finance prodigy is just getting started.
A high school kid from rural Oklahoma just did what Wall Street’s algorithms haven’t: he let ChatGPT run wild with $100 and watched it outperform the market by a massive margin.
Nathan Smith’s experiment started four weeks ago with a simple premise—give ChatGPT complete control over a small portfolio of micro-cap stocks and see what happens.
The results? A 23.8% return while the Russell 2000 and biotech ETF XBI crawled up just 3.9% and 3.5% respectively.
Image: Nathan Smith
“When I was watching YouTube, I was constantly getting this ad about some AI stock picker: ‘(the ad said) We feed our trading algorithm all stocks on the NYSE blah blah blah…'” Smith told Decrypt. “I then started doing some research and was surprised nobody had attempted a fully led LLM portfolio before.”
The setup sounds deceptively simple. Smith gave ChatGPT a clear mandate: build the strongest possible stock portfolio using only full-share positions in U.S.-listed micro-cap stocks with market caps under $300 million. The objective was straightforward—generate maximum returns from June 27 to December 27, 2025.
What sets this apart from other trading algorithms is the complete autonomy.
“The AI takes care of absolutely everything. Position sizing, stop loss, etc., are none of my decisions,” Smith told Decrypt in an email. The only human intervention comes when ChatGPT contradicts itself—a quirk he acknowledges as one of the system’s drawbacks.
Smith recently calculated the risk metrics that professional traders obsess over.
His Sharpe ratio sits at 0.9413, indicating high risk, while the Sortino ratio of 2.0021 suggests strong upside gains with limited downside. For context, a Sharpe ratio above 1.0 is generally considered good, while anything below suggests the returns might not justify the risk.
The chatbot, which is fully open-sourced and is available on Smith’s GitHub repo, has no diamond hands and seems to be pretty objective, most of the time.
One of ChatGPT’s moves involved CADL, a stock that generated roughly 50% of the portfolio’s profits.
“It sold CADL without a second thought,” Smith said. “I think it wisely knew that in micro-cap territory, all gains can be wiped out in an instant. Not many hedge funds could make such a decisive move.”
Elegant in its complexity
Smith’s system has been operating for only a month, which is not enough to backtest or assess with a high confidence level, but the positive results thus far are promising.
The technical infrastructure behind this experiment is a bit more complex than simply using your typical chatbot, but it is still straightforward to implement with a little bit of dedication.
Smith built five main functions: manual buying and selling for new picks, portfolio processing for tracking trades, daily results generation using Yahoo Finance data, and graph generation for visualizing performance against the S&P 500.
“Honestly, the setup is pretty simple,” he said, describing a system that pulls benchmark prices from Yahoo Finance API into Panda’s data frames for analysis.
ChatGPT chooses stocks once per week, and always stays under the $300 million market cap limit, while Smith executes the trades and logs the results.
The teenager from a tiny Oklahoma town discovered his passion almost by accident. “I have coded a little in the past (working on Harvard’s online CS course CS50), but using C didn’t feel invigorating (stupid segmentation fault errors),” he told Decrypt. “Over the summer, I discovered Quantitative Finance and the beauty of Python, and I fell in love.”
Oh, the things high schoolers do nowadays.
With almost 1,000 GitHub commits this past year and a good amount of followers on his newsletter, Smith has thrown himself into the world of quantitative finance. He plans to extend the experiment to a full year once it wraps in December, though he admits balancing it with ACT studying and self-studying for AP Psychology will be challenging.
“I really think I’ve found my passion in life and hope to continue this as a real job one day,” Smith said.
Generally Intelligent Newsletter
A weekly AI journey narrated by Gen, a generative AI model.
Websites store cookies to enhance functionality and personalise your experience. You can manage your preferences, but blocking some cookies may impact site performance and services.
Essential cookies enable basic functions and are necessary for the proper function of the website.
Name
Description
Duration
Cookie Preferences
This cookie is used to store the user's cookie consent preferences.
30 days
These cookies are needed for adding comments on this website.
Name
Description
Duration
comment_author
Used to track the user across multiple sessions.
Session
comment_author_email
Used to track the user across multiple sessions.
Session
comment_author_url
Used to track the user across multiple sessions.
Session
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked
30 seconds
_ga_
ID used to identify users
2 years
_gid
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
Be the first to comment