Skip to content

Latest commit

 

History

History
161 lines (110 loc) · 9.26 KB

README.md

File metadata and controls

161 lines (110 loc) · 9.26 KB

TaLibStandard

Sparkline

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.


phmatray - TaLibStandard License: GPL-3.0-or-later stars - TaLibStandard forks - TaLibStandard

GitHub tag issues - TaLibStandard GitHub pull requests GitHub contributors GitHub last commit codecov Codacy Badge


📝 Table of Contents

📚 Introduction

TaLibStandard is a modern interpretation of the widely used TA-Lib, reimagined in C# 12. 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 in the documentation for a comprehensive overview of the library's capabilities.

📌 Features

  • 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)

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 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 8.0 (supported versions: 8.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 8.0 and uses the latest C# features. It is written in C# 12.0 and uses the new init properties, record types, switch expressions, using declarations and more.

I invite you to read the C# 12.0 documentation to learn more about these features.

📦 NuGet Packages

Package Name NuGet Version Badge NuGet Downloads Badge Package Explorer
Atypical.TechnicalAnalysis.Candles NuGet NuGet Explore
Atypical.TechnicalAnalysis.Functions NuGet NuGet Explore
Atypical.TechnicalAnalysis.Core NuGet NuGet Explore

This table is automatically updated regularly the latest developments and releases in the Atypical Technical Analysis suite.

🧪 Tests Specifications

  • Target framework : .NET 8
  • Language version : C# 12
  • xUnit and FluentAssertions

💾 Installation

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.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.

❓ Issues and Feature Requests

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.

🤝 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

Contributors

✉️ Contact

You can contact us by opening an issue on this repository.

📝 Release notes

Here is a list of recent notable changes to TaLibStandard.

  • dotnet 8.0 support
  • Generic Math support
  • .NET Exception handling
  • NuGet packages

📜 License

GNU General Public License v3.0 or later.