Conclusion
August 25 ended at -¥370 in realized P&L. Across the six bots, there were 19 winning trades and 25 losses, for a 43.2% win rate. Gross profit was +¥494, gross loss was -¥864, and the combined payoff ratio came in at 0.75.
The most revealing comparison was not GateGrid’s 21 losing legs. BoundSniper Bot and BoundSniper Bot2 went a combined five wins without a loss and earned +¥180. ML_ScoreAnalyst then lost -¥252 on one trade. I stopped on that number for a second. Five correct trades from the bridge bots were not enough to pay for one MLScore stop.
MAribbonTrader added another warning from the exit side. It produced one +¥34 winner and three losses totaling -¥191, leaving its payoff ratio at 0.53. The direction calls matter, but on this day the price paid for being wrong mattered more.
Bot Results
■ GateGrid AI -¥141Record: 13W / 21LWin rate: 38.2%Gross profit: +¥280Gross loss: -¥421Payoff ratio: 1.07Max loss: -¥52
■ BoundSniper Bot +¥84Record: 2W / 0LWin rate: 100.0%Gross profit: +¥84Gross loss: ¥0Payoff ratio: N/AMax loss: ¥0
■ LLMBridgeTrader ¥0Record: 0W / 0LWin rate: N/AGross profit: ¥0Gross loss: ¥0Payoff ratio: N/AMax loss: ¥0
■ ML_ScoreAnalyst -¥252Record: 0W / 1LWin rate: 0.0%Gross profit: ¥0Gross loss: -¥252Payoff ratio: N/AMax loss: -¥252
■ MAribbonTrader -¥157Record: 1W / 3LWin rate: 25.0%Gross profit: +¥34Gross loss: -¥191Payoff ratio: 0.53Max loss: -¥79
■ BoundSniper Bot2 +¥96Record: 3W / 0LWin rate: 100.0%Gross profit: +¥96Gross loss: ¥0Payoff ratio: N/AMax loss: ¥0
■ Total -¥370Record: 19W / 25LWin rate: 43.2%Gross profit: +¥494Gross loss: -¥864Payoff ratio: 0.75Max loss: -¥252
Today’s Theme: How Much Does One Wrong Decision Cost?
The six bots use very different ways to reach a trade. GateGrid filters candidates through CatBoost and a local LLM layer. BoundSniper executes TradingView signals. ML_ScoreAnalyst relies on CatBoost scoring. MAribbonTrader asks an AI to read chart context, while LLMBridgeTrader can manage a position with HOLD, CLOSE and REVERSE decisions.
Their losses therefore should not be treated as the same failure.
GateGrid lost frequently but kept each leg relatively small. MLScore traded far less, yet one failed position cost more than the combined profit of both BoundSniper systems. MAribbon had another pattern again: its only winner was too small compared with its three stop-outs.
That is why the next experiment should focus as much on exit behavior as entry accuracy.
GateGrid AI
GateGrid AI closed 34 legs and finished -¥141. It won 13 and lost 21, so the 38.2% win rate was not enough to make the day profitable.
The interesting part is its payoff ratio of 1.07. Average profit was about ¥21.5 while average loss was roughly ¥20.0. Even with a low win rate, the size relationship between winners and losers was close to workable.
The largest single loss was -¥52. There were several stops around -¥50, but no individual leg became a large accident. On the other side, the bot captured wins of +¥69, +¥40 and +¥33. The +¥69 close was a reminder that the grid can recover several small failures when a sequence finally develops.
So I would not start by widening its stop. My first question is why so many candidates still passed the filters. GateGrid is specifically designed to reject weak situations through CatBoost gates, AI_SKIP and OLLAMA_HOLD. If similar market conditions kept producing fresh grids, the selectivity may need more work.
There is some uncertainty here because these numbers are individual grid legs rather than complete grid cycles. I want both statistics eventually. A 13W / 21L leg record does not necessarily mean 34 independent trade ideas failed or succeeded.
BoundSniper Bot
BoundSniper Bot had a clean day: two trades, two wins, +¥84.
The first USDJPY short earned +¥32. The following long earned +¥52. There was no recovery sequence and no losing exit to absorb afterward.
Because BoundSniper is an execution bridge, I do not credit the Python bot itself with predicting those moves. TradingView provides the trading signal; BoundSniper’s job is to transport that decision into MT5 and handle the corresponding exit correctly.
For this type of bot, execution quality matters more than an AI explanation. I want to know whether the TradingView signal and MT5 fill stayed aligned, whether exits arrived on time, and how much of the theoretical signal profit survived actual execution.
LLMBridgeTrader
LLMBridgeTrader recorded no closed trade on August 25.
That means there is no realized result to judge, but its decision log would still be worth checking. This bot can choose NONE before entry and HOLD, CLOSE or REVERSE once a position exists. A blank MT5 trade history cannot tell me whether the model actively rejected setups or simply never received one worth evaluating.
I would leave the trading logic alone based on this day. No trade is not automatically a good decision or a bad one.
ML_ScoreAnalyst
ML_ScoreAnalyst had one realized trade and lost -¥252, the largest individual loss of the day.
This is the trade I would review first. The system entered GBPJPY long and eventually exited at its stop. Later in the day it opened another GBPJPY position that was still open at the report cutoff, so the -¥252 figure represents realized P&L only.
MLScore’s architecture makes the investigation fairly clean. CatBoost decides whether a candidate’s score is high enough to enter, while the execution system applies the configured SL and TP structure. I want to know what score the losing setup received and how far above the threshold it was.
Then comes the exit question. Was the setup genuinely strong but unlucky, or did the fixed stop structure allow too much damage relative to the profits this bot usually captures? One loss cannot answer that, but -¥252 against +¥180 from five BoundSniper wins is enough to make position-level loss sizing a priority.
MAribbonTrader
MAribbonTrader finished -¥157 from four closed trades.
The first AUDCAD trade reached TP for +¥34. After that came three stop-outs: -¥66 on AUDJPY, -¥79 on AUDCAD and -¥46 on EURJPY. Its average loss was about ¥63.7 against an average winner of only ¥34, producing a payoff ratio of 0.53.
That -¥79 exit bothered me more than the 25% win rate itself. MAribbonTrader is built to read the chart as context: short and long MA ribbons, higher-timeframe structure, support and resistance, ranges and available room. It can also return WAIT rather than forcing an entry.
All three realized losses were ultimately handled by hard stops. That does not prove the AI should have exited sooner, but it gives us a useful question for the SQLite logs: did the chart interpretation deteriorate before the SL was reached?
There was also another GBPJPY long still open at the end of the report with negative floating P&L. I am excluding that from the -¥157 realized result. Its exit belongs to the next completed result, not this one.
BoundSniper Bot2
BoundSniper Bot2, running the bb_pullback_rider signal, produced three wins and +¥96.
The individual profits were +¥14, +¥6 and +¥76. The final trade did most of the work. That is more interesting to me than the 100% win rate, because it shows how one decent winner can change the daily economics even inside a small sample.
Together, BoundSniper and Bot2 produced five winning trades and +¥180 without a losing close. They did their part. The fact that the portfolio still ended negative tells us where the risk imbalance sat elsewhere.
Closing Thoughts
August 25 was not a day when every system struggled. Two of the simpler signal-execution bots went five-for-five. GateGrid’s loss size stayed controlled even though its entry frequency was too high.
The damage came from another direction. One MLScore stop was larger than all five bridge-bot winners combined, and MAribbon’s three losing exits were almost twice the size of its only winner on average.
The next improvement may not come from making the bots predict more accurately. I suspect it comes from deciding earlier when a prediction no longer deserves more money.
This is a public episode. If you'd like to discuss this with other subscribers or get access to bonus episodes, visit fxaibotlab.substack.com/subscribe