centaur_technical_indicators 1.0.1__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 (39) hide show
  1. centaur_technical_indicators-1.0.1/.github/CODEOWNERS +1 -0
  2. centaur_technical_indicators-1.0.1/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. centaur_technical_indicators-1.0.1/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. centaur_technical_indicators-1.0.1/.github/copilot-instructions.md +185 -0
  5. centaur_technical_indicators-1.0.1/.github/workflows/CI.yml +183 -0
  6. centaur_technical_indicators-1.0.1/.github/workflows/python-package.yml +28 -0
  7. centaur_technical_indicators-1.0.1/.gitignore +134 -0
  8. centaur_technical_indicators-1.0.1/CHANGELOG.md +86 -0
  9. centaur_technical_indicators-1.0.1/CODE_OF_CONDUCT.md +73 -0
  10. centaur_technical_indicators-1.0.1/CONTRIBUTING.md +55 -0
  11. centaur_technical_indicators-1.0.1/Cargo.lock +171 -0
  12. centaur_technical_indicators-1.0.1/Cargo.toml +14 -0
  13. centaur_technical_indicators-1.0.1/LICENSE-MIT +24 -0
  14. centaur_technical_indicators-1.0.1/PKG-INFO +267 -0
  15. centaur_technical_indicators-1.0.1/README.md +244 -0
  16. centaur_technical_indicators-1.0.1/SECURITY.md +18 -0
  17. centaur_technical_indicators-1.0.1/assets/pytechnicalindicators_banner.png +0 -0
  18. centaur_technical_indicators-1.0.1/pyproject.toml +36 -0
  19. centaur_technical_indicators-1.0.1/requirements.txt +1 -0
  20. centaur_technical_indicators-1.0.1/src/candle_indicators.rs +521 -0
  21. centaur_technical_indicators-1.0.1/src/chart_trends.rs +138 -0
  22. centaur_technical_indicators-1.0.1/src/correlation_indicators.rs +97 -0
  23. centaur_technical_indicators-1.0.1/src/lib.rs +194 -0
  24. centaur_technical_indicators-1.0.1/src/momentum_indicators.rs +840 -0
  25. centaur_technical_indicators-1.0.1/src/moving_average.rs +115 -0
  26. centaur_technical_indicators-1.0.1/src/other_indicators.rs +239 -0
  27. centaur_technical_indicators-1.0.1/src/strength_indicators.rs +241 -0
  28. centaur_technical_indicators-1.0.1/src/trend_indicators.rs +408 -0
  29. centaur_technical_indicators-1.0.1/src/volatility_indicators.rs +89 -0
  30. centaur_technical_indicators-1.0.1/test_requirements.txt +6 -0
  31. centaur_technical_indicators-1.0.1/tests/test_candle_indicators.py +165 -0
  32. centaur_technical_indicators-1.0.1/tests/test_chart_trends.py +58 -0
  33. centaur_technical_indicators-1.0.1/tests/test_correlation_indicators.py +64 -0
  34. centaur_technical_indicators-1.0.1/tests/test_momentum_indicators.py +273 -0
  35. centaur_technical_indicators-1.0.1/tests/test_moving_average.py +45 -0
  36. centaur_technical_indicators-1.0.1/tests/test_other_indicators.py +75 -0
  37. centaur_technical_indicators-1.0.1/tests/test_strength_indicators.py +64 -0
  38. centaur_technical_indicators-1.0.1/tests/test_trend_indicators.py +106 -0
  39. centaur_technical_indicators-1.0.1/tests/test_volatility_indicators.py +43 -0
@@ -0,0 +1 @@
1
+ * @chironmind
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Desktop (please complete the following information):**
27
+ - OS: [e.g. iOS]
28
+ - Browser [e.g. chrome, safari]
29
+ - Version [e.g. 22]
30
+
31
+ **Smartphone (please complete the following information):**
32
+ - Device: [e.g. iPhone6]
33
+ - OS: [e.g. iOS8.1]
34
+ - Browser [e.g. stock browser, safari]
35
+ - Version [e.g. 22]
36
+
37
+ **Additional context**
38
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,185 @@
1
+ # Copilot Instructions for Centaur Technical Indicators
2
+
3
+ ## Repository Overview
4
+
5
+ **Centaur Technical Indicators** is a production-ready Python library providing 60+ technical indicators for financial analysis, built on a high-performance Rust backend. The project uses PyO3 and maturin to create Python bindings for the underlying Rust implementation.
6
+
7
+ **Key Stats:**
8
+ - **Languages:** Rust (backend), Python (bindings/tests)
9
+ - **Build System:** maturin (Rust-Python integration)
10
+ - **Python Support:** 3.10+ (tested through 3.14)
11
+ - **Test Suite:** 107 tests, ~0.31s runtime
12
+ - **License:** MIT
13
+
14
+ ## Build Instructions & Validated Commands
15
+
16
+ ### Bootstrap & Environment Setup (Required)
17
+ **Always create a virtual environment before building:**
18
+ ```bash
19
+ python -m venv .venv
20
+ source .venv/bin/activate
21
+ python -m pip install --upgrade pip
22
+ ```
23
+
24
+ ### Install Dependencies (Required)
25
+ ```bash
26
+ pip install -r test_requirements.txt
27
+ ```
28
+ **Contents:** maturin==1.9.1, pytest==8.4.1, and supporting packages
29
+
30
+ ### Build the Project (Required)
31
+ ```bash
32
+ maturin develop
33
+ ```
34
+ - **Duration:** ~14 seconds for full compilation
35
+ - **Function:** Compiles Rust code and installs Python package in editable mode
36
+ - **Output:** Installs `centaur_technical_indicators` package locally
37
+
38
+ ### Run Tests (Validation)
39
+ ```bash
40
+ python -m pytest
41
+ ```
42
+ - **Expected:** 107 tests pass in ~0.31s
43
+ - **Coverage:** All indicator modules with bulk/single function variants
44
+
45
+ ### Format Code (Optional)
46
+ ```bash
47
+ cargo fmt --check # Check Rust formatting
48
+ ```
49
+
50
+ ### Environment Versions (Reference)
51
+ - **Python:** 3.12.3+
52
+ - **Rust:** 1.89.0+
53
+ - **maturin:** 1.9.1
54
+
55
+ ## Project Layout & Architecture
56
+
57
+ ### Root Directory Structure
58
+ ```
59
+ /
60
+ ├── .github/ # Workflows, issue templates, CODEOWNERS
61
+ ├── src/ # Rust source modules
62
+ ├── tests/ # Python test files (mirror src/ structure)
63
+ ├── assets/ # Documentation assets, banner images
64
+ ├── pyproject.toml # Python project configuration, maturin settings
65
+ ├── Cargo.toml # Rust project configuration, dependencies
66
+ ├── requirements.txt # Runtime dependencies (minimal)
67
+ ├── test_requirements.txt # Development/test dependencies
68
+ └── README.md # Comprehensive project documentation
69
+ ```
70
+
71
+ ### Source Code Architecture (`src/`)
72
+ **Modular Design by Analysis Area:**
73
+ - `lib.rs` - Main module, PyO3 bindings setup, type definitions
74
+ - `candle_indicators.rs` - Ichimoku, Bollinger Bands, Keltner, Supertrend
75
+ - `momentum_indicators.rs` - RSI, MACD, CCI, Williams %R, Stochastic
76
+ - `moving_average.rs` - Simple, Exponential, Smoothed, McGinley Dynamic
77
+ - `standard_indicators.rs` - Basic indicators, moving averages
78
+ - `trend_indicators.rs` - Aroon, Parabolic SAR, DM, TSI
79
+ - `volatility_indicators.rs` - Ulcer Index, Volatility System
80
+ - `strength_indicators.rs` - A/D, PVI, NVI, RVI
81
+ - `chart_trends.rs` - Trend analysis, peak/valley detection
82
+ - `correlation_indicators.rs` - Asset price correlation
83
+ - `other_indicators.rs` - ROI, True Range, ATR
84
+
85
+ ### API Design Patterns
86
+ - **Dual Function Variants:** Each indicator has `bulk` (returns list) and `single` (returns scalar) versions
87
+ - **Type System:** Custom enums (`PyConstantModelType`, `DeviationModel`, `MovingAverageType`) for configuration
88
+ - **Error Handling:** Uses `PyValueError` for invalid inputs with descriptive messages
89
+
90
+ ### Test Structure (`tests/`)
91
+ - **Naming Convention:** `test_<module_name>.py` mirrors `src/<module_name>.rs`
92
+ - **Purpose:** Binding verification, not exhaustive testing (core logic tested in RustTI)
93
+ - **Pattern:** Basic smoke tests to ensure Python-Rust interface works
94
+
95
+ ## CI/CD & Validation Pipelines
96
+
97
+ ### GitHub Workflows
98
+ 1. **`python-package.yml`** - Pull request validation
99
+ - Tests across Python 3.10-3.14 on Ubuntu
100
+ - Steps: checkout → setup Python → install deps → maturin develop → pytest
101
+
102
+ 2. **`CI.yml`** - Release pipeline (maturin-generated)
103
+ - Multi-platform wheel building (Linux, Windows, macOS)
104
+ - Multiple architectures (x86_64, ARM, etc.)
105
+ - Automatic PyPI publication on tags
106
+
107
+ ### Pre-commit Validation Steps
108
+ ```bash
109
+ # Recommended validation sequence:
110
+ source .venv/bin/activate
111
+ pip install -r test_requirements.txt
112
+ maturin develop
113
+ python -m pytest
114
+ cargo fmt --check # Optional: check Rust formatting
115
+ ```
116
+
117
+ ## Development Guidelines
118
+
119
+ ### Making Code Changes
120
+ 1. **Rust Changes:** Edit files in `src/`, then run `maturin develop` to rebuild
121
+ 2. **Python Tests:** Add corresponding tests in `tests/` following existing patterns
122
+ 3. **API Consistency:** Maintain `bulk`/`single` function variants for new indicators
123
+ 4. **Type Safety:** Use existing enum types or add new ones following the pattern in `lib.rs`
124
+
125
+ ### Performance Considerations
126
+ - **Rust Backend:** Core calculations optimized for microsecond-level performance
127
+ - **Bulk vs Single:** Use `bulk` for time series, `single` for latest values
128
+ - **Memory:** Rust handles memory management; Python side is minimal overhead
129
+
130
+ ### Dependencies & Updates
131
+ - **Rust Dependencies:** Managed in `Cargo.toml` (pyo3, rust_ti)
132
+ - **Python Dependencies:** Keep `test_requirements.txt` minimal
133
+ - **Version Constraints:** Python 3.10+ required for modern features
134
+
135
+ ## Common Workflows & Commands
136
+
137
+ ### Complete Development Setup
138
+ ```bash
139
+ git clone <repo>
140
+ cd CentaurTechnicalIndicators-Python
141
+ python -m venv .venv
142
+ source .venv/bin/activate
143
+ pip install -r test_requirements.txt
144
+ maturin develop
145
+ python -m pytest
146
+ ```
147
+
148
+ ### Iterative Development
149
+ ```bash
150
+ # After making Rust changes:
151
+ maturin develop # Rebuild and reinstall
152
+ python -m pytest # Verify no regressions
153
+
154
+ # After making Python test changes:
155
+ python -m pytest # Run updated tests
156
+ ```
157
+
158
+ ### Release Preparation
159
+ ```bash
160
+ cargo fmt # Format Rust code
161
+ python -m pytest # Ensure all tests pass
162
+ # CI handles wheel building and PyPI publication
163
+ ```
164
+
165
+ ## Key Files & Configuration
166
+
167
+ ### Build Configuration
168
+ - **`pyproject.toml`:** Python packaging, maturin settings, project metadata
169
+ - **`Cargo.toml`:** Rust compilation, dependencies (pyo3, rust_ti)
170
+ - **`.gitignore`:** Excludes `target/`, `.venv/`, `__pycache__/`, build artifacts
171
+
172
+ ### Documentation Resources
173
+ - **`README.md`:** Complete user documentation, examples, API reference
174
+ - **`CONTRIBUTING.md`:** Contribution guidelines, new indicator process
175
+ - **Wiki:** Full API reference and usage examples
176
+ - **External:** Tutorials, benchmarks, and how-to guides in separate repos
177
+
178
+ ## Trust These Instructions
179
+
180
+ These instructions are validated and complete. Only perform additional repository exploration if:
181
+ - The build process fails unexpectedly
182
+ - Dependencies have changed significantly
183
+ - New requirements are introduced in documentation
184
+
185
+ The provided build sequence works reliably and efficiently for the current codebase.
@@ -0,0 +1,183 @@
1
+ # This file is autogenerated by maturin v1.11.5
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: CI
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - main
12
+ - master
13
+ tags:
14
+ - '*'
15
+ pull_request:
16
+ workflow_dispatch:
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ linux:
23
+ runs-on: ${{ matrix.platform.runner }}
24
+ strategy:
25
+ matrix:
26
+ platform:
27
+ - runner: ubuntu-22.04
28
+ target: x86_64
29
+ - runner: ubuntu-22.04
30
+ target: x86
31
+ - runner: ubuntu-22.04
32
+ target: aarch64
33
+ - runner: ubuntu-22.04
34
+ target: armv7
35
+ - runner: ubuntu-22.04
36
+ target: s390x
37
+ - runner: ubuntu-22.04
38
+ target: ppc64le
39
+ steps:
40
+ - uses: actions/checkout@v6
41
+ - uses: actions/setup-python@v6
42
+ with:
43
+ python-version: 3.x
44
+ - name: Build wheels
45
+ uses: PyO3/maturin-action@v1
46
+ with:
47
+ target: ${{ matrix.platform.target }}
48
+ args: --release --out dist --find-interpreter
49
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
50
+ manylinux: auto
51
+ - name: Upload wheels
52
+ uses: actions/upload-artifact@v5
53
+ with:
54
+ name: wheels-linux-${{ matrix.platform.target }}
55
+ path: dist
56
+
57
+ musllinux:
58
+ runs-on: ${{ matrix.platform.runner }}
59
+ strategy:
60
+ matrix:
61
+ platform:
62
+ - runner: ubuntu-22.04
63
+ target: x86_64
64
+ - runner: ubuntu-22.04
65
+ target: x86
66
+ - runner: ubuntu-22.04
67
+ target: aarch64
68
+ - runner: ubuntu-22.04
69
+ target: armv7
70
+ steps:
71
+ - uses: actions/checkout@v6
72
+ - uses: actions/setup-python@v6
73
+ with:
74
+ python-version: 3.x
75
+ - name: Build wheels
76
+ uses: PyO3/maturin-action@v1
77
+ with:
78
+ target: ${{ matrix.platform.target }}
79
+ args: --release --out dist --find-interpreter
80
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
81
+ manylinux: musllinux_1_2
82
+ - name: Upload wheels
83
+ uses: actions/upload-artifact@v5
84
+ with:
85
+ name: wheels-musllinux-${{ matrix.platform.target }}
86
+ path: dist
87
+
88
+ windows:
89
+ runs-on: ${{ matrix.platform.runner }}
90
+ strategy:
91
+ matrix:
92
+ platform:
93
+ - runner: windows-latest
94
+ target: x64
95
+ python_arch: x64
96
+ - runner: windows-latest
97
+ target: x86
98
+ python_arch: x86
99
+ steps:
100
+ - uses: actions/checkout@v6
101
+ - uses: actions/setup-python@v6
102
+ with:
103
+ python-version: 3.x
104
+ architecture: ${{ matrix.platform.python_arch }}
105
+ - name: Build wheels
106
+ uses: PyO3/maturin-action@v1
107
+ with:
108
+ target: ${{ matrix.platform.target }}
109
+ args: --release --out dist --find-interpreter
110
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
111
+ - name: Upload wheels
112
+ uses: actions/upload-artifact@v5
113
+ with:
114
+ name: wheels-windows-${{ matrix.platform.target }}
115
+ path: dist
116
+
117
+ macos:
118
+ runs-on: ${{ matrix.platform.runner }}
119
+ strategy:
120
+ matrix:
121
+ platform:
122
+ - runner: macos-15-intel
123
+ target: x86_64
124
+ - runner: macos-latest
125
+ target: aarch64
126
+ steps:
127
+ - uses: actions/checkout@v6
128
+ - uses: actions/setup-python@v6
129
+ with:
130
+ python-version: 3.x
131
+ - name: Build wheels
132
+ uses: PyO3/maturin-action@v1
133
+ with:
134
+ target: ${{ matrix.platform.target }}
135
+ args: --release --out dist --find-interpreter
136
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
137
+ - name: Upload wheels
138
+ uses: actions/upload-artifact@v5
139
+ with:
140
+ name: wheels-macos-${{ matrix.platform.target }}
141
+ path: dist
142
+
143
+ sdist:
144
+ runs-on: ubuntu-latest
145
+ steps:
146
+ - uses: actions/checkout@v6
147
+ - name: Build sdist
148
+ uses: PyO3/maturin-action@v1
149
+ with:
150
+ command: sdist
151
+ args: --out dist
152
+ - name: Upload sdist
153
+ uses: actions/upload-artifact@v5
154
+ with:
155
+ name: wheels-sdist
156
+ path: dist
157
+
158
+ release:
159
+ name: Release
160
+ runs-on: ubuntu-latest
161
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
162
+ needs: [linux, musllinux, windows, macos, sdist]
163
+ permissions:
164
+ # Use to sign the release artifacts
165
+ id-token: write
166
+ # Used to upload release artifacts
167
+ contents: write
168
+ # Used to generate artifact attestation
169
+ attestations: write
170
+ steps:
171
+ - uses: actions/download-artifact@v6
172
+ - name: Generate artifact attestation
173
+ uses: actions/attest-build-provenance@v3
174
+ with:
175
+ subject-path: 'wheels-*/*'
176
+ - name: Install uv
177
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
178
+ uses: astral-sh/setup-uv@v7
179
+ - name: Publish to PyPI
180
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
181
+ run: uv publish 'wheels-*/*'
182
+ env:
183
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,28 @@
1
+ name: Python package
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+ - uses: actions/setup-python@v6
19
+ with:
20
+ python-version: ${{ matrix.python-version }}
21
+ - name: Test with PyTest
22
+ run: |
23
+ python -m pip install --upgrade pip
24
+ python -m venv .venv
25
+ source .venv/bin/activate
26
+ pip install -r test_requirements.txt
27
+ maturin develop
28
+ python -m pytest
@@ -0,0 +1,134 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache/
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre/
130
+
131
+ # IDE
132
+ .idea/
133
+ .vscode/
134
+ venv
@@ -0,0 +1,86 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ---
8
+
9
+ ## [1.0.0] - 2026-01-19
10
+
11
+ ### Changed
12
+ - **Breaking:** Rebranded from PyTechnicalIndicators to CentaurTechnicalIndicators-Python
13
+ - Updated all documentation, README, and links to reflect the new CentaurTechnicalIndicators branding
14
+ - Updated package metadata to reflect the new name and branding
15
+
16
+ ---
17
+
18
+ *** /!\ The release notes below cover the PyTechnicalIndicators packages before the rebranding /!\ ***
19
+
20
+ ## [3.0.5] - 2025-10-19
21
+
22
+ ### Changed
23
+ - Updated rust_ti dependency from 2.1.5 to 2.2.0
24
+
25
+ ### Added
26
+ - Added support for new probability distribution deviation models from rust_ti 2.2.0:
27
+ - `LogStandardDeviation` - Log-scale standard deviation for analyzing log-returns
28
+ - `LaplaceStdEquivalent` - Laplace (double exponential) distribution scaled to standard deviation
29
+ - `CauchyIQRScale` - Cauchy distribution scaled by interquartile range for extreme outliers
30
+ - Added string aliases for new deviation models: `"log"`, `"logstd"`, `"laplace"`, `"cauchy"`
31
+ - Enhanced `PyDeviationModel::from_string()` to support the new deviation models
32
+
33
+ ### Fixed
34
+ - Updated test expectations for median and mode absolute deviation calculations due to improved algorithms in rust_ti 2.2.0
35
+
36
+ ---
37
+
38
+ ## [3.0.4] - 2025-10-08
39
+
40
+ ### Changed
41
+ - Updated rust_ti dependency from 2.1.4 to 2.1.5
42
+ - Updated `break_down_trends` function to use new `TrendBreakConfig` struct from rust_ti 2.1.5
43
+ - Updated parameter names in `break_down_trends`
44
+
45
+ ---
46
+
47
+ ## [3.0.3] - 2025-08-13
48
+
49
+ ### Added
50
+ - Updated README.md to add links to How-Tos, a summary of benchmarks, and a badge linking to Read the Docs.
51
+
52
+ ---
53
+
54
+ ## [3.0.2] - 2025-08-07
55
+
56
+ ### Changed
57
+ - Minor document updates
58
+ - Updated RustTI version to include volatilty system fix
59
+
60
+ ### Added
61
+ - Better badges to README
62
+
63
+ ---
64
+
65
+ ## [3.0.1] - 2025-08-04
66
+
67
+ ### Changed
68
+ - Updated the package version number...
69
+
70
+ ---
71
+
72
+ ## [3.0.0] - 2025-08-04
73
+
74
+ ### Added
75
+ - Added bindings using PyO3 and Maturin
76
+
77
+ ### Changed
78
+ - Major changes to all functions, they are now bindings for the same functions in RustTI
79
+
80
+ ### Removed
81
+ - Pure python functionality
82
+
83
+ ---
84
+
85
+ Older releases aren't tracked in this file but some information can be found [here](https://github.com/chironmind/PyTechnicalIndicators/releases)
86
+