↗
TENSORPARADIGMNEURAL MARKET INTELLIGENCE
TENSORPARADIGM RESEARCH / FAIR BENCHMARKS / EXPOSURE AND RISK

Trading Bot vs. Buy and Hold: Are We Comparing the Same Risk?

An executed Bitcoin comparison separates a trading bot, raw hold, a history-calibrated cash mix and a lagged volatility target. Net returns, risk, costs and paired uncertainty.

THE ANSWER AND THE MEASURED COMPARISON

Equal starting capital does not mean equal risk. Our executed 2024–25 Bitcoin bot simulation returned +30.74% with 22.33% annualized daily volatility; an initial 90% buy-and-hold allocation returned +96.28% with 44.83% volatility. A BTC/cash mix calibrated only from earlier history returned +18.10% with 8.88% volatility, while a lagged 10% volatility-target policy returned +17.34% with 10.87% realized volatility. The bot’s lower drawdown than raw hold therefore does not establish superior risk-adjusted performance. A fair comparison fixes investible benchmark rules before examining their results, charges their trading costs and reports the risks actually taken. It does not retrospectively force every path to have the same observed volatility.

WHAT THIS INVESTIGATION RESOLVES

  • Four independent 10,000 USDT accounts share dates, prices, modeled fees and final valuation, while taking different exposure paths.
  • The fixed BTC/cash weight is 18.179425%, estimated from pre-2024 volatility, not chosen to match the bot’s evaluation exposure.
  • Monthly volatility-target weights use only returns ending one full UTC session before execution; a 10% target is not a 10% realized-risk guarantee.
  • Similar average exposure masks different concentration: the bot’s 20.33% average exposure produces much higher volatility than the fixed mix’s 18.56% average.
  • Paired block resampling leaves wide conditional uncertainty; neither benchmark selection nor resampled paths establishes trading alpha.

Ask which alternative the account is supposed to beat

A bot earns 30.74% while buy and hold earns 96.28%. The bot also has roughly half the annualized daily volatility and half the maximum drawdown. That is useful information, but it does not settle whether the bot added value. An investor who wanted less Bitcoin risk could also have held more cash without operating a predictive model.

The benchmark must answer a defined question. Raw hold measures the opportunity cost of not staying heavily invested. A cash mix asks what a simple, smaller allocation would have done. A volatility-target policy asks what a declared adaptive risk budget would have done. Each is a different alternative, not a universal pass/fail standard. SEC investor education similarly emphasizes appropriate benchmarks and the costs included in performance comparisons. [1]

Fairness begins with the information and constraints available when a policy could have been chosen. Matching final realized risk after seeing the whole evaluation can be a descriptive exercise, but it is not an implementable decision rule for that earlier date. We therefore construct the benchmarks using prior observations and keep their realized differences visible.

Keep the existing bot and disclose what was already known

We carry forward the frozen logistic model from our retraining comparison. Its ranking was already known when we retained it for continuity. We did not independently select a new strategy on untouched data, and this article is not an alpha test. The 2024–25 Bitcoin observations have appeared in earlier TensorParadigm research.

The model’s scaler and coefficients are fitted once at the completed 1 January 2024 close using 725 mature rows from a preceding 730-calendar-day window. Its six features summarize completed returns, volatility, range and volume. A probability of at least 0.55 when flat schedules a buy at the next open and an exit five open-to-open days later. It uses 90% of available cash including entry commission, has no leverage or overlapping positions, and blocks entries whose exits exceed the reporting end. The full model specification remains in the linked investigation.

We reuse the retained daily BTCUSDT series from the humblefool06 CC BY 4.0 archive, with 2,142 bars from 20 February 2020 through 31 December 2025. Its normalized SHA-256 is 43655a51e6cb41c2ee087bd947f4cefb7dd4151617a29d7f75a3cda471ae5cbb. The inherited 18 October check matched 731 evaluation candles, or 3,655 OHLCV cells, to Binance’s daily endpoint; we did not repeat that external check. Earlier training observations remain externally unverified and the archive’s upstream venue is not explicitly established. Dates identify UTC sessions by their opening date. [4][5]

Define three alternatives without using future bot risk

Before executing these benchmark accounts, we fixed the following rules. Every account begins with 10,000 USDT at the start of 1 January 2024 and is valued at the 31 December 2025 close. Cash earns zero in this exercise; that is a return assumption, not a claim that USDT or its custodian is risk-free. None of the portfolios borrows or shorts.

For the fixed mix, pre-period annualized Bitcoin volatility is the sample standard deviation of daily simple close returns dated 1 January 2022 through 30 December 2023, multiplied by √365. The 729 returns give 55.007239%. Dividing a declared 10% risk budget by that estimate gives a fixed BTC target of 18.179425%, below the 90% target cap. We rebalance to that same weight at the first UTC open of each month. The weight is not derived from the bot’s future average exposure.

For the adaptive benchmark, divide the same 10% budget by volatility from the latest 60 eligible daily returns, capped at 90%. At each first-of-month open, the latest allowed bar date is execution date minus two days. Thus the initial window is 1 November–30 December 2023: its latest close is available at 00:00 UTC on 31 December, a full 24 hours before the 1 January execution. Monthly weights range from 15.53% to 34.47% in this run. Target caps apply at rebalances; weights can drift between them, while no borrowing keeps exposure below 100%.

Rules fixed before the new benchmark runs; all policies use earlier information
AlternativeAllocation ruleTrading clockQuestion
Raw hold90% of initial cash spent inclusive of entry fee; no rebalanceBuy at 1 January 2024 openWhat did a large initial BTC allocation earn?
Fixed mixConstant 18.179425% BTC target from pre-period volatilityRebalance at each first UTC monthly openWhat did a simple, smaller risk allocation earn?
Volatility targetmin(90%, 10% / lagged 60-return annualized volatility)Same monthly opens; latest input bar at least two date labels earlierWhat did a predefined adaptive risk policy earn?

Make the benchmark pay for each rebalance

All trades use fractional BTC with assumed commission of 10 basis points per side and an adverse 5-basis-point fill relative to the opening reference. We do not subtract spread or the same slippage again. Monthly mix accounts solve the buy or sell quantity so that BTC value at the reference open is the target share of equity after modeled costs. Cash must stay nonnegative. Raw hold retains the earlier study’s rule of spending 90% of initial cash inclusive of entry fee; it is not continuously capped at 90% as the asset appreciates.

The fixed mix’s first buy shows the difference between a target and an approximate cash allocation. At the 42,283.58 reference open, its modeled buy price is 42,304.721790. Buying 0.042982329393 BTC costs 1,818.355487 USDT plus 1.818355 commission, leaving 8,179.826158 cash. The BTC is worth 1,817.446763 at the reference price, and post-cost equity is 9,997.272921: the asset share is the intended 18.179425%. On 1 February, maintaining that target sells 10.422243 USDT of BTC and pays 0.010422 commission. Small trades still consume costs.

All 731 daily closing equity observations include cash and open holdings. The bot ends flat; the three alternatives retain BTC and are marked without a hypothetical terminal sale. Fixed-mix terminal net P&L is 1,809.983898 USDT, split into 1,225.864569 realized and 584.119329 unrealized; adaptive net P&L is 1,734.388210, split into 1,663.694161 and 70.694048. Forcing liquidation would be a different reporting policy with additional fills and costs. Deposits and withdrawals are absent.

Fixed mix: first executed simulation rebalance, not a real order; rounded USDT amounts
ItemValue
Opening reference / modeled buy price42,283.58 / 42,304.721790
BTC bought0.042982329393
Purchase notional / commission1,818.355487 / 1.818355 USDT
Remaining cash8,179.826158 USDT
BTC value at reference / post-cost equity1,817.446763 / 9,997.272921 USDT
Post-cost target share18.179425%

The same capital produced four different risk profiles

Raw hold ends at 19,627.85 USDT, the bot at 13,073.92, fixed mix at 11,809.98 and the volatility target at 11,734.39. Raw hold has the highest return and largest daily-close drawdown. The bot’s drawdown is lower, but both reduced-risk benchmarks have lower drawdown and much lower realized volatility than the bot.

Annualized volatility here means sample standard deviation of the 731 net daily account returns multiplied by √365. It is a reporting convention for this observed path, not a forecast, long-horizon independence claim or maximum-loss measure. Maximum drawdown uses daily closes and can miss intraday losses. Each policy’s worst day adds another view. The bot’s 7.53% worst daily loss occurred on 19 March 2024; raw hold’s 8.13% occurred on 3 March 2025. These are sample extremes on different dates, despite the bot’s much lower average exposure.

The 10% target realizes 10.87% volatility, while the fixed mix realizes 8.88%. A historical estimate, a monthly decision lag and changing markets do not guarantee the requested realized level. These are ex ante risk-budget rules, not portfolios engineered afterward to make risk exactly identical.

Executed 2024–25 net accounts; volatility uses net daily equity returns, and each worst day is that policy’s own sample extreme
PolicyNet returnAnnualized volatilityMax drawdownMean BTC exposureWorst day
Bot+30.74%22.33%15.74%20.33%−7.53%
Raw hold+96.28%44.83%30.86%94.29%−8.13%
Fixed mix+18.10%8.88%6.40%18.56%−1.70%
Volatility target+17.34%10.87%10.29%22.82%−2.47%

Similar average exposure is not the same pattern of risk

The bot averages 20.33% BTC exposure and the fixed mix 18.56%, yet their realized volatilities are 22.33% and 8.88%. The bot holds BTC on 165 of 731 closing observations and is mostly invested during those positions; the fixed mix holds a small allocation throughout. Concentrating exposure into fewer days changes the size and timing of losses. Average exposure alone cannot capture that pattern.

The bot’s return exceeds the fixed mix by 12.64 percentage points, but it also takes more than twice its measured volatility. Comparing return divided by drawdown would not make the two policies share the same risk. A maximum drawdown is one realized extreme; volatility summarizes another property. Neither identifies which part of the return came from forecast skill rather than exposure, favorable timing, trading frictions or this selected sample.

Calendar-year results show different paths without inventing independent replications. In 2025 the bot gains 8.49%, while raw hold loses 6.03%, fixed mix loses 0.27% and the adaptive benchmark loses 3.41%. The bot was relatively favorable in that segment. Choosing only 2025 would hide the much larger opportunity cost in 2024. These are consecutive portions of each original account, not annual restarts.

Consecutive marked annual returns, retaining each account’s capital and state
Policy20242025
Bot+20.50%+8.49%
Raw hold+108.88%−6.03%
Fixed mix+18.42%−0.27%
Volatility target+21.49%−3.41%

Count the trading needed to deliver each exposure path

The bot records 66 fills, raw hold one, and each monthly benchmark 24. Turnover below is the sum of executed buy and sell notionals divided by 10,000 USDT; both sides count. This makes the bot’s implementation burden visible. Gross returns are separate zero-fee, zero-slippage account runs with the same model or benchmark rules. Their difference from net return is affected by position sizing and compounding, not just a sum of dollar fees.

With commission held at 10 basis points per side, raising adverse slippage from 5 to 20 basis points reduces the bot’s return from +30.74% to +19.59%. Raw hold moves from +96.28% to +96.00%, fixed mix from +18.10% to +18.00% and the volatility target from +17.34% to +17.14%. Low turnover makes those benchmark returns less sensitive to this particular cost change. Computing, monitoring, tax, custody/default risk, order-size filters, latency and market impact remain outside the model.

Trading burden and separately simulated gross returns; all costs are assumptions
PolicyGross returnNet returnNotional turnoverCommission USDT
Bot+42.93%+30.74%71.34×713.42
Raw hold+96.56%+96.28%0.90×8.99
Fixed mix+18.20%+18.10%0.62×6.20
Volatility target+17.54%+17.34%1.28×12.84

A volatility-managed benchmark is a strategy, not a neutral rescaling

Our adaptive benchmark changes exposure after observing earlier volatility. That is a rule-based timing decision, even though it predicts no price direction. Established risk-control methodologies separately specify volatility estimation, lags, exposure caps and rebalancing costs or buffers. Our monthly, unlevered Bitcoin rule is a custom illustration, not an MSCI index replication. [2]

Moreira and Muir’s volatility-management research uses inverse prior variance; our target divides by volatility, not variance. We do not replicate their factor study or transfer its alpha findings to Bitcoin. The relevance is the methodological question: compare complete, historically feasible allocation rules rather than treating a risk adjustment as free. [3]

Using the bot’s full-period realized volatility, average exposure or maximum drawdown to choose the benchmark allocation would use information unavailable at the start. Such a comparison can be labeled retrospective attribution, but it cannot be presented as the allocation an investor could have selected then. Our fixed weight uses only pre-period returns; our adaptive weights use the stated lag. Neither is advertised as an exact match to the bot’s future risk.

Preserve shared market days when assessing uncertainty

For a conditional sensitivity diagnostic, we jointly resample the four observed daily account-return series in circular 20-day blocks, making 5,000 samples of 731 dates with seed 6142026. Each draw uses the same day indices for all policies, retaining within-block ordering and cross-policy dependence. Official time-series bootstrap documentation describes fixed-length and multivariate block resampling; our implementation runs in Python. [6]

The statistic is 365 times the mean daily net return of the bot minus the benchmark, expressed in percentage points per year. It is an annualized arithmetic daily-mean difference, not the difference in compounded terminal returns, a CAGR spread or alpha. The 5th-to-95th percentile ranges below cross zero for every comparison. They are conditional resampling ranges, not a calibrated post-selection significance test or guaranteed confidence coverage.

Resampling these account returns does not refit the model, recompute volatility weights or rerun the trading state on a new market history. It assumes the selected blocks are informative about the variation of interest; long regime changes or unobserved shocks may violate that premise. More generated samples do not create new market evidence or erase the known strategy selection.

Annualized arithmetic mean daily bot-minus-benchmark return, percentage points per year; conditional block resampling
BenchmarkObserved difference5th percentile95th percentile
Raw hold−27.81−73.22+18.37
Fixed mix+7.16−11.44+26.28
Volatility target+7.28−12.31+27.24

Use the comparison to choose the next question, not a winning label

The account earned a positive modeled return and had a smaller drawdown than a heavily invested hold account. It also took substantially more realized volatility than either reduced-risk alternative and incurred much higher trading costs. Those statements can all be true. The present record does not isolate a causal timing premium or establish future risk-adjusted superiority.

A useful next evaluation would fix the intended risk budget, eligible benchmarks and selection rules before new observations arrive, then compare complete account results and operating requirements. The live-test protocol addresses that prospective stage. For this retrospective comparison, input-hash checks, independent decimal benchmark accounts, exact after-cost targets and future-price perturbations passed; the bot exactly reproduces its retained path. These checks support implementation fidelity, not profitability beyond the observed model.

ChatGPT or Claude can help turn a vague “beat buy and hold” claim into explicit comparison rules. Codex or Claude Code can help audit the accounts and data timing. Here AI assistance supported the analysis and Python performed the calculations; we did not compare those products as trading agents. Require an assistant to preserve the benchmark set and distinguish a reported risk statistic from information that was available when allocating capital.

A reusable prompt for a fair benchmark audit
Define what the account is meant to outperform. Freeze benchmark allocations, risk inputs, lags, capital, cash return, fees and rebalancing before examining results. Keep realized evaluation volatility out of the allocation rule. Reconcile cash and open inventory at identical timestamps, and charge each trade once. Report return, exposure paths, volatility, drawdown, turnover, loss periods and paired uncertainty. Separate descriptive attribution from an investible strategy and from evidence of alpha. Retain every declared benchmark, including unfavorable comparisons.
10 / DUE DILIGENCE

Before calling a bot better than buy and hold

  1. Define the economic alternative and choose its rules before viewing its evaluation result.
  2. Use the same starting capital, currency, reporting period and marked-equity convention.
  3. Separate initial allocation, rebalance targets, drifting weights and hard exposure constraints.
  4. Estimate risk inputs only from information available before each order, with the recorded lag.
  5. Charge fees and execution costs on benchmark rebalances as well as bot trades.
  6. Report realized volatility, drawdown, worst days and the timing of exposure alongside return.
  7. Keep gross reruns, net accounts, annual segments and cash-flow treatment explicit.
  8. Label resampling and post-selection limitations; do not turn a favorable ratio into alpha.
FAQ / DIRECT ANSWERS

Direct answers about fair bot comparisons

Does a lower drawdown mean a trading bot beat buy and hold?

No. Holding less BTC can also reduce drawdown. Here the bot has 15.74% drawdown versus raw hold’s 30.86%, but a pre-period-calibrated cash mix has 6.40%. Compare return and the full exposure/risk pattern under declared rules.

Can I match benchmark risk using the bot’s final realized volatility?

You can describe an explicitly retrospective attribution, but that full-period estimate was unavailable at the beginning. An investible benchmark needs an allocation rule based on earlier information. Its eventual realized risk need not equal the bot’s.

Does a 10% volatility target guarantee 10% risk?

No. It is a rule using estimated earlier volatility, a specified lag, rebalance calendar and cap. This monthly example realizes 10.87% annualized daily volatility. Gaps, changing volatility and estimation error can produce different losses and realized risk.

Why is average exposure not enough to compare risk?

The bot averages 20.33% BTC exposure but is mostly invested on its 165 invested days. A fixed mix holds a small allocation continuously and averages 18.56%. Their realized volatilities are 22.33% and 8.88%; the timing and concentration of exposure matter.

Were benchmark fees and open positions included?

Yes. All simulated fills charge the declared fees and adverse price adjustment. Monthly rebalances pay costs. Final BTC is marked at the common close without assuming liquidation; realized and unrealized P&L reconcile to each account’s equity change.

Does the block bootstrap prove that the bot has alpha?

No. It resamples joint observed account returns under stated block assumptions. It does not generate new market history, rerun dynamic policies or correct known strategy selection. All displayed conditional ranges cross zero, and the statistic is an arithmetic mean active return rather than alpha.

Sources and executed-study scope

TensorParadigm’s AI-assisted historical study uses the retained BTC input and frozen logistic path, whose earlier ranking was known. New benchmark rules were recorded before their runs: a 90% initial hold allocation, a fixed mix from 729 pre-period returns ending 30 December 2023, and a monthly 10% target using 60 lagged returns with a full UTC session before execution. Accounts are independent, fractional, unlevered and self-financing with zero cash yield, 10-basis-point commissions and 5-basis-point adverse fills. Daily-close marks include open holdings. Calculation records, target calendars, fills, equity and checks are retained internally. Execution used Python 3.13.3, NumPy 2.2.6, pandas 2.2.3 and scikit-learn 1.6.1. This is reused 2024–25 history, not a fresh holdout or live test. External references were checked on 26 October 2026; the inherited exchange-data cross-check was not repeated.

  1. SEC investor education: performance claims, costs and benchmark suitability
  2. MSCI: Risk Control Indexes Methodology, December 2024
  3. Moreira and Muir: Volatility-Managed Portfolios (2017)
  4. humblefool06: BTC-USDT four-hour candle archive, CC BY 4.0
  5. Binance Spot API: candlestick data and timestamps
  6. R boot documentation: multivariate and fixed-block time-series resampling

Executed retrospective simulations with modeled trading costs. Different risk budgets and known selection prevent an alpha claim. Historical risk measures and volatility targets do not guarantee future returns, execution or maximum loss.