[Famous-Q] Time-series momentum (90-bar)

public
@djgambhir

BTCUSDT · 4h · 2021-12-312026-08-31 · 10,226 bars in 2.0ms

Underperformed the market. Holding BTCUSDT returned +71.85% over the same period, against this strategy’s +16.79%.

Net P&L
+16.79%
$1,679.14
Max drawdown
-16.00%
Max run-up
+27.58%
Trades
404
24.8% win rate
Profit factor
1.13
2021-12-31drawdown · worst -16.00%2026-08-31
TrainingValidationOut-of-sample
SegmentPeriodReturnMax drawdownTradesWin rate
Training2022-01-012024-10-19+5.72%-16.00%24323%
Validation2024-10-192025-09-25+6.80%-6.81%8626%
Out-of-sample2025-09-252026-08-31+3.74%-9.73%7431%

Risk-adjusted

Sharpe
0.34
Sortino
0.49
Calmar
0.21
Return ÷ max drawdown
1.05
CAGR
+3.38%
Exposure
96.0%

Per trade

Expectancy
$4.16 · +0.19%
Average win / loss
$149.22 / −$43.56
Payoff ratio
3.43
Largest win / loss
$1,045.76 / −$251.21
Longest losing streak(winning: 4)
20 trades

Drawdown over time

Max drawdown
-16.00%
Longest time under water
711 days
Worst drawdown recovered in
539 days
Under water at the end
189 days

Costs and mechanics

Fees paid
−$1,078.69
Funding
−$374.56
Liquidations
0
Warmup bars(loaded before the start date)
90
Benchmark(buy and hold)
+71.85%

Monte Carlo

1,000 alternative histories, each 404 trades drawn at random from this run’s own. The bands hold the middle 50% and 90% of them; the solid line is what actually happened.

this runmedian of the historiesmiddle 50% · 90%
Unlucky (5%)TypicalLucky (95%)
Return-23.70%+16.11%+90.81%
Max drawdown-35.51%-20.19%-11.16%

31% of histories lost money, and 74% had a deeper drawdown than this run’s -16.00%. Assumes trades are independent; real losing streaks cluster, so the true spread is usually wider.

Settings

roc90 length
90
Long entry: roc90 > ▢
0
Short entry: roc90 < ▢
0
Long exit: roc90 < ▢
0
Short exit: roc90 > ▢
0
Leverage (×)
1
Position size (% of equity)
25

BTCUSDT with every trade

Loading prices…
long opened short opened closed at a profit closed at a loss

Trades

404 trades · 401–404 shown

#SideEntryExitHeldP&LReturnClosed by
401short2026-08-12 20:00 @ 63,382.122026-08-15 16:00 @ 63,080.712d 20h$11.74+0.43%signal
402long2026-08-15 20:00 @ 63,106.222026-08-16 12:00 @ 62,968.5016h−$8.86-0.32%signal
403long2026-08-16 16:00 @ 63,126.422026-08-17 04:00 @ 63,397.0212h$8.81+0.32%signal
404long2026-08-17 08:00 @ 63,506.202026-08-31 20:00 @ 78,533.8914d 12h$638.26+23.12%end of data

How this was run

Orders fill at the next bar’s open, never at the close that produced the signal. When one bar’s range covered both the stop and the target, the stop was taken, because the data cannot say which came first. Fees, slippage and funding are all charged.

Warmup history was loaded from before 2022-01-01 so the requested window is fully tradable.

← Browse other results