Skip to content
All strategies

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

Faithful port of the actual M-language code in 善’s FMZ digest, not a correction to match the article’s contradictory prose. Its code shorts RSI>90 ABOVE SMA70 and buys RSI<10 BELOW SMA70. Preserve 15-minute decisions, 1x notional sizing, conditional RSI exits and no stop. Adapt the historical OKCoin BTC/USD quarterly into BTCUSD_PERP.BINANCE_CM, a supported USD-face inverse BTC contract with continuous tradability; a perpetual differs from a quarterly through funding and lack of expiry, so report carry……Show moreShow less

Faithful port of the actual M-language code in 善’s FMZ digest, not a correction to match the article’s contradictory prose. Its code shorts RSI>90 ABOVE SMA70 and buys RSI<10 BELOW SMA70. Preserve 15-minute decisions, 1x notional sizing, conditional RSI exits and no stop. Adapt the historical OKCoin BTC/USD quarterly into BTCUSD_PERP.BINANCE_CM, a supported USD-face inverse BTC contract with continuous tradability; a perpetual differs from a quarterly through funding and lack of expiry, so report carry separately. Figure 204 displays 15-minute OKCoin quarterly BTC candles, RSI2 and buy/sell arrows; it does not establish the claimed performance. Risk-control route (b): one net position with initial notional capped at 100% of current MTM equity, leverage fixed 1, no pyramiding. Intended volatility is approximately 40-60% annualized but is not guaranteed by a 1x position. The supplied conservative profile remains an independent acceptance requirement; an inadmissible source-risk reproduction must be reported rather than silently resized. Figure 201 is a title graphic. TradingView figures 205-209 show heterogeneous long-horizon crypto, FX and S&P charts with moving averages, oscillators, channels, Fibonacci levels or risk boxes; they do not supply one coherent additional Connors system. Figure 210 shows GBPUSD daily and three-component Connors RSI(3,2,100), which is a different indicator and must not replace this two-period RSI. StockCharts failed to fetch and TradingView text was unavailable; no unseen rules are inferred.

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.

negative_expectancy: The faithful port of the FMZ M-language RSI2 countertrend code (short RSI2>90 above SMA70, long RSI2<10 below SMA70, MA-conditioned exits, no stop, 1x) on BTCUSD_PERP COIN-M 15-minute bars loses money on the development period. It made 1,606 closed trades with an average trade of -0.172% of notional against a 0.10% floor. Profit factor is 0.78, Sharpe -1.33 (CI -2.32 to -0.11), every year lost money, and the account was liquidated in April 2023. Gross capture before roughly $63.6k of……Show moreShow less

negative_expectancy: The faithful port of the FMZ M-language RSI2 countertrend code (short RSI2>90 above SMA70, long RSI2<10 below SMA70, MA-conditioned exits, no stop, 1x) on BTCUSD_PERP COIN-M 15-minute bars loses money on the development period. It made 1,606 closed trades with an average trade of -0.172% of notional against a 0.10% floor. Profit factor is 0.78, Sharpe -1.33 (CI -2.32 to -0.11), every year lost money, and the account was liquidated in April 2023. Gross capture before roughly $63.6k of commission is also negative, so cheaper execution would not fix it. Most of the loss comes from the short arm (about -$123.6k net despite +$9.2k funding received). The long arm was about -$6.9k net, including -$11.6k funding paid. QA's concern about fees is borne out, and the economics are worse than that: there is no gross edge. Retuning the RSI bands or the MA length on 1,600 trades with PF 0.78 is a parameter retune with no viable region to tune toward (lesson L253). This verdict covers this literal port of the article's code on a COIN-M perpetual. It is not a verdict on the article's prose version (RSI-bounce in the trend direction), which belongs to a family that has already been tested heavily and failed. Nothing is concluded about the held-back period.

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

negative_expectancy: The faithful port of the FMZ M-language RSI2 countertrend code (short RSI2>90 above SMA70, long RSI2<10 below SMA70, MA-conditioned exits, no stop, 1x) on BTCUSD_PERP COIN-M 15-minute bars loses money on the development period. It made 1,606 closed trades with an average trade of -0.172% of notional against a 0.10% floor. Profit factor is 0.78, Sharpe -1.33 (CI -2.32 to -0.11), every year lost money, and the account was liquidated in April 2023. Gross capture before roughly $63.6k of……Show moreShow less

negative_expectancy: The faithful port of the FMZ M-language RSI2 countertrend code (short RSI2>90 above SMA70, long RSI2<10 below SMA70, MA-conditioned exits, no stop, 1x) on BTCUSD_PERP COIN-M 15-minute bars loses money on the development period. It made 1,606 closed trades with an average trade of -0.172% of notional against a 0.10% floor. Profit factor is 0.78, Sharpe -1.33 (CI -2.32 to -0.11), every year lost money, and the account was liquidated in April 2023. Gross capture before roughly $63.6k of commission is also negative, so cheaper execution would not fix it. Most of the loss comes from the short arm (about -$123.6k net despite +$9.2k funding received). The long arm was about -$6.9k net, including -$11.6k funding paid. QA's concern about fees is borne out, and the economics are worse than that: there is no gross edge. Retuning the RSI bands or the MA length on 1,600 trades with PF 0.78 is a parameter retune with no viable region to tune toward. This verdict covers this literal port of the article's code on a COIN-M perpetual. It is not a verdict on the article's prose version (RSI-bounce in the trend direction), which belongs to a family that has already been tested heavily and failed. Nothing is concluded about the held-back period.

Analysis

Larry Connors RSI2 Mean Reversion Strategy

Backtest and paper results are hypothetical. Trading involves risk of loss.