Back to Main Site

QuantCoderFS v2.0.2 Technical Documentation

Complete reference for quantitative research and algorithm development platform

Version Information

Version: 2.0.2 | Status: Active Development | Updated: October 18, 2025

What is QuantCoderFS?

QuantCoderFS is a unified quantitative research platform that combines two distinct modules:

1. Market Intelligence Module

  • Purpose: Multi-agent equity research inspired by MarketSense AI (Fatouros et al., 2024)
  • Input: Stock tickers (e.g., AAPL.US, TSLA.US)
  • Output: BUY/HOLD/SELL trading signals with conviction scores (1-10)
  • Technology: Custom multi-agent system with 4 specialized agents + 1 orchestrator

2. Strategy Generator Module

  • Purpose: Automated trading algorithm generation from academic research papers
  • Input: PDF research papers
  • Output: Production-ready QuantConnect algorithm code (Python)
  • Technology: CrewAI multi-agent workflow with PDF extraction and code generation

Core Technology Stack

Layer Technology Version
Backend Framework FastAPI 0.115.12
Frontend Framework Next.js (React 19) 15.3.2
Database SQLite / PostgreSQL SQLAlchemy 2.0.41
AI Framework (Strategies) CrewAI Latest
AI Framework (Signals) Custom Multi-Agent Inspired by MarketSense AI
Code Editor Monaco Editor 4.7.0
Charts Lightweight Charts 4.2.3

System Architecture

High-Level Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Frontend (Next.js 15)                     │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │   Stocks     │  │  Strategies  │  │   Settings   │     │
│  │ (Research)   │  │ (Code Gen)   │  │              │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└──────────────────────────┬──────────────────────────────────┘
                           │ HTTP/REST API
┌──────────────────────────┴──────────────────────────────────┐
│                Backend (FastAPI + Python)                    │
│  ┌─────────────────────┐    ┌─────────────────────┐        │
│  │ Market Intelligence │    │ Strategy Generator  │        │
│  │ • Stock Handler     │    │ • PDF Extraction    │        │
│  │ • Signal Agents     │    │ • Code Generation   │        │
│  │ • Data Aggregation  │    │ • QC Integration    │        │
│  └─────────────────────┘    └─────────────────────┘        │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐  │
│  │              SQLite/PostgreSQL Database              │  │
│  └──────────────────────────────────────────────────────┘  │
└──────────────────────────┬──────────────────────────────────┘
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
   ┌────▼─────┐    ┌──────▼──────┐   ┌──────▼──────────┐
   │ EODHD    │    │  OpenAI/    │   │  QuantConnect  │
   │   API    │    │  Anthropic  │   │   REST API     │
   └──────────┘    └─────────────┘   └────────────────┘

Module Structure

Backend Directory Structure:

backend/
├── market_intelligence/          # Market Intelligence Module
│   ├── agents/                   # Multi-agent system (5 agents)
│   ├── api/routers/              # REST API endpoints
│   ├── core/                     # Business logic
│   └── db/                       # Database models & migrations
├── strategy_generator/           # Strategy Generator Module
│   ├── agents/                   # CrewAI agents
│   ├── routers/                  # REST API endpoints
│   └── tools/                    # CrewAI tools
├── shared/                       # Shared utilities
└── main.py                       # FastAPI app entry point

Dependencies & Third-Party Services

Backend Dependencies

Package Version Purpose
fastapi 0.115.12 REST API framework
uvicorn 0.34.2 ASGI server
sqlalchemy 2.0.41 ORM for database
pydantic 2.11.5 Data validation
crewai Latest Multi-agent workflows (strategies)
openai Latest OpenAI API client
anthropic Latest Anthropic Claude API client

Required Third-Party Services

Required API Keys

The following services require API keys configured in Settings:

1. EODHD API (Market Data Provider)

  • Purpose: Stock EOD prices, fundamentals, financial news
  • Endpoint: https://eodhd.com/api/
  • Authentication: API key
  • Free Tier: 20 API calls/day, 1 year historical data, 500 welcome bonus calls
  • Paid Plans: From €19.99/month (100,000 calls/day, 30+ years historical data)
  • Usage: Market Intelligence module

2. OpenAI API (Primary LLM Provider)

  • Purpose: AI-powered signal generation and code generation
  • Models Used: GPT-4, GPT-3.5-turbo
  • Authentication: API key (sk-...)
  • Cost: ~$0.03 per 1K tokens (GPT-4)
  • Usage: Both modules (signals + strategy generation)

Optional Third-Party Services

3. Anthropic Claude API (Alternative LLM)

  • Purpose: Alternative LLM provider
  • Models: Claude 3 Opus, Claude 3 Sonnet
  • Usage: Signal generation (user selectable)
  • Cost: ~$0.015 per 1K tokens

4. Ollama (Local LLM) - PLANNED

  • Status: Not yet implemented
  • Purpose: Local LLM inference (no API costs)
  • Models: llama2, mixtral, etc.
  • Authentication: None (local)
  • Cost: Free (requires local GPU)
  • Planned Usage: Market Intelligence signals only (user selectable)

5. Tavily API (Web Search)

  • Purpose: Macro environment research
  • Usage: Macro agent in Market Intelligence
  • Cost: Free tier available

6. QuantConnect API (Trading Platform)

  • Purpose: Deploy algorithms for backtesting/live trading
  • Endpoint: https://www.quantconnect.com/api/v2/
  • Authentication: User ID + API Token
  • Cost: Free tier available, paid for live trading

Price Normalization

Understanding adjusted vs. raw prices for accurate analysis

Critical Feature

Price normalization is the first and most critical setting to understand. Incorrect settings will produce misleading charts, incorrect performance metrics, and invalid portfolio analysis.

The Problem: Corporate Events Create Data Discontinuities

Stock splits and dividends create discontinuities in historical price data that make charts and calculations misleading without proper adjustment.

Example: NVDA 10-for-1 Stock Split (June 10, 2024)

Without Normalization (Raw Prices):

June 7, 2024:  Close = $1,208.88
June 10, 2024: Close = $121.79  ← Appears as -90% crash!

With Normalization (Adjusted Prices):

June 7, 2024:  Adjusted Close = $120.84
June 10, 2024: Adjusted Close = $121.74  ← Smooth transition (+0.7%)

The split was not a loss of value - shareholders received 10 shares for every 1 share they owned. But raw price data shows a misleading 90% drop.

How Price Normalization Works

QuantCoderFS uses EODHD API, which provides two price fields:

  • close - Raw closing price as actually traded
  • adjusted_close - Price adjusted backward for all corporate events

EODHD adjusts historical prices backward from the present:

Before Split (historical):
  Raw price: $1,208.88
  Adjusted:  $120.84  (divided by split ratio 10:1)

After Split (current):
  Raw price: $121.79
  Adjusted:  $121.74  (minimal difference)

This creates a continuous, meaningful price series for analysis.

Setting the Normalization Mode

Navigate to ParametersPrice Normalization section.

Parameters Page - Price Normalization

Parameters page showing Price Normalization settings with detailed explanations for Adjusted vs Raw prices

Options:

Adjusted Prices (RECOMMENDED)
  • Uses adjusted_close field from EODHD
  • Accounts for stock splits, reverse splits, and dividends
  • Creates smooth, continuous price curves
  • Enables accurate performance comparisons
  • Required for meaningful portfolio analysis
Raw Close Prices
  • Uses raw close field from EODHD
  • Shows actual traded prices
  • Will show gaps/jumps at corporate events
  • Use only if you specifically need unadjusted data
  • NOT recommended for performance analysis

Impact Across the Platform

The normalization setting is global and affects every feature that uses price data:

  • Portfolio Analysis: Equal-weight, MVO, Min Variance, Black-Litterman optimization, all equity curves
  • Risk Analysis: Monte Carlo simulations (all 1000+ paths), VaR/CVaR calculations, volatility measurements
  • Pair Trading: Price series for both stocks, spread calculations, z-score analysis, backtest results
  • Peer Comparison: Normalized performance charts, relative performance metrics, correlation analysis

When to Use Each Mode

Use Case Adjusted Prices Raw Prices
Portfolio analysis ✅ Yes ❌ No
Risk metrics (VaR, volatility) ✅ Yes ❌ No
Peer comparison ✅ Yes ❌ No
Shows corporate event gaps ❌ No ✅ Yes
Matches broker statements ❌ No ✅ Yes

Recommendation: Use Adjusted Prices (99% of cases). This is the industry standard for quantitative analysis.

Read the complete Price Normalization Guide

Corporate Events Display

Visual markers for stock splits and dividends on charts

Overview

When using adjusted prices, QuantCoderFS automatically displays corporate events (stock splits, reverse splits) as visual markers on all charts.

Automatic Detection

Corporate events are fetched automatically from EODHD API and displayed only when using adjusted prices. Events are hidden when using raw prices to avoid confusion.

Visual Representation

  • Vertical dashed lines in orange (#d29922) mark the exact date of corporate events
  • Labels show format: TICKER: SPLIT_RATIO (e.g., "NVDA: 10/1")
  • Labels positioned at the top of the line for clarity
  • Works on all chart types: Portfolio Analysis (Chart.js) and Peer Comparison (Recharts)
NVDA Stock Chart with Adjusted Prices

NVDA stock chart using adjusted prices showing continuous normalized curve without gaps despite the 10-for-1 split on June 10, 2024

Portfolio Analysis Chart

Portfolio equity curve visualization showing optimized portfolio performance over time

Peer Comparison Chart

Peer comparison showing normalized performance across sector competitors

Note: Corporate event markers (vertical orange dashed lines) appear automatically on charts when analyzing stocks that experienced splits or dividends during the selected time period. The markers are only visible when using adjusted prices mode.

Supported Events

Event Type Display Format Example
Stock Split TICKER: X/1 NVDA: 10/1
Reverse Split TICKER: 1/X TSLA: 1/3
Dividends Not currently displayed -

Where Events Appear

  • Portfolio Analysis: Equal-weight, MVO, Min Variance, Black-Litterman equity curves
  • Risk Analysis: Monte Carlo simulation charts (all scenarios)
  • Peer Comparison: Normalized performance charts with sector peers

Recent Notable Splits

Events tracked by QuantCoderFS (last 5 years):

  • NVDA: 2024-06-10 (10:1 split)
  • TSLA: 2022-08-25 (3:1 split)
  • GOOGL: 2022-07-18 (20:1 split)
  • AAPL: 2020-08-31 (4:1 split)
  • AMZN: 2022-06-06 (20:1 split)

Technical Implementation

Data Source: EODHD Splits API

GET https://eodhd.com/api/splits/{ticker}
Parameters:
  - api_token: Your EODHD API key
  - from: Start date (YYYY-MM-DD)
  - to: End date (YYYY-MM-DD)
  - fmt: json

Response: CSV format
Date,"Stock Splits"
2024-06-10,10.000000/1.000000

Backend Module: market_intelligence/core/corporate_events.py

Frontend Integration:

  • Chart.js: Uses chartjs-plugin-annotation for vertical line annotations
  • Recharts: Uses <ReferenceLine> component with custom labels
Visibility Behavior

Corporate event markers only appear when using adjusted prices. If you switch to raw prices, the markers disappear to prevent confusion with the actual price gaps.

API Overview

Core Functionality

QuantCoderFS provides a RESTful API for two main workflows:

Data Source: EODHD APIs

All market data is sourced from EODHD Financial APIs. This includes end-of-day stock prices, fundamental data (financial statements, ratios), and company news. An active EODHD subscription is required.

From this data, QuantCoderFS generates AI-powered trading signals using a multi-agent system that analyzes fundamentals, news sentiment, price dynamics, and macroeconomic conditions.

Module 1: Market Intelligence API

Automated equity research and signal generation using EODHD market data.

API Endpoints Overview

Category Endpoint Method Description
Stocks /api/stocks/create POST Create stock snapshot
/api/stocks/tickers GET List all tickers
/api/stocks/{ticker}/snapshots GET List snapshots
/api/stocks/{ticker}/snapshots/{id} GET Load snapshot
/api/stocks/refresh POST Refresh data
/api/stocks/{ticker}/files/* GET Download files
Signals /api/signals/generate/{project_id} POST Generate signal
/api/signals/snapshot/{ticker}/{id} GET Get snapshot signal
/api/signals/history/{ticker} GET Signal history
/api/signals/latest GET Latest signals
Returns /api/stocks/{ticker}/snapshots/{id}/returns GET Calculate return statistics
Benchmark /api/stocks/{ticker}/snapshots/{id}/benchmark GET Compare vs market benchmark
Research /api/stocks/{ticker}/snapshots/{id}/research/generate POST Generate report
/api/stocks/{ticker}/snapshots/{id}/research/files GET List reports
/api/stocks/{ticker}/snapshots/{id}/research/content/{file} GET Get report content
Settings /api/settings GET/POST Manage API keys
/api/settings/quantconnect GET/POST/DELETE QC credentials
/api/settings/quantconnect/test POST Test connection

Module 2: Strategy Generator API

Automated QuantConnect algorithm generation from academic papers.

Endpoint Method Purpose
/api/papers/upload POST Upload research paper (PDF)
/api/papers/list GET List uploaded papers
/api/strategy/generate POST Generate QuantConnect algorithm from paper
/api/backtest/trigger-backtest POST Deploy algorithm to QuantConnect

Snapshot Architecture

QuantCoderFS v2.0 introduced a snapshot-based architecture for stock data management:

Key Concepts

  • Snapshot ID: Timestamp in format YYYYMMDD_HHMMSS (e.g., 20251016_143022)
  • Multiple Snapshots: Each ticker can have multiple snapshots taken at different times
  • Immutable Data: Once created, snapshot data doesn't change (refresh creates new snapshot)
  • File Storage: All data stored in /stocks/{ticker}/{snapshot_id}/ directory
  • Independent Analysis: Each snapshot has its own signals and research reports

Benefits

  • Track how market conditions evolve over time
  • Compare signals generated on different dates
  • Reproducible analysis - same snapshot always yields same signal
  • Easy cleanup - delete old snapshots without affecting recent data

See the Stocks API documentation for detailed snapshot management endpoints.

Detailed API Documentation

Market Intelligence Module

Purpose

Multi-agent equity research system inspired by MarketSense AI paper (Fatouros et al., 2024).

Screenshots

Stock Analysis with Benchmarks

QuantCoderFS Stock Analysis

Stock data view with price chart, fundamentals, and benchmark comparison (SPY, QQQ, DIA, IWM). This is the first view you see when analyzing a stock - FinViz-like visualization with comprehensive market data.

Return Distribution Analysis

QuantCoderFS Return Distribution Analysis

Statistical analysis of historical return distributions with interactive histogram visualization (daily/weekly/monthly returns, Sharpe ratio, win rate).

Peer Comparison

QuantCoderFS Peer Comparison

Peer comparison: normalized performance across sector competitors with correlation and beta metrics.

Portfolio Optimization

QuantCoderFS Portfolio Analysis

Portfolio optimization: equal-weight vs. max Sharpe with equity curves and composition breakdown.

Onboarding Wizard

QuantCoderFS Onboarding

Onboarding wizard: 6-step setup for license, API keys, and QuantConnect integration.

API Keys Setup

QuantCoderFS API Keys

API keys setup: EODHD, OpenAI (required), Tavily (optional for deep research).

QuantConnect Integration

QuantCoderFS QuantConnect Setup

QuantConnect integration: User ID, API Token, Organization ID for strategy deployment.

Credentials Management

QuantCoderFS Credentials

Credentials page: License activation, API credentials, and AI model configuration.

Returns Tab - Statistical Return Analysis

Comprehensive statistical analysis of historical return distributions with interactive histogram visualization.

Return Distribution Methodology

Return Calculation:

Return(t) = [(Price(t) - Price(t-1)) / Price(t-1)] × 100

Supported Periods: Daily, Weekly (Friday close), Monthly (month-end)

Lookback Options: 3M, 6M, 1Y, 2Y, 3Y, 5Y

Key Statistics Displayed:

  • Mean Return: Average return over the period (positive = upward trend)
  • Volatility (σ): Standard deviation of returns (higher = more risk)
  • Sharpe Ratio (Annualized): Risk-adjusted return metric
    Formula: Sharpe = (Mean / StdDev) × √periods_per_year
    Interpretation: >1 = good, 0-1 = modest, <0 = poor risk-adjusted returns
  • Skewness: Distribution asymmetry
    Positive = right tail longer (large gains more likely)
    Negative = left tail longer (large losses more likely)
  • Kurtosis: Tail heaviness (values >3 = heavy tails, higher extreme return probability)
  • Win Rate: Percentage of periods with positive returns
  • Min/Max Returns: Extreme value ranges

Histogram Visualization:

30-bin frequency distribution revealing:

  • Return clustering patterns (most common return ranges)
  • Distribution shape (symmetric, skewed, or multi-modal)
  • Tail behavior (frequency of extreme gains/losses)
  • Deviation from normal distribution assumptions

Example Interpretation:

Daily Analysis: Mean 0.5%, σ 2.1%, Sharpe 1.5, Skewness -0.3, Kurtosis 4.2, Win Rate 55%

  • ✓ Positive average daily return (upward trend)
  • ✓ Good risk-adjusted returns (Sharpe >1)
  • ⚠ Left-skewed (downside tail longer — larger losses more likely)
  • ⚠ Heavy tails (elevated risk of extreme moves)
  • ✓ 55% of days positive (slight edge)

Benchmark Tab - Market Comparison

QuantCoderFS Market Intelligence - Benchmark Comparison

Compare stock performance against market benchmarks (SPY, QQQ, DIA, IWM) with Alpha, Beta, correlation metrics, and Up/Down capture ratios.

Benchmark Comparison Methodology

Key Metrics Calculated:

  • Alpha (Annualized): Excess return compared to benchmark
    Alpha = Mean(Stock Return - Benchmark Return) × 252
    Positive alpha indicates outperformance; negative indicates underperformance.
  • Beta: Systematic risk relative to benchmark
    Beta = Cov(Stock, Benchmark) / Var(Benchmark)
    Beta > 1: More volatile; Beta < 1: Less volatile; Beta ≈ 1: Similar volatility
  • Correlation: Degree of linear relationship with benchmark
    Correlation = Pearson(Stock Returns, Benchmark Returns)
    Range: -1 to +1. High correlation (>0.8): Moves with market; Low correlation (<0.5): Independent behavior
  • Tracking Error (Annualized): Deviation from benchmark
    Tracking Error = StdDev(Excess Returns) × √252
    Higher tracking error indicates more independent performance from benchmark.
  • Information Ratio: Risk-adjusted alpha
    IR = Alpha / Tracking Error
    IR > 0.5: Good risk-adjusted outperformance; IR < 0: Underperformance
  • Up Capture Ratio: Performance on benchmark's up days
    Up Capture = [Mean(Stock Returns | Benchmark > 0) / Mean(Benchmark Returns | Benchmark > 0)] × 100
    Up Capture > 100%: Outperforms on up days; <100%: Underperforms on up days
  • Down Capture Ratio: Performance on benchmark's down days
    Down Capture = [Mean(Stock Returns | Benchmark < 0) / Mean(Benchmark Returns | Benchmark < 0)] × 100
    Down Capture < 100%: Protects on down days (good); >100%: Amplifies losses (bad)
  • Sharpe Ratios: Risk-adjusted returns for both stock and benchmark
    Sharpe = (Mean Return / StdDev) × √252
    Compare Sharpe ratios to see which asset has better risk-adjusted returns.

Normalized Performance Chart:

Both stock and benchmark prices are normalized to start at 100 to visualize relative performance over time. The stock line is solid, the benchmark line is dashed.

Example Interpretation:

Stock: AAPL | Benchmark: SPY | Period: 12 months

  • ✓ Alpha = +5.2% (outperformed S&P 500 by 5.2% annualized)
  • ✓ Beta = 1.15 (15% more volatile than market)
  • ✓ Correlation = 0.82 (high correlation - moves with market)
  • ✓ Information Ratio = 0.68 (good risk-adjusted outperformance)
  • ✓ Up Capture = 112% (captures 12% more gains on up days)
  • ✓ Down Capture = 95% (protects 5% better on down days)
  • ✓ Tracking Error = 7.6% (moderate deviation from benchmark)
  • ✓ Sharpe (AAPL) = 1.2 vs Sharpe (SPY) = 0.9 (better risk-adjusted returns)

Peers Tab - Sector Comparison

QuantCoderFS Peer Comparison - Select and Compare Stocks

Select up to 5 peer companies and compare normalized performance with metrics including return, volatility, beta, and correlation. Chart shows relative performance over selectable time periods (1M, 3M, 6M, 1Y, 3Y, 5Y).

Agent Architecture

The system uses 5 specialized agents working in orchestration:

1. Fundamentals Summarizer Agent (30% weight)

  • Input: Quarterly financial statements, company highlights
  • Processing: Financial health score, revenue growth, profit margins
  • Output: Summary (100-200 words) + Score (0-100)

2. Progressive News Summarizer Agent (25% weight)

  • Input: 60-day rolling news articles
  • Processing: Sentiment aggregation, narrative themes
  • Output: Summary + Sentiment score (0-100)

3. Stock-Price Dynamics Summarizer Agent (25% weight)

  • Input: OHLCV price data (1 year), S&P 500 benchmark
  • Processing: Technical analysis (MA, RSI, MACD), volatility
  • Output: Summary + Technical score (0-100)

4. Macroeconomic Environment Summarizer Agent (20% weight)

  • Input: Sector information, web search results (via Tavily)
  • Processing: Sector analysis, economic cycle assessment
  • Output: Summary + Macro score (0-100)

5. Signal Generation Agent (Master Orchestrator)

  • Input: Outputs from all 4 summarizer agents
  • Processing: Chain-of-Thought reasoning, weighted consensus
  • Output: Final BUY/HOLD/SELL signal with conviction (1-10) and confidence (0.0-1.0)

Signal Calculation Formula

weighted_score = (
    fundamentals_score * 0.30 +
    news_score * 0.25 +
    price_dynamics_score * 0.25 +
    macro_score * 0.20
)

if weighted_score >= 70:
    signal = "BUY"
elif weighted_score <= 40:
    signal = "SELL"
else:
    signal = "HOLD"
MarketSense AI Research Results

The original MarketSense AI paper (Fatouros et al., 2024) reported the following results from academic testing on S&P 100 stocks over 15 months:

  • Excess alpha: 10-30%
  • Cumulative return: Up to 72%
  • Multi-agent consensus outperformed individual agents significantly

Note: These are research results from the original paper. QuantCoderFS is inspired by this framework but is not identical to the research implementation.

Data Flow

  1. User creates stock project (POST /api/stocks/create)
  2. System fetches data from EODHD API (EOD prices, fundamentals, news)
  3. Data stored in file system: user_workdir/stocks/{ticker}_{timestamp}/
  4. User generates signal (POST /api/signals/generate/{project_id})
  5. Signal Orchestrator runs agents in sequence (60-90 seconds)
  6. Results saved to database + file system
  7. Frontend displays signal with agent breakdowns

Agent Console

Purpose

Real-time WebSocket-based logging console for transparent AI agent execution monitoring.

Screenshot

QuantCoderFS Agent Console

Agent Console: real-time WebSocket logging showing AI agent execution with color-coded status indicators.

Features

  • Real-Time Logging: WebSocket connection displays agent activities as they execute
  • Color-Coded Status: Visual indicators for info (blue), progress (yellow), success (green), error (red)
  • Agent Filtering: Filter logs by agent type (All, Fundamentals, News, Price, Macro)
  • Export Capability: Download complete log history as text file for auditability
  • Auto-Scroll: Automatically scrolls to latest logs with minimize/expand controls

WebSocket Endpoint

WebSocket
ws://localhost:8000/ws/agent-logs

Message Format

JSON
{
  "agent": "Fundamentals Agent",
  "action": "Starting analysis",
  "details": "Ticker: AAPL",
  "status": "progress",
  "timestamp": "2025-10-17T12:00:00.000Z"
}

Agent Execution Flow Example

  1. MarketSense Orchestrator → Starting multi-agent analysis (info)
  2. Fundamentals Agent → Fetching fundamentals (progress)
  3. Fundamentals Agent → Analysis complete - Score: 75/100 (success)
  4. News Agent → Analyzing sentiment (progress)
  5. News Agent → Analysis complete - Score: 80/100 (success)
  6. Price Dynamics Agent → Analyzing momentum (progress)
  7. Price Dynamics Agent → Analysis complete - Score: 70/100 (success)
  8. Macro Agent → Analyzing market environment (progress)
  9. Macro Agent → Analysis complete - Score: 65/100 (success)
  10. Signal Agent → Integrating agent outputs (progress)
  11. Signal Agent → Signal generated - BUY (Conviction: 80, Confidence: 84) (success)

Portfolio Optimization

Purpose

Multi-stock portfolio construction with Modern Portfolio Theory optimization algorithms and comprehensive risk analysis.

Screenshot

QuantCoderFS Monte Carlo & VaR

Risk analysis: Monte Carlo simulation (1,000 scenarios) and Value at Risk (VaR) metrics for portfolio management.

Optimization Algorithms

  • Mean-Variance Optimization (MVO): Maximizes Sharpe ratio for optimal risk-adjusted returns
  • Black-Litterman Model: Bayesian approach incorporating investor views with market equilibrium
  • Minimum Variance Portfolio: Minimizes portfolio volatility for conservative risk management

Risk Analysis Tools

  • Monte Carlo Simulation: 1,000-10,000 scenarios over configurable time horizon (252 trading days default)
  • Value at Risk (VaR): Historical and Parametric VaR at 95% confidence level
  • Conditional VaR (CVaR): Expected loss beyond VaR threshold
  • Stress Testing: Portfolio performance under extreme market conditions

Monte Carlo Output Metrics

  • Mean Final Value
  • Median (50th percentile)
  • Standard Deviation
  • Min/Max scenarios
  • 5th and 95th Percentile ranges

Workflow

  1. Create empty portfolio with drag-and-drop interface
  2. Add stocks from Stocks section
  3. Select optimization algorithm (MVO, Black-Litterman, Min Variance)
  4. System calculates optimal weights based on historical returns and covariance
  5. View allocation pie chart, expected return, volatility, Sharpe ratio
  6. Run Monte Carlo simulation for risk analysis
  7. Calculate VaR and CVaR for downside risk assessment

Pair Trading

Purpose

Statistical arbitrage through cointegration analysis of stock pairs for mean-reversion trading strategies.

Screenshot

QuantCoderFS Pair Trading

Pair trading analysis: cointegration test, z-score time series, and dual-axis price comparison for EGAN.US / LAES.US.

Statistical Methods

  • Engle-Granger Cointegration Test: Tests for long-term equilibrium relationship (p-value < 0.05 indicates cointegration)
  • Augmented Dickey-Fuller (ADF): Stationarity test for spread time series
  • Ordinary Least Squares (OLS): Hedge ratio estimation for optimal position sizing
  • Half-Life Calculation: Mean-reversion speed using Ornstein-Uhlenbeck process

Key Metrics

Metric Description Interpretation
p-value Cointegration test significance < 0.05 = Cointegrated (statistically significant)
Hedge Ratio Optimal ratio for position sizing e.g., 1.69 means 1.69 shares of Stock 2 per 1 share of Stock 1
Half-Life Mean-reversion speed (days) Lower = faster mean-reversion (ideal: 5-30 days)
Z-Score Current spread deviation < -2.0 = LONG, > 2.0 = SHORT, -2.0 to 2.0 = NEUTRAL
Win Rate Historical success rate Percentage of profitable trades (> 60% preferred)

Trading Signals

  • LONG: Z-score < -2.0 (spread undervalued → buy Stock 1, sell Stock 2)
  • SHORT: Z-score > 2.0 (spread overvalued → sell Stock 1, buy Stock 2)
  • NEUTRAL: -2.0 ≤ Z-score ≤ 2.0 (no position or close existing)

Workflow

  1. Create empty pair with auto-generated name
  2. Drag and drop Stock 1 from Stocks section to Ticker 1 slot
  3. Drag and drop Stock 2 to Ticker 2 slot
  4. System automatically fetches 2 years of historical data
  5. Runs Engle-Granger cointegration test (10-20 seconds)
  6. Calculates hedge ratio, half-life, current z-score
  7. Generates trading signal based on z-score thresholds
  8. Displays z-score time series chart and dual-axis price comparison
  9. Shows historical performance metrics (win rate, avg profit, avg duration)

Benchmarks

Purpose

Market index tracking and relative performance comparison for portfolio and stock analysis.

SPY Benchmark Chart with Moving Averages

Interactive benchmark charts with technical indicators (SMA 50, SMA 200) for market index analysis.

Supported Indices

Ticker Name Description
SPY S&P 500 ETF Large-cap US equities (500 stocks)
QQQ Nasdaq 100 ETF Technology-heavy large-cap (100 stocks)
DIA Dow Jones Industrial Average ETF Blue-chip US equities (30 stocks)
IWM Russell 2000 ETF Small-cap US equities (2000 stocks)

Comparison Metrics

  • Alpha (Annualized): Excess return compared to benchmark
  • Beta: Systematic risk relative to benchmark (1.0 = same volatility)
  • Correlation: Degree of linear relationship (-1 to 1)
  • Tracking Error: Standard deviation of return differences (annualized)
  • Up Capture Ratio: Performance on benchmark's up days (> 100% = outperformance)
  • Down Capture Ratio: Performance on benchmark's down days (< 100% = less downside)
  • Sharpe Ratios: Risk-adjusted returns for both stock and benchmark

Data Management

  • Auto-Sync: Daily EOD data updates via cron job or manual trigger
  • Data Caching: Efficient storage with last-update tracking
  • Historical Range: 2+ years of daily OHLCV data

Strategy Generator Module

Purpose

Automated QuantConnect algorithm generation from academic research papers using CrewAI.

Screenshot

Strategy Generator - Paper to Code

QuantCoderFS Strategy Generator - Algorithm Code Generation

Upload academic research papers (left panel) and generate complete QuantConnect algorithm code (right panel) using CrewAI multi-agent workflow. Monaco editor with Python syntax highlighting and line numbers.

CrewAI Workflow

Crew 1: Paper Extraction

  • Agent: Paper Analyzer Agent
  • Role: Extract strategy from research paper
  • Tool: PDFAnalyserTool (PDF parsing)
  • Output: Structured strategy summary (JSON)

Crew 2: Code Generation

  • Agent 1: Strategy Summarizer (condense paper into trading rules)
  • Agent 2: Code Generator (write QuantConnect algorithm)
  • Agent 3: Code Validator (review and fix code issues)
  • Output: Complete QuantConnect .py algorithm file

QuantConnect Integration

Endpoint: POST /api/backtest/trigger-backtest

Workflow:

  1. Get QC credentials from database
  2. Create QC project via REST API
  3. Upload algorithm code to project
  4. Compile code
  5. Wait for compilation
  6. Create backtest
  7. Return backtest ID and project URL

Request Example:

{
  "code": "# QuantConnect algorithm code",
  "project_name": "My Momentum Strategy"
}

Response Example:

{
  "status": "success",
  "project_id": 12345678,
  "backtest_id": "abc123",
  "project_url": "https://www.quantconnect.com/project/12345678"
}

Strategies API Reference

Upload PDF Paper

POST /api/papers/upload
Content-Type: multipart/form-data

file: (binary PDF data)

Response 200:
{
  "filename": "momentum_strategy.pdf",
  "size": 1024000,
  "path": "/path/to/papers/momentum_strategy.pdf"
}

List Papers

GET /api/papers/list

Response 200:
[
  {
    "filename": "momentum_strategy.pdf",
    "size_kb": 1000,
    "uploaded": "2025-10-14T10:00:00"
  }
]

Generate Code from Paper

POST /api/papers/generate-code/momentum_strategy.pdf

Response 200:
{
  "filename": "momentum_strategy.py",
  "code": "# region imports\nfrom AlgorithmImports import *\n...",
  "summary": "Strategy extracted from paper"
}

List Generated Code

GET /api/papers/list?folder=codes

Response 200:
[
  {
    "filename": "momentum_strategy.py",
    "size_kb": 15,
    "generated": "2025-10-14T10:30:00"
  }
]

Backtest API Reference

Push to QuantConnect

POST /api/backtest/trigger-backtest
Content-Type: application/json

{
  "code": "# Algorithm code here",
  "project_name": "My Momentum Strategy"
}

Response 200:
{
  "status": "success",
  "project_id": 12345678,
  "backtest_id": "abc123def456",
  "project_url": "https://www.quantconnect.com/project/12345678"
}
QuantConnect Credentials Required

You must configure QuantConnect User ID and API Token in Settings before using this endpoint.

Portfolios API Reference

Create Portfolio

POST /api/portfolios
Content-Type: application/json

{
  "name": "Tech Portfolio"
}

Response 200:
{
  "id": 1,
  "name": "Tech Portfolio",
  "created_at": "2025-10-17T12:00:00Z"
}

List Portfolios

GET /api/portfolios

Response 200:
{
  "portfolios": [
    {
      "id": 1,
      "name": "Tech Portfolio",
      "stock_count": 5,
      "created_at": "2025-10-17T12:00:00Z"
    }
  ]
}

Get Portfolio

GET /api/portfolios/{portfolio_id}

Response 200:
{
  "id": 1,
  "name": "Tech Portfolio",
  "stocks": [
    {"ticker": "AAPL", "weight": 0.25},
    {"ticker": "MSFT", "weight": 0.25},
    {"ticker": "GOOGL", "weight": 0.25},
    {"ticker": "AMZN", "weight": 0.25}
  ],
  "created_at": "2025-10-17T12:00:00Z",
  "updated_at": "2025-10-17T12:30:00Z"
}

Update Portfolio (Rename)

PATCH /api/portfolios/{portfolio_id}
Content-Type: application/json

{
  "name": "New Portfolio Name"
}

Response 200:
{
  "id": 1,
  "name": "New Portfolio Name",
  "updated_at": "2025-10-17T12:30:00Z"
}

Add Stock to Portfolio

POST /api/portfolios/{portfolio_id}/stocks
Content-Type: application/json

{
  "ticker": "GOOGL"
}

Response 200:
{
  "message": "Stock added successfully",
  "portfolio_id": 1,
  "ticker": "GOOGL"
}

Remove Stock from Portfolio

DELETE /api/portfolios/{portfolio_id}/stocks/{ticker}

Response 200:
{
  "message": "Stock removed successfully"
}

Optimize Portfolio

POST /api/portfolios/{portfolio_id}/optimize
Content-Type: application/json

{
  "algorithm": "mvo",
  "risk_free_rate": 0.02,
  "target_return": 0.15
}

Response 200:
{
  "algorithm": "mvo",
  "optimal_weights": {
    "AAPL": 0.30,
    "MSFT": 0.25,
    "GOOGL": 0.25,
    "AMZN": 0.20
  },
  "expected_return": 0.15,
  "volatility": 0.18,
  "sharpe_ratio": 0.72
}

Monte Carlo Simulation

POST /api/portfolios/{portfolio_id}/monte-carlo
Content-Type: application/json

{
  "num_simulations": 1000,
  "time_horizon_days": 252
}

Response 200:
{
  "num_simulations": 1000,
  "mean_return": 0.12,
  "median_return": 0.11,
  "std_dev": 0.18,
  "percentiles": {
    "5": -0.25,
    "25": 0.05,
    "50": 0.11,
    "75": 0.20,
    "95": 0.45
  },
  "probability_positive": 0.68
}

Calculate VaR

POST /api/portfolios/{portfolio_id}/var
Content-Type: application/json

{
  "confidence_level": 0.95,
  "time_horizon_days": 1
}

Response 200:
{
  "var_95": -0.025,
  "cvar_95": -0.035,
  "confidence_level": 0.95,
  "interpretation": "With 95% confidence, maximum 1-day loss is 2.5%"
}
Substack Subscribers Only

Portfolio endpoints require Substack subscriber tier license.

Pairs API Reference

Create Pair

POST /api/pairs
Content-Type: application/json

{
  "name": "Tech Pair",
  "ticker1": "AAPL",  // Optional
  "ticker2": "MSFT"   // Optional
}

Response 200:
{
  "id": 1,
  "name": "Tech Pair",
  "ticker1": null,
  "ticker2": null,
  "created_at": "2025-10-17T12:00:00Z"
}

List Pairs

GET /api/pairs

Response 200:
{
  "pairs": [
    {
      "id": 1,
      "name": "AAPL / MSFT",
      "ticker1": "AAPL",
      "ticker2": "MSFT",
      "is_cointegrated": true,
      "last_signal": "LONG",
      "created_at": "2025-10-17T12:00:00Z"
    }
  ]
}

Get Pair Analysis

GET /api/pairs/{pair_id}

Response 200 (Complete Pair):
{
  "pair": {
    "id": 1,
    "name": "AAPL / MSFT",
    "ticker1": "AAPL",
    "ticker2": "MSFT"
  },
  "cointegration": {
    "is_cointegrated": true,
    "p_value": 0.02,
    "hedge_ratio": 1.25,
    "half_life": 15.5
  },
  "current_status": {
    "z_score": -2.5,
    "signal": "LONG",
    "signal_date": "2025-10-17T12:00:00Z"
  },
  "historical_performance": {
    "win_rate": 0.65,
    "avg_profit_per_trade": 0.03,
    "avg_trade_duration": 12.5
  },
  "charts": {
    "z_scores": [...],
    "prices": [...]
  }
}

Response 200 (Incomplete Pair):
{
  "pair": {
    "id": 1,
    "name": "New Pair 2025-10-17 12:00:00",
    "ticker1": null,
    "ticker2": null
  },
  "incomplete": true,
  "message": "Add both tickers to run analysis"
}

Add Ticker to Pair

POST /api/pairs/{pair_id}/tickers
Content-Type: application/json

{
  "ticker": "AAPL",
  "position": 1  // 1 or 2
}

Response 200:
{
  "id": 1,
  "name": "AAPL / ...",
  "ticker1": "AAPL",
  "ticker2": null,
  "message": "Ticker added. Analysis will run when both tickers are present."
}

Analyze Pair

POST /api/pairs/{pair_id}/analyze

Response 200:
{
  "message": "Analysis started",
  "pair_id": 1
}

Delete Pair

DELETE /api/pairs/{pair_id}

Response 200:
{
  "message": "Pair deleted successfully"
}
Cointegration Analysis

Pair analysis runs automatically when both tickers are added. Requires minimum 200 data points (approximately 1 year). Analysis takes 10-20 seconds including 2 years of historical data fetch.

Substack Subscribers Only

Pair trading endpoints require Substack subscriber tier license.

Benchmarks API Reference

List Benchmarks

GET /api/benchmarks/list

Response 200:
{
  "benchmarks": [
    {
      "ticker": "SPY",
      "name": "S&P 500 ETF",
      "last_updated": "2025-10-17T00:00:00Z"
    },
    {
      "ticker": "QQQ",
      "name": "Nasdaq 100 ETF",
      "last_updated": "2025-10-17T00:00:00Z"
    },
    {
      "ticker": "DIA",
      "name": "Dow Jones Industrial Average ETF",
      "last_updated": "2025-10-17T00:00:00Z"
    },
    {
      "ticker": "IWM",
      "name": "Russell 2000 ETF",
      "last_updated": "2025-10-17T00:00:00Z"
    }
  ]
}

Sync Benchmark Data

POST /api/benchmarks/sync/{ticker}

Response 200:
{
  "ticker": "SPY",
  "records_updated": 500,
  "last_updated": "2025-10-17T12:00:00Z",
  "message": "Benchmark data synced successfully"
}

Get Benchmark Data

GET /api/benchmarks/{ticker}/data?start_date=2024-01-01&end_date=2025-01-01&limit=500

Response 200:
{
  "ticker": "SPY",
  "name": "S&P 500 ETF",
  "data": [
    {
      "date": "2025-10-16",
      "open": 450.0,
      "high": 452.0,
      "low": 449.0,
      "close": 451.0,
      "volume": 50000000,
      "adjusted_close": 451.0
    }
  ]
}
Auto-Sync

Benchmark data auto-syncs daily but requires manual trigger for first-time setup. Sync endpoint takes 5-10 seconds per index.

Agentic Frameworks

Market Intelligence: Custom Multi-Agent System

Inspiration: MarketSense AI (Fatouros et al., 2024)

Paper: https://arxiv.org/abs/2401.03737

Agent Weighting:

  • Fundamentals: 30%
  • News: 25%
  • Price Dynamics: 25%
  • Macro: 20%

Key Differences from MarketSense AI Paper:

  • Implementation uses FastAPI instead of standalone Python scripts
  • LLM provider is configurable (OpenAI/Anthropic/Ollama)
  • Agents use different prompts tuned for specific data sources
  • Signal persistence in SQL database

Strategy Generator: v4 Robust Workflow

Architecture: Multi-phase direct LLM workflow (no CrewAI overhead)

v4 Robust Workflow - Production Ready

Performance: ~30-45 seconds execution time | Success Rate: 90-95% (matches Claude's direct coding quality)

Status: Recommended for production use

Workflow Evolution

Version Architecture Time Success Rate Status
v1 5 CrewAI agents sequential 5+ min ~60% ❌ Deprecated
v2 3 CrewAI agents sequential 4+ min ~75% ⚠️ Slow
v3 Single LLM call + KB ~25s ~85% ✅ Fast but simple
v4 Multi-phase + validation + iteration ~30-45s ~90-95% ✅ Recommended

v4 Workflow Phases

The v4 workflow consists of 5 sequential phases that mirror how Claude codes directly:

Phase 1: Deep PDF Analysis (~8-10s)

Purpose: Understand complete strategy before coding

  • Extract full PDF text using PDFLoader
  • LLM analyzes paper and extracts structured JSON with:
    • Strategy name, universe, timeframe
    • Indicators required (e.g., "252-day momentum", "RSI(14)")
    • Entry/exit rules (specific conditions)
    • Risk management parameters
    • Key numeric parameters
  • Output: Actionable implementation plan

Why This Works: Forces structured thinking before coding (like Claude reading a paper first)

Phase 2: Code Generation (~8-10s)

Purpose: Generate complete algorithm using structured analysis + knowledge base

  • Build comprehensive prompt with:
    • Structured analysis from Phase 1 (WHAT to implement)
    • QuantConnect knowledge base (HOW to implement correctly)
    • Common mistakes warnings (what NOT to do)
  • Direct LLM call (no CrewAI overhead)
  • Output: Raw Python code ready for validation

Knowledge Base: 13KB curated examples from official QuantConnect/Lean repository

Phase 3: Comprehensive Validation (<1s)

Purpose: Check for 9 common error patterns

  • 9 Validation Checks:
    1. Syntax validation (AST parsing)
    2. Required imports (from AlgorithmImports import *)
    3. Class structure (inherits QCAlgorithm)
    4. Required methods (initialize(), on_data() - snake_case)
    5. API naming correctness (enforce snake_case: set_start_date() not SetStartDate())
    6. Indicator naming conflicts (use self._rsi not self.rsi)
    7. Indicator ready checks (if not self._rsi.is_ready: return)
    8. TimeRules API correctness (e.g., after_market_open() exists)
    9. Risk management presence (position checks before trading)
  • Output: List of specific error messages (empty if all checks pass)
Phase 4: Targeted Refinement (~8-10s per iteration, max 2x)

Purpose: Fix specific errors using LLM with full context

  • Triggered only if validation errors found
  • Provide LLM with:
    • Original strategy context (from Phase 1)
    • Current code with issues
    • Specific error messages
  • LLM fixes errors while preserving strategy logic
  • Re-validate after each fix
  • Maximum 2 iterations (prevents infinite loops)

Why This Works: Targeted fixes with context (like Claude fixing specific compiler errors)

Phase 5: Safety Net Post-Processing (<1s)

Purpose: Auto-fix remaining known issues

  • Regex-based safety net fixes:
    • Remove RollingWindow[float] type hints → RollingWindow()
    • Fix any remaining PascalCase → snake_case
    • Fix market_open_hours()after_market_open()
    • Fix indicator naming conflicts
  • Defense in depth: Phase 4 fixes with understanding, Phase 5 catches edge cases

Why v4 Achieves 90-95% Success Rate

v4 replicates the same process that makes Claude's direct coding successful:

  1. Complete Context Understanding - Deep PDF analysis before coding (Phase 1)
  2. Use of Real Examples - Knowledge base with 5 real QuantConnect algorithms (Phase 2)
  3. Specific Pattern Matching - 9 validation checks targeting known errors (Phase 3)
  4. Actionable Error Feedback - Targeted refinement with error context (Phase 4)
  5. Safety Net - Auto-fix post-processing handles edge cases (Phase 5)

Key Differences from v3 (Fast)

Aspect v3 (Fast) v4 (Robust)
PDF Analysis First 8000 chars only Structured extraction of all strategy details
Validation None (AST only in post) 9 comprehensive checks
Error Recovery Cannot recover Up to 2 targeted refinement iterations
Context Quality Good (KB + partial PDF) Excellent (structured analysis + KB)
Speed ~25s ~30-45s
Success Rate ~85% ~90-95%
Why Not CrewAI?

v4 uses direct LLM calls instead of CrewAI because CrewAI adds zero value in this use case:

  • ❌ No agent delegation (allow_delegation=False)
  • ❌ No real tools (just prompt wrappers, not actual compilation/testing)
  • ❌ No memory (no learning between runs)
  • ❌ Only sequential execution (expensive prompt sequencing)

Result: v4 achieves 10x speed improvement (v1: 5min → v4: 45s) while maintaining 90-95% quality.

Future Enhancement: CrewAI would be valuable with REAL tools (QuantConnect MCP for compilation feedback, doc search, backtest analysis).

Implementation Files

  • backend/strategy_generator/flows/code_v4_robust.py - Main workflow
  • backend/strategy_generator/knowledge_base/quantconnect_examples.md - Knowledge base (13KB)
  • backend/strategy_generator/knowledge_base/__init__.py - KB loader
  • backend/strategy_generator/routers/coder.py - API endpoints

LLM Providers

Supported Providers

1. OpenAI (Default)

  • Models Used: GPT-4, GPT-3.5-turbo
  • Cost: ~$0.03 per 1K tokens (GPT-4)
  • Usage: Both modules

2. Anthropic Claude

  • Models Used: Claude 3 Opus, Claude 3 Sonnet
  • Cost: ~$0.015 per 1K tokens
  • Usage: Market Intelligence signals only (user selectable)

3. Ollama (Local)

  • Models Used: llama2, mixtral, etc.
  • Cost: Free (requires local GPU)
  • Usage: Market Intelligence signals only (user selectable)

Provider Selection

  • Market Intelligence: User chooses via query parameter (?llm_provider=openai)
  • Strategy Generator: Always uses OpenAI (CrewAI default)

Database Schema

UserSettings Table

CREATE TABLE user_settings (
    id INTEGER PRIMARY KEY,
    eodhd_api_key TEXT,
    openai_api_key TEXT,
    anthropic_api_key TEXT,
    tavily_api_key TEXT,
    qc_user_id TEXT,
    qc_api_token TEXT,
    qc_organization_id TEXT,
    default_llm_provider TEXT DEFAULT 'openai',
    created_at TIMESTAMP,
    updated_at TIMESTAMP
);

TradingSignal Table

CREATE TABLE trading_signals (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    ticker TEXT NOT NULL,
    signal TEXT NOT NULL,  -- BUY, HOLD, SELL
    conviction INTEGER,     -- 1-10
    confidence REAL,        -- 0.0-1.0
    reasoning TEXT,
    weighted_score REAL,
    llm_provider TEXT,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

AgentOutput Table

CREATE TABLE agent_outputs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    signal_id INTEGER NOT NULL,  -- FK to trading_signals
    agent_name TEXT NOT NULL,    -- fundamentals, news, etc.
    summary TEXT,
    score REAL,
    raw_output TEXT,             -- JSON blob
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (signal_id) REFERENCES trading_signals(id)
);

Installation & Setup

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • EODHD API key (required)
  • OpenAI API key (required)

Backend Setup

# Extract licensed software package
# (Provided after subscription at quantcoderfs.substack.com)
cd quantcoderfs/backend

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run database migrations
alembic upgrade head

# Start backend server
uvicorn main:app --reload --port 8000

Backend runs at: http://localhost:8000

API docs: http://localhost:8000/docs

Frontend Setup

cd ../electron

# Install dependencies
npm install

# Create environment file
echo "NEXT_PUBLIC_API_BASE_URL=http://localhost:8000" > .env.local

# Start development server
npm run dev

Frontend runs at: http://localhost:3001

Configuration

  1. Open http://localhost:3001
  2. Navigate to Settings page
  3. Enter API keys:
    • EODHD API Key (required)
    • OpenAI API Key (required)
    • Tavily API Key (optional)
    • QuantConnect User ID (optional)
    • QuantConnect API Token (optional)
  4. Save settings
Quick Start

Use the launch script for one-command startup:

./launch.sh
Disclaimer

QuantCoderFS is a research and educational tool. All generated signals, analyses, and trading algorithms are for informational purposes only and should not be considered financial advice. Always conduct your own research and consult with qualified financial advisors before making investment decisions.

References

  1. Fatouros, G., Soldatos, J., Kouroumali, K., Makridis, G., & Kyriazis, D. (2024). MarketSense AI: Multi-Agent LLM Framework for Stock Market Analysis. arXiv preprint arXiv:2401.03737. https://arxiv.org/abs/2401.03737
  2. QuantConnect. (2025). LEAN Algorithmic Trading Engine Documentation. https://www.quantconnect.com/docs
  3. CrewAI. (2025). Multi-Agent Framework Documentation. https://docs.crewai.com

GitHub Repository & Release Plan

Version Status

Important: This documentation describes QuantCoderFS v2.0, which is currently entirely private.

The public GitHub repository contains v1.0 only (legacy version):

Deep Research Report Generation

QuantCoderFS Deep Research Report with Telegram Notification

Generate comprehensive research reports using LLM analysis. Optional Telegram notifications keep you informed when reports are complete. Example shows automated research analysis for NVDA.US with detailed company overview, key features, and investment considerations.

Planned Release Tiers

QuantCoderFS v2.0 will be released with a tiered pricing model:

Free Tier

  • EODHD Data Wrapper - Market data integration (BYOK: Bring Your Own Key)
  • Deep Research Tool - Fundamental analysis and research report generation
  • Algorithm Generation - QuantConnect algorithm creation from research papers
  • Portfolio Analytics - Basic portfolio optimization (Equal-Weight, MVO, Min Variance)

BYOK (Bring Your Own Key): Free tier users provide their own EODHD API key. Free EODHD tier: 20 calls/day, 1 year historical data.

Paid Tier (Premium)

  • All Free Tier Features
  • MarketSense AI Analysis - Multi-agent LLM framework for stock market analysis (based on MarketSense AI paper)
  • Advanced Portfolio Strategies - Black-Litterman, Risk Parity, Factor Models
  • QuantConnect Integration - Direct deployment, backtesting, and live trading management
  • Risk Analysis Suite - Monte Carlo simulations, VaR/CVaR, stress testing
  • Pair Trading System - Cointegration analysis, z-score strategies, automated backtesting
  • Priority Support - Dedicated support channel and feature requests

Release Timeline

Phase Status Target Date
Closed Beta (Substack subscribers) ✅ Active Q4 2024 - Q4 2025
Quality Control & Testing 🔄 In Progress Q4 2025 - Q1 2026
Public Beta (Free Tier) ⏳ Planned February 2026
Commercial Launch (Paid Tier) ⏳ Planned February 2026

Launch Target: February 2026 marks the official public release of both Free and Paid tiers, following completion of our comprehensive quality control plan (unit tests, cross-validation with QuantConnect/FinViz, n8n test harness, CI/CD pipeline).

Get Early Access - Subscribe to Our Substack

Join the Beta Program - February 2026 Release

Be among the first to access QuantCoderFS v2.0 when it launches!

Subscribe to our Substack newsletter to:

  • ✅ Get notified when the Free Tier launches (February 2026)
  • ✅ Receive exclusive updates on development progress
  • ✅ Access quality control reports and feature previews
  • ✅ Priority consideration for beta testing
  • ✅ Early bird discounts on the Paid Tier at launch

Note: Paid subscriptions are currently suspended until the official February 2026 release. Free newsletter subscribers will receive all updates and early access information at no cost.

Contributing & Feedback

For bug reports, feature requests, or general feedback:

Open Source vs. Commercial

v1.0 (public GitHub) is open source under MIT license - use freely for education and research.

v2.0 (this documentation) is commercial software with free and paid tiers. Source code will remain private.