quantflow 0.4.1__tar.gz → 0.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {quantflow-0.4.1 → quantflow-0.4.3}/PKG-INFO +5 -4
- {quantflow-0.4.1 → quantflow-0.4.3}/pyproject.toml +3 -2
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/__init__.py +1 -1
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/fiscal_data.py +1 -1
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/calibration.py +1 -1
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/surface.py +3 -2
- {quantflow-0.4.1 → quantflow-0.4.3}/LICENSE +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/app.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/base.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/crypto.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/fred.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/stocks.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/commands/vault.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/script.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/cli/settings.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/deribit.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/fed.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/fmp.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/fred.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/data/vault.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/bs.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/inputs.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/options/pricer.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/py.typed +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/base.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/bns.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/cir.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/copula.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/dsp.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/heston.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/jump_diffusion.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/ou.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/poisson.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/sp/weiner.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/ta/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/ta/base.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/ta/ohlc.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/ta/paths.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/__init__.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/bins.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/dates.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/distributions.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/functions.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/interest_rates.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/marginal.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/numbers.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/plot.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/transforms.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/quantflow/utils/types.py +0 -0
- {quantflow-0.4.1 → quantflow-0.4.3}/readme.md +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: quantflow
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: quantitative analysis
|
|
5
|
-
License: BSD-3-Clause
|
|
5
|
+
License-Expression: BSD-3-Clause
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Author: Luca Sbardella
|
|
7
8
|
Author-email: luca@quantmind.com
|
|
8
9
|
Requires-Python: >=3.11,<4.0
|
|
9
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
15
|
Provides-Extra: cli
|
|
15
16
|
Provides-Extra: data
|
|
16
17
|
Requires-Dist: aio-fluid[http] (>=1.2.1) ; extra == "data"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "quantflow"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.3"
|
|
4
4
|
description = "quantitative analysis"
|
|
5
5
|
authors = [{ name = "Luca Sbardella", email = "luca@quantmind.com" }]
|
|
6
6
|
license = "BSD-3-Clause"
|
|
@@ -42,6 +42,7 @@ ghp-import = "^2.0.2"
|
|
|
42
42
|
ruff = "^0.12.2"
|
|
43
43
|
pytest-asyncio = "^1.0.0"
|
|
44
44
|
isort = "^6.0.1"
|
|
45
|
+
types-python-dateutil = "^2.9.0.20251115"
|
|
45
46
|
|
|
46
47
|
[tool.poetry.group.book]
|
|
47
48
|
optional = true
|
|
@@ -49,7 +50,7 @@ optional = true
|
|
|
49
50
|
[tool.poetry.group.book.dependencies]
|
|
50
51
|
jupyter-book = "^1.0.0"
|
|
51
52
|
jupytext = "^1.13.8"
|
|
52
|
-
plotly = "^
|
|
53
|
+
plotly = "^6.2.0"
|
|
53
54
|
jupyterlab = "^4.0.2"
|
|
54
55
|
sympy = "^1.12"
|
|
55
56
|
ipywidgets = "^8.0.7"
|
|
@@ -11,7 +11,7 @@ from quantflow.utils.dates import as_date
|
|
|
11
11
|
class FiscalData(AioHttpClient):
|
|
12
12
|
"""Fiscal Data API client.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
This class is used to fetch data from the
|
|
15
15
|
[fiscal data api](https://fiscaldata.treasury.gov/api-documentation/)
|
|
16
16
|
"""
|
|
17
17
|
|
|
@@ -196,7 +196,7 @@ class VolModelCalibration(BaseModel, ABC, Generic[M], arbitrary_types_allowed=Tr
|
|
|
196
196
|
max_moneyness_ttm=max_moneyness_ttm, support=support
|
|
197
197
|
)
|
|
198
198
|
return plot.plot_vol_surface(
|
|
199
|
-
pd.DataFrame([d.
|
|
199
|
+
pd.DataFrame([d.info_dict() for d in options]),
|
|
200
200
|
model=model.df,
|
|
201
201
|
**kwargs,
|
|
202
202
|
)
|
|
@@ -260,10 +260,11 @@ class OptionPrice(BaseModel):
|
|
|
260
260
|
)
|
|
261
261
|
return self
|
|
262
262
|
|
|
263
|
-
def
|
|
263
|
+
def info_dict(self) -> dict[str, Any]:
|
|
264
264
|
return dict(
|
|
265
265
|
strike=float(self.strike),
|
|
266
266
|
forward=float(self.forward),
|
|
267
|
+
maturity=self.maturity,
|
|
267
268
|
moneyness=self.moneyness,
|
|
268
269
|
moneyness_ttm=self.moneyness / np.sqrt(self.ttm),
|
|
269
270
|
ttm=self.ttm,
|
|
@@ -595,7 +596,7 @@ class VolSurface(Generic[S]):
|
|
|
595
596
|
initial_vol=initial_vol,
|
|
596
597
|
converged=converged,
|
|
597
598
|
)
|
|
598
|
-
return pd.DataFrame([d.
|
|
599
|
+
return pd.DataFrame([d.info_dict() for d in data])
|
|
599
600
|
|
|
600
601
|
def as_array(
|
|
601
602
|
self,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|