Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zelosleone/finncorr
A .NET Core financial analysis tool/API for calculating correlations between time series data with interactive visualizations powered by ML.NET and Plotly.js.
https://github.com/zelosleone/finncorr
aspnet-core correlation-analysis csv-parser data-analysis dotnet financial-analysis machine-learning ml-net plotly rest-api statistical-analysis swagger time-series visualization
Last synced: 21 days ago
JSON representation
A .NET Core financial analysis tool/API for calculating correlations between time series data with interactive visualizations powered by ML.NET and Plotly.js.
- Host: GitHub
- URL: https://github.com/zelosleone/finncorr
- Owner: zelosleone
- License: mit
- Created: 2024-12-03T21:46:29.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-03T21:59:14.000Z (about 1 month ago)
- Last Synced: 2024-12-13T20:17:46.841Z (21 days ago)
- Topics: aspnet-core, correlation-analysis, csv-parser, data-analysis, dotnet, financial-analysis, machine-learning, ml-net, plotly, rest-api, statistical-analysis, swagger, time-series, visualization
- Language: C#
- Homepage:
- Size: 19.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FinnCorr - Financial Data Correlation Analysis Engine
## Overview
A REST API and web-based analysis tool for financial time series correlation analysis, featuring automated data processing and visualization capabilities.## Features
### Data Processing
- CSV and JSON file support
- Automated price data detection
- Multiple data format handling
- Time series data support### Analysis Capabilities
- Percentage change correlation calculations
- Pearson correlation coefficient analysis
- Correlation classification:
- Strong positive (> 70%)
- Moderate positive (30-70%)
- Little/no correlation (-30% to 30%)
- Moderate negative (-30% to -70%)
- Strong negative (< -70%)### Visualization
- Interactive Plotly charts
- Dual-axis correlation visualization
- HTML-based output## Technical Stack
- ASP.NET Core REST API
- ML.NET for data processing
- SoftCircuits.CsvParser
- System.Text.Json
- Plotly.js## API Reference
### Upload Endpoint
```http
POST /api/upload
Content-Type: multipart/form-data
```### Response Structure
```typescript
interface AnalysisResult {
insights: string;
graphUrl: string;
totalCorrelations: number;
strongPositive: number;
moderatePositive: number;
moderateNegative: number;
strongNegative: number;
noCorrelation: number;
positivePercentage: number;
negativePercentage: number;
}
```## Implementation Details
### Core Components
- `DataAnalysisService`: Analysis logic
- `UploadController`: API handling
- `FileUploadDto`: Upload model
- `AnalysisResult`: Output model
- `AnalysisConfiguration`: Settings model### Mathematical Foundation
#### Percentage Change
```
Δ% = ((pₙ - pₙ₋₁) / pₙ₋₁) × 100
```#### Pearson Correlation
```
r = Σ((x - μₓ)(y - μᵧ)) / √(Σ(x - μₓ)² × Σ(y - μᵧ)²)
```#### Quality Scoring
```
Q = (C × 10) + V + R + S
```## Setup
1. Install .NET runtime
2. Clone repository
3. Run `dotnet restore`
4. Execute `dotnet run`
5. Access Swagger UI at root URL## Documentation
Full API documentation available via Swagger UI