indicator
Indicator Go delivers a rich set of technical analysis indicators, customizable strategies, and a powerful backtesting framework. No dependencies, just pure simplicity. ✨ See how! 👀
A Go library of technical analysis indicators and backtesting
Indicator is a Golang module that provides more than 80 technical analysis indicators, configurable strategies, and a backtesting framework, with optional MCP server support.
Indicators and strategies
Indicator groups its functions into trend, momentum, volatility, volume, and asset valuation indicators, naming examples such as the exponential moving average, MACD, RSI, Bollinger Bands, and on balance volume. Beyond indicators it ships strategies: base, trend, momentum, volatility, and volume strategies like the golden cross and Ichimoku cloud, plus compound strategies that merge several recommendations with And, Majority, Or, or Split logic, and decorator strategies such as Stop Loss and No Loss that alter other strategies. A risk disclaimer notes the library is for educational and informational use and is not financial advice.
Backtesting and data
The backtest function evaluates chosen strategies against a set of assets and produces visual HTML reports for each strategy and asset pairing. Repositories give centralized storage and retrieval of asset snapshots, with file system, in memory, Tiingo, and Alpaca implementations, and a Sync function moves data between a source and a target with multi worker concurrency. Two command line tools help: indicator-sync pulls recent snapshots from Tiingo into a local file system, and indicator-backtest runs all known strategies on a repository. A Docker image can sync Tiingo data and generate reports in one command.
Design in v2
The v2 rewrite targets at least 90 percent code coverage, with dedicated CSV test data for each indicator and strategy. It operates on data streams using Go channels for both input and output, while helper functions convert between slices and channels for callers who prefer arrays, and it still keeps a v1 branch. Indicators and strategies are fully configurable with no preset values, and the library uses Go generics to support different numeric formats. An integrated MCP server lets AI tools execute strategies and process data with low latency.
Editorial conclusion
Indicator v2 is dual licensed under the GNU AGPLv3 license and a commercial license, and it ships a Docker image that runs backtests from a Tiingo API key in a single command.
Community notes