[Mine-PA] Higher highs + higher lows continuation

public
@djgambhir

BTCUSDT · 12h · 2021-12-292026-08-31 · 3,413 bars in 2.1ms

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

Net P&L
+14.35%
$1,434.67
Max drawdown
-15.37%
Max run-up
+29.12%
Trades
210
34.8% win rate
Profit factor
1.14
2021-12-29drawdown · worst -15.37%2026-08-31
TrainingValidationOut-of-sample
SegmentPeriodReturnMax drawdownTradesWin rate
Training2022-01-012024-10-19+10.26%-14.74%12035%
Validation2024-10-192025-09-24-6.04%-12.37%4732%
Out-of-sample2025-09-242026-08-31+9.95%-5.49%4236%

Risk-adjusted

Sharpe
0.33
Sortino
0.48
Calmar
0.19
Return ÷ max drawdown
0.93
CAGR
+2.91%
Exposure
61.6%

Per trade

Expectancy
$6.83 · +0.30%
Average win / loss
$158.20 / −$73.82
Payoff ratio
2.14
Largest win / loss
$778.50 / −$274.31
Longest losing streak(winning: 4)
10 trades

Drawdown over time

Max drawdown
-15.37%
Longest time under water(still going at the end)
902 days
Worst drawdown recovered in
not recovered

Costs and mechanics

Fees paid
−$559.36
Funding
−$281.62
Liquidations
0
Warmup bars(loaded before the start date)
49
Benchmark(buy and hold)
+69.15%

Monte Carlo

1,000 alternative histories, each 210 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-20.44%+12.49%+66.83%
Max drawdown-30.18%-16.63%-9.29%

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

Settings

ema50 length
50
ll3 length
3
hh3 length
3
atr14 length
14
Stop loss (× atr14)
2
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

210 trades · 201–210 shown

#SideEntryExitHeldP&LReturnClosed by
201long2026-07-10 12:00 @ 64,407.082026-07-13 12:00 @ 62,868.823d−$71.64-2.54%signal
202long2026-07-15 12:00 @ 64,720.342026-07-17 00:00 @ 63,788.341d 12h−$43.78-1.56%signal
203short2026-07-17 12:00 @ 63,260.452026-07-19 00:00 @ 64,819.661d 12h−$71.19-2.55%signal
204long2026-07-19 12:00 @ 64,458.592026-07-24 00:00 @ 65,056.594d 12h$21.36+0.77%signal
205long2026-07-26 12:00 @ 64,494.402026-07-28 00:00 @ 63,707.961d 12h−$37.36-1.34%signal
206short2026-07-28 12:00 @ 63,418.012026-07-30 12:00 @ 64,779.852d−$61.07-2.20%signal
207long2026-07-31 00:00 @ 64,762.952026-07-31 12:00 @ 62,480.9912h−$100.59-3.65%stop loss
208long2026-08-05 00:00 @ 64,088.422026-08-11 00:00 @ 63,926.516d−$12.06-0.44%signal
209short2026-08-14 12:00 @ 62,824.932026-08-17 12:00 @ 63,612.723d−$35.94-1.32%signal
210long2026-08-18 00:00 @ 64,517.002026-08-29 00:00 @ 77,790.3411d$548.58+20.16%signal

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