Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quantoil — Crude Oil Futures Quantitative Toolkit

A Python toolkit for crude oil futures quantitative analysis — term structure modeling, Monte Carlo simulation, Value-at-Risk (VaR), and statistical arbitrage signals.

Built for the ICE Brent & NYMEX WTI crude oil futures markets.


Features

Module Capability
Term Structure Build & visualize futures curves, detect backwardation/contango regime shifts
Monte Carlo Simulation GBM and Ornstein-Uhlenbeck price path simulation for scenario analysis
Value at Risk Historical, parametric (variance-covariance), and Monte Carlo VaR with multiple confidence levels
Statistical Modeling Cointegration tests, rolling correlation, volatility clustering (EWMA/GARCH-style)
Spread Signals Calendar spread momentum, crack spread ratio analysis, basis trading signals

Installation

# Clone the repo
git clone https://github.com/zack59309-maker/quantoil.git
cd quantoil

# Install dependencies
pip install -r requirements.txt

# Or install as a package (if pyproject.toml is present)
pip install -e .

Quick Start

Term Structure Analysis

from quantoil import term_structure

# Load futures price data (columns: contract_month, settlement_price)
curve = term_structure.build_curve(prices_df)
term_structure.plot_curve(curve, title="ICE Brent Forward Curve")

# Detect market regime
regime = term_structure.detect_regime(curve)
print(f"Market regime: {regime}")  # "Contango" or "Backwardation"

VaR Calculation

from quantoil import var_model

# Calculate 95% VaR using historical method
var_95 = var_model.calculate_var(returns, confidence=0.95, method="historical")
print(f"95% VaR (1-day): {var_95:.2%}")

# Monte Carlo VaR
mc_var = var_model.calculate_var(returns, confidence=0.99, method="mc", n_simulations=10000)

Monte Carlo Simulation

from quantoil import mc_simulation

# Simulate 1,000 price paths over 252 trading days
paths = mc_simulation.simulate_gbm(
    S0=75.0, mu=0.05, sigma=0.25,
    T=252, n_paths=1000
)
mc_simulation.plot_paths(paths)

Project Structure

quantoil/
├── quantoil/
│   ├── __init__.py
│   ├── term_structure.py   # Futures curve construction & regime detection
│   ├── mc_simulation.py    # Monte Carlo price path simulation
│   ├── var_model.py        # Value-at-Risk computation
│   ├── statistical.py      # Cointegration, correlation, volatility
│   └── spread.py           # Spread trading signal generation
├── examples/
│   └── basic_analysis.ipynb
├── tests/
├── requirements.txt
├── LICENSE
└── README.md

Dependencies

  • numpy — numerical computing
  • pandas — data manipulation
  • scipy — statistical functions & optimization
  • matplotlib — visualization
  • statsmodels — time series & statistical tests

License

MIT © 2024 Zack (zack59309-maker)


Disclaimer

This software is for educational and research purposes only. It does not constitute financial advice. Use at your own risk.

About

Crude oil futures quantitative analysis toolkit — term structure, MC simulation, VaR, statistical modeling

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages