Skip to content

Releases: business-science/pytimetk

pytimetk 1.2.2

04 Mar 18:31
Compare
Choose a tag to compare

Improvements

  • augment_rolling_risk_metrics(): 100X speedup for polars rolling kurtosis

Full Changelog: v1.2.0...v1.2.2

pytimetk 1.2.1

04 Mar 18:05
Compare
Choose a tag to compare

Improvements:

  • augment_rolling_risk_metrics(): Gains a new metrics argument allowing users to speed up calculations by only requesting the rolling risk metrics they need. Default None is all metrics.

Full Changelog: v1.2.0...v1.2.1

pytimetk 1.2.0

20 Feb 14:46
Compare
Choose a tag to compare

New Functions

  • augment_drawdown(): The augment_drawdown function calculates the drawdown metrics for a financial time series using either pandas or polars engine, and returns the augmented DataFrame with peak value, drawdown, and drawdown percentage columns.
  • augment_rolling_risk_metrics(): The augment_rolling_risk_metrics function calculates rolling risk-adjusted performance metrics for a financial time series using either pandas or polars engine, and returns the augmented DataFrame with columns for Sharpe Ratio, Sortino Ratio, and other metrics.
  • augment_fip_momentum(): Calculate the "Frog In The Pan" (FIP) momentum metric over one or more rolling windows using either pandas or polars engine, augmenting the DataFrame with FIP columns.
  • augment_stochastic_oscillator: The augment_stochastic_oscillator() function calculates the Stochastic Oscillator (%K and %D) for a financial instrument using either pandas or polars engine, and returns the augmented DataFrame.
  • augment_adx(): Calculate Average Directional Index (ADX), +DI, and -DI for a financial time series to determine strength of trend.
  • augment_hurst_exponent(): Calculate the Hurst Exponent on a rolling window for a financial time series.
  • augment_ewma_volatility(): Calculate Exponentially Weighted Moving Average (EWMA) volatility for a financial time series.
  • augment_regime_detection(): Detect regimes in a financial time series using a specified method (e.g., HMM).

Bug Fixes and Speed Improvements

  • summarize_by_time(): polars engine rebuild. Columns should match pandas engine.
  • __init__.py: updated to fix circular imports
  • get_date_summary(): Fixed issues with polar tz
  • augment_hilbert(): Improve polars engine and fix error with groupby()
  • augment_ewm(): fix example from pytimetk import augment_ewm
  • test_plot_timeseries: Fix broken test

Full Changelog: v1.1.2...v1.2.0

pytimetk 1.1.2

17 Feb 21:07
Compare
Choose a tag to compare

Bug Fixes

  • augment_rsi(): fix issue with pandas engine column names

Full Changelog: v1.1.1...v1.1.2

pytimetk 1.1.1

17 Feb 20:48
Compare
Choose a tag to compare

Bug Fixes

  • augment_ppo(): fixed issues with leftover multi-index when using grouped df and pandas engine
  • augment_qsmomentum(): Fixed issue with divide by zero when standard deviation is zero

Full Changelog: v1.1.0...v1.1.1

pytimetk 1.1.0

05 Feb 17:33
Compare
Choose a tag to compare

Highlights

New Features

Time Series Cross Validation (TSCV)

Integration with timebasedcv #291. New Classes:

  • TimeSeriesCV(): An enhanced version of TimeBasedSplit() that defaults to mode = "backwards", allows for maximum splits using split_limit, and adds enhanced diagnostics like glimpse() and plot()

Plotly Dropdowns

A plotly dropdown automates the group-wise analysis. Instead of facets, which are only powerful for <=9 plots at a time, a dropdown can easily visualize more plots.

  • plot_timeseries(): Gets new parameters plotly_dropdown, plotly_dropdown_x, plotly_dropdown_y #301
  • plot_anomalies(): Gets new parameters plotly_dropdown, plotly_dropdown_x, plotly_dropdown_y #301

Wide-Format Plotting

  • plot_timeseries(value_column = list(), color_column=list()): Now supports multiple columns in wide format for grouped time series data visualization. #136

Full Changelog: v1.0.0...v1.1.0

pytimetk 1.0.0

30 Jul 13:24
Compare
Choose a tag to compare

Pandas and Polars Compatibility:

Upgrading to:

  • pandas >= 2.0.0
  • polars >= 1.2.0

Use pytimetk <=0.4.0 to support:

  • pandas <2.0.0
  • polars <1.0.0

Improvements:

  • Implement sort_dataframe(): This function is used internally to make sure Polars and Pandas engines perform grouped operations consistently and correctly. #286 #290
  • .augment_lags() and .augment_leads(): value_column now accepts any dtype. #295

Pytimetk 0.4.0

18 Mar 16:07
Compare
Choose a tag to compare

pytimetk 0.4.0

Feature Engineering Module:

  1. augment_pct_change(): pandas and polars engines

Finance Module Updates:

  1. augment_macd(): MACD, pandas and polars engines
  2. augment_bbands(): Bollinger Bands, pandas and polars engines
  3. augment_atr(): Average True Range, pandas and polars engines
  4. augment_ppo(): Percentage Price Oscillator, pandas and polars engines
  5. augment_rsi(): Relative Strength Index, pandas and polars engines
  6. augment_qsmomentum(): Quant Science Momentum Indicator, pandas and polars engines
  7. augment_roc(): Rate of Change (ROC), pandas and polars e ngines

Polars Upgrades

  • Migrate to polars 0.20.7

Pytimetk 0.3.0

12 Jan 19:42
Compare
Choose a tag to compare

pytimetk 0.3.0

Correlation Funnel

The R package correlationfunnel has been ported inside pytimetk:

  • binarize()
  • correlate()
  • plot_correlation_funnel()

Core:

  • filter_by_time() - Filtering with time-based strings

Feature Engineering:

  • augment_diffs() - Can now add differenced columns
  • augment_fourier() - Can now add fourier features.

Finance Module:

  • augment_cmo(): Chande Momentum Oscillator (CMO)

New Polars Backends:

  • augment_diffs()
  • augment_fourier()
  • augment_cmo()

General

  • Make memory reduction optional #275

pytimetk 0.2.1

05 Nov 17:45
Compare
Choose a tag to compare

Fixes #216 - Incorrect sort order of polars engine. Affected: augment_rolling(), agument_expanding()