voly 0.0.45__py3-none-any.whl → 0.0.47__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/client.py CHANGED
@@ -13,9 +13,9 @@ import plotly.graph_objects as go
13
13
 
14
14
  from voly.utils.logger import logger, catch_exception, setup_file_logging
15
15
  from voly.exceptions import VolyError
16
- from voly.models import SVIModel
16
+ from voly.models import SVIModel, svi, svi_d, svi_dd
17
17
  from voly.formulas import (
18
- bs, delta, gamma, vega, theta, rho, vanna, volga, charm, greeks, iv
18
+ d1, d2, bs, delta, gamma, vega, theta, rho, vanna, volga, charm, greeks, iv
19
19
  )
20
20
  from voly.core.data import fetch_option_chain, process_option_chain
21
21
  from voly.core.fit import fit_model, get_iv_surface
@@ -84,9 +84,21 @@ class VolyClient:
84
84
  raise
85
85
 
86
86
  # -------------------------------------------------------------------------
87
- # Black-Scholes and Greeks Calculations
87
+ # SVI, Black-Scholes and Greeks Calculations
88
88
  # -------------------------------------------------------------------------
89
89
 
90
+ @staticmethod
91
+ def svi(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
92
+ return svi(log_moneyness_array, a, b, sigma, rho, m)
93
+
94
+ @staticmethod
95
+ def svi_d(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
96
+ return svi_d(log_moneyness_array, a, b, sigma, rho, m)
97
+
98
+ @staticmethod
99
+ def svi_dd(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
100
+ return svi_dd(log_moneyness_array, a, b, sigma, rho, m)
101
+
90
102
  @staticmethod
91
103
  def d1(s: float, k: float, r: float, vol: float, t: float,
92
104
  option_type: str = 'call') -> float:
voly/models.py CHANGED
@@ -42,16 +42,16 @@ class SVIModel:
42
42
  }
43
43
 
44
44
  @staticmethod
45
- def svi(moneyness: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
46
- return a + b * (rho * (moneyness - m) + np.sqrt((moneyness - m) ** 2 + sigma ** 2))
45
+ def svi(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
46
+ return a + b * (rho * (log_moneyness_array - m) + np.sqrt((log_moneyness_array - m) ** 2 + sigma ** 2))
47
47
 
48
48
  @staticmethod
49
- def svi_d(moneyness: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
50
- return b * (rho + ((moneyness - m) / np.sqrt((moneyness - m) ** 2 + sigma ** 2)))
49
+ def svi_d(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
50
+ return b * (rho + ((log_moneyness_array - m) / np.sqrt((log_moneyness_array - m) ** 2 + sigma ** 2)))
51
51
 
52
52
  @staticmethod
53
- def svi_dd(moneyness: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
54
- return b * sigma ** 2 / ((moneyness - m) ** 2 + sigma ** 2) ** 1.5
53
+ def svi_dd(log_moneyness_array: float, a: float, b: float, sigma: float, rho: float, m: float) -> float:
54
+ return b * log_moneyness_array ** 2 / ((log_moneyness_array - m) ** 2 + sigma ** 2) ** 1.5
55
55
 
56
56
  @staticmethod
57
57
  def svi_min_strike(sigma: float, rho: float, m: float) -> float:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: voly
3
- Version: 0.0.45
3
+ Version: 0.0.47
4
4
  Summary: Options & volatility research package
5
5
  Author-email: Manu de Cara <manu.de.cara@gmail.com>
6
6
  License: MIT
@@ -1,8 +1,8 @@
1
1
  voly/__init__.py,sha256=8xyDk7rFCn_MOD5hxuv5cxxKZvBVRiSIM7TgaMPpwpw,211
2
- voly/client.py,sha256=1UhouPsIvZRylIqe8UyONwSgZvSzpXoMve_1c-KbP5A,19527
2
+ voly/client.py,sha256=ZaDsvE3Y1V9GVutvwd59atV6EPC59zW9A6x0Uove-xk,20128
3
3
  voly/exceptions.py,sha256=PBsbn1vNMvKcCJwwJ4lBO6glD85jo1h2qiEmD7ArAjs,92
4
4
  voly/formulas.py,sha256=XA8E19pKQtMWNUB6qB04laifsok9E0Wt7HVq4wNM6QE,8539
5
- voly/models.py,sha256=YJ12aamLz_-aOni4Qm0_XV9u4bjKK3vfJz0J2gc1h0o,3565
5
+ voly/models.py,sha256=V2VI9yK-JyfKtI4nT5i42LQSwyGvexiymNiC2V1mQn4,3659
6
6
  voly/core/__init__.py,sha256=bu6fS2I1Pj9fPPnl-zY3L7NqrZSY5Zy6NY2uMUvdhKs,183
7
7
  voly/core/charts.py,sha256=T8cogkiHj8NcFxfARumNvAjLJUAxsMlHUOVgshwjye8,26474
8
8
  voly/core/data.py,sha256=Dfk-ByHpdteUiLXr0p-wRLr3VAmdyjdDBKwjwdTgCjA,9939
@@ -11,8 +11,8 @@ voly/core/interpolate.py,sha256=ztVIePJZOh-CIbn69wkh1JW2rKywNe2FEewRN0zcSAo,8185
11
11
  voly/core/rnd.py,sha256=8FTU-Qp9epW9yE4XSOdiFGIRXrGyXqF6mVgZn1NMvxk,11813
12
12
  voly/utils/__init__.py,sha256=E05mWatyC-PDOsCxQV1p5Xi1IgpOomxrNURyCx_gB-w,200
13
13
  voly/utils/logger.py,sha256=4-_2bVJmq17Q0d7Rd2mPg1AeR8gxv6EPvcmBDMFWcSM,1744
14
- voly-0.0.45.dist-info/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
15
- voly-0.0.45.dist-info/METADATA,sha256=dzVR5JNfPxPm5H11VIfG3b4Aw_ZLVTmnNH7tmYOL_vU,4092
16
- voly-0.0.45.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
17
- voly-0.0.45.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
18
- voly-0.0.45.dist-info/RECORD,,
14
+ voly-0.0.47.dist-info/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
15
+ voly-0.0.47.dist-info/METADATA,sha256=rJ8doNGVmcVG6tGW-MaVlxwIo_DAIwghP6YIcaZLLO0,4092
16
+ voly-0.0.47.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
17
+ voly-0.0.47.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
18
+ voly-0.0.47.dist-info/RECORD,,
File without changes
File without changes