voly 0.0.227__py3-none-any.whl → 0.0.229__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
@@ -79,7 +79,7 @@ class VolyClient:
79
79
 
80
80
  try:
81
81
  option_chain = loop.run_until_complete(
82
- fetch_option_chain(exchange, currency, depth)
82
+ fetch_option_chain(exchange, currency)
83
83
  )
84
84
  return option_chain
85
85
  except VolyError as e:
voly/core/data.py CHANGED
@@ -251,6 +251,7 @@ def process_option_chain(df: pd.DataFrame, currency: str) -> pd.DataFrame:
251
251
 
252
252
  # Apply extraction to create new columns
253
253
  df['spot_price'] = df['index_price']
254
+ s = df['spot_price'].iloc[0]
254
255
  df['instrument'] = df['instrument_name']
255
256
  splits = df['instrument'].str.split('-')
256
257
  df['maturity'] = splits.str[1]
@@ -271,35 +272,35 @@ def process_option_chain(df: pd.DataFrame, currency: str) -> pd.DataFrame:
271
272
  df['bid_iv'] = df['bid_iv'].replace({0: np.nan}) / 100
272
273
  df['ask_iv'] = df['ask_iv'].replace({0: np.nan}) / 100
273
274
 
274
- df['bid_price'] = df['best_bid_price']
275
- df['ask_price'] = df['best_ask_price']
275
+ df['bid_price'] = df['best_bid_price'] * df['spot_price']
276
+ df['ask_price'] = df['best_ask_price'] * df['spot_price']
276
277
  df['bid_amount'] = df['best_bid_amount']
277
278
  df['ask_amount'] = df['best_ask_amount']
278
279
 
279
280
  for idx, row in df.iterrows():
280
281
  # Process bid side
281
282
  if 'bids' in row and isinstance(row['bids'], list) and len(row['bids']) > 0:
282
- clean_bids = [] # Clean up the bid data
283
+ clean_bids = [] # Clean up the bid data
283
284
  for bid in row['bids']:
284
285
  if len(bid) >= 3:
285
286
  # Extract price and quantity, removing 'new' if present
286
287
  price = float(bid[1]) if bid[0] == 'new' else float(bid[0])
287
288
  qty = float(bid[2]) if bid[0] == 'new' else float(bid[1])
288
- clean_bids.append((price, qty))
289
+ clean_bids.append((price * s, qty))
289
290
  if clean_bids:
290
- option_chain.at[idx, 'bids'] = clean_bids
291
+ df.at[idx, 'bids'] = clean_bids
291
292
 
292
293
  # Process ask side
293
294
  if 'asks' in row and isinstance(row['asks'], list) and len(row['asks']) > 0:
294
- clean_asks = [] # Clean up the ask data
295
+ clean_asks = [] # Clean up the ask data
295
296
  for ask in row['asks']:
296
297
  if len(ask) >= 3:
297
298
  # Extract price and quantity, removing 'new' if present
298
299
  price = float(ask[1]) if ask[0] == 'new' else float(ask[0])
299
300
  qty = float(ask[2]) if ask[0] == 'new' else float(ask[1])
300
- clean_asks.append((price, qty))
301
+ clean_asks.append((price * s, qty))
301
302
  if clean_asks:
302
- option_chain.at[idx, 'asks'] = clean_asks
303
+ df.at[idx, 'asks'] = clean_asks
303
304
 
304
305
  df['bid_depth'] = df['bids']
305
306
  df['ask_depth'] = df['asks']
@@ -319,15 +320,13 @@ def process_option_chain(df: pd.DataFrame, currency: str) -> pd.DataFrame:
319
320
 
320
321
  @catch_exception
321
322
  async def fetch_option_chain(exchange: str = 'deribit',
322
- currency: str = 'BTC',
323
- depth: bool = False) -> pd.DataFrame:
323
+ currency: str = 'BTC') -> pd.DataFrame:
324
324
  """
325
325
  Fetch option chain data from the specified exchange.
326
326
 
327
327
  Parameters:
328
328
  exchange (str): Exchange to fetch data from (currently only 'deribit' is supported)
329
329
  currency (str): Currency to fetch options for (e.g., 'BTC', 'ETH')
330
- depth (bool): Whether to include full order book depth. Else, just top of book.
331
330
 
332
331
  Returns:
333
332
  pd.DataFrame: Processed option chain data
@@ -348,8 +347,4 @@ async def fetch_option_chain(exchange: str = 'deribit',
348
347
  # Process data
349
348
  processed_data = process_option_chain(raw_data, currency)
350
349
 
351
- # Remove order book depth if not needed
352
- if not depth and 'bids' in processed_data.columns and 'asks' in processed_data.columns:
353
- processed_data = processed_data.drop(columns=['bids', 'asks'])
354
-
355
350
  return processed_data
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voly
3
- Version: 0.0.227
3
+ Version: 0.0.229
4
4
  Summary: Options & volatility research package
5
5
  Author-email: Manu de Cara <manu.de.cara@gmail.com>
6
6
  License: MIT
@@ -1,11 +1,11 @@
1
1
  voly/__init__.py,sha256=8xyDk7rFCn_MOD5hxuv5cxxKZvBVRiSIM7TgaMPpwpw,211
2
- voly/client.py,sha256=gHdONPP5_OJ4siygBiJRu7dqKYgiubgnY3IrmlcxeLI,14540
2
+ voly/client.py,sha256=H4BY5n1isHOqMYX-Koe8-WKBKE6zxbdDYopDF58BPBI,14533
3
3
  voly/exceptions.py,sha256=PBsbn1vNMvKcCJwwJ4lBO6glD85jo1h2qiEmD7ArAjs,92
4
4
  voly/formulas.py,sha256=Jx2QSTkN3S_X1YWYXN3T0gBcxMKB_VLsqgDPg32ApmM,10833
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=6MSU0z01fPOVSssodxdnFqchzDfupSmXq_e71WwDmVQ,12635
8
- voly/core/data.py,sha256=pDoFZdJqAxoWSwdPMMj2ESAQ8pTrdj17OahlVvxF0cw,12751
8
+ voly/core/data.py,sha256=BDBJPVgWvL3C1UUJgQUuH9O8_SGX2EsasIx0llwHOAM,12470
9
9
  voly/core/fit.py,sha256=R3aDgCjvZ30PujoE9pgnGQXPQOTTMbk7_-RQ0ZMx5ig,13918
10
10
  voly/core/hd.py,sha256=dSv197RmSWFWbRRdoBzMrD_poT7ZiJ8hdD_wKE-Li_M,13559
11
11
  voly/core/interpolate.py,sha256=GAkrqaar7A0D6UMipXQUp4vSHRfb44TmCG5Xiv9elXg,5176
@@ -13,8 +13,8 @@ voly/core/rnd.py,sha256=wiZ5OIjPDf1Th5_sQ9CZG5JgAo3EL8f63T_Rj1_VP-0,13214
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.227.dist-info/licenses/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
17
- voly-0.0.227.dist-info/METADATA,sha256=S8TdLXbOdxaYInrMyRfB7BFO_xNSutyYp3_eBu8FZ2w,4115
18
- voly-0.0.227.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
19
- voly-0.0.227.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
20
- voly-0.0.227.dist-info/RECORD,,
16
+ voly-0.0.229.dist-info/licenses/LICENSE,sha256=wcHIVbE12jfcBOai_wqBKY6xvNQU5E909xL1zZNq_2Q,1065
17
+ voly-0.0.229.dist-info/METADATA,sha256=kQafmyjFk87gJp6pW67m5uBUTEIPLHmnVdWnsWZzl4c,4115
18
+ voly-0.0.229.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
19
+ voly-0.0.229.dist-info/top_level.txt,sha256=ZfLw2sSxF-LrKAkgGjOmeTcw6_gD-30zvtdEY5W4B7c,5
20
+ voly-0.0.229.dist-info/RECORD,,
File without changes