OpenQuant Docs banner
OpenQuant icon openquant-rs / documentation terminal

etf_trick

Position Sizing and Trade Construction

Synthetic ETF and futures roll utilities for realistic PnL path construction.

Why This Module Exists

Backtests must include financing, carry, and contract-roll mechanics to avoid optimistic bias.

Key Public APIs

  • EtfTrick
  • get_futures_roll_series
  • FuturesRollRow

Core Math

ETF NAV Update

\[NAV_t=NAV_{t-1}(1+r_t-c_t)\]

Roll Return

\[r^{roll}_t=\frac{F^{near}_t-F^{far}_t}{F^{far}_t}\]

Code Examples

Compute futures roll series

use openquant::etf_trick::get_futures_roll_series;

let roll = get_futures_roll_series(/* input tables */);

Implementation Notes

  • Verify contract calendar assumptions.
  • Costs and rates should come from the same clock as price data.