Research by conversation
Ask the agent to investigate markets, companies, filings, strategies, and your connected account context.
Backtesting execution-cost guide
Separate explicit fees from spread and execution effects, define when and how orders fill, scale assumptions to liquidity and order size, then test whether strategy conclusions survive less favorable execution.
Ask the agent to investigate markets, companies, filings, strategies, and your connected account context.
When direct trading is enabled, request a one-time trade in plain English, inspect the order, and approve it before submission.
Create, revise, backtest, connect, and operate Lumibot strategies without assembling the full application stack yourself.
Work in BotSpot or connect through ChatGPT, Claude, Cursor, Codex, and other compatible MCP clients.
List every cost and fill assumption separately before inspecting performance. A single generic transaction-cost number can hide double counting, missing costs, or unrealistic execution.
Keep explicit charges, spread, price movement, and market impact identifiable even if the backtesting engine combines some of them into one fill price.
Use the current official fee schedule for the intended broker, account type, market, asset, order, and volume tier. Do not copy a fee from a different broker or assume commission-free means cost-free.
Represent each fee in the form it is charged: per order, per share, per contract, percentage of value, minimum charge, or tiered rate. LumiBot supports flat, percentage, and per-contract trading-fee inputs for backtests.
A marketable buy generally executes against the ask and a marketable sell against the bid. A fill model using bid and ask quotes can therefore include spread directly in simulated fill prices.
Slippage describes a difference between a declared reference price and the simulated or actual fill. State whether the reference is decision price, quote midpoint, arrival price, last trade, bar close, or another observable value.
Define when the strategy observes data, when it submits an order, which market session applies, and which later observation can first produce a fill. Same-bar fills can use information unavailable when the order would have been placed.
Order type changes the simulation. Market orders favor execution certainty but can slip. Limit orders constrain price but may remain unfilled. Stops become eligible only after their trigger conditions occur.
Historical price bars do not guarantee that the full strategy order could trade at one displayed price. Available quantity, order-book depth, queue position, and competing orders affect both fill quantity and timing.
Set liquidity rules from data and intended trade size rather than one universal volume percentage. Test what happens when only part of an order fills and the remainder stays open, reprices, expires, or is canceled.
Market impact is the price response associated with consuming liquidity and revealing demand or supply. Its size depends on factors including order size, trading volume, depth, volatility, and execution duration.
A bar-only backtest cannot observe the order book the hypothetical trade would have consumed. Any impact result remains a model estimate. Declare model form, inputs, calibration period, and unsupported markets.
Test a documented base case plus less favorable execution cases. Derive ranges from current fee schedules, historical quotes, intended participation, and observed execution rather than publishing universal defaults.
Report gross results, net results, turnover, total modeled costs, and the cost level at which the strategy conclusion changes. A strategy surviving only its most optimistic fill model needs more evidence.
Paper trading can validate order construction, scheduling, state, and broker integration, but its fills remain simulated. Alpaca documents that its paper environment omits market impact, latency slippage, queue position, price improvement, and regulatory fees.
Where controlled live observations exist, compare decision timestamp, reference quote, submit time, acknowledgments, partial fills, final fill, explicit fees, order size, and market conditions. Historical observations can inform calibration but cannot guarantee future execution.
No execution model reproduces every venue, queue, counterparty, outage, rejection, or future liquidity condition. More detailed assumptions reduce known simplifications; they do not turn simulated results into expected returns.
Broker fees, market structure, data coverage, and backtesting-engine defaults can change. Preserve configuration, sources, dates, and raw trade records so results can be audited and rerun.
Include applicable broker, exchange, clearing, regulatory, and contract fees plus bid-ask spread, slippage, fill timing, liquidity limits, partial fills, and market impact. Financing, borrow, conversion, and product costs may also matter for some strategies.
No universal value fits every strategy. Derive assumptions from intended order type, asset, session, quote data, volatility, liquidity, order size, latency, and observed execution. Test multiple documented cases.
No. Spread, price movement, market impact, regulatory or product fees, financing, and missed or partial fills can remain even when the broker charges no stated commission.
Not by itself. Paper systems use simulated fill and liquidity rules and may omit market impact, queue position, latency effects, fees, or price improvement. Use paper trading mainly for operational validation and document its fill assumptions.
Fill only eligible quantity under the declared liquidity model, update portfolio state after each fill, and keep the remainder pending, canceled, or expired according to the order rules. Do not assume every order completes immediately.
Sources verified 2026-08-14.
Past performance does not guarantee future results. Automated trading involves risk of loss.