A modern and robust C# Technical Analysis library based on the original open-source TA-Lib by Mario Fortier, using Generic Math and supporting Double, Float, and Decimal data types.
- TaLibStandard
TaLibStandard is a modern interpretation of the widely used TA-Lib, 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.
The primary objective of TaLibStandard is to provide a comprehensive, feature-rich and accessible library for conducting technical analysis on financial market data.
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 in the documentation for a comprehensive overview of the library's capabilities.
- Support for Double, Float, and Decimal data types, with the help of .NET's Generic Math
- With some basic tests (coverage: >= 80%)
- .NET Exception handling (BREAKING CHANGE)
- 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
TaLibStandard provides a COMPLETE DOCUMENTATION 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.
- .NET 10.0 (supported versions: 10.x)
- A C# IDE (Visual Studio, JetBrains Rider, etc.)
- A C# compiler (dotnet CLI, etc.)
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 to learn more about these features.
| Package Name | NuGet Version Badge | NuGet Downloads Badge | Package Explorer |
|---|---|---|---|
| Atypical.TechnicalAnalysis.Candles | Explore | ||
| Atypical.TechnicalAnalysis.Functions | Explore | ||
| Atypical.TechnicalAnalysis.Core | Explore |
This table is automatically updated regularly the latest developments and releases in the Atypical Technical Analysis suite.
- Target framework : .NET 10
- Language version : C# 14
- xUnit and Shouldly
To install TaLibStandard, you can use the NuGet package manager. Run the following command in your terminal:
dotnet add package Atypical.TechnicalAnalysis.Candles
dotnet add package Atypical.TechnicalAnalysis.FunctionsWe 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.
For reporting bugs or suggesting new features, kindly submit these as an issue to the TaLibStandard Repository. We value your contributions, but before submitting an issue, please ensure it is not a duplicate of an existing one.
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.
You can contact us by opening an issue on this repository.
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.
- 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
- Update to .NET 10 SDK: Download from dotnet.microsoft.com
- Update project target framework:
<TargetFramework>net10.0</TargetFramework>
-
Framework Requirement
- Minimum version: .NET 10.0
- Projects targeting .NET 9 or earlier must upgrade
-
Package Dependencies
- If you reference TaLibStandard packages, ensure your project can target .NET 10.0
- Update any conflicting package versions
- 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
// 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);GNU General Public License v3.0 or later.