How henrylin99/quantitative_analysis works
This is a learning-oriented A-share quantitative research system: users explore market data, compute factors, score and model stocks, optimize portfolios, and validate strategies through backtests. The React SPA calls a Flask API; documented capabilities also include an AI workbench, data-job management, real-time analysis, and research reports. Market data is primarily stored in Parquet, with SQLite for application state. The graph combines documented product flows with source-visible calls; unsampled subsystems are represented only where README documentation supports them.
Main entry points: __init__.py Flask API · App.tsx Real-time pages · service.py Data job service · data_reader.py Market data reader
Components 29
User interface
- React application
frontend/src/App.tsx - Flask API
app/__init__.py - Real-time pages
frontend/src/App.tsx
Quant research
- Factor engine
app/services/factor_engine.py - Factor expressions
app/services/factor_expression_engine.py - ML models
app/services/ml_models.py - Stock scoring
app/services/stock_scoring.py - Portfolio optimizer
app/services/portfolio_optimizer.py - Backtest engine
app/services/backtest_engine.py - Backtest task
app/tasks/backtest_tasks.py
Data services
- Market data reader
app/services/data_reader.py - Market Parquet store
app/services/parquet_state_store.py - Data job API
app/api/data_jobs_api.py - Data job service
app/services/data_jobs/service.py - Data job runner task
app/tasks/data_jobs_tasks.py - Job registry
app/services/data_jobs/registry.py - Job state store
app/services/data_jobs/parquet_state_store.py
Real-time analysis
- Indicator engine
app/services/realtime_indicator_engine.py - Signal engine
app/services/realtime_trading_signal_engine.py - Monitoring API
app/api/realtime_monitor.py - Risk API
app/api/realtime_risk.py - Realtime report API
app/api/realtime_report.py
AI and reports
- AI workbench
frontend/src/pages/AiWorkbenchPage.tsx - AI assistant API
app/api/ai_assistant_api.py - AI assistant service
app/services/ai/assistant_service.py - Text-to-SQL engine
app/services/text2sql_engine.py - Research reports
app/services/research_report_service.py
Other components
- Research user
- LLM provider
Connections 35
- Research user → React application: uses
README.md - React application → Flask API: calls API
README.md - Flask API → Factor engine: routes factor work
- Factor engine → Market data reader: reads market data
app/services/factor_engine.py - Factor engine → Factor expressions: evaluates expressions
app/services/factor_engine.py - Flask API → ML models: routes model work
- Flask API → Stock scoring: routes scoring
- Flask API → Portfolio optimizer: routes optimization
- Flask API → Backtest task: queues backtest
- Backtest task → Backtest engine: runs engine
app/tasks/backtest_tasks.py - Backtest engine → Market data reader: reads market data
app/services/backtest_engine.py - Backtest task → Market Parquet store: persists results
app/tasks/backtest_tasks.py - Market data reader → Market Parquet store: reads Parquet
- React application → Data job API: submits jobs
README.md - Data job API → Data job service: manages jobs
- Data job service → Job registry: resolves jobs
app/services/data_jobs/service.py - Data job service → Job state store: stores state
app/services/data_jobs/service.py - Data job service → Data job runner task: dispatches task
app/services/data_jobs/service.py - Data job runner task → Job registry: loads job definition
app/tasks/data_jobs_tasks.py - Data job runner task → Job state store: updates state
app/tasks/data_jobs_tasks.py - Research user → AI workbench: asks questions
README.md - AI workbench → AI assistant API: sends chat
- AI assistant API → AI assistant service: handles assistant
app/api/ai_assistant_api.py - AI assistant service → Text-to-SQL engine: uses query tools
- AI assistant service → LLM provider: requests completion
- Research user → Real-time pages: views analysis
README.md - Real-time pages → Indicator engine: requests indicators
- Real-time pages → Signal engine: requests signals
- Real-time pages → Monitoring API: requests monitoring
- Real-time pages → Risk API: requests risk analysis
- Real-time pages → Realtime report API: requests reports
- Signal engine → Indicator engine: uses indicators
app/services/realtime_trading_signal_engine.py - Indicator engine → Market data reader: reads market data
app/services/realtime_indicator_engine.py - Research user → Research reports: requests reports
README.md - Flask API → Research reports: routes report requests