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.
This commit is contained in:
Miha Kralj
2025-11-27 19:51:43 -08:00
parent 1c8f514756
commit 74b49d2bb4
37 changed files with 1379 additions and 462 deletions
+31 -50
View File
@@ -1,21 +1,16 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "quantalib", "lib\quantalib.csproj", "{F455234B-2A3C-140A-17C3-683D7820A733}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{B36A84DF-456D-A817-6EDD-3EC3E7F6E11F}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{3A8DF596-E814-FECC-DD4B-D8EF8AAC1A0D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoreTypes", "examples\CoreTypes\CoreTypes.csproj", "{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuanTAlib.Tests", "lib\QuanTAlib.Tests.csproj", "{953F0406-DD9B-406E-993D-6D988D5F5423}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "quantower", "quantower", "{6CF592EE-4302-E72F-3CB4-AB1D314DD5A8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuanTAlib.Tests", "tests\QuanTAlib.Tests\QuanTAlib.Tests.csproj", "{43CA2584-D4AD-4082-AFF4-68B3D1239221}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "feeds", "feeds", "{2B942E44-74DA-CD21-D337-7A5E9D347C1B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GbmExample", "examples\feeds\GbmExample.csproj", "{B27145AF-B255-4D6E-827B-3512952FB29C}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Averages", "quantower\Averages.csproj", "{D8F03B19-F99F-475F-8951-85C9D2258B73}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -39,51 +34,37 @@ Global
{F455234B-2A3C-140A-17C3-683D7820A733}.Release|x64.Build.0 = Release|Any CPU
{F455234B-2A3C-140A-17C3-683D7820A733}.Release|x86.ActiveCfg = Release|Any CPU
{F455234B-2A3C-140A-17C3-683D7820A733}.Release|x86.Build.0 = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|x64.ActiveCfg = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|x64.Build.0 = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|x86.ActiveCfg = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Debug|x86.Build.0 = Debug|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|Any CPU.Build.0 = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|x64.ActiveCfg = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|x64.Build.0 = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|x86.ActiveCfg = Release|Any CPU
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782}.Release|x86.Build.0 = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|x64.ActiveCfg = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|x64.Build.0 = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|x86.ActiveCfg = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Debug|x86.Build.0 = Debug|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|Any CPU.Build.0 = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|x64.ActiveCfg = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|x64.Build.0 = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|x86.ActiveCfg = Release|Any CPU
{43CA2584-D4AD-4082-AFF4-68B3D1239221}.Release|x86.Build.0 = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|x64.ActiveCfg = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|x64.Build.0 = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|x86.ActiveCfg = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Debug|x86.Build.0 = Debug|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|Any CPU.Build.0 = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|x64.ActiveCfg = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|x64.Build.0 = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|x86.ActiveCfg = Release|Any CPU
{B27145AF-B255-4D6E-827B-3512952FB29C}.Release|x86.Build.0 = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|Any CPU.Build.0 = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|x64.ActiveCfg = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|x64.Build.0 = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|x86.ActiveCfg = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Debug|x86.Build.0 = Debug|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|Any CPU.ActiveCfg = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|Any CPU.Build.0 = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|x64.ActiveCfg = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|x64.Build.0 = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|x86.ActiveCfg = Release|Any CPU
{953F0406-DD9B-406E-993D-6D988D5F5423}.Release|x86.Build.0 = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|x64.ActiveCfg = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|x64.Build.0 = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|x86.ActiveCfg = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Debug|x86.Build.0 = Debug|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|Any CPU.Build.0 = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|x64.ActiveCfg = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|x64.Build.0 = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|x86.ActiveCfg = Release|Any CPU
{D8F03B19-F99F-475F-8951-85C9D2258B73}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8AB1BE0C-06AE-4EE2-B45A-4F8CE6381782} = {B36A84DF-456D-A817-6EDD-3EC3E7F6E11F}
{43CA2584-D4AD-4082-AFF4-68B3D1239221} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{2B942E44-74DA-CD21-D337-7A5E9D347C1B} = {B36A84DF-456D-A817-6EDD-3EC3E7F6E11F}
{B27145AF-B255-4D6E-827B-3512952FB29C} = {2B942E44-74DA-CD21-D337-7A5E9D347C1B}
{953F0406-DD9B-406E-993D-6D988D5F5423} = {3A8DF596-E814-FECC-DD4B-D8EF8AAC1A0D}
{D8F03B19-F99F-475F-8951-85C9D2258B73} = {6CF592EE-4302-E72F-3CB4-AB1D314DD5A8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E6DB434C-508E-4231-B8A6-5EDD7FF87E22}