voly 0.0.169__py3-none-any.whl → 0.0.171__py3-none-any.whl
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.
- voly/models.py +12 -2
- {voly-0.0.169.dist-info → voly-0.0.171.dist-info}/METADATA +1 -1
- {voly-0.0.169.dist-info → voly-0.0.171.dist-info}/RECORD +6 -6
- {voly-0.0.169.dist-info → voly-0.0.171.dist-info}/WHEEL +0 -0
- {voly-0.0.169.dist-info → voly-0.0.171.dist-info}/licenses/LICENSE +0 -0
- {voly-0.0.169.dist-info → voly-0.0.171.dist-info}/top_level.txt +0 -0
voly/models.py
CHANGED
@@ -46,6 +46,16 @@ class SVIModel:
|
|
46
46
|
def svi(LM: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
|
47
47
|
return a + b * (rho * (LM - m) + np.sqrt((LM - m) ** 2 + sigma ** 2))
|
48
48
|
|
49
|
+
@staticmethod
|
50
|
+
def svi_d(LM: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
|
51
|
+
"""Calculate first derivative of SVI function with respect to log-moneyness."""
|
52
|
+
return b * (rho + ((LM - m) / np.sqrt((LM - m) ** 2 + sigma ** 2)))
|
53
|
+
|
54
|
+
@staticmethod
|
55
|
+
def svi_dd(LM: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
|
56
|
+
"""Calculate second derivative of SVI function with respect to log-moneyness."""
|
57
|
+
return b * sigma ** 2 / ((LM - m) ** 2 + sigma ** 2) ** 1.5
|
58
|
+
|
49
59
|
@staticmethod
|
50
60
|
def svi_min_strike(sigma: float, rho: float, m: float) -> float:
|
51
61
|
"""Calculate the minimum valid log-strike for this SVI parameterization."""
|
@@ -152,7 +162,7 @@ class SVIModel:
|
|
152
162
|
return [a_svi, b_svi, m, rho_svi, sigma], loss
|
153
163
|
|
154
164
|
@classmethod
|
155
|
-
def correct_calendar_arbitrage(cls, params, t, tiv, vega, k, prev_params, prev_t,
|
165
|
+
def correct_calendar_arbitrage(cls, params, t, tiv, vega, k, prev_params, prev_t, k_grid):
|
156
166
|
"""
|
157
167
|
Correct calendar arbitrage by ensuring the current SVI surface stays above the previous one.
|
158
168
|
|
@@ -175,7 +185,7 @@ class SVIModel:
|
|
175
185
|
|
176
186
|
a_init, b_init, sigma_init, rho_init, m_init = params
|
177
187
|
a_prev, b_prev, sigma_prev, rho_prev, m_prev = prev_params
|
178
|
-
k_constraint = np.unique(np.concatenate([k, np.linspace(min(k), max(k),
|
188
|
+
k_constraint = np.unique(np.concatenate([k, np.linspace(min(k), max(k), k_grid)]))
|
179
189
|
|
180
190
|
def objective(x):
|
181
191
|
a, b, sigma, rho, m = x
|
@@ -2,7 +2,7 @@ voly/__init__.py,sha256=8xyDk7rFCn_MOD5hxuv5cxxKZvBVRiSIM7TgaMPpwpw,211
|
|
2
2
|
voly/client.py,sha256=6e9cX5JWeqoTIktKlT4yEN9FG5Cj8Icl7gHxhVayi24,14464
|
3
3
|
voly/exceptions.py,sha256=PBsbn1vNMvKcCJwwJ4lBO6glD85jo1h2qiEmD7ArAjs,92
|
4
4
|
voly/formulas.py,sha256=eDPw32xa3dwCIrE-zeZzznfGaplGFoVcA167uQngZ70,11209
|
5
|
-
voly/models.py,sha256=
|
5
|
+
voly/models.py,sha256=Ntx1PDGpj-K52B-QUeKasIrT9AvY1YtjnZ8DkGWB2hY,8724
|
6
6
|
voly/core/__init__.py,sha256=bu6fS2I1Pj9fPPnl-zY3L7NqrZSY5Zy6NY2uMUvdhKs,183
|
7
7
|
voly/core/charts.py,sha256=2S-BfCo30aj1_xlNLqF-za5rQWxF_mWKIdtdOe5bgbw,12735
|
8
8
|
voly/core/data.py,sha256=9v9iuE2XdIIlzoRAB7q1ol7YghBzBsPGAiwZ11oDuis,13650
|
@@ -13,8 +13,8 @@ voly/core/rnd.py,sha256=GoC3m1Q46Wnk5tV_mstr-3_aktHeue6BBLh4DQTciW0,13307
|
|
13
13
|
voly/utils/__init__.py,sha256=E05mWatyC-PDOsCxQV1p5Xi1IgpOomxrNURyCx_gB-w,200
|
14
14
|
voly/utils/density.py,sha256=q0fX4im9TGwMCZ32Hzdv8CNh56KnJo8bmG5w0gVWZH8,5879
|
15
15
|
voly/utils/logger.py,sha256=4-_2bVJmq17Q0d7Rd2mPg1AeR8gxv6EPvcmBDMFWcSM,1744
|
16
|
-
voly-0.0.
|
17
|
-
voly-0.0.
|
18
|
-
voly-0.0.
|
19
|
-
voly-0.0.
|
20
|
-
voly-0.0.
|
16
|
+
voly-0.0.171.dist-info/licenses/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
|
17
|
+
voly-0.0.171.dist-info/METADATA,sha256=9YjZBDzrIlrWGffWFsS94ULQcbXLpwJM-5xkOFGaaz4,4115
|
18
|
+
voly-0.0.171.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
19
|
+
voly-0.0.171.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
|
20
|
+
voly-0.0.171.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|