USDT perpetual futures · Multi-timeframe · Fully automated

The higher timeframe decides directionthe lower one pulls the trigger

A long-only systematic breakout strategy for crypto perpetual futures. A higher-timeframe channel first decides whether the market is trending or ranging; lower-timeframe breakout signals are allowed to fire only when direction is confirmed. Entries then require a pullback confirmation, so breakouts are not chased at the top. Every bar's decision — including the rejected ones — is written to a database and can be replayed trade by trade.

Backtest equity curve (indexed to 100)

Backtest return · 380 days
+293.24%
272.6% annualized · with the second gate
Max drawdown
29.47%
36.45% before the second gate
Trades
372
44.62% win rate
Payoff / profit factor
1.95
Profit factor 1.57

Every figure on this page is from a backtest

All returns, drawdowns and win rates below come from replaying 380 days of historical data. They are not realized account performance. The backtest charges trading fees, funding and stop slippage, and triggers stops on bar highs and lows the way live execution does. It cannot reproduce real fill liquidity, latency or slippage in extreme conditions. Parameters were selected over multiple passes on historical data, so overfitting is possible.

Method

Seven gates, every one of them rejects orders

A signal must clear market regime, breakout trigger, entry timing, signal quality, a second quality gate, event avoidance and capital constraints, in that order. Any gate that fails leaves a decision record with its reason and no position. The system therefore sits flat for long stretches in ranging markets.

01 / Regime

Higher timeframe sets direction

A breakout channel and a volatility channel on the higher timeframe jointly classify the market as trending or ranging. When it reads as ranging, every lower-timeframe breakout is rejected outright.

02 / Trigger

Session rails breakout

After each session opens, historical range produces a pair of buy and sell rails fixed for the day. Only a close beyond a rail counts as a valid breakout; an intrabar wick does not.

03 / Timing

Pullback confirmation

A confirmed breakout is not chased. Price must pull back into a tolerance band around a short-period moving average before an order goes out. Breakouts that stay outside the band are abandoned rather than filled at a worse price.

04 / Worth the bet?

Multi-factor quality score

Trend conviction, breakout depth, pullback precision and volume expansion combine into a 0–1 quality score. Below threshold, no position is opened. The score and each component are stored with the decision.

05 / Second opinion

A gate that may only reject

A separate score reviews what gate 04 passed. It is built from a broad factor library that is first reduced to independent clusters, so no crowded group of correlated factors can dominate the vote. It has one power only: it can veto, never promote. Signals in its weakest band are dropped, and the instrument is left free for the next bar that clears every gate.

06 / Event avoidance

Macro blackout window

Inside a fixed window before high-impact events such as Federal Reserve rate decisions, the system neither opens new positions nor adds to existing ones. The calendar is built in and warns before it runs out.

07 / How much

Risk budget sets size

The stop location is fixed first, then contract count is derived from how much risk the trade is allowed to carry — not the other way round. Per-trade risk, per-position risk, per-instrument margin share and total exposure each clip the size in turn.

The second quality gate, and why it may only reject

Gate 04 scores a signal from its own entry geometry. Gate 05 was added after measuring a much larger factor library against realized outcomes. Two findings shaped it.

Most of a large factor library is one factor in different clothes

A large share of the candidates collapse into a single correlated cluster: at this system’s holding horizon, “trend strength” and “price extension” turn out to be the same quantity measured two ways. A naive equal-weight vote across the library would hand most of the weight to that one crowded cluster. So the library is reduced to independent clusters first, and weight is assigned per cluster rather than per factor.

The new dimensions tell you what to skip, not what to take

Designs that let the new score replace the original one — so it both rejected and admitted — all came out worse. Trade-level attribution showed why: the trades they dropped were genuinely below average, but the trades they let in instead were worth close to nothing. Rejection carried skill; admission carried none. So the shipped gate can only veto.

It re-times entries rather than cutting exposure

Each instrument holds at most one position, so a vetoed signal does not reduce participation — it frees the instrument, and the next bar there that clears every gate takes the slot, usually within the hour. This is why it behaves nothing like delaying entries by a fixed clock, which was tested separately and was clearly harmful.

A drawdown filter more than a return amplifier

The gain is largest in the weakest market regimes and roughly neutral in the strongest one. Over the window on this page it lowered maximum drawdown by about seven percentage points while taking slightly fewer trades.

How it was accepted

The acceptance bar was fixed before the runs, not chosen afterwards.

Compared against a random-rejection control at matched trade count, not only against the previous configuration. Being pickier lowers drawdown on its own, so without that control a design that merely trades less looks like a design that trades better.

Scored on zero-overlap windows, with one window disqualified from ranking because a single trade dominated its result. Any design whose advantage came mostly from one trade or one instrument was treated as an artifact rather than a finding.

Alternatives were discarded rather than re-tuned. Several scores that looked good against the previous configuration failed the random-rejection control and were dropped — including the one expected beforehand to work best.

Engineering

The strategy is half of it; staying alive is the other half

Live trading and backtesting run the same engine code, and one configuration both replays history and drives the live account. Backtest conclusions can therefore be verified bar by bar against live behaviour.

Full decision audit replayable

Not just fills. Every bar and every instrument writes a decision record with each quality-score component and the reason for rejection. "Why was there no entry?" can always be answered down to the specific gate.

Market data resilience self-healing

A dropped feed reconnects and backfills the missing bars. An outage past a threshold trips a circuit breaker that halts new entries. Brief flaps are debounced, so they do not generate alert noise.

Ledger reconciliation every 15s

While flat, book equity is continuously compared against the exchange balance and any mismatch alerts immediately. A missed fill, fee or funding charge surfaces within a minute, not at month-end.

Stops live at the exchange process-independent

The initial stop rests as an order at the exchange, so a crash, a network loss or a restart does not affect it. After a restart the system adopts existing positions without duplicating orders.

Hard capital limits layered

Per-trade risk, per-position risk, per-instrument margin share and total exposure clip contract count before the order is sent. When a limit binds, the reason is recorded rather than the size being silently shrunk.

Parameter changes leave a trail auditable

Every configuration change ships with its evidence: before-and-after backtests, the sample window and the basis for the decision, all committed to version control. Nothing changes on a hunch.

Backtest

380 days · 372 trades

Trading fees, funding and stop slippage are all charged; stops trigger on bar highs and lows as they do live. Figures below are normalized and carry no account-size information.

Monthly return

Percent of starting capital, summed from trade net P&L before funding costs — 300.95% in total; net of funding for the whole period this is the 293.24% headline return. Two months produced about two thirds of all profit.

Where the profit came from

Share of total profit per instrument, ranked and anonymized, summing to 100%.

Profit is highly concentrated — this is the thing to know

The best two months together account for 65.7% of all profit, and 4 of the remaining 12 months were negative. The pattern repeats across instruments: the single largest contributor produced 35.6% of total profit, while 3 of them were negative.

Returns come from a handful of strong trending regimes, not from steady daily accumulation. In ranging markets the system stays flat for long stretches — live, it once went six consecutive days without a single entry. Any arithmetic that extrapolates the annualized figure down to a month or a week is wrong.

MetricValueMetricValue
Sample length380 daysTrades396
Total return+293.24%Win rate44.62%
Annualized272.6%Payoff ratio1.95
Max drawdown29.47%Profit factor1.57
Closed by stop22 / 5.9%Other exits350