#[cfg(feature = "dataframe")]
mod soothfast_capture_body {
use finance_query::{Interval, Ticker, TimeRange};
use polars::prelude::*;
#[tokio::main]
pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
let ticker = Ticker::new("AAPL").await?;
let chart = ticker.chart(Interval::OneDay, TimeRange::OneMonth).await?;
let df = chart.to_dataframe()?;
let range_pct = df
.lazy()
.select([
col("timestamp"),
((col("high") - col("low")) / col("close") * lit(100.0)).alias("range_pct"),
])
.collect()?;
let volatile_days = range_pct
.sort(
["range_pct"],
SortMultipleOptions::default().with_order_descending(true),
)?
.head(Some(10));
println!("Most volatile days:\n{}", volatile_days);
Ok(())
}
}
#[cfg(feature = "dataframe")]
pub use soothfast_capture_body::main;
#[cfg(not(feature = "dataframe"))]
fn main() {}