techan alternatives and similar packages
Based on the "Financial" category.
Alternatively, view techan alternatives based on common mentions on social networks and blogs.
-
Golang Crypto Trading Bot
A golang implementation of a console-based trading bot for cryptocurrency exchanges -
ach
ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available. -
sleet
DISCONTINUED. Payment abstraction library - one interface for multiple payment processors ( inspired by Ruby's ActiveMerchant ) -
https://github.com/alpeb/go-finance
Go library containing a collection of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. -
go-finnhub
DISCONTINUED. Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of techan or a related project?
README
Techan
TechAn is a technical analysis library for Go! It provides a suite of tools and frameworks to analyze financial data and make trading decisions.
Features
- Basic and advanced technical analysis indicators
- Profit and trade analysis
- Strategy building
Installation
$ go get github.com/sdcoffey/techan
Quickstart
series := techan.NewTimeSeries()
// fetch this from your preferred exchange
dataset := [][]string{
// Timestamp, Open, Close, High, Low, volume
{"1234567", "1", "2", "3", "5", "6"},
}
for _, datum := range dataset {
start, _ := strconv.ParseInt(datum[0], 10, 64)
period := techan.NewTimePeriod(time.Unix(start, 0), time.Hour*24)
candle := techan.NewCandle(period)
candle.OpenPrice = big.NewFromString(datum[1])
candle.ClosePrice = big.NewFromString(datum[2])
candle.MaxPrice = big.NewFromString(datum[3])
candle.MinPrice = big.NewFromString(datum[4])
series.AddCandle(candle)
}
closePrices := techan.NewClosePriceIndicator(series)
movingAverage := techan.NewEMAIndicator(closePrices, 10) // Create an exponential moving average with a window of 10
fmt.Println(movingAverage.Calculate(0).FormattedString(2))
Creating trading strategies
indicator := techan.NewClosePriceIndicator(series)
// record trades on this object
record := techan.NewTradingRecord()
entryConstant := techan.NewConstantIndicator(30)
exitConstant := techan.NewConstantIndicator(10)
// Is satisfied when the price ema moves above 30 and the current position is new
entryRule := techan.And(
techan.NewCrossUpIndicatorRule(entryConstant, indicator),
techan.PositionNewRule{})
// Is satisfied when the price ema moves below 10 and the current position is open
exitRule := techan.And(
techan.NewCrossDownIndicatorRule(indicator, exitConstant),
techan.PositionOpenRule{})
strategy := techan.RuleStrategy{
UnstablePeriod: 10, // Period before which ShouldEnter and ShouldExit will always return false
EntryRule: entryRule,
ExitRule: exitRule,
}
strategy.ShouldEnter(0, record) // returns false
Credits
Techan is heavily influenced by the great ta4j. Many of the ideas and frameworks in this library owe their genesis to the great work done over there.
License
Techan is released under the MIT license. See [LICENSE](./LICENSE) for details.
*Note that all licence references and agreements mentioned in the techan README section above
are relevant to that project's source code only.