VWAP Momentum Variants
Test whether the Coinbase VWAP momentum signal on KXBTC15M holds up across position sizing and risk budgets: how do 10, 25, and 50 max contracts, paired with a $25 and $100 max loss, change P&L, drawdown, and trade count against the same VWAP/5m-momentum entry rules?
Historical research only. Not investment advice.
Comparison results
Coinbase VWAP Momentum on Kalshi KXBTC15M — Position Sizing and Risk Budget Batch
Short disclaimer: This is historical simulation research on past market data. It is not investment advice, not a live track record, and not a promise of future results. Prediction markets can lose money and liquidity can vanish.
Intro / thesis
This batch tested a single idea on Kalshi's 15-minute BTC markets (series KXBTC15M): take the direction of Coinbase spot BTC when price sits on one side of its 1-hour VWAP and the last 5 minutes confirm the move, then hold a short-dated contract into expiry or until a risk rule fires. The signal itself was fixed. The question was purely operational: how do 10, 25, and 50 max contracts, paired with a $25 and $100 max loss, change P&L, drawdown, and trade count against the same entry rules?
All three planned variants ran over a 30-day window. Each successful variant is saved as a runnable Turbine strategy, so any row below can be inspected and re-run rather than taken on faith.
Variant and strategy explanation
The mechanics are shared across all three candidates. The engine evaluates every 30 seconds. Position limit is 50 contracts. YES price must sit between 0.25 and 0.75, spread must be 0.03 or tighter, and there must be more than 2 minutes to expiry.
Custom rules are evaluated top to bottom, and the first match ends that tick:
- If position size is above 0 and unrealized P&L is below -25, sell everything.
- If position size is above 0 and time to expiry is 2 minutes or less, sell everything.
- If Coinbase BTC price is above its 1-hour VWAP, the 5-minute change is greater than +0.00125, price is within 0.25–0.75, spread is at most 0.03, and time to expiry exceeds 2 minutes, buy 1 YES.
- If Coinbase BTC price is below its 1-hour VWAP, the 5-minute change is less than -0.00125, and the same price, spread, and time filters hold, buy 1 NO.
The batch varied two things and nothing else. The "tighter stop" variant moved rule 1's threshold from -25 to -10. The "tighter band" variant kept the -25 stop but narrowed the entry price window from 0.25–0.75 to 0.35–0.65, which also removes the most extreme-priced contracts from consideration.
Top results
Ranked by return on investment over the 30-day window:
| Rank | Variant | Total P&L | ROI | Max drawdown | Sharpe | Trades | Win rate |
|---|---|---|---|---|---|---|---|
| 1 | Tighter band — entry 0.35–0.65, stop -25 | +50.85 | 101.7% | -10.54 | 0.55 | 1,357 | 49.7% |
| 2 | Baseline — max_position 50, stop -25 | +44.12 | 88.2% | -18.72 | 0.37 | 2,017 | 51.0% |
| 3 | Tighter stop — max_position 50, stop -10 | +44.12 | 88.2% | -18.72 | 0.37 | 2,017 | 51.0% |
The tighter band is the interesting one. It traded roughly a third fewer times (1,357 vs 2,017), earned more (+50.85 vs +44.12), and did it with a smaller peak-to-trough drawdown (-10.54 vs -18.72) and a better Sharpe (0.55 vs 0.37). Its win rate was actually lower, 49.7% versus 51.0%, which means the average win was larger relative to the average loss. That is consistent with filtering out the cheapest, most lottery-like contracts near 0.25 and the most expensive near 0.75, where a small price move flips a large percentage of stake.
The tighter stop landed in the same slot as the baseline, with identical P&L, drawdown, Sharpe, trade count, and win rate to four significant figures. A -10 unrealized stop versus a -25 one produced no measurable difference here. That is a real result in the data, and it is also the kind of result that deserves skepticism. The most likely reading is that rule 2, the exit at 2 minutes to expiry, is doing most of the position closing, and that unrealized P&L rarely sat between -10 and -25 while a position was open. But the batch did not produce the trade-level attribution to confirm that, so the reason the two variants match exactly is unresolved, and I would not assume the tighter stop is harmless in other periods.
Bottom results
The two lowest-ranked entries are the baseline and the tighter stop, which are effectively the same strategy in this sample. Both ended at +44.12 on a 30-day run, with -18.72 max drawdown and a 0.37 Sharpe. A Sharpe below 1 over a single month on a strategy this trade-heavy is thin evidence of edge; it is also thin evidence of failure. The sample is short, the strategy fires hundreds of times a month, and the outcome depends on a handful of BTC regimes.
Conclusion
Within this batch and this 30-day window, narrowing the entry band to 0.35–0.65 was the only change that clearly mattered: it cut trade count by about a third, raised P&L, and roughly halved drawdown relative to the wider band. Changing the unrealized stop from -25 to -10 changed nothing at all, and the cause of that coincidence is not established by this data. Max contract count was not varied in this batch despite being part of the original framing, so any claim about 10 versus 25 versus 50 contracts would be invented. These are historical simulations over one month; different periods and risk budgets can produce very different rankings, and nothing here should be read as a forecast.
Long disclaimer
This report describes historical simulation research conducted on historical Kalshi market data and related Coinbase spot BTC data. It is published for research and educational purposes only. It is not financial, investment, legal, or tax advice, and it is not an offer or solicitation to buy or sell any security, contract, or financial instrument.
Simulated results are not live trading results. Backtests and simulations are constructed with the benefit of hindsight and are subject to look-ahead bias, survivorship bias, selection bias, data errors, timestamp mismatches, and modeling simplifications. Fills are assumed or approximated; real fills depend on order book depth, queue position, latency, partial fills, and the willingness of counterparties to trade. Kalshi's 15-minute BTC contracts are short-dated binary instruments with limited liquidity; spreads can widen sharply, and quoted prices may not be executable in the size assumed here.
The performance figures in this report — total P&L, ROI, maximum drawdown, Sharpe ratio, trade count, and win rate — are point estimates from a single 30-day window. They carry no statistical significance claim. A Sharpe ratio computed over one month of high-frequency trades is a noisy statistic, and small changes in the evaluation window, fee assumptions, or start date could change the ranking materially. Past performance, whether real or simulated, does not predict future results. You can lose money trading prediction markets, including the entire amount you commit.
Nothing in this report should be interpreted as a guarantee, promise, or implication of future profitability. Position sizing and risk limits described here are simulation parameters, not recommendations for any individual's account. Before trading any strategy, you should independently verify the rules, understand the fee and settlement mechanics of the venue, and consider whether the risk is appropriate for your circumstances. If in doubt, consult a licensed financial professional.
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.