How namiujrm/ontrade works
Ontrade is a Vietnamese-market data ingestion and personal investment advisory platform. Its principal flow collects and normalizes market, financial, and corporate-action data, persists it, then serves market/fundamental queries and portfolio or statement analysis through the API. A separate quant pipeline encodes financial features into embeddings for similarity search; realtime snapshots and broker-statement reconciliation are additional product branches. Relationships for unsampled API and similarity capabilities follow README descriptions; source excerpts do not expose all runtime wiring.
Main entry points: repositories Data repositories · user User routes · main.py REST API · vector_pipeline_service.py Vector pipeline
Components 27
API and access
- REST API
src/ontrade/api/main.py - User routes
src/ontrade/api/v1/user - Admin routes
src/ontrade/api/v1/admin
Data collection
- Market ingestion
src/ontrade/services/admin/market_ingestion_service.py - Historical crawlers
src/ontrade/crawlers/historical_price - Financial ingestion
src/ontrade/services/admin/financial_ingestion_service.py - Financial crawlers
src/ontrade/crawlers/financial_statement - Corporate actions
src/ontrade/services/admin/corporate_action_service.py
Investment services
- Statement processing
src/ontrade/services/user/statement_service.py - Order reconciliation
src/ontrade/services/user/statement_reconcile_service.py - Market queries
src/ontrade/services/user/market_query_service.py - Portfolio and behavior
src/ontrade/services/user/portfolio_service.py - Behavioral audit
src/ontrade/services/user/behavioral_audit_service.py - Realtime market service
src/ontrade/services/system/realtime_market_service.py - Similarity search
src/ontrade/services/user/hnsw_similarity_service.py
Persistence and analytics
- Data repositories
src/ontrade/infrastructure/database/repositories - Database sessions
src/ontrade/infrastructure/database/session.py - Realtime cache
src/ontrade/infrastructure/cache/realtime_cache.py - Vector pipeline
src/ontrade/services/system/vector_pipeline_service.py - Feature encoder
src/ontrade/analytics/feature_encoder.py - Embedding store
src/ontrade/infrastructure/database/repositories/vector_repo.py
Other components
- Investor
- Operator
- Market sources
- Broker statements
- PostgreSQL / TimescaleDB
- Redis
Connections 32
- Investor → REST API: requests
README.md - Operator → REST API: administers
README.md - REST API → User routes: routes
- REST API → Admin routes: routes
- Operator → Market ingestion: triggers
README.md - Market ingestion → Historical crawlers: fetches prices
src/ontrade/services/admin/market_ingestion_service.py - Market sources → Historical crawlers: provides data
README.md - Market ingestion → Data repositories: writes quotes
src/ontrade/services/admin/market_ingestion_service.py - Operator → Financial ingestion: triggers
README.md - Financial ingestion → Financial crawlers: fetches statements
src/ontrade/services/admin/financial_ingestion_service.py - Financial ingestion → Data repositories: stores statements
src/ontrade/services/admin/financial_ingestion_service.py - Operator → Corporate actions: triggers
README.md - Corporate actions → Data repositories: stores actions
src/ontrade/services/admin/corporate_action_service.py - Broker statements → Statement processing: uploads
README.md - Statement processing → Order reconciliation: reconciles orders
src/ontrade/services/user/statement_reconcile_service.py - Order reconciliation → Data repositories: reads and writes
src/ontrade/services/user/statement_reconcile_service.py - User routes → Market queries: serves queries
- Market queries → Data repositories: reads market data
src/ontrade/services/user/market_query_service.py - User routes → Portfolio and behavior: serves portfolios
- User routes → Statement processing: serves statements
- Behavioral audit → Data repositories: reads orders
src/ontrade/services/user/behavioral_audit_service.py - User routes → Behavioral audit: offers coaching
- Database sessions → PostgreSQL / TimescaleDB: connects
src/ontrade/infrastructure/database/session.py - Data repositories → PostgreSQL / TimescaleDB: reads and writes
- Realtime market service → Realtime cache: updates snapshots
src/ontrade/services/system/realtime_market_service.py - Realtime cache → Redis: caches
- Market sources → Realtime market service: supplies quotes
- Vector pipeline → Data repositories: reads ratios and symbols
src/ontrade/services/system/vector_pipeline_service.py - Vector pipeline → Feature encoder: encodes features
src/ontrade/services/system/vector_pipeline_service.py - Vector pipeline → Embedding store: upserts vectors
src/ontrade/services/system/vector_pipeline_service.py - User routes → Similarity search: offers similarity
- Similarity search → Embedding store: searches vectors
README.md