https://github.com/phmatray/talibstandard
TaLib in C# for .NET Standard
https://github.com/phmatray/talibstandard
dotnet-standard talib technical-analysis
Last synced: 4 months ago
JSON representation
TaLib in C# for .NET Standard
- Host: GitHub
- URL: https://github.com/phmatray/talibstandard
- Owner: phmatray
- License: gpl-3.0
- Created: 2018-03-24T19:06:07.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2025-01-06T15:20:23.000Z (over 1 year ago)
- Last Synced: 2025-03-31T07:07:24.514Z (about 1 year ago)
- Topics: dotnet-standard, talib, technical-analysis
- Language: C#
- Homepage:
- Size: 3.79 MB
- Stars: 81
- Watchers: 4
- Forks: 25
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TaLibStandard
[](https://stars.medv.io/phmatray/TaLibStandard)
A modern and robust C# Technical Analysis library based on the original open-source [TA-Lib](https://ta-lib.org) by Mario Fortier, using Generic Math and supporting Double, Float, and Decimal data types.
---
[](https://github.com/phmatray/TaLibStandard "Go to GitHub repo")
[](https://www.gnu.org/licenses/gpl-3.0.html)
[](https://github.com/phmatray/TaLibStandard)
[](https://github.com/phmatray/TaLibStandard)
[](https://github.com/phmatray/TaLibStandard/releases/)
[](https://github.com/phmatray/TaLibStandard/issues)
[](https://github.com/phmatray/TaLibStandard/pulls)
[](https://github.com/phmatray/TaLibStandard/graphs/contributors)
[](https://github.com/phmatray/TaLibStandard/commits/master)
[](https://app.codecov.io/gh/phmatray/TaLibStandard/tree/main)
[](https://app.codacy.com/gh/phmatray/TaLibStandard/dashboard)
---
## π Table of Contents
* [TaLibStandard](#talibstandard)
* [π Table of Contents](#-table-of-contents)
* [π Introduction](#-introduction)
* [π― Goal](#-goal)
* [π Getting started](#-getting-started)
* [π Features](#-features)
* [Roadmap (next features)](#roadmap-next-features)
* [π Documentation](#-documentation)
* [π₯ Installation](#-installation)
* [π Prerequisites](#-prerequisites)
* [π We use the latest C# features](#-we-use-the-latest-c-features)
* [π¦ NuGet Packages](#-nuget-packages)
* [π§ͺ Tests Specifications](#-tests-specifications)
* [πΎ Installation](#-installation-1)
* [π Code Quality](#-code-quality)
* [β Issues and Feature Requests](#-issues-and-feature-requests)
* [π€ Contributing](#-contributing)
* [π Contributors](#-contributors)
* [βοΈ Contact](#-contact)
* [π Release notes](#-release-notes)
* [π License](#-license)
## π Introduction
TaLibStandard is a modern interpretation of the widely used [TA-Lib](https://ta-lib.org), reimagined in C# 14. It is designed to be reliable, efficient, and user-friendly for developers performing financial market analysis. The addition of .NET's Generic Math feature allows for a richer, more flexible library that can handle a variety of number types.
## π― Goal
The primary objective of TaLibStandard is to provide a comprehensive, feature-rich and accessible library for conducting technical analysis on financial market data.
## π Getting started
To get started with TaLibStandard, you can clone the repository and explore the examples provided in the `examples` directory. You can also refer to the list of [available functions](./docs/functions.md) in the documentation for a comprehensive overview of the library's capabilities.
## π Features
* [x] Support for Double, Float, and Decimal data types, with the help of .NET's Generic Math
* [x] With some basic tests (coverage: >= 80%)
* [x] .NET Exception handling (BREAKING CHANGE)
### Roadmap (next features)
* [ ] Comprehensive API documentation that is easy to understand
* [ ] High-Level API for common use cases
* [ ] Support for more data types
* [ ] Support for more functions
* [ ] More tests
* [ ] More examples
* [ ] Add a Benchmark project
* [ ] Create a gRPC server to expose the library as a service
## π Documentation
**TaLibStandard** provides a [COMPLETE DOCUMENTATION](https://github.com/phmatray/TaLibStandard/blob/main/docs/README.md) of the library.
All summaries are written in English. If you want to help us translate the documentation, please open an issue to
discuss it.
> **Note:** The documentation is generated using [Doraku/DefaultDocumentation]() tool. It is generated automatically when the project is built.
## π₯ Installation
### π Prerequisites
- .NET 10.0 (supported versions: 10.x)
- A C# IDE (Visual Studio, JetBrains Rider, etc.)
- A C# compiler (dotnet CLI, etc.)
### π We use the latest C# features
This library targets .NET 10.0 and uses the latest C# features. It is written in C# 14.0 and uses the new `init`
properties, `record` types, `switch` expressions, `using` declarations and more.
I invite you to read the [C# 14.0 documentation](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-14) to
learn more about these features.
### π¦ NuGet Packages
| Package Name | NuGet Version Badge | NuGet Downloads Badge | Package Explorer |
|--------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| Atypical.TechnicalAnalysis.Candles | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Candles) | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Candles) | [Explore](https://nuget.info/packages/Atypical.TechnicalAnalysis.Candles) |
| Atypical.TechnicalAnalysis.Functions | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Functions) | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Functions) | [Explore](https://nuget.info/packages/Atypical.TechnicalAnalysis.Functions) |
| Atypical.TechnicalAnalysis.Core | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Common) | [](https://www.nuget.org/packages/Atypical.TechnicalAnalysis.Common) | [Explore](https://nuget.info/packages/Atypical.TechnicalAnalysis.Common) |
This table is automatically updated regularly the latest developments and releases in the Atypical Technical Analysis suite.
### π§ͺ Tests Specifications
* Target framework : .NET 10
* Language version : C# 14
* xUnit and Shouldly
## πΎ Installation
To install TaLibStandard, you can use the NuGet package manager. Run the following command in your terminal:
```shell
dotnet add package Atypical.TechnicalAnalysis.Candles
dotnet add package Atypical.TechnicalAnalysis.Functions
```
## π Code Quality
We strive for the highest code quality in TaLibStandard, leveraging Codacyβan automated code analysis/quality tool. Codacy provides static analysis, cyclomatic complexity measures, duplication identification, and code unit test coverage changes for every commit and pull request.
View our Codacy metrics [here](https://app.codacy.com/gh/phmatray/TaLibStandard).
## β Issues and Feature Requests
For reporting bugs or suggesting new features, kindly submit these as an issue to the [TaLibStandard Repository](https://github.com/phmatray/TaLibStandard/issues). We value your contributions, but before submitting an issue, please ensure it is not a duplicate of an existing one.
## π€ Contributing
We welcome contributions from the community! If you'd like to contribute to TaLibStandard, please fork the repository and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
## π Contributors
[](http://contrib.rocks)
## βοΈ Contact
You can contact us by opening an issue on this repository.
## π Release notes
### v3.0.0 (January 2026) - .NET 10 LTS Release π
**Breaking Changes:**
- **Upgraded to .NET 10 LTS** - Framework support extended until November 2028
- **C# 14 Language Features** - Utilizing the latest C# capabilities
- **Updated Dependencies** - All major packages updated to .NET 10 compatible versions
- **Minimum .NET Version:** Now requires .NET 10.0 SDK
**Major Improvements:**
- **Code Quality:** Extensive refactoring eliminated ~1,200 lines of duplicated code
- **Validation Consolidation:** Unified validation patterns across 99 indicators
- **Result Classes:** Consolidated result types with inheritance hierarchy
- **Mathematical Functions:** Template-based approach for 60+ math indicators
- **Lookback Validation:** Standardized lookback calculations for 87 indicators
- **Code Cleanup:** Removed unused code and consolidated common patterns
**Performance:**
- All 898 tests passing
- No performance degradation
- Maintained backward compatibility in algorithms
**Documentation:**
- Auto-generated API documentation updated
- All function and candle pattern docs regenerated
For migration guide from v2.x to v3.0, see [Migration from v2 to v3](#migration-from-v2-to-v3).
### Previous Releases
- v2.0.0 (June 2025) - Major release with .NET Exception handling
- v1.0.0 (June 2025) - First stable release
- v0.4.0 (June 2025) - Generic Math support
- v0.3.1 (June 2025) - Bug fixes and improvements
- v0.3.0 (June 2025) - Enhanced functionality
- v0.2.0 (June 2025) - Additional indicators
- v0.1.0 (November 2023) - Initial release
## Migration from v2 to v3
### Prerequisites
- **Update to .NET 10 SDK:** Download from [dotnet.microsoft.com](https://dotnet.microsoft.com/download)
- **Update project target framework:**
```xml
net10.0
```
### Breaking Changes
1. **Framework Requirement**
- Minimum version: .NET 10.0
- Projects targeting .NET 9 or earlier must upgrade
2. **Package Dependencies**
- If you reference TaLibStandard packages, ensure your project can target .NET 10.0
- Update any conflicting package versions
### API Compatibility
- **No API breaking changes** - All public method signatures remain the same
- **No behavioral changes** - All algorithms produce identical results
- Code that worked with v2.x will work with v3.0 after framework upgrade
### Testing Your Migration
```csharp
// No code changes needed - same API as v2.x
var rsiResult = TAFunc.Rsi(0, closePrices.Length - 1, closePrices, 14,
ref outBegIdx, ref outNBElement, ref rsiValues);
```
## π License
GNU General Public License v3.0 or later.