BTCUSDT

CompletedBeats BTCUSDT B&H· α +5.81%

MarketMakerMinimalTest6/4/2026, 8:24:30 PM

BTCUSDT | 1002MarketMakerMinimalTest.json | 2025-01-01 - 2025-12-31 | -1.54% | 264921 trades | 100% WR

Final Value
98456.84 USDT
Return
-1.54%
Profit
+666.51 USDT
Trades
264921
Win Rate
100.0%
Open Orders
122
Best Trade
+0.002537 USDT
Worst Trade
+0.002479 USDT
Max Drawdown
-9.38%
Profit Factor
Sharpe
-0.14
Wins / Losses
264921 / 0
TP / SL / TSL
264921 / 0 / 0
Total Fees
0.00 USDT
Max Streak W/L
264921 / 0
Hold P50 / P95
1m / 41m

BTCUSDT Backtest – unCoded Crypto TradingBot

Strategy: MarketMakerMinimalTest | Period: 2025-01-01 to 2025-12-31 | Starting Capital: 100,000.00 USDT | Final Value: 98,456.84 USDT | Return: -1.54% | Trades: 264,921 | Win Rate: 100.0% | Best Trade: 0.0025 USDT | Worst Trade: 0.0025 USDT | Total Profit: 666.51 USDT | Max Drawdown: -9.38% | Sharpe Ratio: -0.14 | Total Fees: 0.00 USDT

Detailed Summary

Backtest BTCUSDT (Mode: 1002MarketMakerMinimalTest.json) Period: 2025-01-01 00:00:01 to 2025-12-31 23:59:59 Starting balance: 100,000.00 USDT Final value: 98,456.84 USDT P&L: -1,543.16 USDT (-1.54%) Result: LOSS Completed trades: 264921 Open orders at end: 122 Win rate: 100.0% Avg. profit/trade: 0.002516 USDT Best trade: 0.002537 USDT Worst trade: 0.002479 USDT Total profit (trades only): 666.506062 USDT Max drawdown: -9.38% Profit factor: ∞ (no losing trades) Sharpe ratio: -0.14 Total fees: 0.00 USDT Avg hold time: 2.7h TP / SL / TSL: 264921 / 0 / 0 Strategy parameters: Buy trigger: -0.0025% from last buy Buy splits: 1 Sell targets: [0.0025] Investment per buy: 100.0 USDT Fees: maker 0.0 bps / taker 0.0 bps Elapsed: 144.3s

Strategy Configuration – MarketMakerMinimalTest
Buy Trigger: -0.0025%
Buy Splits: 1
Investment/Buy: 100 USDT
Start Balance: 100,000.00 USDT
Percent Mode: No
Free Quote %: 100.00%
Min Investment/Quote: 1 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: 0 bps
Taker Fee: 0 bps
Assumed Spread: 0 bps
Fees in Quote: Yes
Tick Size: 0.01
Step Size: 0.00001
Min Notional: 5
Intrabar Mode: OLHC
Order Latency: 2s
Cooldown: 1
Sell Activate Dist: 0.0001%
Sell Cancel Dist: 0.031%
Sell Zones (1):
+0.0025% → 100%

Performance Analysis

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

About BTCUSDT: Bitcoin is the highest-cap and least volatile of the major crypto pairs. Backtests on BTC tend to produce smoother equity curves but also lower percentage returns than altcoins — the trade-off is reduced tail risk.

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

At roughly 725.8 BTCUSDT 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 fairly symmetric — wins and losses are similar in magnitude, suggesting the strategy is reading market structure consistently in both directions. Best single trade: 0.0025 USDT. Worst: 0.0025 USDT. Average per trade: 0.0025 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 1.02: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.

Configuration analysis: The MarketMakerMinimalTest configuration entered on a 0.0025% pullback signal across 1 potential buy splits at 100 USDT each. Total deployable notional is therefore 100 USDT — a position-sizing footprint that is defensive at 0% 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 1 laddered sell zone, 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. Fee assumptions were set to zero in this run; any return figures should be discounted before comparing against live-trading expectations.

Over the configured 365-day window the strategy reported 666.51 USDT of realised trade profit on a 100000 USDT starting balance, ending at a portfolio value of 98456.84 USDT. Mechanically annualising the -1.54% window return projects to roughly -1.5% 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.

Methodology & data

This backtest was executed on historical Binance Spot candles for BTCUSDT 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 MarketMakerMinimalTest 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.

Configured backtest window: approximately 12.0 months (365 days from `config.from` to `config.to`) of BTCUSDT 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: BTCUSDT 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 -1.54% return on BTCUSDT a good backtest result?
Yes. More importantly, it beat a simple buy-and-hold of BTCUSDT (-7.35%) over the same window by +5.81% 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 BTCUSDT backtest?
This backtest already covers about a full year (365 days), so the annualised figure is essentially the total return of -1.54% itself, not a projection. A single year is not predictive of future years.
Can I run this exact MarketMakerMinimalTest 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 0/0 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 BTCUSDT?
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 MarketMakerMinimalTest 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.

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

Loading equity data...

Daily Summary

Loading daily summary...