xpectral.data¶
Market data access via the Polygon/Massive API with caching and rate limiting.
- xpectral.data.massive.get_aggregate_bars(tickers, multiplier, timespan, from_, to, adjusted=True, sort=None, limit=None)[source]¶
- Parameters:
tickers (List[str])
multiplier (int)
timespan (str)
from_ (str | int | datetime | date)
to (str | int | datetime | date)
adjusted (bool | None)
sort (str | Sort | None)
limit (int | None)
Simulations¶
- class xpectral.data.simulations.BrownianMotion(n_steps, n_paths=1, dt=0.003968253968253968, seed=None)[source]¶
Bases:
objectGenerates standard and geometric Brownian motion paths.
- Parameters:
n_steps (
int) – Number of time steps per path.n_paths (
int) – Number of independent paths to simulate.dt (
float) – Length of each time step in years. Defaults to \(1/252\) (one trading day).seed (
Optional[int]) – Random seed for reproducibility.
- standard()[source]¶
Generate standard Brownian motion paths.
Each path is constructed as cumulative Gaussian increments:
\[W_t = \sum_{i=1}^{t} \epsilon_i \sqrt{\Delta t}, \quad \epsilon_i \sim \mathcal{N}(0, 1)\]- Return type:
DataFrame- Returns:
DataFrame with columns
stepandpath_0 … path_N. Each path starts at \(W_0 = 0\).
- geometric(mu=0.0, sigma=1.0, s0=1.0)[source]¶
Generate geometric Brownian motion paths.
Uses the exact closed-form solution:
\[S_t = S_0 \exp\!\left( \left(\mu - \tfrac{1}{2}\sigma^2\right) t + \sigma W_t \right)\]- Parameters:
mu (
float) – Annualised drift \(\mu\). Defaults to0.0.sigma (
float) – Annualised volatility \(\sigma\). Defaults to1.0.s0 (
float) – Initial asset price \(S_0\). Defaults to1.0.
- Return type:
DataFrame- Returns:
DataFrame with columns
stepandpath_0 … path_N. Each path starts at \(S_0\).