Commit Graph
515 Commits
Author SHA1 Message Date
Miha Kralj 4dd753f7c0 Remove obsolete SonarQube configuration files and related typedefs from the project, including multiple .ucfgs and .typedefs files, to clean up the repository and improve maintainability. 2025-11-30 17:17:35 -08:00
Miha Kralj a1de42ec80 Refactor SMA and WMA validation tests to include batch, streaming, and span methods
- Updated SMA validation tests to include separate methods for Skender and TA-Lib with batch, streaming, and span calculations.
- Enhanced WMA validation tests similarly, ensuring comprehensive coverage for Skender and TA-Lib.
- Improved verification helper methods for better clarity and maintainability.
2025-11-29 21:42:21 -08:00
Miha Kralj e89af1d357 feat: Add Name property to EMA, SMA, and WMA classes for better identification 2025-11-29 21:25:55 -08:00
Miha Kralj 1401f1792e refactor: Remove unused Program.cs file and clean up Benchmark.cs 2025-11-29 21:08:29 -08:00
Miha Kralj 2d28b8f62a Add Span API for SMA, EMA, and WMA with zero-allocation performance improvements
- Implemented zero-allocation methods for SMA, EMA, and WMA calculations using ReadOnlySpan and Span.
- Added unit tests for Span API to validate input, match TSeries calculations, handle NaN values, and ensure zero allocation.
- Enhanced documentation to include usage examples for the new Span API.
- Introduced performance benchmarks comparing the new Span API against existing TSeries implementations and other libraries.
2025-11-29 20:48:01 -08:00
Miha Kralj 5c1fb18520 Implement Weighted Moving Average (WMA) and Multi-Period WMA (WmaVector) classes with O(1) update complexity
- Added Wma class for calculating the Weighted Moving Average with detailed documentation and optimized performance using dual running sums.
- Introduced WmaVector class to handle multiple WMAs simultaneously, supporting batch calculations and real-time updates.
- Implemented last-value substitution for handling invalid inputs (NaN/Infinity) in both classes.
- Created comprehensive unit tests for Wma and WmaVector to ensure accuracy and reliability of calculations.
- Updated documentation to include usage examples, mathematical foundations, and performance characteristics.
2025-11-29 19:31:50 -08:00
Miha Kralj 1f80cfda74 feat: Implement SIMD-optimized Multi-Period Simple Moving Average (SMA) with RingBuffer
- Added SmaVector class for calculating multiple SMAs in parallel using SIMD.
- Introduced RingBuffer class for efficient circular buffer management with running sum.
- Implemented unit tests for RingBuffer to ensure correctness and performance.
- Enhanced Add method in RingBuffer to support bar correction semantics.
- Added methods for calculating Min and Max using SIMD acceleration.
- Improved performance with pinned memory and direct span access for SIMD compatibility.
2025-11-29 18:28:42 -08:00
Miha Kralj 8f6142cfc0 refactor: clean up Ema and EmaVector tests for consistency, update TValue equality check 2025-11-29 17:30:20 -08:00
Miha Kralj ce77bc9c85 refactor: update NoWarn codes and clean up EmaValidationTests and EmaVectorTests 2025-11-29 17:04:56 -08:00
Miha Kralj 622e4c8ae6 refactor: update Ema and EmaVector tests to use DateTime.UtcNow for consistency 2025-11-29 16:54:15 -08:00
Miha Kralj 2b4e8e3fc3 Add UCFG2 type definitions and lock file for QuanTAlib
- Introduced type definitions for various classes in the QuanTAlib library, including Ema, EmaVector, EmaState, TSeries, CsvFeed, GBM, TBarSeries, TBar, and TValue.
- Added methods and properties for each class to enhance functionality and maintainability.
- Created a lock file to manage dependencies and ensure consistent builds.
2025-11-29 16:43:52 -08:00
Miha Kralj 8d8e60098e Refactor and expand unit tests for TBarSeries, TSeries, and TValue classes
- Enhanced TBarSeriesTests with additional constructors, methods, and assertions for better coverage.
- Improved TSeriesTests to include new constructors, methods, and edge cases.
- Expanded TValueTests to cover constructors, implicit conversions, equality checks, and hash codes.
- Updated project file to target .NET 10.0 and include internal visibility for tests.
- Added Codacy configuration for code quality checks.
2025-11-29 16:08:45 -08:00
Miha Kralj 6cdebb984d feat: implement last-value substitution for NaN/Infinity in Ema and EmaVector, enhance documentation and tests 2025-11-29 13:19:04 -08:00
Miha Kralj acac3e610c updates from mac 2025-11-28 13:35:16 -08:00
Miha Kralj 74b49d2bb4 Add TBar, TBarSeries, TSeries, TValue, and IFeed implementations with comprehensive documentation and examples
- Introduced TBar struct for efficient OHLCV data representation.
- Implemented TBarSeries class for high-performance collection of TBar instances using Structure of Arrays (SoA) layout.
- Added TSeries class for time-series data management with zero-copy access.
- Created TValue struct for time-value pairs with implicit conversions.
- Defined IFeed interface for consistent data feed implementations.
- Developed CsvFeed class for loading historical OHLCV data from CSV files.
- Implemented GBM class for generating synthetic financial data using Geometric Brownian Motion.
- Added Quantower project files for Averages indicator with necessary dependencies and configurations.
- Included extensive usage examples and notebooks for TBar, TBarSeries, TSeries, TValue, and feed implementations.
2025-11-27 19:51:43 -08:00
Miha Kralj 1c8f514756 next iteration 2025-11-26 20:17:01 -08:00
Miha Kralj 33ffd3a37a first iteration 2025-11-25 20:40:46 -08:00
Miha Kralj b5881b9bb4 feat: add CSV feed and GBM examples
- Add CsvFeedExample console app demonstrating CSV data loading and streaming
- Add GbmExample console app for geometric Brownian motion feed
- Add CoreTypes example project
- Include daily_IBM.csv test data file
- Configure project files for .NET 10.0 with quantalib dependency
2025-11-25 20:40:18 -08:00
Miha Kralj 11ff82c7ac Add chatmodes and update test files 2025-10-21 18:50:23 -07:00
miha 0f7cfb4b50 Optimize SMA to O(1) using running sum algorithm
- Changed from O(n) CircularBuffer.Average() to O(1) running sum
- Maintains _sum and _p_sum for state management
- Tracks _lastValue and _p_lastValue for isNew=false updates
- Provides ~15-20x speedup for large periods
- Pattern verified against Pine Script reference implementation
- All tests pass including update test for isNew handling

Also added .github/copilot-instructions.md with comprehensive
AI agent guidance for QuanTAlib development patterns
2025-10-21 18:47:10 -07:00
Miha Kralj 530dfe0aa2 chore: snapshot current state 2025-09-23 22:01:11 -07:00
Miha 140eb59722 .NET 9 update 2024-11-13 21:29:43 -05:00
Miha e3d6bbc54a .NET 9 update 2024-11-13 21:28:41 -05:00
codefactor-io 697f15cc0c [CodeFactor] Apply fixes to commit 4286113 2024-11-11 00:56:50 +00:00
Miha 428611315e prep 2024-11-10 11:11:38 -08:00
Miha Kralj 770b1e0d27 Merge remote-tracking branch 'origin/dev' into dev 2024-11-10 11:09:25 -08:00
Miha Kralj df74feaba1 prep 2024-11-10 11:09:18 -08:00
codefactor-io 7ee4bd4ca9 [CodeFactor] Apply fixes to commit f46a533 2024-11-09 05:20:15 +00:00
Miha f46a5330bf Covar, Kendall, Spearman 2024-11-08 21:20:06 -08:00
codefactor-ioandMiha Kralj fce3a783eb [CodeFactor] Apply fixes to commit 02c9271 2024-11-08 10:27:39 -08:00
Miha Kralj 4f738e6476 Merge remote-tracking branch 'origin/dev' into dev 2024-11-08 10:07:47 -08:00
Miha Kralj 02c92712a0 CTI 2024-11-08 10:07:11 -08:00
codefactor-io 06782a5a4d [CodeFactor] Apply fixes to commit 11fc798 2024-11-08 16:25:08 +00:00
Miha Kralj 11fc798517 CTI - Ehler's Correlation Trend - calc and chart 2024-11-08 08:24:51 -08:00
Miha Kralj 351214ed31 moar Chart indicators 2024-11-07 21:40:02 -08:00
codefactor-io 2a72b2881b [CodeFactor] Apply fixes to commit 43380f1 2024-11-08 03:29:14 +00:00
Miha KraljandGitHub 43380f13ab Add Fisher Transform indicator (#49) 2024-11-07 19:29:06 -08:00
Miha KraljandGitHub 632df594f1 Merge branch 'dev' into add-fisher-transform 2024-11-07 19:03:11 -08:00
Miha Kralj 708c11ef48 Add Fisher Transform indicator
---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/mihakralj/QuanTAlib?shareId=XXXX-XXXX-XXXX-XXXX).
2024-11-07 18:48:52 -08:00
codefactor-io 5476240bba [CodeFactor] Apply fixes to commit 69aef2b 2024-11-07 17:55:39 +00:00
Miha Kralj f14e910b25 Merge remote-tracking branch 'origin/dev' into dev 2024-11-07 09:55:25 -08:00
Miha Kralj 69aef2b127 Dpo chart + refactored tests 2024-11-07 09:55:19 -08:00
codefactor-io dd6c68f08f [CodeFactor] Apply fixes to commit 582a025 2024-11-07 04:56:55 +00:00
Miha Kralj a0ffd952af Merge remote-tracking branch 'origin/dev' into dev 2024-11-06 20:56:42 -08:00
Miha Kralj 582a0256ec Momentum
charts for Quantower
2024-11-06 20:56:32 -08:00
codefactor-io 085c6dc634 [CodeFactor] Apply fixes to commit 0bae9ce 2024-11-05 23:51:44 +00:00
Miha Kralj 0bae9ce15b sonar fixes 2024-11-05 15:51:29 -08:00
Miha KraljandGitHub 2b5c89640d Create EFI - Elder Ray's Force Index - add tests and xml comments (#48) 2024-11-05 07:45:05 -08:00
Miha Kralj e934b424c2 fix exception handling 2024-11-05 07:42:03 -08:00
Miha Kralj c5b583cd0d Create EFI - Elder Ray's Force Index - add tests and xml comments
---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/mihakralj/QuanTAlib?shareId=XXXX-XXXX-XXXX-XXXX).
2024-11-05 06:42:31 -08:00