A Go Technical Analysis library, mostly inspired by python's TA-Lib and the port by markcheno. It Can be used for backtesting or eventually creating strategies for live trading.
- Tries to be compatible with the python version for testing, however all the functions supports partial updates to help working with live data.
- Going for a healthy mix of speed and accuracy.
- Includes option related functions.
go get -u go.oneofone.dev/ta
- the API is not stable at all
- Missing a lot of indicators compared to the python version or markcheno's port
- Port more functions
- More testing / benchmarks
- Stablize the API
- Documentation
package main
import (
"fmt"
"github.com/markcheno/go-quote"
"go.oneofone.dev/ta"
)
func main() {
spy, _ := quote.NewQuoteFromYahoo("spy", "2016-01-01", "2016-04-01", quote.Daily, true)
fmt.Print(spy.CSV())
dema, _ := ta.New(spy.Close).DEMA(10)
fmt.Println(dema)
}
- all the
*_test.go
files should have more examples.
- gonum/gonum (BSD-3-Clause)
Without those libraries and their documentation, this wouldn't have been possible.
- mrjbq7/ta-lib (MIT?)
- markcheno/go-talib (MIT)
- TulipCharts/tulipindicators (LGPL v3.0)
- greyblake/ta-rs (MIT)
- MattL922/black-scholes (MIT)
- MattL922/implied-volatility (MIT)