finance-query 3.0.0

A Rust library for querying financial data
Documentation
// @generated by `cargo soothfast docs gen-tests`
// source: docs/library/indicators.md line 108
#[cfg(feature = "indicators")]
fn main() {
    use finance_query::indicators::{macd, rsi, sma};

    // Any price series works; with live data use the Chart convenience
    // methods: chart.close_prices(), chart.high_prices(), chart.low_prices()
    let closes: Vec<f64> = (0..300)
        .map(|i| 100.0 + (i as f64 / 4.0).sin() * 8.0)
        .collect();

    // Calculate indicators directly
    let sma_25 = sma(&closes, 25); // Returns Vec<Option<f64>>
    let rsi_10 = rsi(&closes, 10).unwrap(); // Returns Result<Vec<Option<f64>>>
    let macd_result = macd(&closes, 12, 26, 9).unwrap(); // Returns Result<MacdResult>

    // Output is always aligned with the input: one slot per bar
    assert_eq!(sma_25.len(), closes.len());

    // Access results
    if let Some(&last_rsi) = rsi_10.last().and_then(|v| v.as_ref()) {
        println!("RSI(10): {:.2}", last_rsi);
    }

    // MACD returns a struct with three series
    if let Some(&last_macd) = macd_result.macd_line.last().and_then(|v| v.as_ref()) {
        println!("MACD Line: {:.4}", last_macd);
    }
}

#[cfg(not(feature = "indicators"))]
fn main() {}