<img src="https://github.com/cinar/indicator/raw/v2.1.33/logo.png" />
Indicator is a Golang module that provides an extensive set of technical analysis indicators, strategies, and a framework for backtesting with real-time strategy execution.
An extensive technical analysis library for algorithmic trading - 80+ indicators, backtesting framework, and AI integration via MCP.
I also have a TypeScript version of this module now at Indicator TS.
The following list of indicators are currently supported by this package:
The following list of strategies are currently supported by this package:
Compound strategies merge multiple strategies to produce integrated recommendations. They combine individual strategies' recommendations using various decision-making logic.
Decorator strategies offer a way to alter the recommendations of other strategies.
Repository serves as a centralized storage and retrieval location for asset snapshots.
The following repository implementations are provided.
The Sync function facilitates the synchronization of assets between designated source and target repositories by employing multi-worker concurrency for enhanced efficiency. This function serves the purpose of procuring the most recent snapshots from remote repositories and seamlessly transferring them to local repositories, such as file system repositories.
The indicator-sync command line tool also offers the capability of synchronizing data between the Tiingo Repository and the File System Repository. To illustrate its usage, consider the following example command:
$ indicator-sync \
-source-name tiingo \
-source-config $TIINGO_KEY \
-target-name filesystem \
-target-config /home/user/assets \
-days 30
This command effectively retrieves the most recent snapshots for assets residing within the /home/user/assets directory from the Tiingo Repository. In the event that the local asset file is devoid of content, it automatically extends its reach to synchronize 30 days' worth of snapshots, ensuring a comprehensive and up-to-date repository.
The Backtest functionality, using the Outcome, rigorously evaluates the potential performance of the specified strategies applied to a defined set of assets. It generates comprehensive visual representations for each strategy-asset pairing.
```go report := backtest.NewHTMLReport(outputDir) bt
$ claude mcp add indicator \
-- python -m otcore.mcp_server <graph>