How Often Should an AI Trading Model Be Retrained? Fixed Models vs. Rolling Retraining
An executed Bitcoin experiment compares frozen, weekly and monthly model updates, plus expanding training history. After-cost returns, forecast scores and decision traces.
Choose retraining frequency by evaluating the complete update policy, not by assuming a newer fit must be better. In our executed 2024–25 Bitcoin comparison, one frozen logistic model returned +30.74% after modeled costs, seven-day rolling refits returned +17.53%, and monthly rolling refits returned −1.67%. Monthly refits with expanding history returned −4.52%. The frozen model led these four retrospective paths, but all lagged the +96.28% hold baseline and carried different exposure. This reused sample does not establish that freezing models is generally superior. It shows why the fit calendar, training memory, probability quality and resulting trades must be assessed separately.
WHAT THIS COMPARISON ESTABLISHES
- Four policies share one initial training set, the same six features, model, probability threshold, execution rules and account capital.
- Refitting once, 105 times or 24 times produced different trades; updating more frequently did not order the results from worse to better.
- All policies are scored on the same 725 resolved five-day forecasts; their 731 daily decisions are not 731 independent outcomes.
- Keeping more training history changed the monthly result, without changing the refit calendar.
- The monthly rolling result reproduces our earlier study. This is a new comparison on previously examined observations, not an untouched holdout or live record.
A frozen model still reads new prices
Freezing a model means keeping its learned coefficients and preprocessing statistics fixed. It does not mean repeating yesterday’s input or prediction. Our frozen model receives the same newly completed daily features as every updated model; only the dates on which learning occurs differ.
The economic question is whether replacing learned relationships with estimates from newer observations improves decisions enough to compensate for instability and trading costs. More recent data may help an outdated relationship, but replacing one noisy estimate with another is not automatically an improvement. Training frequency and training-window length are separate design choices.
We extend our causal machine-learning backtest with a controlled schedule comparison. This is supervised logistic regression, not retraining the foundation models behind ChatGPT or Claude. A changed prompt, a new language-model release and a scheduled refit of a small trading classifier are different interventions.
Change the calendar first, then isolate the history window
Before executing the additional comparisons, we recorded four policies and kept all their results. The monthly rolling policy and this market history were already examined in our published work. Recording a new comparison before running it prevents winner-led changes within this exercise; it does not make the underlying evaluation period new or untouched.
The first three policies start from the same fit at the completed 1 January 2024 close. Each fit uses a trailing 730-calendar-day feature window, excludes unresolved labels and estimates a fresh scaler and model. The frozen policy keeps its first fit. Weekly means every seven calendar days from 1 January, not a schedule chosen from a profitable chart. Monthly means the completed close of the first UTC calendar day of each month.
The fourth policy changes only monthly training memory: retain eligible feature dates from 1 January 2022 onward instead of dropping older dates as the window advances. It starts with the same training matrix as the others. At the last monthly fit, expanding history contains 1,425 mature rows versus 725 for rolling history. The larger sample also changes the fitting problem under the fixed regularization setting; it is not a pure test of calendar frequency.
| Policy | Fit dates | Training history | Fits |
|---|---|---|---|
| Frozen | 1 January 2024 only | Initial 730-calendar-day window | 1 |
| Weekly rolling | 1 January 2024, then every 7 calendar days | Latest 730 calendar days at each fit | 105 |
| Monthly rolling | First UTC day of every month | Latest 730 calendar days at each fit | 24 |
| Monthly expanding | Same dates as monthly rolling | From 1 January 2022 onward | 24 |
Keep the information clock and the account unchanged
All fits use StandardScaler followed by LogisticRegression with C = 1, lbfgs, max_iter = 2000 and a recorded random seed of 6142026. The six inputs are completed-close returns over 1, 5 and 20 days; the population standard deviation of the latest 20 one-day returns; the completed high–low range divided by close; and volume divided by its trailing 20-day mean minus one. Transformations are fitted only on each training set. Scikit-learn’s leakage guidance and estimator documentation support those implementation choices. [1][2]
The binary target is whether open[t+6] / open[t+1] − 1 is positive. A training row must precede the fit date and its label-ending open must already be available. At the 1 January 2024 fit, all policies therefore have 725 rows from 1 January 2022 through 26 December 2023; the latest label ends at the 1 January open. Five more recent feature rows have unresolved outcomes and are excluded. All four initial probabilities are 0.452770, below the fixed 0.55 trading threshold.
Each path independently starts with 10,000 USDT. When flat, probability at least 0.55 schedules a buy at the next open and a mandatory sale at open[t+6], a five-open-to-open-day holding interval. Buy sizing uses 90% of available cash including the entry fee. There is no leverage, short, overlap or entry signal on an exit-fill day. Each side pays an assumed 10 basis points of commission and receives an adverse 5-basis-point fill; no extra spread deduction is added. These are model assumptions, not a fee quote or guaranteed executable price.
An entry is blocked when its scheduled exit falls after 31 December 2025. Strategy accounts therefore finish flat; the hold baseline retains inventory and is marked at the final close. Daily-close equity measures drawdown. Computing, monitoring, tax, latency, quantity filters and market impact are not modeled. Actual execution can differ from daily-open fills, especially for a signal formed at the preceding close.
Identify the reused observations and verify the causal implementation
The input is the retained 2,142-day series from 20 February 2020 through 31 December 2025, aggregated from the CC BY 4.0 archive published by humblefool06 at revision 9f491eb5340dd6a24f27fde24edf098e1e785443. Daily UTC bars use first open, maximum high, minimum low, last close and summed volume. The normalized input SHA-256 is 43655a51e6cb41c2ee087bd947f4cefb7dd4151617a29d7f75a3cda471ae5cbb. We verified that hash when executing this extension. [3]
We inherit the 18 October record that compared all 731 evaluation candles, or 3,655 OHLCV cells, exactly against Binance’s daily endpoint. We did not repeat that external check. The publisher does not explicitly establish the archive’s upstream venue, and the earlier training observations remain externally unverified. Endpoint agreement is not independent venue coverage. Binance identifies candles by their opening timestamps; our date labels refer to those UTC sessions. [4]
Execution used Python 3.13.3, NumPy 2.2.6, pandas 2.2.3 and scikit-learn 1.6.1. Every fit checks label maturity, both classes, training-only scaler means and optimizer convergence. Reconstructing forecasts from saved coefficients matches the pipeline probabilities. Altering all prices and volumes after 15 June 2024 leaves every policy’s earlier forecasts and fit parameters identical. The monthly rolling probabilities exactly match the retained original engine, and a separate decimal account replay matches all four final balances within 0.0000001 USDT. These checks support the tested timing and accounting properties, not the absence of every possible modeling error.
More refits did not produce a monotonic improvement
The frozen path ends at 13,073.92 USDT, weekly rolling at 11,753.42, monthly rolling at 9,832.51 and monthly expanding at 9,548.20. None of these results was discarded or repaired by selecting another threshold. The same-cost 90% initial-allocation hold baseline ends at 19,627.85 USDT, a +96.28% marked return with 30.86% daily-close drawdown. Zero-yield cash remains at 10,000; that is a defined accounting alternative, not a claim that USDT is risk-free.
Gross performance is a fresh account simulation with the same forecasts and rules but zero modeled fees and slippage. It is not net return plus a final cost percentage. Costs alter position quantities and later compounding. The frozen model’s lower drawdown and lower exposure also mean that its gap to hold is not a risk-adjusted alpha estimate.
The weekly policy makes 70 completed trades against 33 for the frozen policy, and its average marked invested fraction is 43.10% against 20.33%. Monthly rolling averages 40.63%, monthly expanding 27.07%, and hold 94.29%. The fit calendar changes which signals clear the threshold, which changes the account path; a fit itself does not require a market trade.
| Policy | Gross return | Net return | Max drawdown | Completed trades | Fits |
|---|---|---|---|---|---|
| Frozen | +42.93% | +30.74% | 15.74% | 33 | 1 |
| Weekly rolling | +41.99% | +17.53% | 25.85% | 70 | 105 |
| Monthly rolling | +17.51% | −1.67% | 27.82% | 66 | 24 |
| Monthly expanding | +7.53% | −4.52% | 28.71% | 44 | 24 |
Score probabilities separately from the trading account
Each policy generates 731 daily forecasts, but only 725 have a label that ends inside the evaluation period: feature dates 1 January 2024 through 25 December 2025. All four scores use exactly those dates and the same 390 positive outcomes. The final six forecasts remain in the record but are excluded from the resolved-target scores. The weekly fit count includes its scheduled 29 December refit even though that fit is too late to initiate a permitted evaluation trade.
Log loss evaluates the probability assigned to the realized class; binary Brier loss is mean squared probability error. Lower is better. We compare each model with the positive-label frequency of its own then-available training set, carried forward until the next fit. These probability scores evaluate forecasts, not trading profits. [5][6]
Frozen probabilities score slightly better than their frequency reference. Each refitted model scores worse than its own frequency reference on both measures. Accuracy at a 0.50 classification threshold is 51.59% for frozen and 50.76% for each updated policy, while a positive-class prediction on all dates is 53.79%. Trading nevertheless uses 0.55 and a constrained position state. A percentage of correct directions cannot substitute for payoff size, costs or a causal trade ledger.
The scores are descriptive comparisons, not independent-trial significance tests. Adjacent five-day targets overlap, and all policies encounter the same market history. We have not estimated a reliable confidence interval for a universal schedule advantage.
| Policy | Model log loss | Frequency log loss | Model Brier | Frequency Brier |
|---|---|---|---|---|
| Frozen | 0.692151 | 0.692648 | 0.249507 | 0.249750 |
| Weekly rolling | 0.696990 | 0.693488 | 0.251907 | 0.250159 |
| Monthly rolling | 0.695919 | 0.693033 | 0.251416 | 0.249933 |
| Monthly expanding | 0.693428 | 0.692498 | 0.250167 | 0.249675 |
Follow one changed forecast into the account state
Weekly and monthly rolling first disagree about crossing 0.55 on 18 January 2024: weekly predicts 0.560402 after its 15 January refit, monthly predicts 0.545967 from the original fit. Yet both accounts are on a scheduled exit day, which forbids a new entry. Different threshold signals therefore do not immediately create different trades.
The first actual action divergence is 22 February. Both accounts are flat with 10,521.989578 USDT. The weekly fit from 19 February predicts 0.551331 and schedules a 23 February entry; the monthly fit from 1 February predicts 0.523412 and stays flat. The weekly trade is scheduled to exit on 28 February. Subsequent differences compound through cash, holding state and exit-day exclusions, so a terminal return gap cannot be explained by counting forecast disagreements alone.
Their first trade also gives a shared accounting check, rather than a selected success. A 12 January signal buys 0.210050027959 BTC on 13 January at a modeled 42,804.131370 and sells on 18 January at 42,754.701955. Price P&L at the modeled fills is −10.382650 USDT; entry and exit fees are 8.991009 and 8.980626. Net loss is −28.354285, leaving 9,971.645715 cash. Slippage is already in those fills and is not deducted again. This is a backtest trade, not a real order.
| Policy | Latest fit | Probability | Cash before decision | Action |
|---|---|---|---|---|
| Weekly rolling | 19 February | 0.551331 | 10,521.989578 USDT | Buy next open; scheduled exit 28 February |
| Monthly rolling | 1 February | 0.523412 | 10,521.989578 USDT | Remain flat |
Measure how the changed trading path consumes costs
Executed buy and sell notionals divided by starting capital total 71.34 for frozen, 157.72 for weekly rolling, 122.29 for monthly rolling and 88.75 for monthly expanding. Both sides count in this definition; it is not half-turnover. Corresponding modeled commissions are 713.42, 1,577.25, 1,222.92 and 887.51 USDT. A busier update policy can generate more trading, but these differences arise from this model’s decisions, not from a rule that every update must transact.
We rerun all four paths with per-side adverse slippage of 0, 5, 10 and 20 basis points while retaining the 10-basis-point commission. Weekly rolling falls from +25.18% at zero slippage to −2.71% at 20 basis points. Frozen remains positive in these tested cases; that is conditional sensitivity, not proof that its real execution would match the model. We do not choose a slippage assumption because it makes a favored policy profitable.
| Policy | 0 bps | 5 bps | 10 bps | 20 bps |
|---|---|---|---|---|
| Frozen | +34.68% | +30.74% | +26.91% | +19.59% |
| Weekly rolling | +25.18% | +17.53% | +10.36% | −2.71% |
| Monthly rolling | +4.34% | −1.67% | −7.34% | −17.72% |
| Monthly expanding | −0.66% | −4.52% | −8.22% | −15.21% |
More history changed the result, but did not solve it
Monthly rolling and monthly expanding share their fit calendar, initial training matrix and last eligible training-feature date at each fit. They differ in which older rows remain. By 1 December 2025, rolling starts on 2 December 2023, expanding still starts on 1 January 2022, and both end on 25 November 2025. The expanded sample has 1,425 mature rows, almost twice the rolling sample. More rows did not improve the account result in this comparison.
The annual breakdown also prevents one total from hiding the path. Monthly expanding gains 18.75% in 2024, then loses 19.60% in 2025. These are consecutive segments of one account, not annual restarts. Calendar years are reporting divisions, not established market regimes or independent replications.
Payoffs are asymmetric. Average winners and losers are +511.46/−474.56 USDT for frozen, +430.46/−357.84 for weekly, +332.83/−318.18 for monthly rolling and +440.27/−322.18 for expanding. Removing the three largest winners from the recorded additive P&L leaves +556.07, −2,034.23, −2,931.61 and −3,742.12 USDT respectively. That is a concentration diagnostic, not an executable modified strategy: deleting trades would also change later cash and sizing.
| Policy | 2024 | 2025 |
|---|---|---|
| Frozen | +20.50% | +8.49% |
| Weekly rolling | +20.86% | −2.75% |
| Monthly rolling | −1.14% | −0.54% |
| Monthly expanding | +18.75% | −19.60% |
Retrain a candidate on a schedule; promote it only with a reason
A practical policy specifies when to build a candidate and separately when to replace the deployed model. A calendar can trigger a candidate fit after new labels mature. Promotion should inspect input quality, feature consistency, probability behavior, decision changes, net economics and operating limits. A successful fit call is not a release decision.
Concept drift concerns a changing relationship between inputs and targets; a losing week or a change in input averages does not by itself establish that relationship changed. The original concept-drift survey distinguishes adaptation and evaluation questions. [7] A data incident needs correction, and an execution failure needs reconciliation; retraining on corrupted data does neither. A drift-triggered update policy would need its own causal comparison. We did not test one here.
For this model, the next justified step is a new prospective comparison with frozen candidate-selection and promotion rules, not declaring the highest retrospective return the permanent winner. Preserve the incumbent’s exact scaler and model, run the candidate in shadow on common incoming observations, record overrides and retain a rollback path. The live-test protocol explains how to separate an operational release from evidence of profitability.
ChatGPT or Claude can help specify those rules; Codex or Claude Code can help audit the implementation. In this investigation AI assistance supported the analysis, while Python performed the retained fits and calculations. No comparison of those products as trading models was performed. Ask an assistant to preserve the full schedule search and unresolved-label calendar, rather than to keep editing until a retraining interval looks profitable.
Compare these declared update calendars while holding features, estimator settings, threshold, information timing and account rules fixed. Separate update frequency from training-window policy. At each fit, exclude unresolved outcomes and fit preprocessing only on eligible rows. Retain every candidate, forecast, fit date and trading decision. Report common-date probability scores, after-cost account results, exposure, turnover and losing periods. Explain selection and data reuse. Do not tune on evaluation results or label a reused period untouched.What a retraining policy should specify
- The fit calendar and the separate model-promotion decision.
- Rolling or expanding history, exact start dates and label-maturity rules.
- Training-only transformations and immutable feature/estimator settings for the comparison.
- An unchanged capital, position, execution and cost policy for every independent account.
- Forecast evaluation on identical resolved dates, with a meaningful probability reference.
- Net economics, exposure, turnover, drawdown and payoff concentration.
- Every tried schedule and the observations already used to choose it.
- Input-quality checks, release records, shadow monitoring and a rollback path.
Direct answers about model retraining
Should I retrain an AI trading model every day?
Not by default. This study tests frozen, seven-day and monthly policies, not daily updates. More frequent fitting need not improve probability quality or after-cost trading. Compare a declared daily candidate with alternatives using mature labels and unchanged account rules before adopting it.
Did the frozen model win this experiment?
It had the highest net return of the four tested paths: +30.74%. That is a descriptive ranking on a reused 2024–25 Bitcoin sample, not evidence that frozen models generally dominate. Its exposure was lower than the updated paths and its return lagged the +96.28% hold baseline.
Is an expanding training window better than a rolling window?
Neither is universally better. Here monthly expanding history ended at −4.52%, against −1.67% for monthly rolling. Keeping older observations changes both the information mixture and the fitting problem. A different market, model or period could change the comparison.
Why not train on the most recent five days?
The forecast target needs future opens to resolve. At each fit, recent feature rows whose label-ending open has not occurred are excluded. Training on their eventual outcomes would supply information unavailable at that fit, even if the feature dates appear to be in the past.
Does a better prediction score guarantee more money?
No. Probability scores evaluate predictions on defined outcomes. Profit also depends on the trading threshold, payoff magnitudes, holding-state constraints, exposure and costs. This study reports forecast scores and complete account paths separately.
Does retraining here mean fine-tuning ChatGPT or Claude?
No. We refit a small logistic classifier and its scaler using market features. Prompt changes, tool-driven agents and foundation-model fine-tuning are different projects. No language-model trading benchmark or live experiment is represented.
Sources and executed-study scope
TensorParadigm’s AI-assisted analysis executed four locally recorded retraining policies on the retained daily BTC input, with independent accounts and common probability-evaluation dates. New comparison choices were fixed before their runs; the monthly policy and 2024–25 observations had already been examined in earlier work. This is retrospective analysis, not a new holdout or live deployment. Fit logs, forecasts, decisions, fills, equity and calculation checks are retained internally. The source hash, training eligibility, perturbation checks and decimal reconciliation establish the specific properties described above. Commission and adverse fills are modeled; omitted execution and operating costs limit economic interpretation. Sources were checked on 26 October 2026; the inherited 18 October exchange-data comparison was not repeated.
- Scikit-learn 1.6: avoiding data leakage and inconsistent preprocessing
- Scikit-learn 1.6: LogisticRegression specification
- humblefool06: BTC-USDT four-hour candle archive, CC BY 4.0
- Binance Spot API: candlestick data and timestamps
- Scikit-learn 1.6: log loss
- Scikit-learn 1.6: binary Brier loss
- Gama and colleagues: A Survey on Concept Drift Adaptation (2014)
Executed retrospective simulations with modeled costs. The tested rankings do not establish a universal update schedule, executable live returns, capacity or a persistent trading edge.