Strategies
ianzeng123 FMZ Gold Multi-Confluence System on BTC USD-M
Outcome: Abandoned
Ianzeng123GoldMultiConfluenceBtc
Outcome Summary
This hourly BTCUSDT futures strategy combined technical signals to choose long and short trades. After two iterations, its backtest recorded 3,926 closed trades, a -100% return, and liquidation. Backtest review abandoned it for negative expectancy and no edge before commissions; the optimization plan had no tunable parameters.
Hypothesis
Faithful hypothesis for ianzeng123's Gold Multi-Confluence Trading System. Despite its title, the source backtest specifies BTC_USDT Binance futures on 1-hour bars. Evaluate the supplied Pine rules on BTCUSDT.BINANCE with one long or short position at a time. The source's performance claims are unverified. Preserve its actual code behavior: volume and session each contribute one score point rather than acting as mandatory filters; the declared spread filter is never applied; and the Bollinger squeeze condition is always false because it compares the current width with a minimum that includes the current width.
The user requested the source strategy faithfully, and its own test header selects Binance BTC futures at 1 hour. This heavily researched venue and instrument warrant low priority. Changing the instrument, filters or parameters would test a different strategy.
negative_expectancy / no_edge: the strategy loses before commissions across a substantial sample. Gross price profit factor is 0.897, and the account liquidated. Optimization offers no parameter changes to test.
Implementation
Faithful port of ianzeng123's Gold Multi-Confluence (UHWR-Gold v2) Pine strategy on BTCUSDT.BINANCE 1h. It scores 10 long and 10 short factors: EMA 8/21/50 alignment, the EMA200 filter, smoothed RSI, MACD histogram momentum, position against the BB basis (with the squeeze that is never true), volume above 1.5x its SMA20, pivot-based market structure, candle direction, a break of the prior high/low, and the London/NY/Tokyo session. It enters at a score of 7 or more and risks 1% of equity per trade on a stop 1.5x smoothed ATR away, with a 3R target. A trailing stop activates at 1.5R with a 0.5 ATR offset, and a structure break triggers an early exit.
Verification Results
Acceptable as written. Alternatively, set use_bracket_orders and pass per-trade percentages through a supported hook, if the template adds one.
_submit_entry is overridden to route every entry through _submit_entry_bracket with stop and target percentages derived from ATR. This works because the base _process_primary calls _submit_entry when use_bracket_orders is unset. However, it also shadows the base safety path (static warning base_shadow). Any future template change that adds checks only to the base _submit_entry would be bypassed here.
Persist the per-trade fields through persistable_state(), or rebuild them from the open position and its resting stop order on start.
Trailing-stop state (entry_price, entry_stop_distance, trail_stop, trailing_activated) and the incremental EMA/RSI/ATR state are not persisted. On a live or paper restart with an open position, entry_stop_distance can refer to a different trade, or the indicators re-prime from the 500-bar buffer. The resting bracket stop still protects the position.
No change required. Consider a lower max_notional_mult if the analyst finds that commission drag dominates.
Notional is capped at min(max_notional_mult=2.5, leverage=3) x equity, so worst-case gross is 2.5x equity on a single instrument. That is within the 3x config leverage and the 20x venue cap. Per-trade risk is bounded at 1% of equity by the stop, and the 1/stop_distance divergence (lesson L156) is clamped by the notional cap. The sandbox's avg_position_pct of 565% is an artefact of the metric's denominator (equity before entry, rebuilt from realized PnL) as equity collapsed toward zero. It does not exceed the cap, and largest_loss is $1.58k, about 1.5% of starting equity.
The sandbox lost 100% (equity fell to zero on 2026-04-25) over 1441 trades in 717 days. avg_trade_return_pct was -0.138%, PF 0.847, and the win rate was 34.5% on both the long and short sides. The realized payoff was 1.6, against a nominal 3R target, so the structure-break and trailing exits are cutting most winners early. Commission was $109.6k plus $39.6k of impact on $100k equity, from turnover of 1150x. Sizing risks 1% of equity on a 1.5x ATR stop, which on BTC 1h means about 130-250% notional per trade. Each round trip therefore costs about 0.15-0.3% of equity before any gross edge. PF 0.85 is above the 0.70 polarity-suspicion line and long and short are symmetric, so this reads as no edge rather than a sign bug. Check first: gross PF before costs, and the exit-reason breakdown (structure break vs trailing stop vs SL vs TP). If gross is near 1.0, this is no_edge on the full history and not worth optimizing, especially because the plan has no tunable parameters.
Backtest Review
- Sharpe
- 0.23
- Total return
- -100.00%
- Max drawdown
- 100.00%
- Trades
- 3926
- Win rate
- 34.3%
- Profit factor
- 0.89
The 3,926 closed trades provide a substantial sample.
Average return is −0.145% of notional per trade, below the 0.15% Binance futures floor.
Price P&L totals −$180,745 before the separately reported $205,321 in commissions. QA’s no-edge concern is borne out.
The account liquidated, and the optimization plan has no tunable parameters.
Iteration History
Outcome Summary
The entry signals need a positive gross trading edge before further optimization is useful.
Backtest review abandoned it because it lost before commissions, fell below the 0.15% per-trade return floor, and liquidated. Optimization and later reviews were not reached.
The strategy scored technical signals for long and short trades on hourly BTCUSDT Binance futures bars.
Across 3,926 closed trades, the backtest returned -100%, with a 0.229 Sharpe ratio and an average return of -0.145% of notional per trade. The account liquidated.
Analysis
黄金多重确认交易系统|Gold Multi-Confluence Trading System
Backtest and paper results are hypothetical. Trading involves risk of loss.