Skip to content
DOCUMENTATION / FAQ
OPBT SDK · 10

FAQ

On this page
10

FAQ

Why does history() raise DataNotPrefetched?

Three usual causes: symbol spelling (Hyperliquid core markets use bare names while HIP-3 keeps its prefix, such as xyz:AAPL); the freq is not declared in extra_freqs; window × frequency exceeds the lookback_days warm-up.

Why is my fill slightly worse than the price I saw?

Backtest uses the frozen HISTORICAL_BAR_EXECUTION model: the current real completed-bar close logical BBO plus configured fees/slippage after the strategy decision. It never uses an unseen next open. Paper never uses that bar as a quote; submit-time fresh OnePort BBO determines its isolated simulated execution. Neither mode claims venue queue or fill equivalence.

on_funding never fires?

on_funding is an optional legacy hook: Backtest and Paper call it once per verified UPERP settlement with non-zero exposure, up to 256 legacy event callbacks per boundary. New strategies should process ctx.funding_events once from handle_bar; omitting on_funding adds no strategy callback. Live does not estimate settlements or emit this hook.

Are results reproducible?

Runs freeze the project version and dataset references so the inputs can be identified and reviewed. Exact repeatability also depends on the recorded engine and runtime environment.

Can my strategy access the network or files?

The strategy sandbox disables network access and uses a read-only root filesystem. Supported research data access is exposed through the ctx data APIs.

ONEPORT RESEARCH · DOCUMENTATION