What ChatGPT is actually useful for in trading, and what it should never touch

· 11 min read · AI
What ChatGPT is actually useful for in trading, and what it should never touch

Open a chat window and ask what the E-mini S&P is trading at right now. You will usually get a number. It will look right: four digits, a quarter-point increment, the sort of level the index has plausibly seen. It is fiction. The model has no idea, and nothing in the way it answers will tell you that.

That single behavior explains most of what follows. A general-purpose language model is a genuinely useful tool for a trader. It is also, in a very specific and predictable way, dangerous. The line between the two is not subtle once you know where it is.

What a language model actually is

A large language model is trained to predict the next piece of text given the text before it. Do that at enormous scale and you get something that writes fluently, explains clearly, and follows instructions well. Fluency is the product. Truth is a side effect of the training data, not a guarantee of the machine.

Two consequences matter here. First, the model has no live connection to anything unless a tool gives it one, and its training data has a cutoff date. Second, it has no internal sense of confidence you can read. A fabricated price and a correct definition are produced by the same process and arrive in the same calm tone.

The one thing to remember

Use it for language and reasoning about things you can verify. Never use it as a source of facts you cannot check, especially numbers. It has no way to tell you which of its answers it made up.

Where it genuinely earns its keep

None of these are glamorous, and all of them save real time.

Explaining conceptsWhat a trailing drawdown is, why a limit order can go unfilled, how Section 1256 treats futures. Textbook material, well represented in the training data, easy to sanity-check.
Drafting and reviewing codeNinjaScript boilerplate, a state-handling skeleton, a second pair of eyes on logic you already wrote. The compiler and the backtest are your check.
Summarizing documentsPaste a prop firm rulebook or a platform release note in and ask what changed. With the text in front of it, the model is working from evidence, not memory.
Turning a rule into a specDescribe what you do out loud, have it write the rule precisely, then argue with the result until every edge case is named. Free specification work.
Checklists and routinesA pre-market checklist, a shutdown procedure, a list of questions to ask a broker. Structure, not judgment.
JournalingPaste a month of trade notes and ask what patterns show up in your behavior. It is a mirror for what you already wrote, not an oracle.

Notice the pattern. Every good use either works on text you supplied or produces something you can immediately test. That is the whole rule, stated once.

NinjaScript: useful, with a hard limit

Writing strategy code is where a chat model pays for itself fastest, and also where people get burned by overconfidence.

It is good at scaffolding. Ask for the shape of a NinjaScript strategy (the state machine, where to set defaults, where to place the entry logic, how to structure a class) and you will get something reasonable in seconds. It is good at explaining an error message. It is very good at reviewing code you wrote: "what happens if this condition is true on two consecutive bars," "is this indexing off by one," "am I mixing managed and unmanaged order methods here." Those are language-and-logic questions, and it is strong at them.

It is unreliable on the specifics of the API. NinjaScript is a niche C# dialect with a small public corpus, so models routinely blend NinjaTrader 7 and 8 syntax, invent method names that sound exactly right and do not exist, and get the semantics of stop and target helpers subtly wrong in ways that compile fine and behave badly.

Code that compiles is not code that is correct. It is code that is now your problem.

So treat every generated line as a draft from a fast, confident junior who has never run the platform. Compile it. Run it in the Strategy Analyzer over a period you know. Check that the trade count and the fill prices make sense. If you cannot read the code well enough to spot a wrong stop placement, you are not in a position to run it with money. That is exactly why a rule-based system you can inspect matters more than one that merely exists.

What it should never be used for

The hallucinated backtest

Ask a model for the historical performance of some simple rule (say a 20/50 moving-average crossover on an index future from 2015 to 2024) and it will very often produce a tidy table. Annual return 11.2%. Sharpe 1.34. Max drawdown 14.8%. Win rate 41%. Two hundred and eighteen trades.

Every one of those figures was generated as text, not computed from data. And they are dangerous precisely because they are reasonable. A hallucination that returned a Sharpe of 47 would be caught by anyone. A Sharpe of 1.34 slides straight into a spreadsheet and becomes the basis of a decision.

There is one exception worth stating clearly. If the model has a code-execution tool and you gave it the actual price data, then it wrote a script and ran it, and the output is real. As real as the script, anyway. In that case the thing to review is the code: how it handled the open, whether it included costs, whether it peeked at the same bar's close. If you cannot see a script and a data file, you are looking at prose that resembles arithmetic. The deeper version of this problem, where the model is doing statistics rather than inventing them, is in why machine learning models die in live trading.

Why it cannot know the current price

This deserves its own section because people keep testing it and keep getting fooled by a confident answer.

A model with no tools has a fixed knowledge cutoff and no feed. Asking it for a live quote is like asking a very well-read person who has been in a windowless room since last year. They can tell you a great deal about markets. They cannot tell you where price is.

With a browsing tool it gets better and still is not a data feed. It is reading a web page, which is typically delayed, sometimes stale, occasionally a cached copy of something older. There is no order book, no bid-ask, no tick history, no timestamp you can trust to the second. For a system that enters and exits inside a single window at 8:30 AM ET, that gap is not academic: it is the difference between a fill and a fantasy.

Real automation gets its prices from a data feed, through a platform, with a timestamp and a connection status. That is what NinjaTrader 8 and a broker connection are for, and no chat window replaces it.

You ask forCan it do it?How you verify
An explanation of a conceptYes, reliablyCross-check one definition against a second source
Draft NinjaScriptYes, as a first draftCompile it, then backtest a period you know
A summary of a document you pastedYes, strongest useSpot-check three claims against the original
A backtest resultNo, unless it ran code on your dataRerun it yourself in the platform
The current priceNoLook at your platform
A trade signal or forecastNoNothing to verify. Do not use it

The habit that makes it safe

One question, asked every time before you act on an answer: where would this have come from?

If the answer is "a textbook, restated," that is reasonable, but check it anyway. If it is "the document I just pasted," that is solid, so spot-check a few claims. If it is "code it ran on data I provided," that is fine, so review the code. If the answer is "a live market it cannot see" or "a calculation it did not perform," you are holding a well-written guess.

It also helps to ask it to argue against itself. "What is wrong with this strategy" produces sharper output than "is this strategy good," because you have asked for criticism instead of agreement. And when it says something confident and specific about a platform rule or a prop firm's daily loss limit, go read the actual rulebook. Getting that wrong is how a funded account ends on a technicality while the strategy is doing fine.

Numbers you rerun beat numbers you were told

The Rentabilio backtest (more than seven years, 4,557 trades, $274,406 gross and ≈$260,700 net after commissions) is published with the steps to reproduce it in your own NinjaTrader 8. No chat window required.

Hypothetical performance. Those Rentabilio figures come from a backtest over historical data, not from a live account. Simulated results are prepared with hindsight, carry no financial risk, and cannot fully reflect real execution, slippage or liquidity. Past performance, real or simulated, does not guarantee future results.

Where this fits with actual automation

A chat model is an assistant at the desk, not a participant in the market. It helps you understand a system, read its code, write down its rules and keep a journal about it. It does not watch price, it does not place orders, and it has no stake in whether you were right.

The execution side is a different piece of software entirely, connected to a feed and a broker, running fixed rules. Keeping those two things separate in your head is most of what using AI in trading comes down to, and the broader map is in the AI trading guide. If a seller blurs the line (an "AI" that both chats with you and promises to trade), treat it the way you would any other unverifiable claim and start with the red flags.

Frequently asked questions

Can ChatGPT write a trading bot for me?

It can write code that compiles and runs, which is not the same as a system worth running. The hard part was never the syntax; it is having rules with a real edge, tested honestly over enough data, with costs included. A model will happily produce a strategy that looks professional and has no edge at all, and it cannot tell the difference. Use it to implement rules you have already tested, not to invent them.

Why does it give me different numbers each time I ask?

Because it is generating plausible text rather than retrieving a stored fact, and generation is not deterministic. Two runs of the same question about a backtest can return two different Sharpe ratios, both delivered with the same confidence. That inconsistency is the clearest possible signal that nothing was ever computed. Treat it as a warning, not a glitch.

Is it safe to paste my strategy code into a chat model?

Consider anything you paste as leaving your control, and check the provider's data policy for whether inputs are retained or used for training. For code you wrote yourself that risk may be acceptable; for a licensed commercial strategy it usually is not, and it may breach the license. Never paste license keys, account numbers or broker credentials under any circumstances.

Can it analyze a chart if I upload a screenshot?

It can describe what is in the image (a trend line, a candle pattern, roughly where price sits on the axis) and it does that reasonably well. What it cannot do is turn that description into a reliable edge, because reading a chart was never the constraint on profitable trading. You will get confident technical commentary that is indistinguishable in tone from analysis grounded in nothing.

In short: a language model is an excellent explainer, a decent code assistant and a useful mirror for your own notes. It is not a data feed, not an analyst and not a backtest engine. Ask it about words and logic you can check; take prices, signals and performance figures from a platform that actually connects to the market. If you did not watch it compute the number, the number is a sentence.

Seeing it work beats reading about it

Rentabilio, the automated system sold on this site, takes one trade a day at 8:30 AM ET with the stop and the target placed before it enters, and its backtest can be reproduced in your own NinjaTrader 8. The full report, the drawdown and the losing stretches are all on one page.