Skip to main content

Module portfolio

Module portfolio 

Source
Expand description

Multi-symbol portfolio backtesting.

Runs multiple strategies concurrently on a shared capital pool.

§Quick Start

use finance_query::backtesting::portfolio::{
    PortfolioConfig, PortfolioEngine, SymbolData, RebalanceMode,
};
use finance_query::backtesting::{BacktestConfig, SmaCrossover};

let config = PortfolioConfig::new(BacktestConfig::default())
    .max_total_positions(3)
    .rebalance(RebalanceMode::EqualWeight);

let symbol_data = vec![
    SymbolData::new("AAPL", aapl_candles),
    SymbolData::new("MSFT", msft_candles),
    SymbolData::new("GOOG", goog_candles),
];

let result = PortfolioEngine::new(config)
    .run(&symbol_data, |_sym| SmaCrossover::new(10, 50))
    .unwrap();

println!("Portfolio return: {:.2}%", result.portfolio_metrics.total_return_pct);

Structs§

AllocationSnapshot
Snapshot of capital allocation at a single point in time.
PortfolioConfig
Configuration for multi-symbol portfolio backtesting.
PortfolioEngine
Multi-symbol portfolio backtesting engine.
PortfolioResult
Results of a multi-symbol portfolio backtest.
SymbolData
Input data for a single symbol in the portfolio backtest.

Enums§

RebalanceMode
Controls how capital is divided among symbols when opening new positions.