
An EMA Strategy Under Simulated Prop-Firm Rules
A dated Bitcoin EMA experiment under simplified prop-firm rules, with recorded results, methodology gaps, and an unresolved later trade-count difference.
An August 13, 2026 repository artifact records a BTCUSDT 4-hour EMA strategy returning +964.87% at 2% risk per trade, with 36.9% maximum drawdown, from April 2020 through August 2026. The same artifact records a 71.39% pass rate for that sizing level in a simplified, simulated FTMO-style step-one challenge. These are historical simulation outputs, not live results or current probabilities.
Correction — September 10, 2026. The earlier description highlighted the 99.32% simulated challenge-pass rate alongside the +964.87% return. These belong to different sizing rows: 99.32% occurred at 0.5% risk per trade, while +964.87% occurred at 2% risk, where the simulated pass rate was 71.39%. The body table separated the rows. A later repository note also records 190 trades on the then-deployed engine instead of the artifact's 194 after a lookback change. We did not rerun the study for this correction, so the exact result remains unverified on the current engine. The original tables remain below as dated evidence and are labelled accordingly.
The useful question is narrower: what did this historical exit experiment test, how did sizing affect its simulated rule breaches, and what would need to be reproduced before treating the result as current?
The search
The August research campaign searched six strategy families: advanced trend following, scalping and intraday microstructure, mean reversion, seasonality and carry, volatility regime switching, and exit engineering. The surviving repository materials include scripts and selected result artifacts, but not one complete ledger of every configuration and rejection.
Every candidate had to clear the same bar: profitable in four separate market regimes, each measured on its own. A strategy that only works when Bitcoin rises is a long position wearing a disguise.
- P1 Apr 2020 to Dec 2021, bull (BTC +621%)
- P2 Jan to Dec 2022, bear (BTC −64%)
- P3 Jan 2023 to Dec 2024, bull (BTC +465%)
- P4 Jan 2025 to Aug 2026, decline (BTC −33%)
That is useful selection context: the final candidate came from a broad search, so its reported performance includes selection bias even though it was checked across four historical regimes.
The tested exit configuration
The baseline enters on an EMA 12/100 crossover and exits with a fixed bracket: a 2% stop and a 5% take-profit. Over six years on the 4-hour chart the historical artifact records +66.63% with a Sharpe of 0.89.
The selected candidate removed the take-profit, widened the initial stop from 2% to 2.5%, and moved that stop to break-even after a 5% gain. The earlier article described the result as deleting one line, but the tested comparison changed three linked exit settings. It therefore does not isolate the causal effect of removing the target.
With no target, an opposite crossover closes an open winner and reverses the position. A stopped trade exits at the initial stop, while a trade that first reaches the threshold can later exit around break-even under the simulated fill rules. The design leaves large winners uncapped, but that mechanism is an interpretation; this experiment did not run the additional ablations needed to separate the target, wider stop, and break-even rule.
| Baseline | Selected exit variant | |
|---|---|---|
| Total return | +66.63% | +269.35% |
| CAGR | 8.40% | 22.91% |
| Max drawdown | 8.5% | 21.7% |
| Sharpe | 0.89 | 0.92 |
| Calmar | 0.99 | 1.05 |
| Regimes profitable | 4 of 4 | 4 of 4 |
Both columns use 1% risk per trade. The artifact reports per-regime returns of +72.95%, +16.39%, +42.53%, +20.45% across 194 trades: profitable in all four, and roughly four times the baseline's full-window return.
The recorded trade-off is similar Sharpe, higher drawdown, and higher return. The result is consistent with uncapped winners mattering to this trend system, whose recorded win rate was about 28%. Because the stop and break-even behavior also changed, the evidence does not justify attributing the whole difference to the take-profit alone.
Sizing, and the prop-firm view
Because the strategy risks a fixed fraction per trade, sizing changes both its return path and the frequency of rule breaches in the simulation. Each row below comes from the August artifact's 10,000 challenge simulations using the strategy's simulated historical trade pool:
| Risk per trade | Historical return | CAGR | Max DD | Calmar | Simulated challenge pass |
|---|---|---|---|---|---|
| 0.5% | +99.11% | 11.49% | 11.9% | 0.96 | 99.32% |
| 1.0% | +269.35% | 22.91% | 21.7% | 1.05 | 90.53% |
| 2.0% | +964.87% | 45.29% | 36.9% | 1.23 | 71.39% |
| 3.0% | +2,377.92% | 66.01% | 48.1% | 1.37 | 59.35% |
| 5.0% | +2,944.92% | 71.50% | 74.5% | 0.96 | 24.19% |
| buy and hold | +879.87% | 43.33% | 76.68% | 0.57 | n/a |
Within this artifact, the 2% row has a higher return and lower maximum drawdown than its buy-and-hold reference. It is not a risk-matched comparison and does not establish live outperformance. The pass column falls as risk rises: 99.32%, 90.53%, 71.39%, 59.35%, and 24.19%. That illustrates the conflict between aggressive sizing and rule survival inside this particular simulator; it does not prescribe a suitable live risk level.
What the surviving record establishes
| Field | Recorded value or status |
|---|---|
| Result artifact | Regenerated August 13, 2026 after two engine corrections |
| Market and bars | BTCUSDT, 4-hour |
| Test window | April 1, 2020 to August 1, 2026 |
| Starting capital and leverage | $10,000 and 10× |
| Execution label | 1-minute intrabar fills, L2 fills where covered, dynamic slippage, and funding |
| Exact venue | Unknown in the result artifact |
| Exact fee/slippage rates and L2 coverage | Unknown in the result artifact |
| Exact engine commit | Unknown; the artifact records a dated correction label, not a commit SHA |
| Challenge method | 10,000 trade-order simulations, $100,000 account, seed 7, simplified 5% daily-loss / 10% maximum-loss / 10% target rules |
| Current-engine reproduction | Not run for this update; a later repository note records 190 rather than 194 trades |
The current public backtest methodology explains AlphaProve's available fill paths. It should not be read as filling the unknown fields in this older artifact.
Update, September 3, 2026: the pass rates in this table come from the Monte-Carlo preset, a two-rule FTMO-style model (5% daily loss, 10% max loss, 10% target, reshuffled trade orders). The Risk page now also has a Prop firms tab that replays a backtest hour by hour against the published rules of 96 firms, including trailing drawdowns, payout terms and trading-style rules, and reports a verdict per program.
The strategy, in full
Here is the candidate retained in the historical article. It has no
take_profit; the code is preserved so the rule itself remains inspectable.
FAST = 12
SLOW = 100
STOP_PCT = 2.5
BREAKEVEN_AT_PCT = 5.0
HISTORY = {"primary": 160}
def evaluate(ctx):
close = ctx.candles.close
fast = ctx.indicators.ema(close, FAST)
slow = ctx.indicators.ema(close, SLOW)
up = float(fast.iloc[-1]) > float(slow.iloc[-1])
prev_up = float(fast.iloc[-2]) > float(slow.iloc[-2])
if up == prev_up:
return None
price = float(close.iloc[-1])
if up:
return Signal(
direction="LONG",
stop_loss=price * (1 - STOP_PCT / 100),
breakeven_at_profit_pct=BREAKEVEN_AT_PCT,
setup_id="TREND_LONG",
)
return Signal(
direction="SHORT",
stop_loss=price * (1 + STOP_PCT / 100),
breakeven_at_profit_pct=BREAKEVEN_AT_PCT,
setup_id="TREND_SHORT",
)
The August artifact recorded the following full-window result at 2% risk per trade. The 194-trade row is the historical value; as the correction above states, it has not been reproduced on the current engine in this review.
| Apr 2020 to Aug 2026 | |
|---|---|
| Total return | +964.87% |
| CAGR | 45.29% |
| Max drawdown | 36.9% |
| Sharpe | 0.92 |
| Sortino | 5.20 |
| Calmar | 1.23 |
| Profit factor | 2.12 |
| Win rate | 27.8% |
| Trades | 194 |
| FTMO step-1 pass | 71.39% |
What this record does not establish
The research notes describe many rejected scalping, order-flow, seasonality, carry, and mean-reversion candidates. Their complete settings and result ledger were not reconstructed for this correction, so this article no longer treats those exploratory results as separate proven findings. The durable evidence reviewed here is the dated EMA artifact and its simplified challenge output.
Honest caveats
Its scope is one Bitcoin simulation. Every number in the tables is BTCUSDT on 4-hour bars for the recorded window. It does not support a claim about other assets, later dates, or live execution.
Search buys optimism. The winner followed a broad research campaign, and the exact count and complete ledger of rejected configurations are not in the final artifact. Four profitable regime slices are useful descriptive evidence, but they were also read during selection and are not a final untouched test. Our overfitting experiment shows why that distinction matters.
Simulated challenge passes are not real-world probabilities. The preset reshuffled one historical trade pool under simplified loss and target rules. It did not reproduce every firm's current terms, execution, psychology, or future market path. The CFTC's warning on hypothetical performance explains why simulated results have inherent limitations.
The finding this evidence supports is deliberately modest: in the August 2026 artifact, the tested no-target, wider-stop, break-even EMA configuration outperformed its fixed-bracket baseline. Reproducing it on the current engine, recording every methodology field, and using a final untouched period are the next steps before making a current performance claim.