Strategies
FMZ RSI2 Countertrend Code Port on BTC COIN-M, 15-Minute Long-Short
Outcome: Abandoned
FmzRsi2CountertrendCoinM
Outcome Summary
This strategy ported the FMZ article's actual RSI2 code rather than its prose: it faded RSI2 extremes against the SMA70 trend on BTC COIN-M 15-minute bars at 1x with no stop. In the single full-history backtest it made 1,606 trades at -0.172% per trade (PF 0.78, Sharpe -1.33) and was liquidated in April 2023. The analyst abandoned it at Backtest Review for negative expectancy. Gross capture was negative before fees, the short arm drove the losses, and every year lost money. The verdict covers only this literal code port; the article's prose version and the held-back period were not judged.
Hypothesis
BTC and subhourly RSI reversal are saturated, but this is an explicitly submitted exact-rule test, not autonomous selection. Preserve the unusual countertrend entries and MA-conditioned exits instead of replacing them with prior failed generic RSI-bounce rules. COIN-M retains the source inverse contract economics and fills an underrepresented venue bucket; the selected perpetual avoids an expired quarterly. No preliminary performance screen was run.
Implementation
Ports the FMZ M-code: short RSI>90 above SMA70 and long RSI<10 below SMA70. Shorts exit only above the MA with RSI<10; longs exit only below the MA with RSI>90. Uses strict comparisons, 200-bar warmup, no stop and no pyramiding. Market orders execute at the signal close, the supported next-open equivalent on this continuous venue.
Preserves first-observation-seeded recursive smoothing of upward and absolute changes. Indicators update throughout warmup. BTC equity valued at the prior close determines whole USD-face contracts, capped by current MTM USD equity and platform margin checks. The base lifecycle prevents duplicate entries and same-bar exit/re-entry. Source sizing may breach the conservative profile; assess that independently without silently resizing. Platform reporting must attribute perpetual funding and inverse collateral effects separately.
Verification Results
Optional: recompute the sum from _bars every N bars, or compute the SMA directly from the last ma_period closes (cheap at N of 105 or less).
The SMA is a running sum: it adds the newest close and subtracts the close at self._bars[-ma_period-1]. This is correct because the base appends the bar to _bars before on_raw_bar runs and _max_bars=500 is greater than ma_period+1 (at most 106). Over about 200k bars the running sum gathers floating-point drift of about 1e-9 relative. That can only flip strict close-vs-MA comparisons that are essentially ties.
No code change; this is faithful to the source. The risk officer should judge the measured worst trade.
Risk-control route (b) applies: there is a signal exit, and size is min(settled_BTC*prior_close*allocation_pct, MTM_BTC*current_close), so initial USD notional is at most 100% of current MTM equity. There is no time stop, and the MA-conditioned exit can hold a losing position indefinitely, as the hypothesis states. Realised worst-trade loss is unbounded by design.
None for the strategy.
The sandbox took 146 s for 19,800 bars and a runtime review was flagged. The strategy code is O(1) per bar (incremental SMA and RSI), so the cost is in the platform or engine, not this strategy.
This is RSI2 mean reversion on 15-minute BTC with taker fees of about 0.10% per round trip, and the exits are conditioned on the MA with no stop. Earlier sub-hourly RSI-bounce tests in this programme mostly failed net of fees. There is also an inverse-collateral asymmetry: a 1x long on BTCUSD_PERP with BTC collateral is about 2x long BTC in USD terms, while a 1x short is about USD-flat. Long-arm drawdowns can therefore be much deeper than short-arm drawdowns, and the 20% max-drawdown constraint may be breached. Check per-arm results and funding attribution first.
Backtest Review
- Sharpe
- -1.33
- Total return
- -100.00%
- Max drawdown
- 100.00%
- Trades
- 1606
- Win rate
- 45.2%
- Profit factor
- 0.78
The code follows the stated rules: a short when RSI>90 above SMA70, a long when RSI<10 below SMA70, exits only on the opposite RSI extreme with the MA condition, recursive SMA(X,N,1) RSI, 1x USD-face contracts capped by MTM equity, and one net position.
Reliable sample: 1,606 closed trades (810 long, 796 short) over 972 days, with clean input data.
Average trade return is -0.172% of notional against the 0.10% BINANCE_CM floor. Profit factor is 0.78, Sharpe -1.33 (CI -2.32 to -0.11), and the account was liquidated on 2023-04-11 (total return -100%, drawdown 100%).
The loss is not only fees. Commission was about $63.6k in total, so the gross per-trade capture is also negative, at roughly -0.07%.
Per-arm results from the trade ledger: the short arm (short RSI2>90 above the MA) lost about $123.6k net, despite +$9.2k of funding received. The long arm was about -$6.9k net, including -$11.6k of funding paid. The countertrend short entries are where the losses come from.
Every calendar year lost money: 2020 -5.6%, 2021 -73.8%, 2022 -63.6%, 2023 -100%. The losses are consistent and show in every stress window, so they do not come from one regime.
Outcome Summary
Shorting RSI2 > 90 above the moving average on 15-minute BTC had no gross edge, so cheaper execution or retuning the RSI bands or MA length would not have saved it.
The Backtest Review verdict was abandon for negative_expectancy. Profits were negative even before about $63.6k of commission. Most of the loss came from the short arm, about -$123.6k net despite +$9.2k of funding received. Every year and every stress window lost money, so optimization, analyst review and later stages were never reached.
A literal port of the FMZ M-language RSI(2) countertrend code on BTCUSD_PERP COIN-M 15-minute bars. It shorted when RSI2 > 90 above SMA70 and bought when RSI2 < 10 below SMA70, exited only on the opposite RSI extreme with the MA condition, used 1x sizing capped at MTM equity, and had no stop.
Over 972 days (Aug 2020 to Nov 2026) it closed 1,606 trades with an average trade of -0.172% of notional, profit factor 0.78, win rate 45.2% and Sharpe -1.33 (CI -2.32 to -0.11). The account was liquidated on 2023-04-11, giving a -100% total return and a 100% max drawdown.
Abandon Reason
Analysis
Larry Connors RSI2 Mean Reversion Strategy
Backtest and paper results are hypothetical. Trading involves risk of loss.