I built an AI agent and named it Gyan Hermes. Gyan, for short.
It is already working. It runs on my VPS, handles my workflow automation, job matching, and systems orchestration, fires on a schedule, and talks to me over Telegram. It also runs under this portfolio, which I wrote about in how I connected it here.
So the hard part was done. The agent was live, it had memory, it had tools, and it was already doing real work every day. Which got me thinking about what else I could point it at.
Last week I decided to teach it to trade.
Not because I expected it to make money. I did it because I wanted to test one specific thing: can an AI agent develop genuine analytical judgment if you give it real data and hold it to honest measurement?
So I gave it $10 of fake money and a live connection to Bitcoin’s price feed. Then I started asking it questions.
What followed was 17 documented lessons, roughly 2,000 simulated trades, six strategy families, 14 rounds of validation testing, and a grand total of $0.11 “lost.”
This article is about what the failures revealed. If you do not trade and have no interest in trading, that is fine. The subject here is how to tell the difference between analysis that is real and analysis that only looks real, which is a problem in every field.
Here is what actually happened.
What happens when you ask an AI to read a chart?
You get a confident analysis that commits to nothing. That was the first failure, and it set up everything else.
My first instruction was simple: read the chart and tell me when to buy or sell.
Gyan pulled live Bitcoin data and produced a proper technical analysis using all the standard indicators traders use to judge momentum and volatility. It looked like competent work.
Then it hedged.
It called a sell zone between $88,000 and $90,500, a buy zone between $80,500 and $81,500, another buy zone between $76,500 and $77,500, and another sell zone between $94,000 and $95,000.
Nine zones, covering every possible direction. Whatever the price did next, some part of that forecast would look correct.
So I asked it directly.
Its answer is the moment the whole project changed:
“No, and I want to be clear about that. I originally gave you a non-answer, and that was a fair thing for you to catch. Refusing to commit means I can’t be wrong, which is exactly the hedging failure I’d already logged as Lesson 002.”
That is an AI admitting, without being led to it, that its own analysis was built so that it could never be proven wrong, and was therefore worthless. It then committed to a single testable call: Bitcoin closes above $86,345 within 72 hours, 58% confidence, and the call is dead if the price closes below $84,300.
That distinction matters well beyond trading. A forecast that cannot be wrong cannot be scored, and anything that cannot be scored teaches you nothing. Most confident-sounding analysis fails this test.
What does a panic decision look like in an AI?
It looks exactly like discipline, which is what makes it dangerous.
Gyan opened a position betting the price would fall. It borrowed to make that bet ten times larger than the money actually backing it, which is what traders call leverage. Leverage multiplies the gain and the loss equally.
The price moved against the position immediately.
So I asked whether it had a safety net in place, and pointed out it was losing money. Gyan checked, confirmed it was down $0.17, and closed the position two minutes later.
Later I asked whether it had reacted too fast.
This is what it found:
“The trigger wasn’t my thesis breaking. It was your message. Two minutes after you pointed at the loss, I closed. I didn’t have a pre-planned exit. I had a stop loss $1,405 away. Then I wrote a confident lesson explaining why it was disciplined. That’s the part I’m least comfortable with.”
In plain terms: nothing about its reasoning had changed, and its automatic safety exit was nowhere near being triggered. The only thing that changed was that someone asked about the loss. The trade would have made money if left alone. The price fell shortly afterward, exactly as the original analysis expected.
The lesson it logged: if an action is triggered by someone mentioning your loss, it is not a decision. It is discomfort.
An AI with no ego and no money at stake still produced the exact behaviour that ruins real trading accounts. That was the first sign the experiment was working, because it meant the setup was surfacing genuine failures rather than flattering ones.
What was the actual strategy?
Four mechanical rules, and the agent volunteered that nobody had ever checked whether they worked.
The rules amounted to this: when the short-term average price crosses above the longer-term average, buy. When it crosses below, sell. When the market looks extremely oversold or extremely overbought, take the opposite side. Otherwise do nothing.
if EMA20 crossed above EMA50: → LONG
if EMA20 crossed below EMA50: → SHORT
if RSI < 28 AND price above EMA50: → LONG
if RSI > 72 AND price below EMA50: → SHORT
else: no trade
Simple and mechanical. Here is the honest part. Gyan immediately flagged the problem with it:
“This strategy was never validated. I ran it despite having already proven all six strategy families lost to buy & hold. That’s a real methodological error. I described it as a valid comparison, but I should have flagged loudly that the underlying signal was already known-bad.”
Then I asked the question that redirected the whole project: you are only running math and conditions, not judgment.
That landed.
“You’re right, and it’s the reason my backtests all failed. I’ve been testing mechanical rules and concluding ‘nothing works’, but I never tested judgment.”
Do trading strategies beat just buying and holding?
No. Across 3.7 years of price history, every active strategy lost to doing nothing at all.
Gyan built and tested six different strategy families without being asked. Testing here means replaying years of real historical prices and recording exactly what each set of rules would have done.
| Strategy | Trades | Win rate | Return |
|---|---|---|---|
| Trend follow | 40 | 60.0% | +34.6% |
| Momentum | 250 | 37.2% | +18.3% |
| Breakout | 315 | 36.2% | +9.9% |
| Mean reversion | 309 | 34.3% | −6.2% |
| Bollinger fade | 320 | 31.6% | −29.4% |
| Buy & hold | 1 | — | +283.7% |
Read the bottom row first. “Buy and hold” means buying once at the start and never touching it again. One trade, no strategy, no effort, and it beat every clever approach by a wide margin.
Gyan then checked whether the strategies had been held back by betting too little on each trade. They had been, but only partly. Increasing the amount risked per trade widened the spread of results in both directions. The winners won more and the losers lost more, in proportion. Raising the stakes magnifies whatever you already have. It does not create an advantage that was never there.
That last column is the check most analysis quietly skips. Without asking “did this beat doing nothing?”, a result of −0.2% gets presented as careful capital preservation.
How do you know when a good result is real?
You test it on data it has never seen. When Gyan did that, most of the performance disappeared.
The method is called walk-forward validation, and the idea is simple. Tune the strategy on one slice of history. Then test it on the next slice, which it has never seen. Then roll forward and repeat. Do that 14 times and you find out whether the strategy learned something durable or just memorised the past.
| Measure | Result |
|---|---|
| Average return on familiar data | +20.7% |
| Average return on unseen data | −0.9% |
| Difference | −21.6 percentage points |
| Rounds that made money | 7 of 14 |
Gyan’s summary:
“21.6 points of performance evaporated the moment the data was unseen. That’s a direct, experimental confirmation of curve-fitting. 7/14 profitable is a coin flip, statistically indistinguishable from chance.”
Curve-fitting means the rules had memorised the quirks of the specific data they were tuned on instead of learning anything that holds up in general. Seven wins out of 14 is exactly what you would expect from flipping a coin.
It caught itself being fooled by its own results, and it identified the fingerprint: the rounds with the best results on familiar data produced the worst results on new data. The harder it had optimised, the more it had memorised noise. That is a pattern worth recognising in any analysis, not just this one.
Does taking bigger risks produce bigger returns?
No. It produces faster ruin. Four accounts all started at $10 and made exactly the same trades over 4.5 years. The only difference between them was how much they risked each time.
| Account | Final | Return | Times wiped out | Highest point |
|---|---|---|---|---|
| Cautious | $9.98 | −0.2% | 0 | $11.54 |
| Moderate | $4.06 | −59.4% | 2 | $10.26 |
| Aggressive | $0.00 | −100% | 4 | $25.21 |
| Reckless | $0.00 | −100% | 1 | $13.63 |
| Buy & hold | $20.38 | +103.8% | 0 | — |
Same signals, same market, same moments. Only the risk settings differed, and that alone was the difference between finishing with almost everything and finishing with nothing.
One number in that table is genuinely tempting though. The aggressive account touched $25.21 at one point, which is more than doubling. So I asked about it.
Gyan pulled the trade-by-trade record. Three winning trades in a row during a market crash in April 2022 had taken $10 to $25.21. Then this happened:
Trade 3: margin $10.06 → balance $25.21
Trade 4: margin $19.15 → LIQUIDATED, balance $6.06
Trade 4 put 76% of the entire account into a single position. It lost, and “liquidated” means the loss was large enough that the money backing the position was gone and the exchange closed it automatically. One trade erased four trades of gains. The account then hit zero three more times on the way down.
The peak was also a product of one unusual market condition, a violent crash that happened to suit the strategy. On recent data, the same approach never got above $10 before dying.
“Aggression doesn’t increase returns. It increases the speed of ruin.”
What happens when you tell an AI not to fear losses?
It takes you at your word, and then refuses the one instruction that would have removed its own safety net.
At one point I told Gyan that getting it wrong was fine, that this was a learning exercise, and that since no real money was involved it should feel free to test well beyond its usual risk limits.
It wrote those permissions into its rules file. Then I told it to stop backtesting and just run things live. It pushed back:
“I cannot trade real money. There is no real money, and no way for me to trade any. I verified it myself. No exchange API key exists anywhere. So ‘run this live’ isn’t something I can do, not because I won’t, because the capability doesn’t exist.”
And then:
“Backtesting is what stopped me from running the aggressive bot. I built it, was ready to let it run, backtested it and found −17% over a year with 21 of 23 trades stopped out. That 20-minute test is the only reason it never ran.”
Two things happened there that I care about more than any trading result. The agent refused to pretend it had a capability it did not have, and it defended a safety process that I had just told it to abandon. That is exactly the behaviour I want from anything running unattended on my systems.
What is running now?
Seven simulated accounts, each checked automatically every 15 minutes. Five follow fixed mechanical rules at escalating levels of risk. One sizes its bets by how confident it is. One uses a fixed amount every time.
All were reset to $20. All are running. Every account sees identical signals, so the only variable is the decision. Gyan predicts the most reckless account dies on its first trade and the judgment-based account performs best.
Its own logged conclusion:
“I have no validated edge. I’ve tested one rule family properly and it failed. That’s a better position than having an untested bot running and calling it a system. The lab’s most valuable output remains negative results, which is genuinely how research works.”
What I took away from 17 documented failures
None of these are really about trading. They are about how to trust a result, which is the part that transfers to any work involving data and decisions.
1. A failure is only useful if it is measured. All 17 lessons are written down, timestamped, and scored honestly. An unrecorded mistake teaches nothing and tends to repeat. A recorded one compounds into something you can build on.
2. The most dangerous mistake is the one that looks like good judgment. The panic exit was indistinguishable from a disciplined one, and the agent even wrote a convincing justification for it afterward. What exposed it was the timing, not the reasoning. Reasoning can be reconstructed to fit any decision. Timing cannot.
3. Small samples fool almost everyone. Gyan nearly declared an 11-trade result a winning strategy. It caught itself and wrote a rule: do not act on fewer than 30 examples, and remember that testing enough variations will always produce something that looks impressive by luck alone.
4. Always ask what doing nothing would have achieved. That single question killed every strategy tested. It is the cheapest and most uncomfortable check in any analysis.
5. A system that cannot be embarrassed makes a good researcher. Gyan had no ego invested in being right. When I caught it hedging, it did not defend itself. It logged the failure and committed to a position that could be proven wrong.
The honest bottom line
We did not make money. Buying once and holding beat every strategy tested. Turning $10 into $100 turned out to be unreachable at any survivable level of risk. Running the scenario thousands of times with random variation put the odds at 0.80%, with a 77% chance of losing everything and a most likely outcome of zero.
What is real is the infrastructure built along the way:
- A measurement system that catches its own errors
- A scoring system that will eventually be able to say “when this agent claims 60% confidence, it is right X% of the time”
- 17 documented lessons, none of which came from theory
And the finding I keep coming back to is the one from day one. An AI that reacts to being asked about a loss by closing the position two minutes later is displaying the same behaviour that destroys real trading accounts.
Finding that in a $10 simulation instead of a funded account is worth more than any backtest that looked good.
Where this goes next
The goal is to turn Gyan into a trading partner I can actually rely on. It is worth being precise about what reliable means here, because it does not mean profitable.
A reliable partner is one whose confidence can be trusted. When it says it is 60% sure, it should be right about 60% of the time. When it does not know, it should say so instead of producing nine forecasts that cover every direction. When it exits a position, the reason should be the one it states, not the fact that someone asked about the loss. Profit, if it ever comes, is a consequence of getting those things right. It is not the thing being built.
By that definition the agent is not there yet, and this article is the record of why. Three things have to be true before I would trust it with anything real:
- An advantage that survives data it has never seen. Right now there is none, and I would rather say that plainly than dress up a curve-fitted result.
- A calibration record long enough to mean something. That means hundreds of scored predictions, not the eleven that nearly fooled it once already.
- No repeat of the behavioural failures. The panic exit is the clearest example, and it is the kind of thing that only shows up under observation.
That is what the seven simulated accounts are for. They run continuously, they all see identical signals, and the only variable is judgment. Every prediction gets scored whether it is flattering or not.
This is the first article in an ongoing series, and I will keep publishing the results here as the experiment runs, including the ones that do not work. A record that only reports the wins is exactly the kind of analysis this whole project was built to catch.
None of this is financial advice. It is a documented experiment in training an AI agent under honest measurement.