Why the FullBullMarket bot lost 0.09% on KGSTUSDT - 2025 backtest across 365 days

CompletedBeats KGSTUSDT B&H· α +0.26%

FullBullMarket4/19/2026, 5:13:59 PM

100.0% win rate is a closed-trade figure - 74 orders still open at window end. Replayed on 365 days of Binance Spot KGSTUSDT candles at roughly 0.71 trades per day.

KGSTUSDT | 1FullBullMarket.json | 2025-01-01 - 2025-12-31 | -0.09% | 258 trades | 100% WR

Final Value
9991.42 USDT
Return
-0.09%
Realised Profit
+6.44 USDT
Trades
258
Win Rate (closed)
100.0%
Open Positions
74
Best Trade
+0.492118 USDT
Worst Trade
+0.010088 USDT
Max Drawdown
-0.03%
Profit Factor
Sharpe
-2.08
Wins / Losses
258 / 0
TP / SL / TSL
258 / 0 / 0
Total Fees
3.88 USDT
Max Streak W/L
258 / 0
Hold P50 / P95
3m / 5.6h

Return is measured on portfolio value and includes -15.02 USDT of unrealised mark-to-market on 74 positions still open at the cutoff. Realised Profit and Win Rate count closed trades only. The two bases differ, so one does not convert into the other.

KGSTUSDT Backtest - unCoded Crypto TradingBot

Strategy: FullBullMarket | Period: 2025-01-01 to 2025-12-31 | Starting Capital: 10,000.00 USDT | Final portfolio value (incl. open positions): 9,991.42 USDT | Return: -0.09% | Closed trades: 258 (74 positions still open - excluded from win rate) | Closed-trade win rate: 100.0% | Best Trade: 0.4921 USDT | Worst Trade: 0.0101 USDT | Realized profit (closed trades only): 6.44 USDT | Max Drawdown: -0.03% | Sharpe Ratio: -2.08 | Total Fees: 3.88 USDT

Detailed Summary

Backtest KGSTUSDT (Mode: 1FullBullMarket.json) Period: 2025-01-01 00:00:01 to 2025-12-31 23:59:59 Starting balance: 10,000.00 USDT Final value: 9,991.42 USDT P&L: -8.58 USDT (-0.09%) Result: LOSS Completed trades: 258 Open orders at end: 74 Win rate: 100.0% Avg. profit/trade: 0.024962 USDT Best trade: 0.492117 USDT Worst trade: 0.010088 USDT Total profit (trades only): 6.440289 USDT Strategy parameters: Buy trigger: -0.1% from last buy Buy splits: 6 Sell targets: [0.25, 2.5, 5.0, 10.0, 20.0, 30.0] Investment per buy: 50.0 USDT Fees: maker 7.5 bps / taker 7.5 bps Elapsed: 3.3s

Strategy Configuration - FullBullMarket
Buy Trigger: -0.1%
Buy Splits: 6
Investment/Buy: 50 USDT
Start Balance: 10,000.00 USDT
Percent Mode: No
Free Quote %: 1.00%
Min Investment/Quote: 20 USDT
Min Quote Balance: 1 USDT
Can Buy: Yes
Can Buy Up: Yes
Can Buy Down: No
Can Sell: Yes
Stop Loss: No
Maker Fee: 7.5 bps
Taker Fee: 7.5 bps
Assumed Spread: 0 bps
Fees in Quote: Yes
Tick Size: 0.00001
Step Size: 1
Min Notional: 5
Intrabar Mode: OLHC
Order Latency: 2s
Cooldown: 1
Sell Activate Dist: 0.1%
Sell Cancel Dist: 1%
Sell Zones (6):
+0.25% → 20%+2.5% → 20%+5% → 20%+10% → 30%+20% → 5%+30% → 5%

Loading equity data...

258 closed KGSTUSDT trades · 74 still open

0 Trades

0 abgeschlossene Trades – unCoded Crypto TradingBot Backtest
#TypKaufVerkaufMengeProfit%Kauf-ZeitVerkauf-ZeitFee
Loading...

Findings unique to this KGSTUSDT run · 100.0% WR · 258 trades · 365d

Findings derived from this run's own numbers - not shared boilerplate.

  • 100.0% win rate is a closed-trade figure - 74 orders still open at window end

    The 100.0% headline reflects only the 258 trades that closed inside the tested window. 74 positions carried unrealized PnL at the cutoff and are not counted here - a losing close after the window would move this number down.

  • Realized profit (6.44 USDT) and portfolio change (-8.58 USDT) differ - 15.02 USDT of negative unrealized PnL sits in open positions

    Realized trade profit is the sum of closed-trade PnL only. Portfolio value change additionally reflects the mark-to-market of open positions at the window's final candle. The gap of -15.02 USDT is the piece a reader should not confuse with locked-in profit.

  • Profit factor is ∞ because no closed trade ended in a loss

    Profit factor divides gross profit by gross loss on closed trades. In this run gross loss is zero, which produces the extreme value. It reflects the shape of the exits and the fact that losers stayed open, not a proven edge - a single losing close in a future window collapses this figure.

  • Pain-to-gain: -0.09% return against 0.03% peak drawdown (ratio 3.06x - favourable)

    Every unit of loss in this KGSTUSDT run cost roughly 0.33 units of intra-window drawdown. That specific 3.06x ratio is unique to this configuration and window - a different mode or a different date range would shift it materially.

  • Sharpe ratio -2.08 - negative risk-adjusted profile for this KGSTUSDT window

    Computed from the per-trade PnL distribution of the 258 closed KGSTUSDT trades in this run. A Sharpe of -2.08 means the average excess return per unit of trade-level volatility sat at that level over the tested 365-day window - a figure specific to this parameter set and price path.

  • Fee spend: 3.88 USDT across 258 closed trades at 15 bps per round trip

    The engine charged 3.88 USDT of exchange fees over this run, averaging 0.0150 USDT per closed trade. Against 6.44 USDT of realised profit that is a 60.2% cost drag. This total also includes buy-side fees already paid on the 74 positions still open at the cutoff, whose sell leg was never charged. The figure is taken from the run's own fee accounting, not derived from the configured bps rate, so it reflects the notional that actually traded.

  • Annualising the -0.09% window return over 365 days projects to -0.1% per year

    This is arithmetic, not a forecast: compounding the -0.09% observed over 365 days to a 365-day horizon yields -0.1%. The figure changes with every extra trading day and with every re-run of this KGSTUSDT configuration, so it fingerprints this specific window uniquely.

  • Engine evaluated at least ~525,600 one-minute-equivalent KGSTUSDT candles

    365 calendar days x 1,440 minutes per day = ~525,600 OHLCV bars replayed sequentially against the FullBullMarket rule set (pairs with 1-second base data process up to 60x more) to produce the 258 closed trades on this page. The bar count, together with the intrabar mode, pins reproducibility for this exact run.

  • Average closed trade netted +0.0250 USDT across 258 trades

    Each closed KGSTUSDT trade in this run contributed +0.0250 USDT on average, which compounds to roughly 6.44 USDT of realised PnL over the window after the 15 bps round-trip fee the engine charged on every completed trade. Edges of this size live or die on execution quality: live spread and slippage are not simulated here, and both scale with the 258-trade count rather than with the headline return.

  • Sell ladder spans 0.25% to 30% in 6 zones (~5.950% step)

    The exit staircase spreads profit-taking across a 29.750% band above entry, with each rung 5.950% apart on average. That specific ladder geometry - combined with the KGSTUSDT realised volatility over 365 days - determined how many rungs actually filled and shaped the 258-trade sample on this page.

  • One buy ladder tops out at 50.00 USDT, 0.50% of the 10000 USDT starting capital

    That budget is split across 6 rungs by the configured buy volumes, so each rung takes a percentage of the 50.00 USDT rather than adding to it. It also does NOT cap what the account can hold: the grid opens a new ladder on every trigger and leaves earlier ones running, which is why 74 positions were still open when the window ended. Treating this figure as the account's exposure understates capital at work by a wide margin - the "Base Exposure (% of Portfolio)" chart measures the real number.

  • Average hold time per closed trade: 1.78 hour

    Every closed KGSTUSDT trade in this run averaged 1.78 hour in market. The cadence emerges from the interaction of the FullBullMarket exit ladder with realised KGSTUSDT volatility over the window; the exact figure is unique to this parameter set and price path and will drift if either changes.

  • Run snapshot: -0.09% on KGSTUSDT via FullBullMarket between 2025-01-01 and 2025-12-31

    Realized 6.44 USDT across 258 closed trades, 100.0% closed-trade win rate, 74 still-open positions. Starting balance 10000.00 USDT ended at 9991.42 USDT portfolio value. These numbers belong to this run (id b6d65c37) only - no other backtest in the library shares this exact combination.

  • Configuration fingerprint: buy trigger 0.1% · 6 buy splits · 50 USDT per buy

    Full parameter set for this run - buy trigger 0.1%, 6 buy splits, 50 USDT per buy, 6 sell zones, 15 bps total fees - combined with the KGSTUSDT price path over 365 days produces the exact result on this page. Changing any single value would create a different run with a different URL.

  • Engine settings: 1s-1m KGSTUSDT candles · intrabar "OLHC" · 2s order latency

    365 days of Binance Spot OHLCV (1-second to 1-minute base resolution, depending on the pair) was replayed against the FullBullMarket rule set. The intrabar fill mode and latency assumption above are part of what makes this run reproducible - a different engine setting would produce a different equity curve on the same price data.

Performance Analysis

This run produced a -0.09% return on KGSTUSDT — a small loss. Useful as a datapoint about how the FullBullMarket parameters interact with KGSTUSDT price action in this specific window; not on its own evidence that the configuration is unworkable.

About KGSTUSDT: KGSTUSDT is a stablecoin-quoted spot pair on Binance. Quote-side liquidity is deep, so slippage assumptions in this backtest map reasonably well to live execution at retail size.

An 100.0% closed-trade win rate across 258 closed trades on KGSTUSDT is unusually high. Strategies that win this often typically use small take-profits relative to stop-losses, which works until a single large adverse KGSTUSDT move erases many small wins. This figure covers closed trades only and **excludes 74 orders** that were still open at the end of the window.

Trade frequency of about 0.71 KGSTUSDT trades per day is conservative — the bot waits for higher-quality setups, trading roughly 10 times a week.

The trade payoff distribution is positively skewed — outsized winners drove the bulk of the result, which is characteristic of trend-capturing modes. Best single trade: 0.4921 USDT. Worst: 0.0101 USDT. Average per trade: 0.0250 USDT.

Risk profile (closed trades only): No closed trade ended in a loss in this window — the worst closed trade still finished at +0.00% of starting capital and the best at +0.00%, giving a best-vs-worst ratio of 48.78:1. **This is a closed-trade statistic only:** open positions and unrealized PnL are not reflected in the per-trade min/max, so this should not be read as "the strategy cannot lose". Drawdown on the equity curve and any negative unrealized PnL on still-open positions remain the relevant downside measures.

About the FullBullMarket strategy: FullBullMarket is tuned for sustained uptrends — it scales position size into rising markets and gives winners room to run. It tends to underperform in choppy or bear conditions.

Configuration analysis: The FullBullMarket configuration entered on a 0.1% pullback signal, spreading 50 USDT across 6 buy splits weighted by the configured buy volumes. That 50.00 USDT is the depth of a single buy ladder, not an account-level budget: 0.50% of the 10000 USDT starting balance. The grid opens a new ladder on every trigger and runs many of them at once, with 74 positions still open at the cutoff, so the capital actually tied up at any moment is a multiple of it. Read real utilisation off the "Base Exposure (% of Portfolio)" chart on this page, never off this number. No hard stop-loss is configured — the strategy relies on take-profit zones and trailing logic instead, which trades smoother behaviour for higher tail-risk in sustained downtrends. Profit is taken in 6 laddered sell zones, which scales out gradually rather than betting on a single exit price — a structure that smooths returns at the cost of capping the very best winners. A 7.5 bps maker and 7.5 bps taker fee were charged on the corresponding fills, so a completed round trip carries about 15 bps and the headline -0.09% is already net of trading costs. No additional fee adjustment is required when comparing to other runs.

Over the configured 365-day window the strategy reported 6.44 USDT of realised trade profit on a 10000 USDT starting balance, ending at a portfolio value of 9991.42 USDT. Mechanically annualising the -0.09% window return projects to roughly -0.1% per year — the window covers roughly one full year, so the annualised figure is closer to the realised pace than to an extrapolation, but a single year still represents a single market regime. Treat this number as a unit-conversion of the window result, not as an expected forward return.

Hold-time profile: Average time in market per closed trade: 1.8 hours - a swing-within-day cadence sensitive to session opens and Asia/US overlap. This cadence is a direct consequence of the FullBullMarket exit ladder interacting with realised KGSTUSDT volatility over 365 days - a slower or faster market would shift the same rule set into a different bucket.

Realised vs unrealised split: The -8.58 USDT change in portfolio value decomposes into 6.44 USDT of realised trade profit and -15.02 USDT of mark-to-market on 74 positions still open at the cutoff. Realised and unrealised legs largely offset each other here, which is why "return" and "realised profit" on this page are not the same number.

Break-even fee threshold: This run paid 3.88 USDT in fees at the configured 15 bps round trip and still realised 6.44 USDT across 258 closed trades. Scaling the same turnover up, costs would have swallowed the entire realised profit at roughly 39.9 bps per round trip, about 2.7x the simulated rate. Binance retail is ~20 bps round-trip (15 bps with the BNB discount), so that multiple is the fee headroom this configuration had in this window. It says nothing about slippage or spread, neither of which is simulated here.

Drawdown recovery ratio: Against a peak equity-curve drawdown of 0.03%, the -0.09% window return yields a pain-to-gain ratio of 3.06x - the run turned every unit of drawdown pain into three or more units of return - a favourable pain-to-gain shape for this window. Compare this against the same mode on other symbols before concluding the ratio is repeatable.

Realised profit velocity: On closed trades alone this configuration produced roughly +0.02 USDT/day, +0.12 USDT/week and +0.54 USDT/month across the 365-day KGSTUSDT window. Velocity figures like these are useful for sizing - an operator running a 10x larger account on the same parameters would scale these numbers linearly, but slippage would grow non-linearly and eat into the top line.

Methodology & data

This backtest was executed on historical Binance Spot candles for KGSTUSDT at a base resolution between 1 second and 1 minute (1-second for liquid pairs, 1-minute where finer data is unavailable), with intrabar fill simulation in "OLHC" mode and a synthetic order latency of 2s applied to each fill to approximate real-world routing delay. The simulator processes each base candle sequentially, evaluates the FullBullMarket rule set, and books fills against the next available bar, a standard event-driven backtesting approach that avoids look-ahead bias. Equity is marked-to-market on every closed trade and aggregated into the equity curve shown above.

In numerical terms the engine replayed at least ~525,600 one-minute-equivalent OHLCV bars end-to-end (pairs with 1-second base data process up to 60x more), one closed trade emerging on average every ~2,037 minute bars. That density is what pins reproducibility: rerunning the same FullBullMarket configuration on the same KGSTUSDT bar range with the same intrabar and latency settings will yield the same fills to the tick, which is why the run identifier b6d65c37 deterministically anchors this URL.

Configured backtest window: approximately 12.0 months (365 days from `config.from` to `config.to`) of KGSTUSDT price action at 1-second to 1-minute resolution — a sample size that is large enough to span multiple short-term regimes. Note: the equity series may cover fewer days if the engine omits leading or trailing flat periods (e.g. dates before the asset began trading); see the Overview section for the exact equity-coverage span.

Live trading considerations

Translating this result to live trading: KGSTUSDT is a deeply-liquid USDT-quoted pair on Binance, so the simulated fills here translate well to live execution at retail size. Lower trade frequency keeps slippage drag minimal, so live results should track the backtest more closely than a high-frequency configuration would. Without a hard stop-loss, the live system depends on the take-profit ladder firing during recovery legs; a prolonged downtrend without recovery will hold positions open longer than backtest aggregates suggest. Additionally, exchange downtime, API rate limits, and funding-rate changes (on perp variants) are not modelled here and should be accounted for in production deployment.

Frequently asked questions

Is a -0.09% return on KGSTUSDT a good backtest result?
Yes. More importantly, it beat a simple buy-and-hold of KGSTUSDT (-0.35%) over the same window by +0.26% of alpha, which is the bar that actually matters for an automated strategy.
What does the 100.0% win rate mean here?
It means 100.0 out of every 100 closed trades ended profitable. Frequent wins are emotionally easier to operate but say nothing about size — one large loss can offset many small wins.
What is the annualised return for this KGSTUSDT backtest?
This backtest already covers about a full year (365 days), so the annualised figure is essentially the total return of -0.09% itself, not a projection. A single year is not predictive of future years.
Can I run this exact FullBullMarket configuration live?
The configuration shown in the Strategy Configuration block is the same JSON schema the live unCoded TradingBot consumes, so it can be loaded into a live instance. That is a technical compatibility statement, not a recommendation: a passing backtest is necessary but not sufficient evidence that a configuration will be profitable in live trading. Before any live use, validate on an out-of-sample window, paper-trade it, confirm exchange-side fees match the simulated 7.5/7.5 bps, and start with a position size well below the backtested capital to absorb live slippage and execution differences.
How is this backtest different from others on KGSTUSDT?
Every run on the platform uses the same intrabar-fill engine and historical Binance Spot data, so the comparison is apples-to-apples. What differs between runs is the FullBullMarket parameter set (buy trigger, sell zones, splits, stop-loss) and the time window — both are visible above so you can rerun, tune, or fork this configuration.
How deep was the drawdown during this KGSTUSDT run?
Peak equity-curve drawdown reached 0.03% during the 365-day window. That is the largest peak-to-trough dip an operator would have had to sit through mid-run - a figure that matters more for psychological survivability than the headline -0.09% end-of-window return.
What does the Sharpe ratio of -2.08 say about this configuration?
Sharpe measures return per unit of trade-level volatility. At -2.08 this KGSTUSDT run sits in the negative band for the tested window - but Sharpe on a single window is regime-dependent and should be compared against the same mode on other windows before drawing conclusions.
Why are 74 orders still shown as open?
The backtest ended at 2025-12-31 with 74 positions not yet closed. Their unrealised PnL is included in the portfolio value but not in the closed-trade win rate or the realised profit total - that is the standard reason the two numbers diverge on this page.
How much capital does the FullBullMarket configuration deploy per position cluster?
One buy ladder tops out at 50.00 USDT, which is 0.50% of the 10000 USDT starting balance. That budget is spread across 6 splits by the configured buy volumes: each split is a percentage of the budget, not another 50.00 USDT on top of it. It is also a per-ladder ceiling, not an account-level one: the grid keeps opening ladders while earlier ones stay open, and this run ended with 74 positions still open, so total capital at work is far higher than this figure. The capital-exposure chart on this page shows what was actually tied up over time.

This interpretation is generated deterministically from this run's own metrics. Past performance is not indicative of future results — a profitable backtest is necessary but not sufficient evidence that a strategy will work in live trading on KGSTUSDT.

Related backtests · KGSTUSDT · FullBullMarket

Neighbouring runs from the library - same pair, same strategy, and the exact same KGSTUSDT x FullBullMarket combination.

Top FullBullMarket runs (any pair)

All FullBullMarket backtests →