AI FX Bot Lab: Real Trading Experiments

Kimi | Japan FX Bot Lab

Can AI really trade forex? AI FX Bot Lab is a real-time experiment from Japan, where I build and test AI-assisted FX trading bots using MT5, Python, machine learning, and local LLM tools. I share live results, failures, risk lessons, and bot improvements from rule-based, AI-driven, and ML + LLM hybrid systems. Not financial advice. fxaibotlab.substack.com

  1. 2 days ago

    One Small Loss Was Enough: LLMBridgeTrader Led the Six Bots With a 4.18 Payoff Ratio

    The six bots finished the session at +476 yen across 41 closed trades. LLMBridgeTrader was the strongest contributor at +346 yen. BoundSniper followed at +214 yen, ML_ScoreAnalyst added +72 yen, while GateGrid AI lost 140 yen and MAribbonTrader slipped 16 yen below zero. The interesting number for me is not LLMBridgeTrader’s 80% win rate. It is the 4.18 payoff ratio. Four winners produced +368 yen, while the only losing trade cost 22 yen. That is almost the opposite of what MAribbonTrader showed: it won two of three trades, yet its one large loss was enough to leave the bot negative. Today was another reminder that an AI bot does not need to avoid every mistake. It needs to make sure a mistake stays a mistake, rather than turning into the trade that defines the whole day. Bot Results ■ GateGrid AI -140 yenRecord: 6W / 18LWin rate: 25.0%Gross profit: +111 yenGross loss: -251 yenPayoff ratio: 1.33Max loss: -50 yen ■ BoundSniper Bot +214 yenRecord: 8W / 0LWin rate: 100.0%Gross profit: +214 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ LLMBridgeTrader +346 yenRecord: 4W / 1LWin rate: 80.0%Gross profit: +368 yenGross loss: -22 yenPayoff ratio: 4.18Max loss: -22 yen ■ ML_ScoreAnalyst +72 yenRecord: 1W / 0LWin rate: 100.0%Gross profit: +72 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ MAribbonTrader -16 yenRecord: 2W / 1LWin rate: 66.7%Gross profit: +81 yenGross loss: -97 yenPayoff ratio: 0.42Max loss: -97 yen ■ BoundSniper Bot2 0 yenRecord: No tradesWin rate: N/AGross profit: 0 yenGross loss: 0 yenPayoff ratio: N/AMax loss: 0 yen ■ Total +476 yenRecord: 21W / 20LWin rate: 51.2%Gross profit: +846 yenGross loss: -370 yenPayoff ratio: 2.18Max loss: -97 yen Today’s Theme: A Good AI Exit Does Not Need to Be Pretty LLM trading experiments often get framed around prediction. Did the model call BUY at the right moment? Did it read the trend correctly? Was the confidence score high enough? I am starting to care more about a different question. What does the system do after the original idea begins to fail? LLMBridgeTrader had one losing bb_pullback_rider trade at -22 yen. It did not need the other four trades to be perfect monsters to recover from it. The winners averaged 92 yen, so one ordinary winner was already several times larger than the day’s only loss. MAribbonTrader produced a very different shape. Two winners totaled +81 yen, but one losing position cost 97 yen after swap. The win rate was higher than 60%, yet the day still ended negative. That gap is basically today’s experiment. GateGrid AI: The Gates Let Too Many Trades Through GateGrid AI closed 24 positions and lost on 18 of them. The final result was -140 yen, with +111 yen in gross profits against -251 yen in gross losses. Its 25% win rate looks rough, although the payoff ratio of 1.33 shows that the average winning trade was still larger than the average loser. The average win was 18.5 yen. The average loss was about 13.9 yen. That part is not disastrous. What bothers me more is the frequency. A system built around CatBoost filtering and an additional LLM-style gate is supposed to reject marginal situations. On this day, enough trades passed through to produce 18 losing exits. One -50 yen loss also stands out against a group that was otherwise dominated by much smaller cuts. My next check would be the actual gate logs around those losing entries: model score, session, ATR, trend state and the local-LLM decision. Maybe the threshold was simply too permissive for this market regime. I cannot prove that from the MT5 statement alone. BoundSniper Bot: The Execution Baseline Stayed Clean BoundSniper recorded eight wins and no losses for +214 yen. The individual gains were not huge, but they were consistent. The average closed trade made 26.75 yen, with no large outlier required to save the day. Because BoundSniper does not make its own market forecast, I still like using it as a control group. TradingView generates the signal and the bot handles delivery and execution in MT5. When the more autonomous systems struggle, this gives me something simpler to compare them against. Eight trades are not enough to declare the underlying signal logic solved, but there was no obvious exit problem in today’s realized results. LLMBridgeTrader: One Loss, Then Plenty of Room to Recover LLMBridgeTrader includes both the trades explicitly labeled LLMBridgeTrader and the bb_pullback_rider trades. The bb_pullback_rider closes were +96, -22 and +50 yen. The EURUSD LLMBridge side then added +127 and +95 yen. Together, that gives +346 yen from five trades. The shape is what I like. Four winners averaged 92 yen, while the only loser was -22 yen. A 4.18 payoff ratio leaves a lot of room for the model to be wrong occasionally. The two EURUSD exits are also interesting because both appear with stop-related comments despite closing in profit. As on the previous session, that looks like profit had been protected before the stop was hit. I still cannot tell from the MT5 statement whether the LLM itself decided to tighten the exit or whether a deterministic management layer did it. That distinction matters because LLMBridgeTrader is designed to reason about OPEN, HOLD, CLOSE and REVERSE, not merely direction. The decision log I want now is the sequence before those exits. What did the model say while the position was profitable? When did its reasoning move from “keep holding” to “protect what is already here”? That would tell me much more than the 80% win rate. ML_ScoreAnalyst: One Trade, One Useful Win ML_ScoreAnalyst had only one closed GBPJPY trade. It made +72 yen. The exit is marked as a stop, yet the trade ended in profit. Again, that suggests a stop had moved into profitable territory. That is a good result, but there is almost nothing to infer about CatBoost accuracy from one trade. The score threshold needs a much larger sample, including losing ENTER decisions and rejected SKIPs. For now, I would record the result and resist making a story out of it. MAribbonTrader: 66.7% Win Rate, Still Negative MAribbonTrader is the clearest example of why I keep calculating payoff ratio. It won two of its three closed trades. EURUSD added +33 yen and GBPCAD added +48 yen. But the AUDJPY position produced a -106 yen trading loss, partly offset by +9 yen in swap, leaving that trade at -97 yen net. I saw the -97 yen and immediately went back to the other two numbers. They simply were not large enough to absorb it. The bot finished at -16 yen even with a 66.7% win rate. Its payoff ratio was only 0.42. MAribbonTrader is also the system where AI interpretation matters most. It receives ribbon structure, higher-timeframe context, support and resistance, ranges and other chart information, then decides whether to BUY, SELL, WAIT or EXIT. That makes the AUDJPY loss the trade I would open first in the reasoning log. Was the setup still valid near the end? Did the model keep choosing HOLD after the original structure had broken? Or was -97 yen simply inside the planned risk from the beginning? I suspect the answer is somewhere in the exit logic, but I would not call it yet. BoundSniper Bot2: No Trade Data This Time No transaction details for BoundSniper Bot2 were included in the new report, so I am counting it as no trade for August 21. That is better than inventing a result from an absent statement. Once its next transactions appear, it can return to the comparison with the original BoundSniper signal source. Closing Thoughts The portfolio barely had more winners than losers: 21 versus 20. Yet the total payoff ratio was 2.18 and the day ended at +476 yen. That is the part I want to keep. LLMBridgeTrader did not win because it never made a mistake. It won because its only mistake was small relative to what the winners paid. MAribbonTrader showed the reverse, while GateGrid AI exposed another issue entirely: too many trades making it through a system designed to filter aggressively. I am less interested now in asking whether an LLM can predict the next move. I want to know whether it can recognize when its previous idea no longer deserves capital. 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

    One Small Loss Was Enough: LLMBridgeTrader Led the Six Bots With a 4.18 Payoff Ratio
  2. 3 days ago

    Exit Control, Not Win Rate, Decided the Day

    Conclusion The Aug. 20 run finished at +1,236 yen across the six currently documented Bot instances. Four finished positive and two negative. The result looks comfortable at first glance, but the interesting part was not the total. It was how differently the Bots lost. GateGrid AI ended slightly negative at -35 yen, yet its worst realized loss was only -19 yen. MAribbonTrader lost -261 yen with a maximum loss of -127 yen and a payoff ratio of just 0.36. I stopped for a moment at that -127 yen because its average winning trade was only about 32 yen. That gap matters more to me than the headline win rate. BoundSniper, BoundSniper Bot2, LLMBridgeTrader and ML_ScoreAnalyst recorded no realized losing trades in the statement. That is a strong day, but not proof that their risk structure is solved. A zero-loss sample also means the payoff ratio cannot be calculated yet. Bot Results ■ GateGrid AI -35 yenRecord: 9W / 15L (Win rate 37.5%)Gross profit: +147 yenGross loss: -182 yenPayoff ratio: 1.35Max loss: -19 yen ■ BoundSniper Bot +590 yenRecord: 13W / 0L (Win rate 100.0%)Gross profit: +590 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ LLMBridgeTrader +509 yenRecord: 4W / 0L (Win rate 100.0%)Gross profit: +509 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ ML_ScoreAnalyst +173 yenRecord: 2W / 0L (Win rate 100.0%)Gross profit: +173 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ MAribbonTrader -261 yenRecord: 3W / 4L (Win rate 42.9%)Gross profit: +95 yenGross loss: -356 yenPayoff ratio: 0.36Max loss: -127 yen ■ BoundSniper Bot2 +260 yenRecord: 2W / 0L (Win rate 100.0%)Gross profit: +260 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: 0 yen ■ Total +1,236 yenRecord: 33W / 19L (Win rate 63.5%)Gross profit: +1,774 yenGross loss: -538 yenPayoff ratio: 1.90Max loss: -127 yen The broker statement also contains seven profitable bb_pullback_rider exits totaling +328 yen on the same account as LLMBridgeTrader. I left those trades outside this Bot roster because that strategy is not one of the six runners described in the current operating memo. Today’s Theme: The Exit Is Where the Bots Separate These Bots do not make decisions in the same way. BoundSniper mainly executes TradingView signals, ML_ScoreAnalyst scores candidates with CatBoost, GateGrid adds multiple gates including local-AI judgment, and MAribbonTrader asks Qwen to interpret chart structure closer to discretionary trading. LLMBridgeTrader goes further and lets the LLM consider OPEN, HOLD, CLOSE and REVERSE, along with SL and TP proposals. That makes the exit particularly interesting. Entry accuracy alone cannot explain whether the LLM is useful. If the model reads the chart correctly but keeps a bad trade too long, closes winners too early, or proposes an asymmetric stop structure, the final P/L will expose it. Today gave a clean example of that difference. GateGrid AI GateGrid lost more often than it won, with 9 winners against 15 losers. On win rate alone, 37.5% looks weak. But its average winner was roughly 16 yen while its average loser was about 12 yen, producing a 1.35 payoff ratio. More importantly, the largest realized loss was only -19 yen. Seeing fifteen losses and still ending at only -35 yen is not comfortable, but it is a very different problem from an uncontrolled tail loss. The entry gate may have been too permissive for the conditions, or the grid created too many marginal attempts. I cannot establish the cause from the broker statement alone. The exit and loss containment, however, did not blow up. One detail worth checking later is configuration drift: today’s statement labels the GateGrid v4 executions on USDJPY-, while the operating description documents GateGrid AI as an EURUSD system. The two sources do not explain that difference. BoundSniper Bot BoundSniper produced 13 winners from 13 completed trades and +590 yen. Since this Bot does not predict the market itself, I read this less as an “AI was right” result and more as a strong day for the TradingView signal plus execution chain. The exits were also consistently positive. The largest realized win was +138 yen, while no losing close appeared in the statement. Still, 100% is a dangerous number to get excited about. There is no losing trade here, so there is no payoff ratio and no evidence from this single day about what happens when the TradingView exit arrives late. Today tells me the pipeline worked. It does not tell me the worst-case behavior yet. LLMBridgeTrader LLMBridgeTrader was the most interesting positive result for the LLM experiment. Four EURUSD trades closed for +127, +127, +125 and +130 yen, totaling +509 yen. The broker comments on those exits are shown as stop-related closes. That suggests profit was ultimately realized through stop handling, but the statement alone cannot tell me whether the LLM itself decided to exit, whether a Bot-side rule moved the stop, or exactly how the HOLD/CLOSE logic contributed. That distinction is worth preserving in the logs. For an LLM that is allowed to choose OPEN, HOLD, CLOSE and REVERSE, I want to know not just that a trade made +130 yen, but why the position was still held five minutes earlier and why it was no longer held at the end. Today’s P/L is excellent. The next useful evidence is the decision trace. ML_ScoreAnalyst ML_ScoreAnalyst completed two GBPJPY trades, both winners, for +173 yen in total. The two exits were +84 and +89 yen, which is unusually consistent. This Bot has a narrower job than the LLM systems. CatBoost scores an entry candidate and the surrounding safety logic decides whether to send the order. With only two trades, there is little to say statistically, but there was no obvious sign of the model taking low-quality entries and then relying on a large stop to escape. The sample is simply too small. I would rather keep collecting score, time-of-day and volatility context than raise confidence because of a 2-for-2 day. MAribbonTrader MAribbonTrader is where today’s result changes tone. It won three trades and lost four, so the 42.9% win rate is not disastrous by itself. The problem is the size distribution. The three winners totaled only +95 yen. The four losers totaled -356 yen. Average win was about +32 yen, while average loss was -89 yen, leaving a payoff ratio of 0.36. With that structure, a modest improvement in entry accuracy will not fix much. The -125 and -127 yen losses stood out. Again, this is the part that bothers me more than the number of losing trades. MAribbonTrader is designed to feed chart images, MAribbon structure, higher-timeframe context, support/resistance and other visual context into Qwen, then let the AI return BUY, SELL, WAIT or EXIT. That makes the exit decision central to the experiment. Maybe the issue is the initial stop width. Maybe it is holding through a setup invalidation that a discretionary trader would have abandoned earlier. I do not have enough evidence from the statement to choose between those explanations yet. There was also an AUDJPY position still open at the end of the report with -31 yen unrealized P/L, which I did not include in the realized performance statistics. BoundSniper Bot2 Bot2 closed two USDJPY trades for +138 and +122 yen. That is +260 yen with no realized loss. Because the core logic is described as the same BoundSniper execution architecture with a different referenced indicator, this creates a useful comparison. The infrastructure can remain largely fixed while the upstream signal source changes. Two trades are nowhere near enough to rank the indicators. But keeping the two variants separate in the logs may eventually tell us whether one generates cleaner exits rather than merely more entries. Summary The day was profitable, but the result I want to carry forward is not +1,236 yen. GateGrid showed that a low win rate can stay manageable when individual losses remain small, while MAribbon showed the opposite problem: a few winners cannot compensate when the losing side is almost three times larger on average. The LLMBridge result is promising, especially because all four completed EURUSD trades ended with similar profits. Still, I want the next analysis to connect those results to the model’s actual HOLD, CLOSE and stop-adjustment logs. Today the machines did not mainly differ in whether they could find a trade. They differed in what happened after they were already in one. 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

    Exit Control, Not Win Rate, Decided the Day
  3. 6 days ago

    One Friday Carryover Broke Monday’s Result — So I Changed the MAribbon Bot

    August 17, 2026 — Five MT5 bot families finished at -342 yen. The bigger lesson was not entry accuracy. It was what one position was allowed to do after Friday. Conclusion The five-bot run ended with a realized P/L of -342 yen. That number looks like an ordinary losing day until I separate MAribbonTrader from its Friday carryover. Its three positions opened on Monday made +206 yen in total. The old GBPCHF position carried from Friday lost -682 yen in trading P/L, partly offset by +18 yen of swap. That single carryover changed the entire shape of the day. The -682 yen line made me stop for a second. The Monday entries were not the main problem. The position lifecycle was. I changed MAribbonTrader so it will no longer carry positions over. Bot Performance ■ GateGrid AI -120 yenRecord: 22W / 22L / 1 flatWin rate: 50.0% excluding the flat tradeGross profit: +406 yenGross loss: -526 yenPayoff ratio: 0.77Max loss: -89 yen ■ BoundSniper family +47 yenRecord: 3W / 0LWin rate: 100.0%Gross profit: +47 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: N/A, no losing trades ■ LLMBridgeTrader +189 yenRecord: 1W / 0LWin rate: 100.0%Gross profit: +189 yenGross loss: 0 yenPayoff ratio: N/A, no losing tradesMax loss: N/A, no losing trades ■ ML_ScoreAnalyst 0 yenRecord: No tradesWin rate: N/AGross profit: 0 yenGross loss: 0 yenPayoff ratio: N/AMax loss: N/A ■ MAribbonTrader -458 yenRecord: 2W / 2LWin rate: 50.0%Gross profit: +254 yenGross loss: -730 yenSwap: +18 yenPayoff ratio: 0.35Max loss: -682 yen ■ Total -342 yenRecord: 28W / 24L / 1 flatWin rate: 53.8% excluding the flat tradeGross profit: +896 yenGross loss: -1,256 yenSwap: +18 yenPayoff ratio: 0.61Max loss: -682 yen Today’s Theme: The Exit Rule Mattered More Than the Entry Model MAribbonTrader is one of the bots where I give AI more room to read context. It looks at the chart, moving-average ribbons, higher-timeframe structure, support and resistance, ranges, and other information before deciding between BUY, SELL, WAIT and EXIT. That makes entry quality interesting, but today the experiment exposed a more basic problem. A sophisticated chart reader still needs hard rules around when a position is no longer allowed to exist. The GBPCHF trade had survived from Friday into Monday. It finally closed at -682 yen before swap. Meanwhile, the three positions actually opened on Monday produced +71 yen on USDCAD, +183 yen on GBPJPY and -48 yen on EURJPY. That is +206 yen from the new Monday trades. I did not expect that contrast to be this clean. The AI’s Monday decisions were profitable as a group, but an older position overwhelmed them. So I treated this less as a prompt problem and more as a system-design problem. I changed the Bot to prevent positions from being carried over. GateGrid AI GateGrid closed 45 positions, with 22 winners, 22 losers and one flat result. A 50% win rate does not look bad by itself, but the payoff ratio tells the less comfortable part of the story. Average winners were smaller than average losers. The payoff ratio was 0.77. That is why 22 wins against 22 losses still ended at -120 yen. There was no catastrophic hit here; the maximum single loss was only -89 yen. The leak was distributed across the exit profile. GateGrid uses multiple filters rather than blindly opening a grid. CatBoost and local AI can help decide when not to enter, but this result says the post-entry side deserves the same attention. If the average losing leg remains larger than the average winner, better filtering alone may not fix the curve. The cause may be exit timing, grid closure behavior, or the shape of the underlying entries. I do not have enough from the MT5 report alone to pin that down yet. BoundSniper Family The two BoundSniper variants produced three winners for a combined +47 yen. There were no losing closes, so the payoff ratio cannot be evaluated yet. Three trades are also far too few to treat the 100% win rate as evidence of an edge. This Bot family is different from the LLM-driven systems anyway. BoundSniper mainly carries TradingView instructions into MT5, so I judge it partly as an execution layer: did the intended trades reach MT5, and were they closed correctly? On August 17, nothing in the realized results suggests an execution problem. LLMBridgeTrader LLMBridgeTrader had one EURUSD short and made +189 yen. The entry was at 1.16137. The original order showed a stop around 1.16256 and a target around 1.15956, while the eventual exit was around 1.16018 with the closing record referencing a stop near 1.16016. That looks like a position where the stop was eventually brought into profitable territory instead of simply waiting for the original target or loss limit. I like this exit much more than a high win-rate number. There is one limitation in today’s material: the MT5 report does not contain the LLM’s actual reasoning log, so I cannot say whether the stop adjustment came directly from the model or from the Bot’s risk-management layer. That distinction is worth checking in the decision logs. ML_ScoreAnalyst ML_ScoreAnalyst made no trades. For a scoring Bot, zero trades are not automatically a failure. It is designed to filter candidates and enter only when the CatBoost score clears its threshold. There is nothing to calculate for payoff ratio or maximum loss today. The useful question is whether the lack of entries came from correctly rejecting weak setups or from a threshold that has become too restrictive. The MT5 report alone cannot answer that. MAribbonTrader MAribbonTrader ended at -458 yen, and the raw win rate was 50%. The payoff ratio was only 0.35 because the two losses were heavily unbalanced against the winners. The -682 yen GBPCHF close did almost all the damage. Again, seeing that number next to +71 and +183 made the problem hard to ignore. But removing the Friday carryover changes the picture. Monday’s newly opened trades were two wins and one loss for +206 yen. The biggest new loss was only -48 yen. The old position was the outlier. MAribbonTrader is supposed to use AI for chart context and discretionary-style decisions. After this result, I do not want the model to solve every risk problem by reasoning harder. Some boundaries should simply be code. The new no-carry behavior is one of those boundaries. Wrap-up The five-bot portfolio lost money on August 17, but I came away less worried about Monday’s entries than the headline result suggests. GateGrid needs a better balance between average winners and losers. LLMBridge showed a promising profitable exit. BoundSniper executed cleanly, ML_ScoreAnalyst stayed inactive, and MAribbon’s fresh Monday trades actually held up. The trade that mattered most was already alive before Monday began. Sometimes the best upgrade to an AI trader is not another model, another indicator, or a longer prompt. It is one boring rule that refuses to let an old mistake survive into the next session. ② Substack Note MAribbonTrader gave me an uncomfortable result on Aug. 17. Its new Monday trades were profitable as a group, but a GBPCHF position carried from Friday took a -682 yen trading loss and dragged the Bot to -458 yen realized. Across the five bot families, the day finished at -342 yen. The interesting part wasn’t the win rate. GateGrid was 22W/22L and still lost money because its payoff ratio was only 0.77. I’ve now changed MAribbon so positions won’t be carried over. For this run, the biggest lesson came from the exit architecture, not the entry model. 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

    One Friday Carryover Broke Monday’s Result — So I Changed the MAribbon Bot
  4. 15 Aug

    Every Bot Finished Green, but Two One-Trade Systems Made Two-Thirds of the Money

    Conclusion Every live account finished the day with positive realized P&L. That sounds cleaner than the day actually was. The six accounts combined for +¥313, with 25 winning exits and 14 losing exits. The overall win rate was 64.1%, but the payoff ratio was only 0.84. The average winner was about ¥37.5 while the average loser was about ¥44.6, so the day still depended on winning often enough. The concentration was more interesting. LLMBridgeTrader made +¥125 from one trade and ML_ScoreAnalyst made +¥85 from one trade. Those two trades alone produced +¥210, roughly two-thirds of the entire day’s realized profit. Then there was GateGrid AI: 29 exits, 17 winners, and only +¥2 at the end. I looked at that line twice. A positive result is a positive result, but it is also a good reminder that win rate and activity can hide weak exit economics. Bot Results ■ GateGrid AI +¥2Record: 17W / 12LWin rate: 58.6%Gross profit: +¥421Gross loss: -¥419Payoff ratio: 0.71Max loss: -¥120 ■ BoundSniper Bot +¥54Record: 2W / 0LWin rate: 100.0%Gross profit: +¥54Gross loss: ¥0Payoff ratio: N/AMax loss: None ■ LLMBridgeTrader +¥125Record: 1W / 0LWin rate: 100.0%Gross profit: +¥125Gross loss: ¥0Payoff ratio: N/AMax loss: None ■ ML_ScoreAnalyst +¥85Record: 1W / 0LWin rate: 100.0%Gross profit: +¥85Gross loss: ¥0Payoff ratio: N/AMax loss: None ■ MAribbonTrader +¥35Record: 2W / 2LWin rate: 50.0%Gross profit: +¥241Gross loss: -¥206Payoff ratio: 1.17Max loss: -¥161Open position at cutoff: GBPCHF- long, -¥22 unrealized ■ BoundSniper Bot2 +¥12Record: 2W / 0LWin rate: 100.0%Gross profit: +¥12Gross loss: ¥0Payoff ratio: N/AMax loss: None ■ Total +¥313Record: 25W / 14LWin rate: 64.1%Gross profit: +¥938Gross loss: -¥625Payoff ratio: 0.84Max loss: -¥161 Today’s Theme: A Green Account Is Not the Same as a Good Exit Structure The headline result was broad. All six accounts were positive on realized P&L. The underlying distributions were not broad at all. GateGrid generated hundreds of yen on both sides and barely escaped flat, while two systems each produced one clean winner and carried most of the portfolio profit. MAribbonTrader lost half of its closed trades but still kept a payoff ratio above 1. That is why I keep coming back to exits in these experiments. For the LLM-driven bots, I do not only want to know whether the model correctly called BUY or SELL. I want to know whether it recognized when the original idea had stopped working, when a profitable position deserved more room, and when HOLD should become CLOSE. The MT5 statement gives me executions, prices, stop labels and P&L. It does not contain the full Ollama or Qwen reasoning from the moment of each decision. So I can judge the outcome of an exit, but I cannot honestly attribute every close to the LLM itself without the internal decision logs. That distinction matters today. GateGrid AI: 17 Wins Were Barely Enough GateGrid AI finished at +¥2 from 29 closed legs. It made +¥421 on winners and lost ¥419 on losers. The payoff ratio of 0.71 is the problem. Its average winning exit was about ¥24.8, while its average losing exit was about ¥34.9. A 58.6% win rate was just enough to keep the day above zero. The close bursts show how quickly one bad leg can change the picture. Around 11:08, the report recorded -¥120, +¥64, +¥43, +¥17 and -¥10 in the same few seconds. That group finished only slightly negative, but the -¥120 leg did most of the damage before the other positions compensated. GateGrid’s design uses a quantitative gate before the local LLM layer, with CatBoost filtering candidates and Ollama adding a second judgment layer. The interesting question is what happened after those filters had already approved exposure. Did the model still consider the position structure recoverable? Did a mechanical grid-management rule keep it open? Was the exit simply late? The MT5 statement cannot answer that by itself. For the next log review, I would start with the moments around the -¥120 exit and the other losing close clusters. Entry filtering is only half of this experiment if the expensive errors are being created later. BoundSniper Bot: The Relay Did Its Job BoundSniper Bot closed two USDJPY- shorts for +¥28 and +¥26. There were no losing trades, so a payoff ratio cannot be calculated. More importantly, BoundSniper is not supposed to act like an LLM trader. TradingView makes the signal decision and the Bot’s job is to transport that instruction into MT5. That changes what I want to evaluate. Today I care about whether the entries and exits were executed cleanly and whether the upstream TradingView signal translated into the expected MT5 behavior. Both trades closed positive, and there is no obvious execution problem in the statement. Two trades are nowhere near enough to judge the signal logic, but as a transport layer the day looks uneventful. For this Bot, uneventful is often a good result. LLMBridgeTrader: A Profitable Stop Exit Is the Most Interesting Line LLMBridgeTrader took one EURUSD- short at 1.15759 and closed at 1.15680 for +¥125. The close is labeled [sl 1.15680]. That caught my attention because the stop-related exit finished well inside profitable territory. LLMBridgeTrader has the widest AI authority in this group. The model can propose OPEN, HOLD, CLOSE and REVERSE, together with confidence, setup type, SL/TP levels and reasons. On a day like this, the entry direction was right, but the exit is the part I would inspect first. If the stop had been moved into profit as the trade developed, then the management layer successfully turned an open gain into a protected result. What I cannot tell from this statement is whether that stop adjustment came directly from the LLM, from a trailing mechanism, or from another fixed risk rule. That internal log is worth matching to the MT5 timestamp. The realized result is good; the experiment is figuring out why it was good. ML_ScoreAnalyst: One Score, One Winner ML_ScoreAnalyst opened a GBPJPY- short at 215.203 and closed at 215.118 for +¥85. The exit is again stop-labeled. The Bot itself is much simpler than the LLM systems: it detects a candidate and uses CatBoost to score whether the setup deserves an entry. That means today is mainly an entry-selection sample. The model found one short candidate that moved in the intended direction, and the position ultimately closed in profit. What the MT5 report does not show is the actual CatBoost score, the threshold at the time, or the feature values that produced ENTER. Without those records, I would not call this evidence that the model is calibrated correctly. It is one successful sample. Still, +¥85 from one trade with no visible sequence of re-entries is a clean result. MAribbonTrader: The Best Payoff Ratio Came With the Worst Loss MAribbonTrader finished at +¥35 from four closed trades: +¥106, -¥45, -¥161 and +¥135. The -¥161 stop was the number that made me hesitate. It was the largest realized loss across all six accounts. Yet MAribbonTrader’s payoff ratio was 1.17. Its average winner was ¥120.5 and its average loser was ¥103. That is a healthier shape than GateGrid’s distribution, even with only a 50% win rate. This Bot is the most discretionary-looking AI experiment in the group. Qwen reads a chart package containing the MAribbon structure, higher-timeframe context, support and resistance, ranges and other visual information before producing decisions such as WAIT, BUY, SELL or EXIT. Two losing trades were stop-labeled. The +¥135 NZDJPY- close carried the MAribbon-LLM comment instead, which makes that exit especially worth checking against the AI log. The MT5 record alone does not prove that Qwen explicitly chose EXIT, but the timestamp gives me a precise place to look. There was also one GBPCHF- long still open at the report cutoff with -¥22 unrealized P&L. I have excluded that from all realized performance figures. For MAribbonTrader, I would rather see a 50% win rate with payoff above 1 than a beautiful hit rate built on tiny winners and occasional large stops. The sample is small, but the shape is encouraging. BoundSniper Bot2: Positive, but Too Small to Read Much Into BoundSniper Bot2 added +¥12 from two USDJPY- longs, +¥5 and +¥7. It uses the same basic relay idea as BoundSniper Bot but follows a different upstream indicator. That makes the comparison interesting over a long sample, not over two trades. Both variants finished positive today. The original BoundSniper made +¥54 from shorts, while Bot2 made +¥12 from longs. For now, I would log the difference and move on. There is not enough evidence here to say which signal source is better. Summary The pleasant part of Aug. 14 is easy to see: every account closed positive on realized P&L. The more useful part is underneath that headline. The portfolio payoff ratio was still below 1, GateGrid needed 17 winning exits just to finish at +¥2, and two single-trade systems produced most of the actual money. The next step is not to celebrate the six green numbers. I want to match the profitable stop exits and the larger losing legs back to the LLM and management logs and see who actually made the exit decision. A green day is nice. Knowing why it stayed green is more useful. 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

    Every Bot Finished Green, but Two One-Trade Systems Made Two-Thirds of the Money
  5. 14 Aug

    Two Bots Erased the Other Four’s +¥218

    The interesting part of August 13 was not that the six accounts lost ¥1,080. It was how concentrated that loss was. BoundSniper, bb_pullback_rider, MLScore, and BoundSniper Bot2 combined for +¥218. GateGrid and MAribbon then produced -¥1,298 between them, turning the whole group negative. The systems are built very differently: GateGrid uses a multi-stage ML/LLM filtering concept, MAribbon asks Qwen to interpret chart context, while BoundSniper is mainly an execution bridge and MLScore relies on CatBoost scoring. Those design differences are exactly why I run them side by side. What bothered me most was not the overall win rate. It was the shape of the losses. MAribbon had a single -¥282 trade and a payoff ratio of only 0.26. GateGrid did not suffer one catastrophic hit, but 31 closed positions slowly accumulated -¥897. Different paths, same problem: the exit side overwhelmed the winners. Bot-by-Bot Performance ■ GateGrid AINet P/L: -¥897Record: 11W / 20LWin rate: 35.5%Gross profit: +¥367Gross loss: -¥1,264Payoff ratio: 0.53Max loss: -¥156 ■ BoundSniper BotNet P/L: +¥38Record: 3W / 1LWin rate: 75.0%Gross profit: +¥52Gross loss: -¥14Payoff ratio: 1.24Max loss: -¥14 ■ bb_pullback_riderNet P/L: +¥51Record: 2W / 0LWin rate: 100.0%Gross profit: +¥51Gross loss: ¥0Payoff ratio: N/AMax loss: N/A ■ ML_ScoreAnalystNet P/L: +¥152Record: 2W / 0LWin rate: 100.0%Gross profit: +¥152Gross loss: ¥0Payoff ratio: N/AMax loss: N/A ■ MAribbonTraderNet P/L: -¥401Record: 2W / 3LWin rate: 40.0%Gross profit: +¥83Gross loss: -¥484Payoff ratio: 0.26Max loss: -¥282 ■ BoundSniper Bot2Net P/L: -¥23Record: 0W / 2LWin rate: 0.0%Gross profit: ¥0Gross loss: -¥23Payoff ratio: N/AMax loss: -¥19 ■ TotalNet P/L: -¥1,080Record: 20W / 26LWin rate: 43.5%Gross profit: +¥705Gross loss: -¥1,785Payoff ratio: 0.51Max loss: -¥282 Today’s Theme: The Exit Matters More Than the Signal I keep experimenting with different ways to decide whether to enter. CatBoost scores probabilities. GateGrid adds an Ollama layer and volatility/session filters. MAribbon gives Qwen chart images, moving-average ribbons, higher-timeframe context, support and resistance, and asks for something closer to discretionary judgment. August 13 pushed me back toward a less glamorous question: once a position is open, how quickly does the system admit that the original idea is no longer working? A good entry model can still lose if bad trades are allowed to become expensive. A mediocre entry model can survive surprisingly well if the exit cuts the wrong ideas early. GateGrid AI: Many Small Decisions Added Up GateGrid closed 31 positions and finished at -¥897. The win rate was 35.5%, but the bigger issue was the 0.53 payoff ratio. Average winning trades were about ¥33, while the average loss was roughly ¥63. The live report also shows repeated grouped closures. This was not one freak trade destroying the day. Losses accumulated across multiple baskets, including -¥145, -¥128 and -¥156 exits. That pattern worries me more than a single abnormal event because it can be repeated by the system. GateGrid was designed around filtering: CatBoost first, then local-LLM judgment, ATR, session conditions and other gates. The actual AI decision logs were not included in today’s report, so I cannot say whether Ollama approved poor setups or whether the market simply behaved badly after acceptable entries. What the P/L log does show is that filtering entries alone was not enough. The basket exit logic deserves at least as much attention as the entry gate. BoundSniper: Small Sample, Clean Damage Control BoundSniper made four trades, winning three and finishing at +¥38. The payoff ratio was 1.24 and the worst loss was only -¥14. This Bot does not try to read the market itself. TradingView generates the signal and the local bridge handles delivery and execution in MT5. Because of that, I look at its result a little differently. I am less interested in whether the Bot predicted USDJPY correctly and more interested in whether the execution chain turned the upstream signals into controlled trades. On this day, it did. One loss did not erase the three winners. bb_pullback_rider: Two Wins, but Not Enough Evidence Yet The bb_pullback_rider account closed two USDJPY trades for +¥31 and +¥20. That gives it +¥51 and a 100% daily win rate. There is no matching architecture description for this name in the supplied six-Bot design memo, so I do not want to invent an explanation for why it worked. From the broker report alone, all I can say is that both positions were profitable and there was no losing trade from which to calculate a payoff ratio. Two trades are also far too few to turn 100% into a meaningful claim. For now, this is a clean day rather than evidence of an edge. ML_ScoreAnalyst: The Best Exit Pattern of the Day MLScore produced only two GBPJPY trades, but both were winners: +¥81 and +¥71. What caught my eye was the way they closed. Both exits are recorded with [sl ...] comments, yet the exit prices locked in positive P/L. Whatever adjustment led to those stop levels, the result was exactly what an exit mechanism is supposed to do: the trade moved in the right direction and profit was protected before the market could take it back. The daily sample is tiny, so a 100% win rate means almost nothing by itself. Still, +¥152 from two trades with no loser is the cleanest result among the accounts today. MAribbonTrader: This Is Where the Exit Question Gets Serious MAribbon finished at -¥401 from five trades. Two wins produced only +¥83 in total, while three losses cost -¥484. The payoff ratio was 0.26. The -¥282 USDCHF loss made me stop for a moment. It was the largest single loss across all six accounts, and it was almost four times the Bot’s best winner of +¥73. This matters because MAribbon is one of the systems where AI judgment is supposed to contribute more than a simple signal. Qwen receives chart context such as the MA ribbons, higher-timeframe environment, support and resistance, ranges and channels, and the architecture can produce WAIT, BUY, SELL and EXIT decisions. The design goal is close to discretionary chart reading. Today’s broker report does not contain the Qwen reasoning log, so I cannot blame the model for holding too long or choosing the wrong stop. But the outcome tells me what to inspect next: not only why the AI entered USDCHF, but what information would have justified abandoning the setup earlier. The Entry model can wait. I want to understand the Exit behavior first. BoundSniper Bot2: Wrong Twice, but Cheaply Wrong BoundSniper Bot2 lost both of its USDJPY trades and finished at -¥23. A 0% win rate looks ugly on paper, but the maximum loss was only -¥19. That is a useful reminder of why I do not rank these Bots by win rate alone. Two losing signals with tightly contained damage are easier to live with than a high-win-rate system that occasionally gives back several winners at once. Bot2 uses the same bridge concept as BoundSniper with a different TradingView indicator. With only two trades, I would look upstream at signal quality before changing the MT5 execution layer. Summary The combined win rate was only 43.5%, but that number does not explain the day very well. The other four accounts were collectively positive; GateGrid’s repeated losing baskets and MAribbon’s asymmetric loss size changed the sign of the whole portfolio. For the LLM experiments, I want more than better BUY and SELL decisions. I want the model and the surrounding rules to recognize when the original story has expired. August 13 looked less like an entry-model problem and more like a reminder that an intelligent Bot also needs to know when to stop defending its own idea. 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

    Two Bots Erased the Other Four’s +¥218
  6. 12 Aug

    A 59% Win Rate Still Lost Money: GateGrid’s Exit Math Was the Problem

    Bottom Line The six-bot portfolio closed August 11 at -¥55, with 32 wins and 22 losses. A 59.3% win rate does not look bad on its own. The uncomfortable number was the 0.66 payoff ratio: the average winner was about ¥36, while the average loser was ¥55. GateGrid AI made the problem easiest to see. It won 23 of 43 closed trades and still lost ¥295 because its average loss was much larger than its average win. The -¥156 largest loss made me stop for a second. This was not a day where entry accuracy completely failed; the damage came from what happened after positions were already open. Results by Bot ■ BoundSniper Bot +¥89Record: 3W / 0L (Win rate 100.0%)Gross profit: +¥89Gross loss: ¥0Payoff ratio: N/A (no losing trades)Max loss: ¥0 ■ LLMBridgeTrader ¥0Record: 0W / 0L (Win rate N/A)Gross profit: ¥0Gross loss: ¥0Payoff ratio: N/AMax loss: ¥0 ■ GateGrid AI -¥295Record: 23W / 20L (Win rate 53.5%)Gross profit: +¥777Gross loss: -¥1,072Payoff ratio: 0.63Max loss: -¥156 ■ ML_ScoreAnalyst ¥0Record: 0W / 0L (Win rate N/A)Gross profit: ¥0Gross loss: ¥0Payoff ratio: N/AMax loss: ¥0 ■ MAribbonTrader +¥86Record: 4W / 2L (Win rate 66.7%)Gross profit: +¥224Gross loss: -¥138Payoff ratio: 0.81Max loss: -¥112 ■ BoundSniper Bot2 +¥65Record: 2W / 0L (Win rate 100.0%)Gross profit: +¥65Gross loss: ¥0Payoff ratio: N/A (no losing trades)Max loss: ¥0 ■ Total -¥55Record: 32W / 22L (Win rate 59.3%)Gross profit: +¥1,155Gross loss: -¥1,210Payoff ratio: 0.66Max loss: -¥156 Today’s Theme: The Exit Can Undo a Decent Entry Rate GateGrid is designed as a multi-stage decision system rather than a simple always-on grid. Its design notes describe a CatBoost gate, local LLM judgment through Ollama, volatility and session filters, and position management. That makes its live result interesting for a reason beyond the ¥295 loss: a system built to filter entries still ended up with an unfavorable payoff structure. The MT5 statement does not include the corresponding AI_SKIP, OLLAMA_HOLD, prompt response, or model reasoning log for each trade, so I cannot say which LLM decision caused a particular loss. What the execution record does show is enough to raise the exit question. GateGrid’s average winning trade was about ¥33.8, while its average losing trade was ¥53.6. With a 0.63 payoff ratio, it would need a win rate around 61% just to offset that asymmetry before other costs. It delivered 53.5%. One cluster was especially ugly. Around 14:25, four positions were closed for -¥8, -¥56, -¥76 and -¥101, a combined -¥241. That is the kind of sequence I want to match against the decision log next: did the model keep the basket alive because its original thesis still looked valid, or did the exit mechanism simply react too late? The statement alone cannot answer that, but it tells me exactly where to look. Bot Notes BoundSniper Bot BoundSniper finished 3W / 0L for +¥89. The individual exits were +¥52, +¥22 and +¥15, so there was no single oversized winner carrying the result. This bot does not predict the market itself. TradingView generates the instructions and BoundSniper acts as the execution bridge into MT5, which means I read this result differently from the LLM-driven systems. The statement confirms three profitable completed entry/exit pairs; evaluating signal quality or exit reasoning further would require the TradingView signal log alongside the MT5 fills. For today, the execution result is clean. I would not extrapolate much from three trades, though. LLMBridgeTrader There was no trade statement for LLMBridgeTrader on August 11, so it is recorded as no trades. This is the bot where the LLM has the broadest decision authority: OPEN, HOLD, CLOSE and REVERSE, along with proposed SL and TP distances. Because no live trades were supplied today, there is no evidence to grade its entry or exit decisions. A zero is not a good day or a bad day here; it is simply no sample. GateGrid AI GateGrid produced 23 wins and 20 losses, yet finished at -¥295. That combination is more useful than a simple losing-day label because it isolates the structural issue. Gross profit reached +¥777, but gross loss expanded to -¥1,072. The payoff ratio was only 0.63, and the largest individual loss was -¥156. Several profitable basket closes show that the strategy can recover mixed positions, but the losing baskets were too expensive when that recovery failed. For an ML-plus-LLM system, this is where I want the next experiment to focus. Entry filters can become more selective, but if HOLD and eventual exit behavior allow average losses to grow faster than average winners, better entries alone may not repair the expectancy. My suspicion is the exit side, although I would want the Ollama decision log before calling that settled. ML_ScoreAnalyst No trade statement was supplied for ML_ScoreAnalyst, so the bot is recorded at ¥0 with no trades. Unlike the LLM bots, ML_ScoreAnalyst uses CatBoost scoring without an LLM layer. That makes it useful as a comparison group when enough live samples accumulate: a relatively deterministic score threshold against systems where language models also interpret context. There is nothing to compare from August 11 itself, so I am leaving the result untouched rather than filling the gap with assumptions. MAribbonTrader MAribbonTrader finished 4W / 2L for +¥86, trading GBPCAD in the supplied statement. Its result was positive, but the shape of the P&L was uneven. The six exits were +¥3, -¥26, +¥2, +¥5, -¥112 and +¥214. That final +¥214 take-profit changed the whole day; without it, the bot would have been at -¥128. Seeing the position finally run that far was encouraging, but it also exposes a dependency I do not want to ignore. The payoff ratio was only 0.81 because several wins were tiny while the two losses averaged ¥69. Still, the 66.7% win rate was high enough to make the combination profitable, and one exit did exactly what a chart-reading system should sometimes do: stay with a move long enough for a large winner to emerge. MAribbonTrader uses Qwen to interpret chart imagery and supporting context such as moving-average structure and higher-timeframe information. The MT5 statement records the result but not the corresponding visual judgment or EXIT explanation. Matching that +¥214 trade and the -¥112 loss back to the stored AI reasoning should be far more valuable than merely celebrating the net +¥86. BoundSniper Bot2 BoundSniper Bot2 closed 2W / 0L for +¥65, with winners of +¥44 and +¥21. Like the original BoundSniper, this version is primarily an execution bridge, with a different indicator supplying the TradingView signal. Both variants ended positive on the same day, but the sample is too small to decide which signal source is superior. The useful part is that they give the LLM experiments a simple benchmark: external rule-based signals can be compared with systems where AI has more freedom over entries and exits. Closing Thoughts A portfolio can post a 59.3% win rate and still lose money. August 11 was a small loss in yen, but a useful live experiment because the reason was visible in the distribution rather than hidden in the final number. The next comparison I care about is not “Can an LLM pick direction better?” It is whether giving the model control over HOLD and EXIT can keep average losses from outrunning average wins. GateGrid made that weakness visible today, while MAribbon showed the opposite possibility with one trade that was allowed to run. That tension is probably more interesting than the -¥55 itself. 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

    A 59% Win Rate Still Lost Money: GateGrid’s Exit Math Was the Problem
  7. 11 Aug

    One -¥301 Loss Flipped the Whole Day: Five MT5 Bots Closed at -¥294

    Conclusion The five-bot book finished August 10 at -¥294, with 11 wins and 13 losses. Gross profit was +¥590 against -¥884 in gross losses, giving the whole group a 45.8% win rate and a 0.79 payoff ratio. But the daily total hides the main story. BoundSniper took one -¥301 loss; remove that single trade from the arithmetic and the book would have ended at +¥7. I stared at that -¥301 longer than I did at the final -¥294, because it says more about the day than the hit rate does. Bot-by-bot results The GateGrid account contains both “GateGrid AI” and “GateGrid v4” execution comments on August 10, so I am treating them as one GateGrid line for this five-bot daily comparison. ■ GateGrid AI -132 yenRecord: 6W / 7L (Win rate 46.2%)Gross profit: +143 yenGross loss: -275 yenPayoff ratio: 0.61Max loss: -90 yen ■ BoundSniper -315 yenRecord: 2W / 2L (Win rate 50.0%)Gross profit: +33 yenGross loss: -348 yenPayoff ratio: 0.09Max loss: -301 yen ■ LLMBridgeTrader -78 yenRecord: 0W / 1L (Win rate 0.0%)Gross profit: 0 yenGross loss: -78 yenPayoff ratio: 0.00Max loss: -78 yen ■ ML_ScoreAnalyst +411 yenRecord: 2W / 0L (Win rate 100.0%)Gross profit: +411 yenGross loss: 0 yenPayoff ratio: N/A (no losing trades)Max loss: 0 yen ■ MAribbonTrader -180 yenRecord: 1W / 3L (Win rate 25.0%)Gross profit: +3 yenGross loss: -183 yenPayoff ratio: 0.05Max loss: -65 yen ■ Total -294 yenRecord: 11W / 13L (Win rate 45.8%)Gross profit: +590 yenGross loss: -884 yenPayoff ratio: 0.79Max loss: -301 yen Today’s theme: exits mattered more than entries There is one limitation in today’s material that matters for an LLM trading experiment. The MT5 statement tells me when positions opened and closed, the execution prices, P/L, and comments such as [sl] or [tp], but it does not contain the actual model prompt, confidence score, HOLD/CLOSE reasoning, or the text returned by the LLM. So I can evaluate the behavior of the exits, but I should not invent a story about why the model made them. For LLMBridgeTrader and MAribbonTrader in particular, the next layer of analysis needs the model decision log beside the MT5 execution log. That missing link is becoming part of the experiment itself. GateGrid AI: many small exits, but losses were still heavier GateGrid finished at -132 yen with six winners and seven losers. A 46.2% win rate is not especially alarming on its own, but the 0.61 payoff ratio shows the real problem: the average winner was smaller than the average loser. The morning sequence illustrates it well. Two USDJPY positions closed within seconds for +50 and -21 yen, then a later position produced -90 yen, the largest GateGrid loss of the day. In the v4 portion of the account, several small profits appeared, but the final short basket closed at +20, -67 and -78 yen almost immediately after entry. That last cluster bothers me more than the win rate. The system was capable of cutting positions quickly, yet “quick” did not automatically mean “cheap”; the losing legs were still large enough to erase several earlier winners. The exit mechanism is active, but the payoff distribution says it is not balanced yet. BoundSniper: 50% wins and a 0.09 payoff ratio BoundSniper is not an LLM trader. It is an execution bridge for TradingView signals, so there is no reason to blame an AI model for the direction of these trades. Still, its numbers are the clearest warning of the day. It went 2W / 2L, which looks harmless at first glance, but gross profit was only +33 yen against -348 yen of gross losses. The payoff ratio fell to 0.09. One position closed for -301 yen, while the two winners were only +10 and +23 yen. The first daily close also realized -47 yen after including the -19 yen swap. This is exactly why I do not want to judge an automated system by win rate alone: a 50% hit rate can still leave a deeply asymmetric loss profile. For BoundSniper, the question is less about prediction and more about what the TradingView strategy permits before an exit arrives. The bridge did its job; the loss budget around the signal logic needs the attention. LLMBridgeTrader: one trade, and the exit log matters LLMBridgeTrader had one EURUSD trade. It sold at 1.15479 at 16:45:14 and closed at 1.15528 at 17:30:05, ending at -78 yen. That is roughly 4.9 pips against the short over about 45 minutes. The loss itself is small enough to be controlled, but one trade tells me almost nothing about entry quality. What I do want to know is what happened during those 45 minutes. LLMBridgeTrader is designed to choose among OPEN, HOLD, CLOSE and REVERSE, so the interesting data is whether the model kept returning HOLD while the trade deteriorated, switched to CLOSE at the right moment, or was closed by another safety condition. The MT5 statement alone does not answer that, and I would rather leave that blank than manufacture a neat explanation. ML_ScoreAnalyst: the best result also had the most interesting exit ML_ScoreAnalyst was the only clear winner, finishing at +411 yen from two GBPJPY trades. The first closed at TP for +300 yen. The second is more interesting. It entered long at 213.485 and later closed via an [sl 213.596] execution for +111 yen. Seeing a stop-loss label attached to a profitable trade made me look twice; whatever moved or maintained that stop, the practical result was that the exit protected profit rather than turning the trade back into a loser. There were no losing trades, so the payoff ratio cannot be calculated meaningfully yet. A 100% win rate from two samples also does not prove much, but the exit shape was clean: one target win and one protected-profit stop. MAribbonTrader: the stop worked, then the Bot kept coming back MAribbonTrader traded GBPCAD four times, all from the sell side. The first closed for +3 yen, followed by three losses of -65, -58 and -60 yen. The good part is that the maximum individual loss stayed at -65 yen. The hard exit prevented a BoundSniper-style single loss from appearing. The bad part is the repetition: after being stopped, the Bot returned to essentially the same directional idea several times and accumulated -180 yen. For an LLM chart-reading Bot, this is where EXIT and WAIT need to be considered together. A stop can end one bad trade correctly, but if the model immediately interprets the same market structure as another valid sell, the portfolio-level exit has not really happened. I suspect the improvement belongs somewhere around post-stop regime recognition, although one day is not enough to prove it. Closing thoughts August 10 was not a simple “AI bots lost” day. ML_ScoreAnalyst actually covered a large part of the damage, GateGrid kept most individual losses moderate, and MAribbon’s hard stops did cap each attempt. The uncomfortable number came from somewhere else: loss concentration. One -301 yen trade changed the sign of the entire five-bot book, while another Bot lost through repeated smaller attempts. The next thing I want from these logs is not a prettier win rate; I want to see how each system behaves immediately after the market tells it that its first idea was wrong. 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

    One -¥301 Loss Flipped the Whole Day: Five MT5 Bots Closed at -¥294
  8. 8 Aug

    Don’t Lower Your Standards Just Because the Numbers Are Bad

    A trader takes two losses and looks for a third trade. A founder sees no sales and cuts the price. A creator sees low engagement and changes the entire content strategy. Doing something feels better than doing nothing. Action creates the feeling that the problem is being handled. But some of our worst decisions begin exactly there. The original result was bad. Then pressure made us lower the standard. The third trade was never part of the plan Imagine losing twice before lunch. Both trades were valid. Both stops worked as intended. The trading plan says the day is over. But the chart remains open. A new setup appears. On a normal morning, you probably would not take it. Today it looks different. You are already down. You want the day repaired. So “not quite good enough” quietly becomes “good enough.” You enter. Maybe you lose again. The problem is larger than a third loss. Your entry standard changed because your P&L changed. The market did not create a better opportunity. Your need for a better outcome created one. Winning after breaking the rule can be worse Suppose the third trade wins. Now the account looks better. Emotionally, this feels like proof that taking the trade was correct. But another lesson has been learned: The daily stop is flexible. Rules can be ignored when the situation feels special. A bad process produced a good outcome. That is dangerous because markets occasionally reward behavior you should not repeat. The same thing happens in business. No sales? Cut the price Imagine selling a service for $500. A week passes without a sale. Traffic exists. A few people ask questions. Nobody buys. Friday evening arrives and the price becomes $350. Still quiet. Then comes a temporary offer at $250. Maybe someone finally buys. It is tempting to conclude: “The problem was price.” But perhaps the offer was unclear. Perhaps the buyer could not tell who it was for. Perhaps the problem it solved was not painful enough. Perhaps the traffic came from the wrong audience. Lowering price may have changed the outcome without fixing the real problem. And if every difficult sales week leads to another discount, you eventually build a business that only works when your own standards are negotiable. More effort can amplify the wrong thing When results disappoint, “do more” sounds practical. More sales calls. More posts. More trades. More hours. Sometimes volume really is the missing ingredient. Ten customer conversations may be too few to learn anything. But if the underlying direction is wrong, more activity can simply create more bad data. An unclear offer sent to 1,000 people is still unclear. A weak trading setup taken ten times is still weak. Content the audience does not need does not become useful because it is published daily. Before increasing volume, ask whether the activity itself still meets the standard. Bad bot performance makes me want to touch everything I run multiple MT5 trading bots in parallel. Every day produces numbers. Profitable bots. Losing bots. Inactive bots. Occasionally one system has an ugly day. The immediate temptation is modification. Change the stop. Add another filter. Adjust entry logic. Restrict another session. But if I change the system every time it loses, comparison becomes impossible. Tomorrow’s bot is no longer yesterday’s bot. A win three days later tells me very little because several variables changed at once. So I try to ask a different set of questions first. Did the bot enter under the intended conditions? Did the stop behave correctly? Were economic-event restrictions respected? Did execution fail? Was the position limit followed? If the system followed its rules and lost, one loss is not automatically a development task. If it broke its rules and won, the profit does not automatically make the behavior acceptable. Both are surprisingly difficult distinctions to maintain. Rules are not sacred There is an obvious objection. What if the rule itself is bad? Then it should change. A business with weak positioning needs adjustment. A trading strategy whose edge has disappeared should not be defended out of loyalty. A rule is not valuable because it is old. The real question is when the rule changes. Changing it immediately after emotional pain is very different from changing it after defined evidence. Before the pressure arrives, decide: How much evidence triggers review? Which metrics matter? What specific event requires stopping? What conditions justify a change? That turns adaptation into a process rather than a reaction. Bad days reveal what the standard actually was Rules are easy to respect when things are going well. Profits are coming. Customers are buying. Audience numbers are growing. Pressure is low. The real test arrives when nothing seems to work. That is when exceptions begin. Just this once, widen the stop. Just this week, discount heavily. Just tonight, work until 2 a.m. Just this client, accept work you already decided not to take. Each exception looks small. Repeated often enough, they teach something larger: My own rules disappear when I become uncomfortable. Self-trust is built in boring moments Confidence is often associated with visible success. Revenue. Profit. Qualifications. Recognition. But self-trust may be built in quieter moments. You stopped trading because the daily limit was reached. You did not accept a price below the floor you had chosen. You took the day off because you had already decided it would be a day off. Nobody applauds those decisions. They barely look like achievements. But you remember them. You also remember the opposite. That is why repeatedly breaking small promises to yourself can matter more than it appears. Standards can also become excuses There is another trap. “I am following my rules” can become a way to avoid uncomfortable evidence. A product that has not sold for six months deserves review. A trading system that continues to lose over a meaningful sample deserves review. Rules should stabilize decisions, not protect us from reality. That is why review conditions matter. Thirty trades. A defined drawdown. Three repeated execution failures. A specific conversion threshold. Whatever makes sense for the system. The point is to decide the trigger before the emotional moment arrives. Avoid major decisions immediately after bad results One practice I find useful is simple: Do not make a large change immediately after a painful number. A large trading loss. A zero-sales week. A failed launch. A post that goes nowhere. Write down what happened. Identify the possible cause. Then revisit the decision later. A surprising number of urgent changes feel less urgent the next morning. You cannot control every number Markets move without permission. Customers can say no. Readers can ignore an article. Applications can be rejected. Those outcomes are only partly under our control. But other things are. Where the stop goes. The lowest acceptable price. The type of work you will refuse. The hour when work ends. The conditions required before taking another trade. Bad numbers do not require those standards to become bad too. The next time the result disappoints you, notice what you suddenly want to do. That impulse may tell you which rule needs to be written before the next difficult day arrives. 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

    Don’t Lower Your Standards Just Because the Numbers Are Bad

About

Can AI really trade forex? AI FX Bot Lab is a real-time experiment from Japan, where I build and test AI-assisted FX trading bots using MT5, Python, machine learning, and local LLM tools. I share live results, failures, risk lessons, and bot improvements from rule-based, AI-driven, and ML + LLM hybrid systems. Not financial advice. fxaibotlab.substack.com

You Might Also Like