A backtest’s gross price change is not the same as a net trading result. A useful cost model identifies each charge separately, states its units and source, applies it at the appropriate time, and names what is still missing. Writing “fees included” is not enough to reproduce or assess the assumption.

This remains a model of a historical rule, not evidence of future performance or a real fill. The CFTC’s virtual-currency risk advisory notes the volatility and platform risks in spot markets and explains that margin amplifies derivatives exposure; those warnings do not validate a backtest or its execution assumptions.

Separate the cost components

Trading fees may apply to each executed side and depend on venue, market and fee tier. State whether the rate is a fraction or percentage, the assumed order classification and how many executions are charged. Spread is the difference between available buy and sell prices; if you have only candles, an assumed basis-point cost is a simplification rather than a measured quote. Slippage is the difference between the modeled decision price and assumed execution price. Do not count it twice if an adverse fill price already incorporates the same spread component.

Funding applies only to instruments and positions governed by a settlement mechanism, such as a particular perpetual contract. Record the actual settlement timestamps, rate units, sign convention, position exposure and price reference used. A rate displayed now is not the future rate. The cited venue’s documentation explains its own funding mechanism; contract and margin conventions differ elsewhere. Borrow, conversion, deposit or withdrawal costs may matter for some research questions but should not be invented when data are absent.

Hyperliquid publishes separate spot and perpetual fee schedules, with base fee tiers tied to rolling 14-day weighted volume and account-specific discounts. A worksheet rate is therefore an explicit modeling assumption, not a current account quote; check the applicable product, tier and discounts before comparing modeled fees with a live statement.

For a simple USD-linear example, a 0.05% fee applied to a hypothetical $1,000 executed notional is $0.50 for that one side, before any other cost. A round trip with equal notional and equal rate would incur another $0.50 in fee. The actual notional may differ between entry and exit, and the example does not specify a real venue fee tier. Declare all inputs and recalculate the ledger for the actual rule.

Reconcile one hypothetical net result

Consider a fictional perpetual trade with $10,000 of notional at entry and again at exit. Assume its price move produces $40 gross profit before costs. Hyperliquid’s published base-tier perpetual taker rate is 0.045% per executed side; applying that specific schedule to two equal $10,000 taker fills gives $9 in fees. The published rate is venue- and tier-specific; verify the live account schedule before using it. This is an example of the arithmetic, not a fee quote.

The rest of the ledger uses declared fictional assumptions. Suppose the entry crosses half of a 4-basis-point quoted spread and the exit crosses the other half, for $4 total on constant $10,000 notional. Add 3 basis points of adverse movement beyond the touch on each side, or $6. Finally, assume the position is eligible for two funding settlements at a hypothetical +0.01% each and, under the stated positive-rate convention, the long pays $2. Your venue’s rate, sign, timing and price basis may differ; Hyperliquid documents its own hourly settlement and payer convention.

Line item Declared assumption Amount
Gross price result +0.40% × $10,000 +$40
Entry and exit fees 0.045% × $10,000 × 2 −$9
Spread crossing 4 bp round trip × $10,000 −$4
Additional slippage 3 bp per side × $10,000 × 2 −$6
Funding 0.01% × $10,000 × 2 settlements −$2
Modeled net $40 − $9 − $4 − $6 − $2 +$19
fictional backtest cost reconciliationA constant-notional fictional round trip starts with a 40-dollar gross gain, then subtracts 9 dollars in taker fees, 4 dollars in assumed spread, 6 dollars in additional adverse slippage and 2 dollars in assumed funding to leave 19 dollars net. These are declared teaching inputs, not observed performance or a venue quote.ONE HYPOTHETICAL ROUND TRIP · $10,000 CONSTANT NOTIONALGross+$40+0.40% movebefore costsFees−$90.045% eachside × 2Spread−$44 bp totalfrom midpointExtra slip−$63 bp / sidepast touchFunding−$22 × 0.01%assumed paidNet+$190.19% ofreference notional$40 − $9 − $4 − $6 − $2 = $19 · invented arithmetic, not a backtest result
A constant-notional fictional round trip starts with a 40-dollar gross gain, then subtracts 9 dollars in taker fees, 4 dollars in assumed spread, 6 dollars in additional adverse slippage and 2 dollars in assumed funding to leave 19 dollars net. These are declared teaching inputs, not observed performance or a venue quote. Illustrative teaching graphic · not live market data

This ledger treats spread as movement from a midpoint reference to the quoted touch, then records only additional adverse movement beyond that touch as slippage. If a fill-price model already includes the midpoint-to-touch spread, do not deduct the same spread again. Keep the reference price and the modeled fill price visible so a reviewer can see where each cost entered.

Match the model to the evidence

If the source contains hourly bars only, it does not reveal exact queue position, depth, order latency, rejected orders, partial fills or the sequence of intrabar prices. A fixed slippage assumption may be useful for sensitivity analysis, but it is not a verified fill. Market and limit orders have different behavior; model only what the data and code can support. State whether position quantity is rounded and whether the model has instrument tick and minimum-size rules.

Funding requires careful timestamp alignment. A position opened after a settlement snapshot should not be charged that earlier event. A long position paying a positive rate is a convention documented by some venues, not a universal assumption; check the current contract-specific rule. Missing funding observations should remain unknown rather than be silently set to zero. Preserve gaps and explain how affected intervals were handled.

Run a sensitivity grid

Set a baseline cost model and one or more higher-cost cases before examining the final comparison. Change one component at a time where possible, then use a combined stress case. Report net outcome, drawdown, trade count, turnover and exposure under each case. A result that persists under modest changes is less dependent on one exact input, but it is still conditional on the data, rule, sample and model. Do not call an arbitrary high value “worst case” without evidence that it bounds the costs.

For the same fictional $40 gross move above, keep the $9 fee and $2 funding assumptions fixed. A baseline with $4 spread and $6 extra slippage leaves $19 net after $21 total cost. A higher-cost case with $8 spread and $12 extra slippage leaves $9 after $31 total cost. The rate changes are chosen to show sensitivity; they are not measured market conditions. In an actual backtest, rerun the whole strategy at each declared setting: changed fees and fills can alter position size, exits, later signals and the path of account equity, so subtracting a cost from one selected trade cannot replace a complete replay.

Fixed $40 gross illustration Baseline Higher-cost assumption
Fees $9 $9
Spread $4 $8
Additional slippage $6 $12
Funding $2 $2
Total modeled costs $21 $31
Net on this one example $19 $9
backtest cost sensitivity comparisonTwo fictional cases start with the same 40-dollar gross move on 10,000 dollars notional. Baseline assumptions total 21 dollars in costs and leave 19 dollars. Higher assumed spread and slippage total 31 dollars and leave 9 dollars. The cases are sensitivity inputs, not measured costs or evidence of an edge.SAME +$40 GROSS EXAMPLE · CHANGE EXECUTION ASSUMPTIONSBaselineassumed$9fees$4$6$2$21 total cost+$19 modeled netHigher-costassumed$9fees$8$12$2$31 total cost+$9 modeled netfeesspreadadditional slippagefundingBar lengths reflect dollars in this illustration only
Two fictional cases start with the same 40-dollar gross move on 10,000 dollars notional. Baseline assumptions total 21 dollars in costs and leave 19 dollars. Higher assumed spread and slippage total 31 dollars and leave 9 dollars. The cases are sensitivity inputs, not measured costs or evidence of an edge. Illustrative teaching graphic · not live market data

Keep the values, units, source URL, date consulted, fee tier, instrument and rounding rules with the strategy version. When an official venue document changes, revisit venue-sensitive assumptions. In SuperQuant’s current hourly backtest, adverse slippage adjusts modeled entry and exit prices, fees are recorded on those fills, and funding is settled at the bar open for a position already held then. Funding-enabled runs require the needed rate observations. This is a simplified model: it does not replay an order book, queue position, latency, all order types or actual exchange fills. Its bundled dataset is synthetic. Product outputs demonstrate a model, not a venue statement.

Use this audit sequence before interpreting a net result: freeze the contract and cost convention; align each fee with its executed notional; include funding only for eligible settlement events; reconcile gross and each cost once; then replay the full rule under predeclared higher-cost cases. Mark unavailable costs as unknown or state the explicit bound used; do not quietly turn missing data into zero.

backtest cost model audit workflowBefore interpreting a net backtest, freeze the instrument and cost convention, align each fill and its actual notional, apply funding only to eligible settlement events, reconcile gross and every charge once, then rerun the entire strategy under predeclared higher-cost assumptions.1 · Freezeinstrument · ratereference · units2 · Align fillseach executionactual notional3 · Check timeeligible fundingrate · sign · basis4 · Reconcilegross − chargeseach cost once5 · Stressrerun full rulereport sensitivityUnknown cost stays unknown or is explicitly bounded · never silently replaced with zeroA robust-looking sample is still conditional on data, assumptions and execution
Before interpreting a net backtest, freeze the instrument and cost convention, align each fill and its actual notional, apply funding only to eligible settlement events, reconcile gross and every charge once, then rerun the entire strategy under predeclared higher-cost assumptions. Illustrative teaching graphic · not live market data

Use the free crypto backtest cost-model worksheet to keep these assumptions and source dates together. The fees and funding worksheet calculates user-entered rates; compare the maker/taker fee guide, funding guide, data-quality checks and backtest workflow. Hyperliquid’s fee and funding pages were checked on 26 September 2026; use the current contract and account documentation, as rates and rules can change. This is general educational content, not fee advice, execution evidence or an investment recommendation.