#![allow(unused)]
#[cfg(feature = "alphavantage")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_27() {
use finance_query::{Capability, Provider, Providers};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
Ok(())
}
}
#[cfg(feature = "alphavantage")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_46() {
use finance_query::{Capability, Provider, Providers};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
let quote = pair.quote().await?;
println!("Symbol: {}", quote.symbol);
if let Some(price) = quote.price {
println!("Rate: {:.6}", price);
}
if let Some(bid) = quote.bid {
println!("Bid: {:.6}", bid);
}
if let Some(ask) = quote.ask {
println!("Ask: {:.6}", ask);
}
if let (Some(chg), Some(pct)) = (quote.change, quote.change_percent) {
println!("Change: {:+.6} ({:+.4}%)", chg, pct);
}
Ok(())
}
}
#[cfg(feature = "alphavantage")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_143() {
use finance_query::{Capability, Interval, Provider, Providers, TimeRange};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
let chart = pair.chart(Interval::OneDay, TimeRange::OneMonth).await?;
println!("Pair: {}", chart.symbol);
assert!(!chart.candles.is_empty());
for candle in &chart.candles {
println!(
"{}: O={:.6}, H={:.6}, L={:.6}, C={:.6}",
candle.timestamp, candle.open, candle.high, candle.low, candle.close
);
}
Ok(())
}
}
#[cfg(feature = "alphavantage")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_177() {
use finance_query::{Capability, Provider, Providers, TimeRange};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
let history = pair.history(TimeRange::OneMonth).await?;
assert!(!history.candles.is_empty());
if let Some(last) = history.candles.last() {
println!("Most recent close: {:.6}", last.close);
}
Ok(())
}
}
#[cfg(all(feature = "risk", feature = "alphavantage"))]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_210() {
use finance_query::indicators::Indicator;
use finance_query::{Capability, Interval, Provider, Providers, TimeRange};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
let summary = pair
.indicators(Interval::OneDay, TimeRange::ThreeMonths)
.await?;
if let Some(rsi) = summary.rsi_14 {
println!("RSI(14): {:.2}", rsi);
}
let rsi_21 = pair
.indicator(Indicator::Rsi(21), Interval::OneDay, TimeRange::ThreeMonths)
.await?;
let risk = pair.risk(Interval::OneDay, TimeRange::OneYear).await?;
println!("VaR 95%: {:.2}%", risk.var_95 * 100.0);
println!("Max Drawdown: {:.2}%", risk.max_drawdown * 100.0);
Ok(())
}
}
#[cfg(feature = "alphavantage")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_250() {
use finance_query::{Capability, Provider, Providers};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::builder()
.route(Capability::FOREX, [Provider::AlphaVantage])
.build()
.await?;
let pair = providers.forex("EUR", "USD");
let _q1 = pair.quote().await?;
let _q2 = pair.quote().await?;
let pair = providers
.forex("EUR", "USD")
.cache(Duration::from_secs(60));
let pair = providers.forex("EUR", "USD").no_cache();
let _fresh = pair.quote().await?;
Ok(())
}
}