BANGER
Product status: Banger’s public beta is paper-only. References to live execution are future-looking. Venue rules and legal claims can change; verify current primary sources for your jurisdiction.
2026-07-13 · 4 min read · reviewed 2026-10-14

From Backtest to Paper: A Research Checklist

A favorable historical or paper result is evidence under a particular model, not permission for live trading. This checklist prepares a candidate for a separate bounded forward paper test and makes its unresolved assumptions visible. Banger’s public beta does not accept live deployments.

1. Identify the actual fee model

A fee model can differ from current venue rules or the rules in force during the historical period. Preserve the named simulator policy, execution role, market parameters and date rather than claiming that one missing cost is always the cause of later losses.

Polymarket international’s current fee page supplies market/category parameters and rounding. The raw component depends on quantity, price and rate; it is not a universal effective percentage of stake. Save the rule for the selected market and distinguish it from the separate US product.

The current Kalshi PDF states market multipliers, general taker and separate maker schedules, with fee-plus-position-cost rounding. Banger 0.1.7’s named standard helper rounds its fee up to a whole cent. That implementation difference must be disclosed rather than called exact current charges.

Execution role and exceptions matter. A limit can be marketable, partially matched or left unfilled. Do not assume all Kalshi makers pay one-quarter, all maker rebates are guaranteed or every mode implements the same fees. Changing the assumed role creates a model comparison to label.

2. Stop assuming your fill price is the mid

Inspect price type, quote timing and available quantity. A midpoint fill is a declared simulation assumption, not an executable observation. The relative contribution of spread, slippage and fees depends on the tested path; no single cost is always dominant.

For hypothetical quotes of $0.53 bid and $0.58 ask, the spread is $0.05 per contract and the midpoint is $0.555. The ask is $0.025 above that midpoint, about 4.31% of the $0.58 acquisition cost, not universally a 2.5% taker fee. If executable prices already include the spread, do not deduct it again.

Before a forward experiment, compare explicitly stated execution scenarios:

3. Watch out for partial-fill and minimum-size traps

Read current minimum size, grid and time-in-force rules for the exact market. Do not assume a universal five-share minimum or that an alternative order type will always close a residual. An unavailable reduction remains evidence to preserve; a simulation cannot create a real counterparty.

4. Test actual constraints before adding exposure

Define the intended scope and expected rejection behavior for the tested context. A passing declaration is not proof of an account-wide safeguard or automatic flattening. Keep admission, held positions and resource lifetime distinct.

The public SDK RiskEnvelope uses max_position_usd, max_daily_loss_usd, max_open_positions, max_concentration_pct and max_orders_per_minute. It does not ship generic per_trade_cap/daily_loss_stop/kill_switch fields. Product quotas and infrastructure bounds are separate from these model constraints.

5. Rehearse the failure paths, not just the happy path

Exercise the failure paths offline first: missing data, a rejected input, duplicate observations, an unavailable exit and a position whose outcome remains unresolved. Define the expected state and retained evidence. Then use a separate supervised procedure to check delivered current data; do not retry blindly until a metric improves.

Settlement accounting must use the actual instrument and report. Do not repeat an unsupported winnings-fee example or infer a universal effective date from another market. A determined outcome, settlement claim and credited cash are separate records; fees already included in a net amount must not be deducted twice.

A forward test has its own scope

Complete CLI account setup, provide the inspected strategy.py and choose a short supervised paper window with explicit stop evidence. banger run defaults to paper even when --paper is omitted, and explicit --live is blocked. The command does not promote a backtest or change real venue permissions:

banger run strategy.py --paper
# Local, existing file, Banger account setup, simulated execution only.

Keep version, exact market, data coverage, decisions, model, costs and shutdown with the result. A useful checklist exposes what is still unproved. It does not certify a profitable strategy, exact venue fees, a real fill or readiness for live capital.

Sources

Keep reading

Run your first strategy free

Paper-trade on Polymarket and Kalshi market data without venue keys.

Start free