voly 0.0.258__tar.gz → 0.0.259__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.
Files changed (26) hide show
  1. {voly-0.0.258/src/voly.egg-info → voly-0.0.259}/PKG-INFO +1 -1
  2. {voly-0.0.258 → voly-0.0.259}/pyproject.toml +2 -2
  3. {voly-0.0.258 → voly-0.0.259}/src/voly/core/data.py +0 -53
  4. {voly-0.0.258 → voly-0.0.259}/src/voly/core/rnd.py +1 -1
  5. {voly-0.0.258 → voly-0.0.259/src/voly.egg-info}/PKG-INFO +1 -1
  6. {voly-0.0.258 → voly-0.0.259}/LICENSE +0 -0
  7. {voly-0.0.258 → voly-0.0.259}/README.md +0 -0
  8. {voly-0.0.258 → voly-0.0.259}/setup.cfg +0 -0
  9. {voly-0.0.258 → voly-0.0.259}/setup.py +0 -0
  10. {voly-0.0.258 → voly-0.0.259}/src/voly/__init__.py +0 -0
  11. {voly-0.0.258 → voly-0.0.259}/src/voly/client.py +0 -0
  12. {voly-0.0.258 → voly-0.0.259}/src/voly/core/__init__.py +0 -0
  13. {voly-0.0.258 → voly-0.0.259}/src/voly/core/charts.py +0 -0
  14. {voly-0.0.258 → voly-0.0.259}/src/voly/core/fit.py +0 -0
  15. {voly-0.0.258 → voly-0.0.259}/src/voly/core/hd.py +0 -0
  16. {voly-0.0.258 → voly-0.0.259}/src/voly/core/interpolate.py +0 -0
  17. {voly-0.0.258 → voly-0.0.259}/src/voly/exceptions.py +0 -0
  18. {voly-0.0.258 → voly-0.0.259}/src/voly/formulas.py +0 -0
  19. {voly-0.0.258 → voly-0.0.259}/src/voly/models.py +0 -0
  20. {voly-0.0.258 → voly-0.0.259}/src/voly/utils/__init__.py +0 -0
  21. {voly-0.0.258 → voly-0.0.259}/src/voly/utils/density.py +0 -0
  22. {voly-0.0.258 → voly-0.0.259}/src/voly/utils/logger.py +0 -0
  23. {voly-0.0.258 → voly-0.0.259}/src/voly.egg-info/SOURCES.txt +0 -0
  24. {voly-0.0.258 → voly-0.0.259}/src/voly.egg-info/dependency_links.txt +0 -0
  25. {voly-0.0.258 → voly-0.0.259}/src/voly.egg-info/requires.txt +0 -0
  26. {voly-0.0.258 → voly-0.0.259}/src/voly.egg-info/top_level.txt +0 -0
@@ -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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "voly"
7
- version = "0.0.258"
7
+ version = "0.0.259"
8
8
  description = "Options & volatility research package"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -60,7 +60,7 @@ line_length = 100
60
60
  multi_line_output = 3
61
61
 
62
62
  [tool.mypy]
63
- python_version = "0.0.258"
63
+ python_version = "0.0.259"
64
64
  warn_return_any = true
65
65
  warn_unused_configs = true
66
66
  disallow_untyped_defs = true
@@ -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:
@@ -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
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