How the BasicMode bot returned +29.15% on ETHUSDT - a 365-day 2023 backtest

CompletedLoses to ETHUSDT B&H· α -60.98%

BasicMode5/18/2026, 7:42:37 PM

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

ETHUSDT | 4BasicMode.json | 2023-01-01 - 2023-12-31 | +29.15% | 57066 trades | 100% WR

Final Value
12915.14 USDT
Return
+29.15%
Profit
+2,367.54 USDT
Trades
57066
Win Rate
100.0%
Open Orders
394
Best Trade
+0.301947 USDT
Worst Trade
+0.014788 USDT
Max Drawdown
-14.95%
Profit Factor
Sharpe
1.29
Wins / Losses
57066 / 0
TP / SL / TSL
57066 / 0 / 0
Total Fees
881.47 USDT
Max Streak W/L
57066 / 0
Hold P50 / P95
2.6h / 11.4d

ETHUSDT Backtest - unCoded Crypto TradingBot

Strategy: BasicMode | Period: 2023-01-01 to 2023-12-31 | Starting Capital: 10,000.00 USDT | Final portfolio value (incl. open positions): 12,915.14 USDT | Return: +29.15% | Closed trades: 57,066 (394 orders still open - excluded from win rate) | Closed-trade win rate: 100.0% | Best Trade: 0.3019 USDT | Worst Trade: 0.0148 USDT | Realized profit (closed trades only): +2,367.54 USDT | Max Drawdown: -14.95% | Sharpe Ratio: 1.29 | Total Fees: 881.47 USDT

Detailed Summary

Backtest ETHUSDT (Mode: 4BasicMode.json) Period: 2023-01-01 00:00:01 to 2023-12-31 23:59:59 Starting balance: 10,000.00 USDT Final value: 12,915.14 USDT P&L: +2,915.14 USDT (+29.15%) Result: PROFIT Completed trades: 57066 Open orders at end: 394 Win rate: 100.0% Avg. profit/trade: 0.041488 USDT Best trade: 0.301947 USDT Worst trade: 0.014788 USDT Total profit (trades only): 2,367.539094 USDT Max drawdown: -14.95% Profit factor: ∞ (no losing trades) Sharpe ratio: 1.29 Total fees: 881.47 USDT Avg hold time: 83.0h TP / SL / TSL: 57066 / 0 / 0 Strategy parameters: Buy trigger: -0.1% from last buy Buy splits: 7 Sell targets: [0.25, 0.35, 0.5, 0.75, 1.0, 2.5, 5.0] Investment per buy: 60.0 USDT Fees: maker 7.5 bps / taker 7.5 bps Elapsed: 836.6s

Strategy Configuration - BasicMode
Buy Trigger: -0.1%
Buy Splits: 7
Investment/Buy: 60 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.01
Step Size: 0.0001
Min Notional: 5
Intrabar Mode: OLHC
Order Latency: 2s
Cooldown: 1
Sell Activate Dist: 0.1%
Sell Cancel Dist: 1%
Sell Zones (7):
+0.25% → 25%+0.35% → 15%+0.5% → 15%+0.75% → 15%+1% → 10%+2.5% → 10%+5% → 10%

Loading equity data...

Daily summary · 365-day aggregate for ETHUSDT

Loading daily summary...

Findings unique to this ETHUSDT run · 100.0% WR · 57,066 trades · 365d

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

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

    The 100.0% headline reflects only the 57,066 trades that closed inside the tested window. 394 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 (2367.54 USDT) and portfolio change (2915.14 USDT) differ - 547.60 USDT of positive 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 547.60 USDT is the piece a reader should not confuse with locked-in profit.

  • +29.15% return but -60.98% alpha vs holding ETHUSDT

    ETHUSDT itself moved +90.13% over the same window. Buying and holding would have delivered the larger figure, so this strategy captured only part of the underlying move - useful context that a bare "positive return" headline hides.

  • High-frequency run: 156 trades per day on ETHUSDT

    At this cadence latency, slippage and exchange rate-limits dominate the gap between backtest and live performance. Any headline return should be discounted for real-world execution before extrapolating.

  • Pain-to-gain: 29.15% return against 14.95% peak drawdown (ratio 1.95x - balanced)

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

  • Sharpe ratio 1.29 - solid risk-adjusted profile for this ETHUSDT window

    Computed from the per-trade PnL distribution of the 57,066 closed ETHUSDT trades in this run. A Sharpe of 1.29 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.

  • Estimated fee spend: ~10271.88 USDT across 57,066 trades at 15 bps total

    Multiplying per-trade notional (~60.00 USDT) by two fills per round-trip, 15 bps total maker+taker cost and 57,066 closed trades yields roughly 10271.88 USDT of exchange fees baked into the 2367.54 USDT realized figure - a run-specific drag that changes with every parameter tweak.

  • Capital multiple 1.292x - 10000.00 USDT ended the window as 12915.14 USDT

    Portfolio value moved by a factor of 1.292 across this 365-day ETHUSDT run. That figure blends the 2367.54 USDT realized trade profit with +547.60 USDT of mark-to-market on positions still open at cutoff - a decomposition unique to this run's closing state.

  • Annualising the 29.15% window return over 365 days projects to +29.2% per year

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

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

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

  • Average edge per closed trade: +6.9 bps of notional

    Dividing the 0.0415 USDT average closed-trade PnL by the ~60.00 USDT per-fill notional puts this configuration's micro-edge at +6.9 bps per round-trip. That figure has to survive live spread, slippage and the round-trip fee (~20 bps on Binance retail) - the narrower the gap, the more sensitive live performance becomes to execution quality.

  • Sell ladder spans 0.25% to 5% in 7 zones (~0.792% step)

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

  • Max deployable notional 420 USDT = 4% of 10000 USDT starting capital

    7 buy splits x 60.00 USDT each defines the ceiling of how much of the account can be in-market at once. That leaves ~96% of the account permanently in stablecoin as a buffer against extended ETHUSDT drawdowns. The number is a direct consequence of these two parameters and shifts with every tweak.

  • Average hold time per closed trade: 3.46 days

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

  • Run snapshot: +29.15% on ETHUSDT via BasicMode between 2023-01-01 and 2023-12-31

    Realized 2367.54 USDT across 57,066 closed trades, 100.0% closed-trade win rate, 394 still-open orders. Starting balance 10000.00 USDT ended at 12915.14 USDT portfolio value. These numbers belong to this run (id 60952131) only - no other backtest in the library shares this exact combination.

  • Configuration fingerprint: buy trigger 0.1% · 7 buy splits · 60 USDT per buy

    Full parameter set for this run - buy trigger 0.1%, 7 buy splits, 60 USDT per buy, 7 sell zones, 15 bps total fees - combined with the ETHUSDT 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 ETHUSDT 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 BasicMode 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

The BasicMode configuration produced a 29.15% return on ETHUSDT in the tested window. This is a positive single-window result; a like-for-like comparison against buy-and-hold of ETHUSDT over the same dates is required to judge whether the strategy added value beyond the underlying price move.

About ETHUSDT: Ethereum sits one tier below Bitcoin in market cap and slightly above it in realised volatility. ETH pairs typically reward strategies that can hold through brief drawdowns to capture larger trend moves.

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

At roughly 156.3 ETHUSDT trades per day this is a high-frequency configuration — fee drag and slippage assumptions become critical when extrapolating to live trading on Binance Spot.

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.3019 USDT. Worst: 0.0148 USDT. Average per trade: 0.0415 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 20.42: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 BasicMode strategy: BasicMode is the balanced reference configuration — moderate position sizing, standard take-profit and stop-loss bands. It's the baseline against which other modes are compared.

Configuration analysis: The BasicMode configuration entered on a 0.1% pullback signal across 7 potential buy splits at 60 USDT each. Total deployable notional is therefore 420 USDT — a position-sizing footprint that is defensive at 4% of starting capital — most of the account stays in stablecoins as buffer. 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 7 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. Maker/taker fees totalling 15 bps were deducted from every fill, so the headline 29.15% 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 2367.54 USDT of realised trade profit on a 10000 USDT starting balance, ending at a portfolio value of 12915.14 USDT. Mechanically annualising the 29.15% window return projects to roughly +29.2% 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: 3.5 days - multi-day holds that ride full ETHUSDT trend legs and absorb overnight funding-style risk. This cadence is a direct consequence of the BasicMode exit ladder interacting with realised ETHUSDT volatility over 365 days - a slower or faster market would shift the same rule set into a different bucket.

Realised vs unrealised split: The +2915.14 USDT change in portfolio value decomposes into 2367.54 USDT of realised trade profit and +547.60 USDT of mark-to-market on 394 positions still open at the cutoff. Roughly 19% of the headline is therefore unrealised - a bar-close in the wrong direction the next minute would repaint it, and that is why "return" and "realised profit" on this page are not the same number.

Break-even fee threshold: Given the realised 2367.54 USDT profit across 57,066 closed trades at ~60.00 USDT notional per fill, the strategy would break even at approximately 3.5 bps of round-trip fees. Binance retail is ~20 bps round-trip (15 bps with BNB discount); the gap between that live cost and the 3.5 bps figure is the fee headroom this configuration has before it turns unprofitable - a metric specific to this run's trade count and per-trade size.

Drawdown recovery ratio: Against a peak equity-curve drawdown of 14.95%, the 29.15% window return yields a pain-to-gain ratio of 1.95x - the run generated more return than drawdown, which is the minimum bar for an operator to sit through the equity dip without abandoning the strategy. 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 +6.49 USDT/day, +45.40 USDT/week and +197.45 USDT/month across the 365-day ETHUSDT 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 ETHUSDT 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 BasicMode 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 ~9 minute bars. That density is what pins reproducibility: rerunning the same BasicMode configuration on the same ETHUSDT bar range with the same intrabar and latency settings will yield the same fills to the tick, which is why the run identifier 60952131 deterministically anchors this URL.

Configured backtest window: approximately 12.0 months (365 days from `config.from` to `config.to`) of ETHUSDT 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: ETHUSDT is a deeply-liquid USDT-quoted pair on Binance, so the simulated fills here translate well to live execution at retail size. The high trade frequency means cumulative slippage and exchange-side latency will erode a few percent of the headline return over a full year — budget for that gap. 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 29.15% return on ETHUSDT a good backtest result?
Not on its own. The 29.15% return looks strong in isolation, but simply holding ETHUSDT over the same window returned +90.13%, so this configuration underperformed buy-and-hold by -60.98% (negative alpha). A high headline return is not a good result when holding the coin would have done better.
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 ETHUSDT backtest?
This backtest already covers about a full year (365 days), so the annualised figure is essentially the total return of 29.15% itself, not a projection. A single year is not predictive of future years.
Can I run this exact BasicMode 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 ETHUSDT?
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 BasicMode 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 ETHUSDT run?
Peak equity-curve drawdown reached 14.95% 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 +29.15% end-of-window return.
What does the Sharpe ratio of 1.29 say about this configuration?
Sharpe measures return per unit of trade-level volatility. At 1.29 this ETHUSDT run sits in the solid 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 394 orders still shown as open?
The backtest ended at 2023-12-31 with 394 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 BasicMode configuration deploy per position cluster?
Up to 420 USDT can be in-market at once (7 splits x 60.00 USDT). Against the 10000 USDT starting balance that is a 4% notional ceiling - sizing lower for live use is the most common way operators cushion against slippage on the first live drawdown.

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 ETHUSDT.

Related backtests · ETHUSDT · BasicMode

Neighbouring runs from the library - same pair, same strategy, and the exact same ETHUSDT x BasicMode combination.

Top ETHUSDT runs

All ETHUSDT backtests →

Same ETHUSDT x BasicMode config

All ETHUSDT · BasicMode runs →

Top BasicMode runs (any pair)

All BasicMode backtests →