Skip to content

Commit c585363

Browse files
committed
added most of the indicators
1 parent e6ab1b8 commit c585363

File tree

5 files changed

+1008
-38
lines changed

5 files changed

+1008
-38
lines changed

README.md

Lines changed: 71 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,19 @@ A **high-performance Python client** for the TopStepX ProjectX Gateway API, desi
99

1010
## 📊 Project Status
1111

12-
**Current Version**: v1.0.2 (Production Ready with Performance Optimizations)
12+
**Current Version**: v1.0.5 (Enhanced with Complete TA-Lib Overlap Indicators)
1313

1414
**Production Ready Features**:
1515
- Complete futures trading API integration with connection pooling
1616
- Historical and real-time market data with intelligent caching
17-
- Advanced technical indicators (25+) with computation caching
17+
- Advanced technical indicators (40+) with computation caching
1818
- Institutional-grade orderbook analysis with memory management
1919
- Portfolio and risk management tools
2020
- **NEW**: 50-70% performance improvements through optimization
2121
- **NEW**: 60% memory usage reduction with sliding windows
2222
- **NEW**: Sub-second response times for cached operations
23+
- **NEW**: Complete TA-Lib overlap indicators (17 total) with full compatibility
24+
- **NEW**: Enhanced indicator discovery and documentation
2325

2426
🚀 **Performance Highlights**:
2527
- **Connection pooling** reduces API overhead by 50-70%
@@ -62,7 +64,7 @@ ProjectX Client (Core API)
6264
- **Historical OHLCV**: Multi-timeframe data with intelligent caching
6365
- **Real-time Streaming**: WebSocket feeds with shared connections
6466
- **Tick-level Data**: High-frequency market data
65-
- **Technical Indicators**: 25+ indicators with computation caching
67+
- **Technical Indicators**: 40+ indicators with computation caching (Full TA-Lib compatibility)
6668

6769
### Advanced Market Microstructure
6870
- **Level 2 Orderbook**: Real-time market depth processing
@@ -177,33 +179,59 @@ portfolio_pnl = position_manager.get_portfolio_pnl()
177179

178180
### High-Performance Indicators with Caching
179181
```python
180-
from project_x_py.indicators import RSI, SMA, EMA, MACD, BBANDS
182+
from project_x_py.indicators import RSI, SMA, EMA, MACD, BBANDS, KAMA, SAR, T3
181183

182184
# Load data once
183185
data = client.get_data("MGC", days=60, interval=60)
184186

185187
# Chained operations with automatic caching
186188
analysis = (
187189
data
188-
.pipe(SMA, period=20) # Cached on subsequent calls
189-
.pipe(SMA, period=50) # Different parameters = separate cache
190-
.pipe(EMA, period=21) # Exponential moving average
191-
.pipe(RSI, period=14) # Optimized RSI calculation
190+
.pipe(SMA, period=20) # Simple Moving Average
191+
.pipe(EMA, period=21) # Exponential Moving Average
192+
.pipe(KAMA, period=30) # Kaufman Adaptive Moving Average
193+
.pipe(T3, period=14) # Triple Exponential Moving Average (T3)
194+
.pipe(RSI, period=14) # Relative Strength Index
192195
.pipe(MACD, fast_period=12, slow_period=26, signal_period=9)
193-
.pipe(BBANDS, period=20, std_dev=2.0)
196+
.pipe(BBANDS, period=20, std_dev=2.0) # Bollinger Bands
197+
.pipe(SAR, acceleration=0.02) # Parabolic SAR
194198
)
195199

200+
# TA-Lib compatible functions
201+
from project_x_py.indicators import calculate_sma, calculate_kama, calculate_sar
202+
sma_data = calculate_sma(data, period=20)
203+
kama_data = calculate_kama(data, period=30)
204+
sar_data = calculate_sar(data, acceleration=0.02)
205+
196206
# Performance monitoring
197207
rsi_indicator = RSI()
198208
print(f"RSI cache size: {len(rsi_indicator._cache)}")
199209
```
200210

201-
### Available Indicators (25+)
202-
- **Overlap Studies**: SMA, EMA, BBANDS, DEMA, TEMA, WMA, MIDPOINT
203-
- **Momentum**: RSI, MACD, STOCH, WILLR, CCI, ROC, MOM, STOCHRSI
204-
- **Volatility**: ATR, ADX, NATR, TRANGE, ULTOSC
211+
### Available Indicators (40+)
212+
- **Overlap Studies**: SMA, EMA, BBANDS, DEMA, TEMA, WMA, MIDPOINT, MIDPRICE, HT_TRENDLINE, KAMA, MA, MAMA, MAVP, SAR, SAREXT, T3, TRIMA
213+
- **Momentum**: RSI, MACD, STOCH, WILLR, CCI, ROC, MOM, STOCHRSI, ADX, AROON, APO, CMO, DX, MFI, PPO, TRIX, ULTOSC
214+
- **Volatility**: ATR, NATR, TRANGE
205215
- **Volume**: OBV, VWAP, AD, ADOSC
206216

217+
### Indicator Discovery & Documentation
218+
```python
219+
from project_x_py.indicators import get_indicator_groups, get_all_indicators, get_indicator_info
220+
221+
# Explore available indicators
222+
groups = get_indicator_groups()
223+
print("Available groups:", list(groups.keys()))
224+
print("Overlap indicators:", groups["overlap"])
225+
226+
# Get all indicators
227+
all_indicators = get_all_indicators()
228+
print(f"Total indicators: {len(all_indicators)}")
229+
230+
# Get detailed information
231+
print("KAMA info:", get_indicator_info("KAMA"))
232+
print("SAR info:", get_indicator_info("SAR"))
233+
```
234+
207235
## 🔄 Real-time Operations
208236

209237
### Multi-Timeframe Real-time Data
@@ -546,7 +574,7 @@ We welcome contributions! Please follow these guidelines:
546574
- [x] **High-Performance Architecture** - Connection pooling, caching, memory management
547575
- [x] **Core Trading API** - Complete order management with optimization
548576
- [x] **Advanced Market Data** - Real-time streams with intelligent caching
549-
- [x] **Technical Indicators** - 25+ indicators with computation caching
577+
- [x] **Technical Indicators** - 40+ indicators with computation caching (Full TA-Lib compatibility)
550578
- [x] **Market Microstructure** - Level 2 orderbook with memory management
551579
- [x] **Performance Monitoring** - Built-in metrics and health tracking
552580
- [x] **Production-Ready** - Enterprise-grade reliability and performance
@@ -563,6 +591,35 @@ We welcome contributions! Please follow these guidelines:
563591
- [ ] **Custom Indicators** - User-defined technical analysis tools
564592
- [ ] **Mobile Support** - iOS/Android companion applications
565593

594+
## 📝 Changelog
595+
596+
### Version 1.0.5 (Latest)
597+
**🎯 Complete TA-Lib Overlap Indicators**
598+
-**New Overlap Indicators (10 added)**: HT_TRENDLINE, KAMA, MA, MAMA, MAVP, MIDPRICE, SAR, SAREXT, T3, TRIMA
599+
-**Enhanced WMA**: Fixed Weighted Moving Average implementation
600+
-**Full TA-Lib Compatibility**: All overlap indicators now match TA-Lib signatures
601+
-**Indicator Discovery**: Helper functions for exploring available indicators
602+
-**Comprehensive Documentation**: Detailed descriptions for all indicators
603+
-**Total Indicators**: Now 40+ indicators across all categories
604+
605+
**New Indicators Details:**
606+
- **KAMA**: Kaufman Adaptive Moving Average - adapts to market volatility
607+
- **SAR/SAREXT**: Parabolic SAR with standard and extended parameters
608+
- **T3**: Triple Exponential Moving Average with volume factor
609+
- **MAMA**: MESA Adaptive Moving Average with fast/slow limits
610+
- **HT_TRENDLINE**: Hilbert Transform Instantaneous Trendline
611+
- **TRIMA**: Triangular Moving Average with double smoothing
612+
- **MIDPRICE**: Midpoint Price using high/low ranges
613+
- **MA**: Generic Moving Average with selectable types
614+
- **MAVP**: Moving Average with Variable Period support
615+
616+
### Version 1.0.2-1.0.4
617+
**🚀 Performance & Reliability**
618+
- ✅ Connection pooling and intelligent caching
619+
- ✅ Memory management optimizations
620+
- ✅ Real-time WebSocket improvements
621+
- ✅ Enhanced error handling and retries
622+
566623
## 📄 License
567624

568625
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "project-x-py"
3-
version = "1.0.4"
3+
version = "1.0.5"
44
description = "Professional Python client for TopStepX ProjectX Gateway API - futures trading, real-time data, and market analysis"
55
readme = "README.md"
66
license = { text = "MIT" }
@@ -164,7 +164,8 @@ unfixable = []
164164
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
165165

166166
[tool.ruff.lint.per-file-ignores]
167-
"src/project_x_py/indicators/__init__.py" = ["N802"] # Allow uppercase function names for TA-Lib style compatibility
167+
"src/project_x_py/indicators/__init__.py" = ["N801", "N802"] # Allow uppercase class/function names for TA-Lib style compatibility
168+
"src/project_x_py/indicators/*.py" = ["N801"] # Allow uppercase class names for TA-Lib style compatibility
168169
"tests/**/*" = ["S101", "PLR2004", "PLR0913", "PLR0915"]
169170
"__init__.py" = ["F401"]
170171

src/project_x_py/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from typing import Any, Optional
1717

18-
__version__ = "1.0.4"
18+
__version__ = "1.0.5"
1919
__author__ = "TexasCoding"
2020

2121
# Core client classes

0 commit comments

Comments
 (0)