# FinFeatures
[](https://badge.fury.io/py/finfeatures)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[]()
[]()
**Advanced Financial Feature Engineering Library for Quantitative Finance and Algorithmic Trading**
FinFeatures is a comprehensive Python library designed for financial technical analysis and feature engineering. It provides a wide range of technical indicators, statistical transformations, and utility functions optimized for quantitative finance applications.
## 🚀 Key Features
### Technical Indicators
- **Moving Averages**: Simple (SMA) and Exponential (EMA) Moving Averages
- **Momentum Indicators**: RSI, MACD with Signal and Histogram
- **Volatility Indicators**: Bollinger Bands, Average True Range (ATR)
- **Oscillators**: Stochastic Oscillator, Williams %R
- **Other Indicators**: Commodity Channel Index (CCI)
### Statistical Transformations
- **Volatility Analysis**: Rolling volatility with annualization options
- **Returns Calculation**: Simple and logarithmic returns
- **Statistical Measures**: Rolling correlation, beta, z-scores, skewness, kurtosis
- **Normalization**: MinMax, Z-score, and Robust scaling methods
### Advanced Features
- **Signal Generation**: Automated buy/sell signal generation
- **Multi-timeframe Analysis**: Batch processing for multiple timeframes
- **Memory Efficient**: Optional in-place operations
- **Type Safety**: Full type hints and validation
- **Robust Error Handling**: Comprehensive input validation
## 📦 Installation
### From PyPI (Recommended)
## 📊 Available Functions
### Technical Indicators
| Function | Description | Key Parameters |
|----------|-------------|----------------|
| `simple_moving_average()` | Simple Moving Average | `window`, `min_periods` |
| `exponential_moving_average()` | Exponential Moving Average | `window` |
| `relative_strength_index()` | RSI with Wilder's smoothing | `window` (default: 14) |
| `macd()` | MACD with signal and histogram | `fast`, `slow`, `signal` |
| `bollinger_bands()` | Bollinger Bands with position | `window`, `num_std` |
| `average_true_range()` | Average True Range | `window` (default: 14) |
| `stochastic_oscillator()` | Stochastic %K and %D | `k_window`, `d_window` |
| `williams_r()` | Williams %R | `window` (default: 14) |
| `commodity_channel_index()` | Commodity Channel Index | `window` (default: 20) |
### Statistical Transformations
| Function | Description | Key Parameters |
|----------|-------------|----------------|
| `rolling_volatility()` | Rolling volatility calculation | `window`, `annualize` |
| `percent_change()` | Simple/log returns | `periods`, `method` |
| `rolling_correlation()` | Rolling correlation | `column1`, `column2`, `window` |
| `rolling_beta()` | Rolling beta calculation | `asset_col`, `market_col`, `window` |
| `z_score()` | Rolling z-score | `window` |
| `rolling_skewness()` | Rolling skewness | `window` |
| `rolling_kurtosis()` | Rolling kurtosis | `window` |
| `price_normalization()` | Various normalization methods | `method`, `window` |
### Convenience Functions
| Function | Description |
|----------|-------------|
| `basic_feature_set()` | Apply basic technical indicators |
| `premium_feature_set()` | Apply comprehensive indicator set |
| `multi_timeframe_sma()` | SMA for multiple timeframes |
| `generate_sma_signals()` | Generate trading signals |
## 🔧 Configuration
### Default Parameters
### Custom Indicator Pipeline
# Trend indicators
df = ff.multi_timeframe_sma(df, price_col, windows=)
df = ff.exponential_moving_average(df, price_col, window=12)
df = ff.exponential_moving_average(df, price_col, window=26)
# Momentum indicators
df = ff.relative_strength_index(df, price_col, window=14)
df = ff.macd(df, price_col)
# Volatility indicators
df = ff.bollinger_bands(df, price_col, window=20)
df = ff.rolling_volatility(df, price_col, window=20)
# Generate signals
df = ff.generate_sma_signals(df, price_col, fast_window=10, slow_window=30)
return df
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
### Development Setup
## 🐛 Bug Reports
If you encounter any bugs, please file an issue on [GitHub Issues](https://github.com/advaitdharmadhikari/finfeatures/issues) with:
- A clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Your environment details
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- Built with [pandas](https://pandas.pydata.org/) and [numpy](https://numpy.org/)
- Inspired by various financial analysis libraries
- Thanks to the quantitative finance community
## 📚 Additional Resources
- [Technical Analysis Explained](https://www.investopedia.com/technical-analysis-4689657)
- [Pandas Documentation](https://pandas.pydata.org/docs/)
- [Quantitative Finance with Python](https://www.quantstart.com/)
**Happy Trading! 📈**
*Made with ❤️ by [Advait Dharmadhikari](https://github.com/advaitdharmadhikari)*
Raw data
{
"_id": null,
"home_page": null,
"name": "finfeatures",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "finance, technical-analysis, feature-engineering, trading, quantitative-finance",
"author": null,
"author_email": "Advait Dharmadhikari <advaituni@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/69/9e/ebaf1dbbf6bec8195f72d844cc2ddd8e6848622428057dc7af9ee16ba32c/finfeatures-0.2.0.tar.gz",
"platform": null,
"description": "# FinFeatures\r\n\r\n[](https://badge.fury.io/py/finfeatures)\r\n[](https://www.python.org/downloads/)\r\n[](https://opensource.org/licenses/MIT)\r\n[]()\r\n[]()\r\n\r\n**Advanced Financial Feature Engineering Library for Quantitative Finance and Algorithmic Trading**\r\n\r\nFinFeatures is a comprehensive Python library designed for financial technical analysis and feature engineering. It provides a wide range of technical indicators, statistical transformations, and utility functions optimized for quantitative finance applications.\r\n\r\n## \ud83d\ude80 Key Features\r\n\r\n### Technical Indicators\r\n- **Moving Averages**: Simple (SMA) and Exponential (EMA) Moving Averages\r\n- **Momentum Indicators**: RSI, MACD with Signal and Histogram\r\n- **Volatility Indicators**: Bollinger Bands, Average True Range (ATR)\r\n- **Oscillators**: Stochastic Oscillator, Williams %R\r\n- **Other Indicators**: Commodity Channel Index (CCI)\r\n\r\n### Statistical Transformations\r\n- **Volatility Analysis**: Rolling volatility with annualization options\r\n- **Returns Calculation**: Simple and logarithmic returns\r\n- **Statistical Measures**: Rolling correlation, beta, z-scores, skewness, kurtosis\r\n- **Normalization**: MinMax, Z-score, and Robust scaling methods\r\n\r\n### Advanced Features\r\n- **Signal Generation**: Automated buy/sell signal generation\r\n- **Multi-timeframe Analysis**: Batch processing for multiple timeframes\r\n- **Memory Efficient**: Optional in-place operations\r\n- **Type Safety**: Full type hints and validation\r\n- **Robust Error Handling**: Comprehensive input validation\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n### From PyPI (Recommended)\r\n\r\n\r\n\r\n## \ud83d\udcca Available Functions\r\n\r\n### Technical Indicators\r\n\r\n| Function | Description | Key Parameters |\r\n|----------|-------------|----------------|\r\n| `simple_moving_average()` | Simple Moving Average | `window`, `min_periods` |\r\n| `exponential_moving_average()` | Exponential Moving Average | `window` |\r\n| `relative_strength_index()` | RSI with Wilder's smoothing | `window` (default: 14) |\r\n| `macd()` | MACD with signal and histogram | `fast`, `slow`, `signal` |\r\n| `bollinger_bands()` | Bollinger Bands with position | `window`, `num_std` |\r\n| `average_true_range()` | Average True Range | `window` (default: 14) |\r\n| `stochastic_oscillator()` | Stochastic %K and %D | `k_window`, `d_window` |\r\n| `williams_r()` | Williams %R | `window` (default: 14) |\r\n| `commodity_channel_index()` | Commodity Channel Index | `window` (default: 20) |\r\n\r\n### Statistical Transformations\r\n\r\n| Function | Description | Key Parameters |\r\n|----------|-------------|----------------|\r\n| `rolling_volatility()` | Rolling volatility calculation | `window`, `annualize` |\r\n| `percent_change()` | Simple/log returns | `periods`, `method` |\r\n| `rolling_correlation()` | Rolling correlation | `column1`, `column2`, `window` |\r\n| `rolling_beta()` | Rolling beta calculation | `asset_col`, `market_col`, `window` |\r\n| `z_score()` | Rolling z-score | `window` |\r\n| `rolling_skewness()` | Rolling skewness | `window` |\r\n| `rolling_kurtosis()` | Rolling kurtosis | `window` |\r\n| `price_normalization()` | Various normalization methods | `method`, `window` |\r\n\r\n### Convenience Functions\r\n\r\n| Function | Description |\r\n|----------|-------------|\r\n| `basic_feature_set()` | Apply basic technical indicators |\r\n| `premium_feature_set()` | Apply comprehensive indicator set |\r\n| `multi_timeframe_sma()` | SMA for multiple timeframes |\r\n| `generate_sma_signals()` | Generate trading signals |\r\n\r\n## \ud83d\udd27 Configuration\r\n\r\n### Default Parameters\r\n\r\n\r\n### Custom Indicator Pipeline\r\n# Trend indicators\r\ndf = ff.multi_timeframe_sma(df, price_col, windows=)\r\ndf = ff.exponential_moving_average(df, price_col, window=12)\r\ndf = ff.exponential_moving_average(df, price_col, window=26)\r\n\r\n# Momentum indicators\r\ndf = ff.relative_strength_index(df, price_col, window=14)\r\ndf = ff.macd(df, price_col)\r\n\r\n# Volatility indicators\r\ndf = ff.bollinger_bands(df, price_col, window=20)\r\ndf = ff.rolling_volatility(df, price_col, window=20)\r\n\r\n# Generate signals\r\ndf = ff.generate_sma_signals(df, price_col, fast_window=10, slow_window=30)\r\n\r\nreturn df\r\n\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\r\n\r\n### Development Setup\r\n\r\n## \ud83d\udc1b Bug Reports\r\n\r\nIf you encounter any bugs, please file an issue on [GitHub Issues](https://github.com/advaitdharmadhikari/finfeatures/issues) with:\r\n- A clear description of the bug\r\n- Steps to reproduce\r\n- Expected vs actual behavior\r\n- Your environment details\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- Built with [pandas](https://pandas.pydata.org/) and [numpy](https://numpy.org/)\r\n- Inspired by various financial analysis libraries\r\n- Thanks to the quantitative finance community\r\n\r\n## \ud83d\udcda Additional Resources\r\n\r\n- [Technical Analysis Explained](https://www.investopedia.com/technical-analysis-4689657)\r\n- [Pandas Documentation](https://pandas.pydata.org/docs/)\r\n- [Quantitative Finance with Python](https://www.quantstart.com/)\r\n\r\n**Happy Trading! \ud83d\udcc8**\r\n\r\n*Made with \u2764\ufe0f by [Advait Dharmadhikari](https://github.com/advaitdharmadhikari)*\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Advanced Financial Feature Engineering Library for Quantitative Finance and Algorithmic Trading",
"version": "0.2.0",
"project_urls": {
"Bug Tracker": "https://github.com/advait27/finfeatures/issues",
"Documentation": "https://github.com/advait27/finfeatures#readme",
"Homepage": "https://github.com/advait27/finfeatures",
"Repository": "https://github.com/advait27/finfeatures"
},
"split_keywords": [
"finance",
" technical-analysis",
" feature-engineering",
" trading",
" quantitative-finance"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e08fb6aab8e31e9176c94d56663e31bb45d3901031146a0aaf6d11f585c1f025",
"md5": "6fb4c8b96ff2449b9bed4943bce2100d",
"sha256": "38ef2c6da1183bf33738f2f2bea81e0c3386097e0122bee1f2e7dc644521c67e"
},
"downloads": -1,
"filename": "finfeatures-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6fb4c8b96ff2449b9bed4943bce2100d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 11648480,
"upload_time": "2025-08-02T09:18:11",
"upload_time_iso_8601": "2025-08-02T09:18:11.483239Z",
"url": "https://files.pythonhosted.org/packages/e0/8f/b6aab8e31e9176c94d56663e31bb45d3901031146a0aaf6d11f585c1f025/finfeatures-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "699eebaf1dbbf6bec8195f72d844cc2ddd8e6848622428057dc7af9ee16ba32c",
"md5": "bd160ba6afd2de2ba79a4072cd00c41d",
"sha256": "cbf22e57228b33aaf790f1722773de63435f754719d4a5f210a5d52274e42f77"
},
"downloads": -1,
"filename": "finfeatures-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "bd160ba6afd2de2ba79a4072cd00c41d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9864324,
"upload_time": "2025-08-02T09:18:14",
"upload_time_iso_8601": "2025-08-02T09:18:14.127324Z",
"url": "https://files.pythonhosted.org/packages/69/9e/ebaf1dbbf6bec8195f72d844cc2ddd8e6848622428057dc7af9ee16ba32c/finfeatures-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-02 09:18:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "advait27",
"github_project": "finfeatures",
"github_not_found": true,
"lcname": "finfeatures"
}