multi-market real-time stock price monitoring with market-hour aware polling
Implements differential update polling that respects market trading hours across A-shares (SH/SZ), Hong Kong (HK), and US stocks, aggregating data from Sina, Tencent, Eastmoney, and Tushare APIs. Uses market-hour awareness to adjust polling frequency during trading vs non-trading periods, reducing unnecessary API calls while maintaining real-time accuracy. Data flows through a GORM+SQLite persistence layer with FreeCache for high-speed in-memory access, enabling sub-second UI updates without repeated database queries.
Unique: Market-hour aware polling with differential updates that automatically adjusts frequency based on trading hours across three distinct market zones (China, Hong Kong, US), combined with dual-layer caching (FreeCache + SQLite) to minimize API calls while maintaining real-time responsiveness
vs alternatives: Outperforms cloud-based stock trackers by keeping all data local and respecting market hours to reduce API costs, while offering broader market coverage (A-shares + HK + US) than most open-source alternatives
ai-powered sentiment analysis on market news with gse-based chinese text segmentation
Aggregates news from 15+ providers (Telegraph/财联社, Reuters, TradingView, etc.) and applies GSE (Generic Segmentation Engine) for Chinese text tokenization with frequency-weighted sentiment scoring. The pipeline extracts entities (stocks, funds, sectors) from news content, segments text into meaningful chunks, and scores sentiment polarity using frequency analysis of positive/negative keywords. Results are stored in SQLite with timestamps, enabling historical sentiment trend analysis and market-wide vs individual-stock sentiment comparison.
Unique: Uses GSE-based Chinese text segmentation with frequency-weighted sentiment scoring specifically optimized for Mandarin financial news, aggregating 15+ news sources into a unified sentiment pipeline with entity linking to stocks and sectors
vs alternatives: Provides Chinese market sentiment analysis that most English-focused tools lack, while keeping all processing local (no cloud NLP API costs) and supporting broader news source coverage than typical financial APIs
market rankings and sector analysis with dynamic ranking computation
Computes dynamic market rankings (gainers, losers, most active by volume) and sector-level analysis (sector returns, sector sentiment, sector fund flows) by aggregating individual stock data from SQLite. Rankings are computed on-demand or cached with configurable TTL (time-to-live) to balance freshness vs performance. Sector analysis groups stocks by industry classification (from data provider APIs) and computes aggregate metrics (weighted returns, average P/E, sector sentiment). Results are displayed in sortable tables with drill-down to individual stocks. Supports custom ranking criteria (e.g., 'highest dividend yield') via configurable sort expressions.
Unique: Computes market rankings and sector analysis dynamically from local SQLite data with configurable caching and custom ranking criteria, enabling real-time market overview without external ranking APIs
vs alternatives: Provides sector-level analysis that most stock trackers lack, while keeping all computation local and enabling custom ranking criteria without code changes
scheduled task automation with market-hour aware scheduling and background execution
Implements a task scheduler that executes background jobs (price polling, news fetching, sentiment analysis, AI analysis) on configurable schedules with market-hour awareness. Tasks are defined in SQLite with cron expressions or simple interval schedules (e.g., 'every 5 minutes during market hours'). The scheduler respects market trading hours across different exchanges (A-shares, HK, US) and skips execution during non-trading periods. Task execution is asynchronous and non-blocking; results are stored in SQLite with execution logs. Supports task dependencies (e.g., 'run sentiment analysis only after news fetching completes') and error handling with retry logic.
Unique: Implements market-hour aware task scheduling with support for multiple market zones (A-shares, HK, US) and asynchronous execution with SQLite-based logging, enabling fully automated monitoring without manual intervention
vs alternatives: Provides market-aware scheduling that most task schedulers lack, while keeping all execution local and enabling offline task history review via SQLite
cross-platform desktop application with wails framework and native os integration
Builds a cross-platform desktop application using Wails v2 framework, which bridges Vue.js frontend with Go backend via IPC (inter-process communication). The application compiles to native executables for Windows (WebView2), macOS (Universal/Intel/ARM builds), and Linux. Wails handles window management, file dialogs, system tray integration, and native notifications. The frontend uses NaiveUI component library for consistent UI across platforms. Application state is persisted to SQLite, enabling data retention across sessions. Supports auto-update mechanism for distributing new versions to users.
Unique: Uses Wails v2 framework to bridge Vue.js frontend with Go backend via IPC, enabling native cross-platform desktop application with OS-level integration (system tray, notifications, file dialogs) and auto-update support
vs alternatives: Provides lightweight cross-platform desktop app development compared to Electron (smaller bundle size, faster startup), while maintaining full Go backend performance and native OS integration
multi-provider llm configuration and api key management with provider abstraction
Implements a provider abstraction layer that supports 8+ LLM providers (OpenAI, DeepSeek, Ollama, LMStudio, AnythingLLM, 硅基流动, 火山方舟, 阿里云百炼) with unified interface for model selection and API key management. Configuration is stored in SQLite with encrypted API keys (using Go's crypto/aes package). Users can configure multiple providers simultaneously and switch between them via UI without code changes. The abstraction handles provider-specific API differences (request/response format, function-calling syntax, error handling) transparently. Supports local LLM providers (Ollama, LMStudio) for offline analysis without cloud dependencies.
Unique: Implements unified provider abstraction supporting 8+ LLM providers (including Chinese providers) with encrypted API key storage in SQLite, enabling seamless provider switching and local LLM support without code changes
vs alternatives: Offers broader LLM provider support than most applications, with special emphasis on Chinese providers and local LLM options, while maintaining API key security via encryption
data export and import with portfolio backup and restore functionality
Provides data export/import functionality for backing up and restoring user data (stocks, groups, alerts, settings, analysis history) in JSON or CSV format. Export creates a snapshot of SQLite data at a point in time, enabling disaster recovery and data portability. Import validates data schema before insertion, preventing corruption from malformed files. Supports selective export (e.g., export only specific stock groups) and merge import (append imported data to existing database without overwriting). Export files can be encrypted with user-provided password for secure backup.
Unique: Provides selective export/import with optional encryption and merge mode, enabling flexible data backup, portability, and disaster recovery while maintaining data integrity via schema validation
vs alternatives: Offers more flexible export/import options than typical stock trackers, including selective export and merge mode, while keeping all data local and supporting encrypted backups
ai agent chat with multi-provider llm support and 14+ financial analysis tools
Implements an AI agent interface that routes user queries to configurable LLM providers (DeepSeek, OpenAI, Ollama, LMStudio, AnythingLLM, 硅基流动, 火山方舟, 阿里云百炼) with a function-calling registry of 14+ tools for stock analysis, fund monitoring, sentiment analysis, and market rankings. The agent uses chain-of-thought reasoning to decompose user queries into tool calls, executes tools against local data (SQLite) and external APIs, and synthesizes results into natural language responses. All data remains local; only the LLM provider receives query context (configurable via system prompts).
Unique: Supports 8+ LLM providers (including Chinese providers like 硅基流动, 火山方舟, 阿里云百炼) with a unified function-calling interface, enabling users to switch providers without code changes while keeping all financial data local and only sending queries to the LLM
vs alternatives: Offers broader LLM provider support than most financial tools (especially Chinese providers), maintains full data privacy by processing locally, and allows offline analysis via local LLMs (Ollama, LMStudio) unlike cloud-dependent alternatives
+7 more capabilities