Ceiling sweep
Compare four price_ceiling values on the Coinbase VWAP Momentum strategy to measure how the upper contract-price entry bound affects outcome. Everything else stays fixed: VWAP and change_5m entry signals, spread <= 0.03, time_to_expiry > 2m, the -25 unrealized P&L stop, the 2-minute pre-close exit, 1-contract entries, 50-contract position cap, 0.25 price_floor, max_loss 100, and 30s loop interval.
Historical research only. Not investment advice.
Comparison results
Coinbase VWAP Momentum on Kalshi: Price Ceiling Sensitivity
Disclaimer (short)
This is historical simulation research on a prediction-market strategy. It is not financial advice, not a recommendation, and not a promise of future results. Markets change; simulated outcomes are not live outcomes.
Intro / thesis
This batch tests one lever on the Coinbase VWAP Momentum strategy for Kalshi's KXBTC15M market: the upper bound on the contract price at which the strategy is allowed to enter (price_ceiling). The question is straightforward. If the strategy is only willing to buy YES or NO contracts below some price, how much does that ceiling matter to the outcome?
Everything else is held fixed across the four runs: the VWAP comparison and the 5-minute change signal, a spread filter of at most 0.03, a time-to-expiry requirement of more than 2 minutes, a stop that sells everything if unrealized P&L drops below -25, an exit that sells everything within 2 minutes of close, 1-contract entries, a 50-contract position cap, a 0.25 price floor, a $100 max loss, and a 30-second evaluation loop. The only thing that moves is where the ceiling sits: 0.65, 0.70, 0.75, or 0.85.
The thesis under test is that a lower ceiling keeps the strategy out of expensive contracts where the reward-to-risk is thin, and that this shows up in better risk-adjusted outcomes even if it means fewer trades.
Variant and strategy explanation
The strategy evaluates every 30 seconds and works through four rules in order. The first matching rule fires and ends that tick.
- Rule 1: if position size is greater than 0 and unrealized P&L is below -25, sell everything.
- Rule 2: if position size is greater than 0 and time to expiry is 2 minutes or less, sell everything.
- Rule 3: if Coinbase BTC price is above its 1-hour VWAP, the 5-minute change is above 0.00125, contract price is between 0.25 and the variant's ceiling, spread is at most 0.03, and time to expiry is more than 2 minutes, buy 1 YES contract.
- Rule 4: the mirror image. If price is below VWAP, the 5-minute change is below -0.00125, price is within the same 0.25-to-ceiling band, spread is at most 0.03, and time to expiry is more than 2 minutes, buy 1 NO contract.
The four variants differ only in the ceiling value in Rules 3 and 4: 0.65, 0.70, 0.75, and 0.85. The 0.75 case is the previously saved baseline. Each variant ran over a 30-day window on the same market. All four completed. Each successful variant is saved as a runnable Turbine strategy, linked below by slug.
One note on the numbers. Intuition suggests that a higher ceiling admits more trades, and it does — but the relationship between trade count and the ceiling is not clean across the middle of the range, and the win rate moves in the opposite direction from what a simple "more expensive entries" story would predict. That inconsistency is unresolved in this data. I am not going to invent an accounting explanation for it.
Top results
1. price_ceiling 0.65 — ROI 72.56%, total P&L $36.28, 3,448 trades, win rate 50.42%, max drawdown -28.99, Sharpe 0.18. Saved as coinbase-vwap-momentum-115d3beb9d16.
This is the best result on every headline measure except win rate. It traded the least of the four (3,448 trades) and still produced the highest P&L by a wide margin over the baseline — roughly 1.5x the baseline's total P&L on about 78% of the trade count. It also had the shallowest drawdown of the group. The win rate is the lowest of the four at 50.42%, so the edge here is not accuracy; it is that the trades it takes are better compensated per trade.
2. price_ceiling 0.75 (saved baseline) — ROI 47.58%, total P&L $23.79, 4,407 trades, win rate 52.30%, max drawdown -30.19, Sharpe 0.11. Saved as coinbase-vwap-momentum-43c93307fc2c.
The baseline sits in the middle of the pack on ROI and drawdown and second on trade count. Its win rate (52.30%) is higher than the 0.65 variant's, yet its total P&L is materially lower. More winning trades, less money — that pattern is worth flagging rather than explaining away.
Bottom results
3. price_ceiling 0.70 — ROI 43.16%, total P&L $21.58, 3,952 trades, win rate 51.13%, max drawdown -32.41, Sharpe 0.10. Saved as coinbase-vwap-momentum-9c46752a2e75.
4. price_ceiling 0.85 — ROI 34.36%, total P&L $17.18, 5,200 trades, win rate 55.50%, max drawdown -36.85, Sharpe 0.07. Saved as coinbase-vwap-momentum-09b270f5001c.
The 0.85 variant is the weakest across the board: lowest ROI, lowest total P&L, deepest drawdown, lowest Sharpe. It also traded the most (5,200) and had the highest win rate of the four (55.50%). So the widest entry band produced the most trades and the most individual winners, and still made the least money with the worst drawdown. Again, that discrepancy is unresolved here — I can state the pattern, not fully account for it.
The 0.70 result is the awkward one. It sits between 0.65 and 0.75 on the ceiling, but its outcomes do not sit cleanly between them: fewer trades than the baseline, lower win rate than the baseline, lower total P&L, and a deeper drawdown than both 0.65 and 0.75. Whether that is noise from a single 30-day window or something real about the 0.70 band specifically is not answerable from four runs.
Conclusion
Within this batch, the direction of the result is consistent: a lower price ceiling produced better outcomes on ROI, total P&L, Sharpe, and max drawdown. The 0.65 variant won on all four, and the 0.85 variant lost on all four. The baseline at 0.75 landed second. The one variant that breaks the monotonic ordering is 0.70, which underperformed both its neighbors.
What I would take from this, cautiously: the ceiling looks like a meaningful parameter for this strategy, and restricting entries to cheaper contracts appears to improve per-trade economics even at the cost of trade count and raw win rate. The fact that win rate goes up as total P&L goes down across these variants is the most interesting and least explained observation in the set.
What I would not take from this: that 0.65 is the right ceiling going forward, or that any of these numbers will repeat. This was an explicit four-point comparison, not a sweep or a permutation test. Four runs over one 30-day window cannot establish statistical robustness, and a different period or a different risk budget could reorder these results. The 0.70 result in particular argues against reading a clean monotonic relationship into four points.
The practical output is that all four variants exist as runnable Turbine strategies with the slugs listed above, so the comparison can be repeated on other windows rather than treated as settled.
Disclaimer (long)
This report describes historical simulation research conducted on a prediction-market strategy for the Kalshi KXBTC15M contract series, using Coinbase BTC-USD price, 1-hour VWAP, and 5-minute change data as inputs. It is provided for informational and research purposes only. It is not investment advice, not trading advice, not a recommendation to buy or sell any contract or security, and not an offer or solicitation of any kind. Nothing here should be read as a promise, guarantee, or projection of future performance.
Simulated and backtested results are hypothetical by construction. They reflect the assumptions, filters, execution model, and data available to the simulation, and they do not reflect the results any actual account would have achieved. Simulated results do not account for every real-world friction, including but not limited to: order routing and queue priority, partial fills, rejected or delayed orders, exchange outages, liquidity that disappears precisely when it is most needed, latency between signal generation and order placement, fees and rebates, margin and capital constraints, taxes, and the behavioral pressure of watching real money move. Results that look achievable in simulation are frequently not achievable in live trading for reasons that only appear in live trading.
The specific findings here are limited by their inputs. Each variant was run over a 30-day window on a single market and a single asset. Thirty days is a short sample. Crypto markets are volatile and regime-dependent, and a window that favors a particular parameter value may simply reflect the conditions of that window. Four variants is a small comparison set; it is not a sweep, not a permutation test, and not a statistical significance test. Differences in ROI, Sharpe, drawdown, trade count, and win rate between variants may be noise rather than signal. The unresolved inconsistencies noted in the body — in particular the divergence between win rate and total P&L across variants — should be treated as open questions, not as explained effects. No causal mechanism has been established for any observed ordering.
Past performance, whether real or simulated, does not indicate future results. Market conditions, participant behavior, exchange rules, fee schedules, contract specifications, and the strategy's own assumptions can all change without notice, and any of those changes could invalidate the behavior described here. The strategy's rules, including its stop loss, time-based exit,
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.