Skip to content

Commit 31d6638

Browse files
authored
Merge pull request #64 from xgboosted/feature-new-indicators
Feature new indicators
2 parents b1352e9 + 0683298 commit 31d6638

File tree

179 files changed

+1457
-148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+1457
-148
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
44

55
## **[Unreleased]**
66

7+
### Added
8+
* **9 New Technical Indicators**: Added high-demand indicators from Issue #29 analysis:
9+
- **LRSI** (Laguerre Relative Strength Index) - Momentum indicator with reduced lag using gamma parameter
10+
- **PMAX** (Price Max) - Trend indicator combining moving average with ATR
11+
- **VFI** (Volume Flow Indicator) - Money flow indicator analyzing volume direction
12+
- **MMAR** (Madrid Moving Average Ribbon) - Multiple EMA ribbons for trend visualization
13+
- **Rainbow** (Rainbow Charts) - Sequential SMA ribbons creating rainbow effect
14+
- **PO** (Projection Oscillator) - Linear regression based momentum oscillator
15+
- **DSP** (Detrended Synthetic Price) - Cycles indicator removing trend to reveal cycles
16+
- **TRIXH** (TRIX Histogram) - Enhanced TRIX with signal line and histogram
17+
- **VWMACD** (Volume Weighted MACD) - MACD variant using volume-weighted moving averages
18+
* **Full Indicator Name Comments**: All 150 indicator files now include full indicator names as comments on line 2 for improved code readability and documentation (format: `# Full Indicator Name (ABBREVIATION)`).
19+
20+
### Changed
21+
* **Updated Indicator Counts**: Increased from 141 to 150 indicators (9 new additions), raising total count from 203 to 212 (150 indicators + 62 TA-Lib patterns).
22+
* **Enhanced RVGI**: Relative Vigor Index now includes histogram column (RVGI - Signal) in addition to RVGI and Signal columns.
23+
724
### Fixed
825
* **Code of Conduct Contact Information**: Updated enforcement contact from original maintainer's email to GitHub Issues link, making it maintainer-agnostic and easier to manage as the project evolves.
926
* **PyPI Release Version**: Fixed CI/CD workflow to use exact release tag version by setting `SETUPTOOLS_SCM_PRETEND_VERSION` environment variable. This prevents development versions (`.dev0`) from being published when `pyproject.toml` is modified during the build process. Releases now correctly use the clean tag version (e.g., `0.3.35` instead of `0.3.36.dev0`).

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
![Example Chart](https://raw.githubusercontent.com/xgboosted/pandas-ta-classic/main/images/TA_Chart.png)
2222

23-
**Pandas TA Classic** is an easy-to-use library that leverages the Pandas package with **141 indicators and utility functions** and **62 TA Lib candlestick patterns** (**203 total**). Many commonly used indicators are included, such as: _Simple Moving Average_ (**sma**), _Moving Average Convergence Divergence_ (**macd**), _Hull Exponential Moving Average_ (**hma**), _Bollinger Bands_ (**bbands**), _On-Balance Volume_ (**obv**), _Aroon & Aroon Oscillator_ (**aroon**), _Squeeze_ (**squeeze**) and **many more**.
23+
> **Pandas TA Classic** is an easy-to-use library that leverages the Pandas package with **150 indicators and utility functions** and **62 TA Lib candlestick patterns** (**212 total**). Many commonly used indicators are included, such as: _Simple Moving Average_ (**sma**), _Moving Average Convergence Divergence_ (**macd**), _Hull Exponential Moving Average_ (**hma**), _Bollinger Bands_ (**bbands**), _On-Balance Volume_ (**obv**), _Aroon & Aroon Oscillator_ (**aroon**), _Squeeze_ (**squeeze**) and **many more**.
2424
2525
This is the **classic/community maintained version** of the popular pandas-ta library.
2626

@@ -42,7 +42,7 @@ This is the **classic/community maintained version** of the popular pandas-ta li
4242

4343
### 🎯 Key Features
4444

45-
- **203 Technical Indicators**: 141 indicators + 62 TA-Lib candlestick patterns
45+
- **212 Technical Indicators**: 150 indicators + 62 TA-Lib candlestick patterns
4646
- **Native Candlestick Patterns**: 5 patterns (cdl_doji, cdl_inside, cdl_z, cdl_pattern, ha) work without TA-Lib
4747
- **Automatic Versioning**: Version management via git tags using setuptools-scm
4848
- **Modern Package Management**: Full support for both `uv` and `pip`
@@ -132,9 +132,9 @@ df.ta.strategy("CommonStrategy") # Runs commonly used indicators
132132

133133
## 📊 Features
134134

135-
- **141 Technical Indicators & Utilities** across 9 categories (Candles, Momentum, Overlap, Trend, Volume, etc.)
135+
- **150 Technical Indicators & Utilities** across 9 categories (Candles, Momentum, Overlap, Trend, Volume, etc.)
136136
- **62 TA Lib Candlestick Patterns** for comprehensive pattern recognition
137-
- **203 Total Indicators & Patterns** - the most comprehensive Python TA library
137+
- **212 Total Indicators & Patterns** - the most comprehensive Python TA library
138138
- **Dynamic Category Discovery** - automatically detects all available indicators from the filesystem
139139
- **Strategy System** with multiprocessing support for bulk indicator processing
140140
- **Pandas DataFrame Extension** for seamless integration (`df.ta.indicator()`)
@@ -154,9 +154,9 @@ df.ta.strategy("CommonStrategy") # Runs commonly used indicators
154154
- 📓 **[Examples](https://github.com/xgboosted/pandas-ta-classic/tree/main/examples)** - Jupyter notebooks with real examples
155155

156156
**Reference Documentation:**
157-
- 📖 [**Usage Guide**](https://xgboosted.github.io/pandas-ta-classic/usage.html) - Programming conventions and basic usage
157+
- 📖 [**Usage Guide**](https://xgboosted.github.io/pandas-ta-classic/usage.html) - Programming conventions and basic usage
158158
- 🏗️ [**Strategy System**](https://xgboosted.github.io/pandas-ta-classic/strategies.html) - Multiprocessing and bulk indicator processing
159-
- 📊 [**Indicators Reference**](https://xgboosted.github.io/pandas-ta-classic/indicators.html) - Complete list of all 141 indicators & 62 patterns
159+
- 📊 [**Indicators Reference**](https://xgboosted.github.io/pandas-ta-classic/indicators.html) - Complete list of all 150 indicators & 62 patterns
160160
- 🔧 [**DataFrame API**](https://xgboosted.github.io/pandas-ta-classic/dataframe_api.html) - Properties and methods reference
161161
- 📈 [**Performance Metrics**](https://xgboosted.github.io/pandas-ta-classic/performance.html) - Backtesting and performance analysis
162162

docs/conf.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
#
1313
# epub_uid = ''
1414

15-
# A list of files that should not be packed into the epub file.
16-
epub_exclude_files = ['search.html']
17-
1815
# -- Additional HTML configuration -------------------------------------------
1916

2017
html_title = "Pandas TA Classic Documentation"
@@ -31,7 +28,7 @@
3128

3229
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
3330
# using the given strftime format.
34-
html_last_updated_fmt = '%b %d, %Y'
31+
html_last_updated_fmt = "%b %d, %Y"
3532

3633
# If true, SmartyPants will be used to convert quotes and dashes to
3734
# typographically correct entities.
@@ -67,7 +64,8 @@
6764
#
6865
import os
6966
import sys
70-
sys.path.insert(0, os.path.abspath('..'))
67+
68+
sys.path.insert(0, os.path.abspath(".."))
7169

7270
# -- Project information -----------------------------------------------------
7371

@@ -78,6 +76,7 @@
7876
# Get version dynamically from the package
7977
try:
8078
from pandas_ta_classic._meta import __version__
79+
8180
version = __version__
8281
release = __version__
8382
except ImportError:
@@ -96,7 +95,7 @@
9695
# ones.
9796
extensions = [
9897
"sphinx.ext.todo",
99-
"sphinx.ext.mathjax",
98+
"sphinx.ext.mathjax",
10099
"sphinx.ext.viewcode",
101100
"sphinx_rtd_theme",
102101
]
@@ -140,19 +139,19 @@
140139
# documentation.
141140
#
142141
html_theme_options = {
143-
'canonical_url': '',
144-
'analytics_id': '',
145-
'logo_only': False,
146-
'display_version': True,
147-
'prev_next_buttons_location': 'bottom',
148-
'style_external_links': False,
149-
'vcs_pageview_mode': '',
142+
"canonical_url": "",
143+
"analytics_id": "",
144+
"logo_only": False,
145+
"display_version": True,
146+
"prev_next_buttons_location": "bottom",
147+
"style_external_links": False,
148+
"vcs_pageview_mode": "",
150149
# Toc options
151-
'collapse_navigation': True,
152-
'sticky_navigation': True,
153-
'navigation_depth': 4,
154-
'includehidden': True,
155-
'titles_only': False
150+
"collapse_navigation": True,
151+
"sticky_navigation": True,
152+
"navigation_depth": 4,
153+
"includehidden": True,
154+
"titles_only": False,
156155
}
157156

158157
# Add any paths that contain custom static files (such as style sheets) here,

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pandas TA Classic Documentation
22
===============================
33

4-
**Pandas TA Classic** is an easy to use library that leverages the Pandas package with **141 indicators and utility functions** plus **62 TA-Lib candlestick patterns** (203 total). This is the **community maintained version** of the popular pandas-ta library.
4+
**Pandas TA Classic** is an easy to use library that leverages the Pandas package with **150 indicators and utility functions** plus **62 TA-Lib candlestick patterns** (212 total). This is the **community maintained version** of the popular pandas-ta library.
55

66
.. note::
77
The library features **dynamic configuration management**:

docs/indicators.rst

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
Indicators Reference
22
===================
33

4-
**Pandas TA Classic** includes 141 indicators and utility functions plus 62 TA-Lib candlestick patterns (203 total) organized into the following categories:
4+
**Pandas TA Classic** includes 150 indicators and utility functions plus 62 TA-Lib candlestick patterns (212 total) organized into the following categories:
55

66
* **Candles** (67) - Candlestick patterns for market sentiment analysis (5 native + 62 TA-Lib patterns)
7-
* **Cycles** (1) - Cycle-based technical indicators
8-
* **Momentum** (41) - Momentum and oscillator indicators
9-
* **Overlap** (34) - Moving averages and trend-following indicators
7+
* **Cycles** (2) - Cycle-based technical indicators
8+
* **Momentum** (46) - Momentum and oscillator indicators
9+
* **Overlap** (36) - Moving averages and trend-following indicators
1010
* **Performance** (3) - Performance and return metrics
1111
* **Statistics** (10) - Statistical analysis functions
12-
* **Trend** (18) - Trend identification and direction indicators
12+
* **Trend** (19) - Trend identification and direction indicators
1313
* **Utility** (10) - Helper and utility functions
1414
* **Volatility** (14) - Volatility and range-based indicators
15-
* **Volume** (15) - Volume analysis indicators
15+
* **Volume** (16) - Volume analysis indicators
1616

1717
.. note::
1818
The category system now uses **dynamic discovery** - indicators are automatically detected from the package structure, ensuring the list is always up-to-date with available indicators.
@@ -53,12 +53,13 @@ Available patterns:
5353
.. note::
5454
**Bold patterns** are native implementations. Use ``df.ta.cdl_doji()`` or ``df.ta.cdl_inside()`` to access the native doji and inside bar patterns directly.
5555

56-
Cycles (1)
56+
Cycles (2)
5757
----------
5858

59+
* *Detrended Synthetic Price*: **dsp**
5960
* *Even Better Sinewave*: **ebsw**
6061

61-
Momentum (41)
62+
Momentum (46)
6263
-------------
6364

6465
Momentum and oscillator indicators for measuring the speed of price changes:
@@ -81,9 +82,11 @@ Momentum and oscillator indicators for measuring the speed of price changes:
8182
* *Inertia*: **inertia**
8283
* *KDJ*: **kdj**
8384
* *KST Oscillator*: **kst**
85+
* *Linear Regression RSI*: **lrsi**
8486
* *Moving Average Convergence Divergence*: **macd**
8587
* *Momentum*: **mom**
8688
* *Pretty Good Oscillator*: **pgo**
89+
* *Projection Oscillator*: **po**
8790
* *Percentage Price Oscillator*: **ppo**
8891
* *Psychological Line*: **psl**
8992
* *Percentage Volume Oscillator*: **pvo**
@@ -101,11 +104,13 @@ Momentum and oscillator indicators for measuring the speed of price changes:
101104
* *Stochastic RSI*: **stochrsi**
102105
* *TD Sequential*: **td_seq** (Excluded from ``df.ta.strategy()``)
103106
* *Trix*: **trix**
107+
* *TRIX Histogram*: **trixh**
104108
* *True strength index*: **tsi**
105109
* *Ultimate Oscillator*: **uo**
110+
* *Volume Weighted MACD*: **vwmacd**
106111
* *Williams %R*: **willr**
107112

108-
Overlap (34)
113+
Overlap (36)
109114
------------
110115

111116
Moving averages and trend-following indicators:
@@ -124,11 +129,13 @@ Moving averages and trend-following indicators:
124129
* *Kaufman's Adaptive Moving Average*: **kama**
125130
* *Linear Regression*: **linreg**
126131
* *Moving Average*: **ma** (Generic moving average selector)
132+
* *Madrid Moving Average Ribbon*: **mmar**
127133
* *McGinley Dynamic*: **mcgd**
128134
* *Midpoint*: **midpoint**
129135
* *Midprice*: **midprice**
130136
* *Open-High-Low-Close Average*: **ohlc4**
131137
* *Pascal's Weighted Moving Average*: **pwma**
138+
* *Rainbow Moving Average*: **rainbow**
132139
* *WildeR's Moving Average*: **rma**
133140
* *Sine Weighted Moving Average*: **sinwma**
134141
* *Simple Moving Average*: **sma**
@@ -170,7 +177,7 @@ Statistical analysis functions:
170177
* *Variance*: **variance**
171178
* *Z Score*: **zscore**
172179

173-
Trend (18)
180+
Trend (19)
174181
----------
175182

176183
Trend identification and direction indicators:
@@ -186,6 +193,7 @@ Trend identification and direction indicators:
186193
* *Increasing*: **increasing**
187194
* *Long Run*: **long_run**
188195
* *Parabolic Stop and Reverse*: **psar**
196+
* *Price Max*: **pmax**
189197
* *Q Stick*: **qstick**
190198
* *Short Run*: **short_run**
191199
* *Trend Signals*: **tsignals**
@@ -230,7 +238,7 @@ Volatility and range-based indicators:
230238
* *True Range*: **true_range**
231239
* *Ulcer Index*: **ui**
232240

233-
Volume (15)
241+
Volume (16)
234242
-----------
235243

236244
Volume analysis indicators:
@@ -249,4 +257,5 @@ Volume analysis indicators:
249257
* *Price-Volume*: **pvol**
250258
* *Price Volume Rank*: **pvr**
251259
* *Price Volume Trend*: **pvt**
260+
* *Volume Flow Indicator*: **vfi**
252261
* *Volume Profile*: **vp**

docs/quickstart.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ Now that you've got the basics, explore more:
304304

305305
1. **Tutorials** - Step-by-step guides in ``TUTORIALS.md``
306306
2. **Full Documentation** - Complete API reference at https://xgboosted.github.io/pandas-ta-classic/
307-
3. **Indicator Reference** - All 203 indicators
307+
3. **Indicator Reference** - All 212 indicators
308308
4. **Strategy Guide** - Advanced strategy system
309309
5. **Examples** - Jupyter notebooks with real examples
310310

index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ title: Pandas TA Classic - Technical Analysis Library
55

66
# Pandas TA Classic
77

8-
**Pandas Technical Analysis (Pandas TA Classic)** is an easy to use library that leverages the Pandas package with **141 indicators and utility functions** plus **62 TA-Lib candlestick patterns** (**203 total**). This is the **community maintained version** of the popular pandas-ta library.
8+
**Pandas Technical Analysis (Pandas TA Classic)** is an easy to use library that leverages the Pandas package with **150 indicators and utility functions** plus **62 TA-Lib candlestick patterns** (**212 total**). This is the **community maintained version** of the popular pandas-ta library.
99

1010
![Example Chart](https://raw.githubusercontent.com/xgboosted/pandas-ta-classic/main/images/TA_Chart.png)
1111

1212
## Features
1313

14-
* **141 indicators and utility functions** across 9 categories
14+
* **150 indicators and utility functions** across 9 categories
1515
* **62 TA-Lib candlestick patterns** for comprehensive pattern recognition
16-
* **203 total indicators and patterns**
16+
* **212 total indicators and patterns**
1717
* Dynamic category discovery - automatically detects available indicators
1818
* Tightly correlated with TA-Lib indicators
1919
* Supports both standalone and DataFrame extension usage

pandas_ta_classic/candles/cdl_doji.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# -*- coding: utf-8 -*-
2-
from pandas_ta_classic.overlap import sma
2+
# Candle Doji (CDL_DOJI)
3+
from pandas_ta_classic.overlap.sma import sma
34
from pandas_ta_classic.utils import get_offset, high_low_range, is_percent
45
from pandas_ta_classic.utils import real_body, verify_series
56

pandas_ta_classic/candles/cdl_inside.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -*- coding: utf-8 -*-
2+
# Candle Inside (CDL_INSIDE)
23
from pandas_ta_classic.utils import candle_color, get_offset
34
from pandas_ta_classic.utils import verify_series
45

pandas_ta_classic/candles/cdl_pattern.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -*- coding: utf-8 -*-
2+
# Candle Pattern (CDL_PATTERN)
23
from typing import Sequence, Union
34
from pandas import Series, DataFrame
45

0 commit comments

Comments
 (0)