18 unstable releases (3 breaking)
0.5.3 | Jul 6, 2024 |
---|---|
0.5.0 | Jun 17, 2024 |
0.3.6 | Jan 15, 2024 |
0.3.0 | Dec 30, 2023 |
0.2.9 | Nov 26, 2023 |
#34 in Visualization
467 downloads per month
195KB
3K
SLoC
Finalytics is a Rust library designed for retrieving financial data and performing security analysis and portfolio optimization.
Installation
Add the following to your Cargo.toml
file:
[dependencies]
finalytics = {version = "0.5.3", features = ["kaleido"]}
Or run the following command:
cargo install finalytics --features kaleido
Documentation
View the library documentation on docs.rs or visit the homepage
Security Analysis
use std::error::Error;
use finalytics::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// Instantiate the Ticker Object
let ticker = TickerBuilder::new()
.ticker("AAPL")
.start_date("2023-01-01")
.end_date("2024-01-01")
.interval(Interval::OneDay)
.benchmark_symbol("^GSPC")
.confidence_level(0.95)
.risk_free_rate(0.02)
.build();
// Display the Security Analysis Results
let performance_stats = ticker.performance_stats().await?;
println!("{:?}", performance_stats);
let performance_chart = ticker.performance_chart().await?;
performance_chart.show();
Ok(())
}
Portfolio Optimization
use std::error::Error;
use finalytics::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// Construct the Portfolio Object
let ticker_symbols = Vec::from(["NVDA", "BRK-A", "AAPL", "ZN=F"]);
let portfolio = PortfolioBuilder::new().ticker_symbols(ticker_symbols)
.benchmark_symbol("^GSPC")
.start_date("2020-01-01")
.end_date("2023-01-01")
.interval(Interval::OneDay)
.confidence_level(0.95)
.risk_free_rate(0.02)
.max_iterations(1000)
.objective_function(ObjectiveFunction::MaxSharpe)
.build().await?;
// Display Portfolio Optimization Results
println!("{:?}", portfolio.performance_stats);
portfolio.performance_chart()?.show();
Ok(())
}
Sample Applications
Ticker Charts Viewer
This sample application allows you to perform security analysis based on the Finalytics Library.
Portfolio Charts Viewer
This sample application enables you to perform portfolio optimization based on the Finalytics Library.
Telegram Bot
The Finalytics Telegram Bot allows you to perform security analysis, portfolio optimization and news sentiment analysis directly from Telegram.Python Binding
Installation
pip install finalytics
Documentation
View Library documentation on readthedocs here
Security Analysis
from finalytics import Ticker
ticker = Ticker(symbol="AAPL",
start="2023-01-01",
end="2024-01-01",
interval="1d",
confidence_level=0.95,
risk_free_rate=0.02)
print(ticker.performance_stats())
ticker.performance_chart().show()
Portfolio Optimization
from finalytics import Portfolio
portfolio = Portfolio(ticker_symbols=["AAPL", "GOOG", "MSFT", "BTC-USD"],
benchmark_symbol="^GSPC", start_date="2020-01-01", end_date="2023-01-01", interval="1d",
confidence_level=0.95, risk_free_rate=0.02, max_iterations=1000,
objective_function="max_sharpe")
print(portfolio.get_optimization_results())
portfolio.portfolio_chart(chart_type="performance").show()
Dependencies
~45–61MB
~1M SLoC