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 pairs

  • s0 (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 pairs

  • s0 (list[float]) – Initial spot price(s)

  • mean_reversion (float) – Mean reversion rate (θ)

  • equilibrium (float) – Equilibrium level (μ)

  • vol (float) – Volatility (σ)