Quant.Strategy.Backtest (quant v0.1.0-alpha.1)
Basic backtesting engine for strategy validation.
This module provides a simple backtesting framework to evaluate trading strategies against historical data and calculate performance metrics.
Features
- Portfolio value tracking over time
- Position management and trade execution
- Performance metrics calculation
- Risk management (stop losses, position sizing)
- Commission and slippage modeling
Example Usage
strategy = Quant.Strategy.sma_crossover(fast_period: 12, slow_period: 26)
{:ok, results} = Quant.Strategy.Backtest.run(historical_data, strategy,
initial_capital: 10000.0,
commission: 0.001
)
Summary
Functions
Execute the actual backtesting simulation.
Run a backtest for the given strategy on historical data.
Types
Functions
@spec execute_backtest(Explorer.DataFrame.t(), backtest_options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Execute the actual backtesting simulation.
This function processes signals sequentially and simulates trade execution, portfolio value changes, and risk management.
@spec run(Explorer.DataFrame.t(), map(), backtest_options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Run a backtest for the given strategy on historical data.
Parameters
dataframe- Historical OHLCV datastrategy- Strategy configurationopts- Backtesting options
Options
:initial_capital- Starting capital (default: 10000.0):position_size- Position sizing method or fixed amount (default: :percent_capital):commission- Trading commission rate (default: 0.001):slippage- Market slippage rate (default: 0.0005):max_positions- Maximum concurrent positions (default: 1):stop_loss- Stop loss percentage (default: nil):take_profit- Take profit percentage (default: nil)
Returns
DataFrame with backtest results including:
- Portfolio value over time
- Positions and trades
- Performance metrics