Finalytics is a high-performance Go binding for the Finalytics Rust library, designed for retrieving financial data, security analysis, and portfolio optimization. It provides a fast, modular interface for advanced analytics, and powers dashboards and applications across platforms.
To install the Finalytics Go binding, add it to your Go project using:
go get github.com/Nnamdi-sys/finalytics/go/finalyticsAfter installing the Go module, download the required native binary by running:
curl -O https://raw.githubusercontent.com/Nnamdi-sys/finalytics/refs/heads/main/go/download_binaries.sh
bash download_binaries.shFinalytics Go exposes four core modules for financial analytics:
Efficiently filter and rank securities (equities, crypto, etc.) using advanced metrics and custom filters.
Usage Example:
screener, err := finalytics.NewScreener(
"EQUITY",
[]string{
`{"operator":"eq","operands":["exchange","NMS"]}`,
`{"operator":"gte","operands":["intradaymarketcap",10000000000]}`,
},
"intradaymarketcap",
true,
0,
10,
)
if err != nil {
panic(err)
}
defer screener.Free()
screener.Display()
symbols, err := screener.Symbols()Analyze a single security in depth: performance, financials, options, news, and more.
Usage Example:
ticker, err := finalytics.NewTickerBuilder().
Symbol("AAPL").
StartDate("2023-01-01").
EndDate("2024-12-31").
Interval("1d").
BenchmarkSymbol("^GSPC").
ConfidenceLevel(0.95).
RiskFreeRate(0.02).
Build()
if err != nil {
panic(err)
}
defer ticker.Free()
for _, reportType := range []string{"performance", "financials", "options", "news"} {
report, err := ticker.Report(reportType)
if err == nil {
report.Show()
}
}Work with multiple securities at once—aggregate reports, batch analytics, and portfolio construction.
Usage Example:
symbols := []string{"NVDA", "GOOG", "AAPL", "MSFT", "BTC-USD"}
tickers, err := finalytics.NewTickersBuilder().
Symbols(symbols).
StartDate("2023-01-01").
EndDate("2024-12-31").
Interval("1d").
BenchmarkSymbol("^GSPC").
ConfidenceLevel(0.95).
RiskFreeRate(0.02).
Build()
if err != nil {
panic(err)
}
defer tickers.Free()
report, err := tickers.Report("performance")
if err == nil {
report.Show()
}Optimize and analyze portfolios using advanced objective functions and constraints.
Usage Example:
symbols := []string{"NVDA", "GOOG", "AAPL", "MSFT", "BTC-USD"}
portfolio, err := finalytics.NewPortfolioBuilder().
Symbols(symbols).
BenchmarkSymbol("^GSPC").
StartDate("2023-01-01").
EndDate("2024-12-31").
Interval("1d").
ConfidenceLevel(0.95).
RiskFreeRate(0.02).
ObjectiveFunction("max_sharpe").
Build()
if err != nil {
panic(err)
}
defer portfolio.Free()
report, err := portfolio.Report("performance")
if err == nil {
report.Show()
}- See the Go API documentation for full details.
Finalytics is also available in:
Finalytics — Modular, high-performance financial analytics for Go.
