nqs_sdk.bindings.spots.ito_spot module¶
- class nqs_sdk.bindings.spots.ito_spot.ItoSpotGenerator(token_pairs, s0, drift_func=None, diffusion_func=None, mean=0.0, vol=0.1)[source]¶
Bases:
SpotGenerator
- __init__(token_pairs, s0, drift_func=None, diffusion_func=None, mean=0.0, vol=0.1)[source]¶
Initialize an Ito process spot price generator.
- Parameters:
token_pairs (
list
[tuple
[str
,str
]]) – List of token pairss0 (
list
[float
]) – Initial spot price(s)drift_func (
Optional
[Callable
[[ndarray
,ndarray
],ndarray
]]) – Custom drift function f(S, t) -> drift. If None, uses GBM default μS.diffusion_func (
Optional
[Callable
[[ndarray
,ndarray
],ndarray
]]) – Custom diffusion function f(S, t) -> diffusion. If None, uses GBM default σS.mean (
float
) – Mean parameter (used if default drift function is applied)vol (
float
) – Volatility parameter (used if default diffusion function is applied)
- generate_spot_timestamps(ts)[source]¶
Generate spot price trajectories for each token pair using a general Ito process.
The process follows: dS(t) = drift_func(S, t)dt + diffusion_func(S, t)dW(t)
Using Euler-Maruyama discretization.
- Parameters:
ts (
list
[int
]) – List of timestamps for price generation- Return type:
list
[tuple
[list
[int
],list
[float
]]]- Returns:
A list of corresponding spot prices for each timestamp
- class nqs_sdk.bindings.spots.ito_spot.OUSpotGenerator(token_pairs, s0, mean_reversion, equilibrium, vol)[source]¶
Bases:
ItoSpotGenerator
- __init__(token_pairs, s0, mean_reversion, equilibrium, vol)[source]¶
Ornstein-Uhlenbeck process: dS = θ(μ-S)dt + σdW
- Parameters:
token_pairs (
list
[tuple
[str
,str
]]) – List of token pairss0 (
list
[float
]) – Initial spot price(s)mean_reversion (
float
) – Mean reversion rate (θ)equilibrium (
float
) – Equilibrium level (μ)vol (
float
) – Volatility (σ)