Adaptive BTC Momentum
Adaptive momentum on KXBTC15M using EMA/SMA crossover with VWAP alignment, velocity, and directional change filters can capture continuation moves while cutting losers quickly. We sweep max position size, entry velocity threshold, and hard stop distance to find the best signal sensitivity vs. capital-protection tradeoff across 30 days of backtest data.
Historical research only. Not investment advice.
Top strategy variants
Bottom strategy variants
Turbine Strategy Research Report
1. Short Disclaimer
This report contains historical simulation results only. Past performance does not guarantee future outcomes. All performance figures are derived from backtesting over a limited 30-day window and carry substantial statistical uncertainty. No representation is made about the future profitability of any strategy variant described herein.
2. Intro / Thesis
This research explores an adaptive momentum strategy applied to the KXBTC15M contract on Kalshi — a 15-minute binary market on Bitcoin price movements. The core thesis is that combining an EMA/SMA crossover signal with VWAP alignment, short-term velocity, and directional change filters can identify high-conviction continuation trades while using hard stops to limit downside. The idea is straightforward: when multiple momentum signals agree, the probability of a short-term follow-through increases; when they conflict, the strategy stays out.
Over 100 completed variant sweeps, we examined how adjusting position-level guardrails — specifically the price floor and price ceiling — affected strategy behavior. The goal was to map the sensitivity of the approach to entry/exit boundaries and identify which combinations produced the best risk-adjusted outcomes against 30 days of backtest data.
3. Variant and Strategy Explanation
Market traded: KXBTC15M — a 15-minute binary option on whether BTC will be above or below its current level at expiry. The strategy buys "yes" contracts when bullish momentum conditions align and "no" contracts when bearish conditions align.
Base logic (from the DSL):
The strategy runs on a 10-second loop and pulls real-time BTC data from Coinbase, including:
- 12-period EMA (1-minute bars)
- 50-period SMA (5-minute bars)
- 1-hour VWAP
- 1-minute velocity
- 15-minute percentage change
Entry conditions for a "yes" (bullish) trade:
- No current position
- More than 3 minutes to expiry
- Bid-ask spread below $0.03
- EMA(12,1m) > SMA(50,5m) (short-term trend above medium-term trend)
- Current price > VWAP(1h) (trading above the volume-weighted average)
- 1-minute velocity > $0.50 (strong upward momentum)
- 15-minute change > 5% (sustained directional move)
Entry conditions for "no" trades mirror these exactly, reversed. The strategy uses a fixed order size of 5 contracts per signal.
Exit rules:
- Exit near expiry (within 1 minute of close)
- Exit on momentum flip (EMA crosses back below SMA for yes positions, above for no positions), provided the trade is not already deeply underwater
- Hard stop at -$5.00 unrealized PnL
- Cancel any unfilled resting orders when no position exists
What we varied in this sweep:
We kept the signal logic fixed and varied two risk parameters:
- Price floor: ranged from $0.05 to $0.45 (10 steps)
- Price ceiling: ranged from $0.55 to $0.95 (10 steps)
These parameters act as trade filters, preventing entry on contracts priced too close to the floor or ceiling. All 100 combinations (10 × 10 grid) ran successfully without failures.
Each variant that completed is saved as a runnable Turbine strategy under a unique slug, available for activation.
4. Top Results
Important caveat before reading: These results are presented raw, but the robustness checks that follow fundamentally undermine any confidence in their meaningfulness. View them as descriptive, not predictive.
| Rank | Ceiling | Floor | Total PnL | ROI % | Sharpe | Trades | Win Rate | Max DD |
|---|---|---|---|---|---|---|---|---|
| 1 | 0.55 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 2 | 0.59 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 3 | 0.64 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 4 | 0.68 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 5 | 0.73 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 6 | 0.77 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 7 | 0.82 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
| 8 | 0.86 | 0.05 | $0.00 | 0% | 0.00 | 0 | 0% | $0.00 |
Every top-ranked variant, across the full sweep, generated exactly zero trades over the 30-day test window. The PnL is flat, the Sharpe is zero, the drawdown is zero — not because the strategy successfully managed risk, but because it never triggered an entry. The ranking above reflects the sweep's internal ordering (by ceiling value) where all outcomes are identical.
5. Bottom Results
The bottom results are identical to the top results — every cell in the 10×10 grid produced zero trades and zero PnL. There is no differentiation between "winners" and "losers" in any meaningful sense. The marginals confirm this: mean and maximum PnL are $0.00 at every floor and ceiling value tested.
This is not a case of some parameter combinations working and others failing. It's a case of no combinations working at all.
6. Conclusion
This strategy, as configured in the current 30-day backtest window, generated no trades. Not a single entry signal fired across any of the 100 parameter combinations tested. The entry conditions — requiring simultaneous alignment of EMA/SMA crossover, VWAP position, velocity, directional change, spread constraints, and time-to-expiry — were too restrictive for the market environment encountered during this period.
Robustness assessment:
The sweep produced three critical warnings, all of which should be taken seriously:
Zero resolved trades: The "winner" (and all other variants) had zero trades — well below the 30-trade minimum needed for statistically reliable metrics. Any conclusions drawn from the PnL surface here would be spurious.
Inert parameter axes: Both
price_floorandprice_ceilingwere identified as inert — varying them produced identical trade outcomes in every cell. This means the entry conditions never even survived to the point where floor/ceiling filters would matter. The parameters were not actually exercised.Permutation test results: A permutation test was run, shuffling the edge data feed to assess whether the strategy's timing advantage is real or due to chance. The result: p = 1.000. The strategy's edge-feed timing performed worse than or equal to 100% of 114 re-sweeps against time-scrambled versions of the same data. This is the strongest possible failure of a permutation test — the strategy shows no evidence of extracting signal from the feed that isn't explainable by pure noise.
Bottom line: These top results are entirely consistent with selection noise and overfitting. The strategy in its current form is not viable for the tested period. It is over-constrained, and no variant in the sweep should be described as strong, validated, or promising.
Potential paths forward (speculative, not tested): Relaxing one or more entry filters — for example, widening the spread tolerance, lowering the velocity threshold, or removing the 15-minute change requirement — might allow more trade frequency. But any such changes would require their own separate backtests and would carry their own overfitting risks. There is no evidence from this sweep that the current signal combination has predictive power.
7. Long Disclaimer
This research report is produced for informational and analytical purposes only. It does not constitute investment advice, a recommendation to trade, or a solicitation of any kind.
Backtest limitations: All results are derived from historical simulation over a single 30-day period. Backtests are inherently limited. They do not account for live trading friction, execution delays, order book depth, exchange downtime, data feed interruptions, or the psychological pressures of real-money decision-making. The period tested may not be representative of future market conditions. Regime shifts in volatility, liquidity, or correlation structure can render historically-derived rules ineffective.
Statistical caveats: The parameter sweep tested 100 variants over a finite historical window. With any large combinatorial search, the risk of finding configurations that performed well by chance — and poorly out-of-sample — is substantial. The permutation test conducted here produced a p-value of 1.000, indicating no detectable edge above a null model. Performance metrics derived from zero-trade strategies (Sharpe of zero, ROI of zero) are undefined in practical terms and should not be interpreted as evidence of stability or risk control.
No future projection: Nothing in this report should be read as a prediction or guarantee of future profits, trading activity, or strategy performance. Markets evolve, and strategies that fail in one environment may succeed in another — but the reverse is also true, and neither outcome can be known in advance.
Turbine platform: Each variant referenced in this report is saved as a runnable strategy on the Turbine platform. Live deployment of any strategy carries risk of loss. Users should independently evaluate any strategy's suitability for their own risk tolerance, capital, and objectives.
This report is generated from historical simulations. Backtests can be wrong or incomplete, and live trading can differ materially because of liquidity, fees, slippage, latency, market resolution, outages, and data quality. Do your own review before running any strategy.