voly 0.0.258__py3-none-any.whl → 0.0.259__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/core/data.py CHANGED
@@ -182,59 +182,6 @@ async def get_deribit_data(currency: str = "BTC") -> pd.DataFrame:
182
182
 
183
183
  return pd.DataFrame(all_data)
184
184
 
185
- '''
186
- @catch_exception
187
- def process_option_chain(df: pd.DataFrame, currency: str) -> pd.DataFrame:
188
- """
189
- Process raw option chain data into a standardized format.
190
-
191
- Parameters:
192
- df (pd.DataFrame): Raw option chain data
193
- currency (str): Currency code (e.g., 'BTC', 'ETH')
194
-
195
- Returns:
196
- pd.DataFrame: Processed option chain data
197
- """
198
- logger.info(f"Processing data for {currency}...")
199
-
200
- # Apply extraction to create new columns
201
- splits = df['instrument_name'].str.split('-')
202
- df['maturity_name'] = splits.str[1]
203
- if currency == 'XRP':
204
- df['strikes'] = splits.str[2].str.replace('d', '.', regex=False).astype(float)
205
- else:
206
- df['strikes'] = splits.str[2].astype(float)
207
- df['option_type'] = splits.str[3]
208
-
209
- # Create maturity date at 8:00 AM UTC
210
- df['maturity_date'] = pd.to_datetime(df['maturity_name'].apply(
211
- lambda x: int(dt.datetime.strptime(x, "%d%b%y")
212
- .replace(hour=8, minute=0, second=0, tzinfo=dt.timezone.utc)
213
- .timestamp() * 1000)), unit='ms')
214
-
215
- # Get reference time from timestamp
216
- reference_time = dt.datetime.fromtimestamp(df['timestamp'].iloc[0] / 1000)
217
-
218
- # Calculate time to expiry in years
219
- df['t'] = ((df['maturity_date'] - reference_time).dt.total_seconds() / (24 * 60 * 60)) / 365.25
220
-
221
- # Calculate implied volatility (convert from percentage)
222
- df['mark_iv'] = df['mark_iv'] / 100
223
- df['bid_iv'] = df['bid_iv'].replace({0: np.nan}) / 100
224
- df['ask_iv'] = df['ask_iv'].replace({0: np.nan}) / 100
225
-
226
- # Calculate log-moneyness
227
- df['log_moneyness'] = np.log(df['strikes'] / df['index_price'].iloc[0])
228
- # Calculate moneyness
229
- df['moneyness'] = np.exp(df['log_moneyness'])
230
- # Calculate returns
231
- df['returns'] = df['moneyness'] - 1
232
-
233
- logger.info(f"Processing complete!")
234
-
235
- return df
236
- '''
237
-
238
185
 
239
186
  @catch_exception
240
187
  def process_option_chain(df: pd.DataFrame, currency: str) -> pd.DataFrame:
voly/core/rnd.py CHANGED
@@ -51,7 +51,7 @@ def breeden(domain_params, s, r, o, t, return_domain):
51
51
  dx = domains['dx']
52
52
 
53
53
  # Calculate option prices and derivatives
54
- c = bs(s, K, r, o, t, option_type='call')
54
+ c = [bs(s, strike, r, vol, t, flag='call') for strike, vol in zip(K, o)]
55
55
  c1 = np.gradient(c, K)
56
56
  c2 = np.gradient(c1, K)
57
57
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voly
3
- Version: 0.0.258
3
+ Version: 0.0.259
4
4
  Summary: Options & volatility research package
5
5
  Author-email: Manu de Cara <manu.de.cara@gmail.com>
6
6
  License: MIT
@@ -5,16 +5,16 @@ voly/formulas.py,sha256=5DupVzJuPtnkfbhIq05ciNXb6S6o4Cd33wqG-ahf4bc,10015
5
5
  voly/models.py,sha256=CGJQr13Uie7iwtx2hjViN9lMXeRN_uOqzp4u8NPaTlA,9282
6
6
  voly/core/__init__.py,sha256=bu6fS2I1Pj9fPPnl-zY3L7NqrZSY5Zy6NY2uMUvdhKs,183
7
7
  voly/core/charts.py,sha256=W_6yhJrfPGjOev8PjDZRv_SAw2wUovhYAsF6ZDdGgxY,12718
8
- voly/core/data.py,sha256=A0zrIjg-pf3mG28UR313Bc57h74G5smWCVBB7vysM_4,13527
8
+ voly/core/data.py,sha256=IPR-dtTMPBA7ua8D_VQeV6lsguCKBf-H0ZIxRpxNV-k,11677
9
9
  voly/core/fit.py,sha256=G5ooc47QxAcoVWunU8990TLH3gOigkDA5vSRtPG-mXA,14010
10
10
  voly/core/hd.py,sha256=dSv197RmSWFWbRRdoBzMrD_poT7ZiJ8hdD_wKE-Li_M,13559
11
11
  voly/core/interpolate.py,sha256=GAkrqaar7A0D6UMipXQUp4vSHRfb44TmCG5Xiv9elXg,5176
12
- voly/core/rnd.py,sha256=wiZ5OIjPDf1Th5_sQ9CZG5JgAo3EL8f63T_Rj1_VP-0,13214
12
+ voly/core/rnd.py,sha256=SITZVvZGm-3vjnzFJMncRWsu7Gfj9qJKgXsfBvkDyJ4,13245
13
13
  voly/utils/__init__.py,sha256=E05mWatyC-PDOsCxQV1p5Xi1IgpOomxrNURyCx_gB-w,200
14
14
  voly/utils/density.py,sha256=ONpRli-IaJDgOZ2sb27HHFc9_tkkGSATKl94JODd86A,5879
15
15
  voly/utils/logger.py,sha256=4-_2bVJmq17Q0d7Rd2mPg1AeR8gxv6EPvcmBDMFWcSM,1744
16
- voly-0.0.258.dist-info/licenses/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
17
- voly-0.0.258.dist-info/METADATA,sha256=I_HoPsqXLW1-u4nUQNCAlkiruiNIm9FJaA2Ova0Sb6Q,4115
18
- voly-0.0.258.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
19
- voly-0.0.258.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
20
- voly-0.0.258.dist-info/RECORD,,
16
+ voly-0.0.259.dist-info/licenses/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
17
+ voly-0.0.259.dist-info/METADATA,sha256=Gz-Kz-3SZB7JUKx2mIP06o_FsV7Xr6RDt8TKkyJj9cg,4115
18
+ voly-0.0.259.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
19
+ voly-0.0.259.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
20
+ voly-0.0.259.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.0)
2
+ Generator: setuptools (80.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5