awt_quant.forecast.stochastic.portfolio package

Submodules

awt_quant.forecast.stochastic.portfolio.portfolio_forecast module

Portfolio Forecasting using Monte Carlo Simulations & Copula Models.

This module extends SPDEMCSimulator to forecast a portfolio of assets.

Classes:
  • PortfolioForecast: Forecasts portfolio performance using copula-based simulations.

class awt_quant.forecast.stochastic.portfolio.portfolio_forecast.PortfolioForecast(portfolio, equation, train_test_split, start_date='2022-01-01', end_date='2022-03-01', dt=1, num_paths=1000, plot_vol=False, plot_sim=False)[source]

Bases: SPDEMCSimulator

Forecasts a portfolio using Monte Carlo simulations and copula models.

- portfolio

Dictionary with stock symbols, positions, and quantities.

- equation

Stochastic Differential Equation model (CIR, GBM, Heston, OU).

- assets

List of SPDEMCSimulator instances for each stock.

- train_data, test_data

Aggregated portfolio data.

__init__(portfolio, equation, train_test_split, start_date='2022-01-01', end_date='2022-03-01', dt=1, num_paths=1000, plot_vol=False, plot_sim=False)[source]

Initializes PortfolioForecast with a list of stocks and positions.

Parameters:
  • portfolio (dict) – Dictionary containing symbols, quantities, and positions.

  • equation (str) – Chosen stochastic model (CIR, GBM, Heston, OU).

  • train_test_split (float) – Ratio of training data.

  • start_date (str) – Start date for data collection.

  • end_date (str) – End date for data collection.

  • dt (int) – Time step size.

  • num_paths (int) – Number of simulation paths.

  • plot_vol (bool) – Plot volatility models.

  • plot_sim (bool) – Plot individual stock simulations.

copula_simulation()[source]

Simulates a copula model to generate dependent return quantiles.

Returns:

Copula-simulated quantiles (shape: n_stocks x n_simulations x T)

Return type:

  • torch.Tensor

forecast()[source]

Generates portfolio price forecasts based on copula-simulated quantiles.

plot_forecast()[source]

Plots portfolio simulation with quantile paths and percent errors.

backtest()[source]

Backtests the forecast and prints ARMA model summaries.

awt_quant.forecast.stochastic.portfolio.portfolio_simulations module

awt_quant.forecast.stochastic.portfolio.portfolio_simulations.run_portfolio_simulation(portfolio, equation, start_date, end_date, train_test_split, num_paths=1000, plot_vol=False, plot_sim=False, num_sim=100)[source]

Runs a single portfolio simulation using the chosen stochastic differential equation.

Parameters:
  • portfolio (dict) – Dictionary containing symbols, positions, and quantities.

  • equation (str) – Chosen stochastic model (CIR, GBM, Heston, OU).

  • start_date (str) – Start date for simulation.

  • end_date (str) – End date for simulation.

  • train_test_split (float) – Ratio of training data.

  • num_paths (int) – Number of simulation paths (default: 1000).

  • plot_vol (bool) – Whether to plot volatility models (default: False).

  • plot_sim (bool) – Whether to plot individual stock simulations (default: False).

  • num_sim (int) – Number of simulations for error estimation (default: 100).

awt_quant.forecast.stochastic.portfolio.portfolio_simulations.compare_multiple_portfolio_simulations(portfolios, equation_classes, end_dates, forecast_periods, train_test_splits, num_paths=1000, num_sim=100, plot_vol=False, plot_sim=False)[source]

Compares multiple portfolio simulations across different stochastic models and settings.

Parameters:
  • portfolios (list[dict]) – List of portfolios with stock symbols and positions.

  • equation_classes (list[str]) – List of stochastic models to test.

  • end_dates (list[str]) – End dates for different simulations.

  • forecast_periods (list[int]) – Forecasting periods in days.

  • train_test_splits (list[float]) – Different train-test split ratios.

  • num_paths (int) – Number of Monte Carlo paths (default: 1000).

  • num_sim (int) – Number of simulations for error estimation (default: 100).

  • plot_vol (bool) – Whether to plot volatility models (default: False).

  • plot_sim (bool) – Whether to plot individual stock simulations (default: False).

Returns:

Dataframe containing forecast errors and summaries.

Return type:

pd.DataFrame

Module contents

Portfolio Forecasting using Monte Carlo Simulations & Copula Models.

This module extends SPDEMCSimulator to forecast a portfolio of assets.

Classes:
  • PortfolioForecast: Forecasts portfolio performance using copula-based simulations.

  • run_portfolio_simulation: Runs a single portfolio simulation.

  • compare_multiple_portfolio_simulations: Compares multiple portfolio simulations.

class awt_quant.forecast.stochastic.portfolio.PortfolioForecast(portfolio, equation, train_test_split, start_date='2022-01-01', end_date='2022-03-01', dt=1, num_paths=1000, plot_vol=False, plot_sim=False)[source]

Bases: SPDEMCSimulator

Forecasts a portfolio using Monte Carlo simulations and copula models.

- portfolio

Dictionary with stock symbols, positions, and quantities.

- equation

Stochastic Differential Equation model (CIR, GBM, Heston, OU).

- assets

List of SPDEMCSimulator instances for each stock.

- train_data, test_data

Aggregated portfolio data.

__init__(portfolio, equation, train_test_split, start_date='2022-01-01', end_date='2022-03-01', dt=1, num_paths=1000, plot_vol=False, plot_sim=False)[source]

Initializes PortfolioForecast with a list of stocks and positions.

Parameters:
  • portfolio (dict) – Dictionary containing symbols, quantities, and positions.

  • equation (str) – Chosen stochastic model (CIR, GBM, Heston, OU).

  • train_test_split (float) – Ratio of training data.

  • start_date (str) – Start date for data collection.

  • end_date (str) – End date for data collection.

  • dt (int) – Time step size.

  • num_paths (int) – Number of simulation paths.

  • plot_vol (bool) – Plot volatility models.

  • plot_sim (bool) – Plot individual stock simulations.

backtest()[source]

Backtests the forecast and prints ARMA model summaries.

copula_simulation()[source]

Simulates a copula model to generate dependent return quantiles.

Returns:

Copula-simulated quantiles (shape: n_stocks x n_simulations x T)

Return type:

  • torch.Tensor

forecast()[source]

Generates portfolio price forecasts based on copula-simulated quantiles.

plot_forecast()[source]

Plots portfolio simulation with quantile paths and percent errors.

awt_quant.forecast.stochastic.portfolio.run_portfolio_simulation(portfolio, equation, start_date, end_date, train_test_split, num_paths=1000, plot_vol=False, plot_sim=False, num_sim=100)[source]

Runs a single portfolio simulation using the chosen stochastic differential equation.

Parameters:
  • portfolio (dict) – Dictionary containing symbols, positions, and quantities.

  • equation (str) – Chosen stochastic model (CIR, GBM, Heston, OU).

  • start_date (str) – Start date for simulation.

  • end_date (str) – End date for simulation.

  • train_test_split (float) – Ratio of training data.

  • num_paths (int) – Number of simulation paths (default: 1000).

  • plot_vol (bool) – Whether to plot volatility models (default: False).

  • plot_sim (bool) – Whether to plot individual stock simulations (default: False).

  • num_sim (int) – Number of simulations for error estimation (default: 100).

awt_quant.forecast.stochastic.portfolio.compare_multiple_portfolio_simulations(portfolios, equation_classes, end_dates, forecast_periods, train_test_splits, num_paths=1000, num_sim=100, plot_vol=False, plot_sim=False)[source]

Compares multiple portfolio simulations across different stochastic models and settings.

Parameters:
  • portfolios (list[dict]) – List of portfolios with stock symbols and positions.

  • equation_classes (list[str]) – List of stochastic models to test.

  • end_dates (list[str]) – End dates for different simulations.

  • forecast_periods (list[int]) – Forecasting periods in days.

  • train_test_splits (list[float]) – Different train-test split ratios.

  • num_paths (int) – Number of Monte Carlo paths (default: 1000).

  • num_sim (int) – Number of simulations for error estimation (default: 100).

  • plot_vol (bool) – Whether to plot volatility models (default: False).

  • plot_sim (bool) – Whether to plot individual stock simulations (default: False).

Returns:

Dataframe containing forecast errors and summaries.

Return type:

pd.DataFrame