Deep Research

Price Band Grid

For BTC Range Beyond Strike on KXBTC15M at 50 contracts, sweep the YES price floor and price ceiling together to see how the entry price band affects historical net P&L, drawdown and Sharpe, holding all signal logic, sizing, and risk limits fixed.

Historical research only. Not investment advice.

Top Strategy Variants

Bottom Strategy Variants

BTC Range Beyond Strike (KXBTC15M): Entry-Price Band Sweep

Disclaimer (short)

This is historical simulation research on a prediction-market strategy. It is not investment advice, not a recommendation, and not evidence of future results. Nothing here should be read as a claim that any configuration will make money going forward.

Intro / thesis

This report covers a single-axis-pair sensitivity study on Kalshi's KXBTC15M series, a 15-minute BTC market. The strategy is "BTC Range Beyond Strike," a custom rule set that buys 50 contracts of YES or NO depending on where the recent 15-minute range and current spot sit relative to the strike. The question was narrow: if we hold all signal logic, sizing, and risk limits fixed and only move the entry price band (the YES/NO ask floor and ceiling), how does historical net P&L, drawdown, and Sharpe change?

All 100 variants in the 10×10 grid completed successfully. Each successful variant is saved as a runnable Turbine strategy, so any cell in the sweep can be pulled up and re-run rather than being a dead number in a table.

Before the results: the mechanics, briefly, so the price band makes sense. The strategy polls every 30 seconds. Rule 1 buys YES 50 contracts when there is no position, expiry is between 2 and 5 minutes out, the 15-minute low is no more than $25 below the strike, spot is above the strike, the YES ask is between 0.05 and 0.95, the spread is at most 0.03, and balance is non-negative. Rule 2 is the mirror: buy NO when the high is within $25 of the strike, spot is below it, and the NO ask and spread meet the same constraints. Rule 3 cancels all resting orders inside 2 minutes to expiry. Position cap is 50 contracts, notional cap is $50 per market, one entry per market, and a $25 max-loss halt applies only to this strategy's own Kalshi inventory. No other exits are modeled.

The sweep moved risk.price_floor across 0.05 to 0.45 and risk.price_ceiling across 0.55 to 0.95, ten values each, for 100 cells.

Variant and strategy explanation

The two axes are the lower and upper bounds on the ask price at which the strategy will take an entry. Raising the floor means the strategy refuses cheaper contracts; lowering the ceiling means it refuses more expensive ones. Everything else — the strike-distance gates, the spread filter, the 2-to-5-minute window, the 50-contract size, the $50 notional cap — is identical across cells.

Two practical notes matter for reading the results. First, entry spend is capped at $50 notional per market and the spent budget is not released by later sells, so the effective size is shaped by price, not just by the 50-contract count. Higher-priced entries consume the cap faster. Second, max_entries_per_market is set to 1, which is the conservative reading: partial fills and maker chunks can each count as an entry.

Top results

The winner by net P&L was floor 0.45 / ceiling 0.73, with $352.39 total P&L, a −$231.67 max drawdown, 0.41 Sharpe, 514 trades, and a 65.1% win rate. That is also the best Sharpe in the top group and roughly the best return per unit of drawdown among the leaders.

The runner-up, floor 0.45 / ceiling 0.64, produced $332.99 on 350 trades with a 61.6% win rate, −$223.92 drawdown, and 0.44 Sharpe — the highest Sharpe in the visible top set, on meaningfully fewer trades.

Third was floor 0.36 / ceiling 0.73 at $291.53, −$241.93 drawdown, 0.33 Sharpe, 549 trades. Then floor 0.41 / ceiling 0.73 at $261.08, and a cluster at floor 0.05, 0.09, 0.14, and 0.18 with ceiling 0.73, each landing at $234.17, −$262.94 drawdown, 0.27 Sharpe, and about 578 trades.

That cluster is worth flagging plainly. Four different floors produced effectively identical results. That is consistent with the floor never binding in those cells, but the data here does not confirm why, and the near-identical figures — including the floor 0.18 cell reporting 577 trades against 578 for the others while sharing every other headline number — are a discrepancy I cannot resolve from this dataset. I am not going to invent an accounting explanation for it.

The pattern across the top group is that a high ceiling near 0.73 and a high floor near 0.45 tend to do best. But the marginals complicate that story: the ceiling marginal average at 0.73 is the best of the ten ($240.65 mean), while 0.59 and 0.77 are negative on average. The peak is narrow, not a broad plateau.

Bottom results

The worst cell was floor 0.23 / ceiling 0.55 at −$367.28, with a −$420.80 drawdown, −0.18 Sharpe, 295 trades, and a 41.5% win rate. Second worst was floor 0.27 / ceiling 0.55 at −$354.12. Third was floor 0.41 / ceiling 0.55 at −$350.72.

The 0.55 ceiling dominates the bottom: every one of the eight worst cells uses it. Its marginal average is −$279.32, the worst of any ceiling value, and its best single cell still lost $143.66. That is a clean, consistent signal — at this ceiling the strategy simply does not get enough price to overcome its costs and its loss rate.

The floors in the bottom group are scattered, from 0.09 up to 0.41, and the 0.09 / 0.14 / 0.18 cells at ceiling 0.55 again report identical numbers (−$301.59, 304 trades, 42.1% win rate), with 0.18 showing 303 trades. Same unresolved issue as in the top group.

Conclusion

The honest summary is: there is a visible structure here, and it is not strong enough to call an edge. The best cells prefer a ceiling around 0.73 and a floor around 0.45, and the worst cells cluster hard at a 0.55 ceiling. A monotonic-looking ceiling response is more reassuring than a single lucky cell. But three checks argue for caution.

First, the deflated Sharpe is 0.66 against a 0.95 threshold, and the sweep carries an explicit low-DSR warning: the winner is not distinguishable from the luckiest of the sweep's skill-less trials. The expected-max-Sharpe benchmark is 0.33, which is the level the winner would have to clear to be interesting, and the reported Sharpes sit right around it.

Second, the permutation test returned p = 1.000 — the sweep's best result beat 0.0% of 100 luck-only re-sweeps of the same 100-cell grid. The lower-tail p-value is 0.0099, but the upper-tail result is the one that bears on whether the winner is special, and it is not. Stated plainly: this check does not establish an edge beyond selection noise, and the strategy is not validated by this study.

Third, neighborhood degradation is 0.53, meaning results fall off substantially as you move away from the winning cell. That is what a narrow peak with selection noise looks like, not what a robust edge looks like.

The two ceilings worth a closer look are 0.64 and 0.73, and the floor axis deserves a re-run with a narrower band around 0.45 to see whether the floor effect is real or an artifact. The identical-cell clusters at several floors should be explained before any of these numbers are trusted at face value.

Each successful variant above is saved as a runnable Turbine strategy, so the next step is out-of-sample work on a held-back window, not further optimization on this one. A history-only sweep of this kind can show a shape; it cannot show that the shape will persist.

Disclaimer (long)

This document is research produced by Turbine for informational purposes only. It describes a historical simulation of a trading strategy on Kalshi prediction markets and must not be relied upon as investment, financial, legal, or tax advice, nor as an offer or solicitation to buy or sell any contract or security.

All figures are simulated. Simulated results are constructed with the benefit of hindsight: the parameter grid was chosen after observing outcomes, all 100 cells were evaluated, and the best cell is reported as the winner. That process guarantees a favorable-looking maximum whether or not any underlying edge exists. Backtested performance is not a reliable indicator of live results, and the gap between simulated and live fills, spreads, queue position, and fees is usually large and unfavorable.

Specific limitations of this study:

  • Selection overfitting. A 100-cell sweep with a reported deflated Sharpe of 0.66 (below the 0.95 threshold) and an explicit low-DSR warning does not establish skill. The winner is statistically indistinguishable from the luckiest of many skill-less trials.
  • Permutation result. The permutation test returned an upper-tail p-value of 1.000, meaning the best cell outperformed none of 100 luck-only re-sweeps of the same grid. This does not validate the strategy.
  • Neighborhood fragility. The neighborhood degradation statistic is 0.53, indicating performance falls off materially around the winner. Small changes in the entry band produce large changes in results.
  • Unresolved discrepancies. Several cells sharing a ceiling but differing only in floor reported identical headline metrics, including trade counts that differ by one in one case. The cause is not determined here and is not explained away.
  • Market-structure assumptions. The simulation assumes orders can be placed at the modeled asks within the spread filter, that the $50 notional cap and 50-contract limit

About this Kalshi strategy backtest

What question does Price Band Grid investigate?

For BTC Range Beyond Strike on KXBTC15M at 50 contracts, sweep the YES price floor and price ceiling together to see how the entry price band affects historical net P&L, drawdown and Sharpe, holding all signal logic, sizing, and risk limits fixed.

Read the analysis alongside the individual variant results. Check which entry, exit, price-band or risk settings changed, which settings stayed fixed, and whether the report documents enough historical coverage to support its comparison. A different parameter value defines a different simulation; it does not establish a new source of live trading returns.

How many strategy variants are included?

This report lists 100 completed and 0 failed strategy variants. Failed comparisons do not count as successful tests with zero profit. Review trade counts and drawdown alongside net P&L, win rate and Sharpe, and read any coverage or execution caveats in the analysis. A result based on very few trades needs particular care, even when its return looks high.

Does a profitable Kalshi backtest predict live performance?

These are historical simulations. Live results can differ because of liquidity, fees, slippage, latency, market resolution, outages and data quality. Selecting the best result after comparing many variants can also overstate how reliably it will perform on new data. Compare nearby settings, inspect losing variants and test on a separate period before considering a live run. The report is research, not a promise of profit or investment advice.

How can I inspect or test a strategy from this report?

Use an available Open strategy link to inspect that variant. Review its rules, market, date window, fill assumptions, fees and trade history before changing parameters or rerunning it. Confirm which data and execution assumptions the selected market actually supports; a replay does not establish that every historical order could have filled live. For the workflow, read the Kalshi and prediction market backtesting guide. The Kalshi backtesting software page explains the product's supported testing workflow.

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.