use kestrel_chartkit::{build_checked, Bar, Indicator};
use std::collections::HashMap;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut params = HashMap::new();
params.insert("rsi_len".to_string(), 14.0);
let mut rsi = build_checked("rsi", ¶ms)?;
let closes = [
44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.42, 45.84, 46.08, 45.89, 46.03, 45.61,
46.28, 46.28, 46.00,
];
for (i, &close) in closes.iter().enumerate() {
let bar = Bar::try_new(
1_700_000_000 + i as i64 * 60,
close,
close + 0.5,
close - 0.5,
close,
1_000.0,
)?;
match rsi.on_bar(&bar) {
Some(output) => println!("bar {i:>2}: close={close:.2} RSI(14)={:.2}", output.value),
None => println!("bar {i:>2}: close={close:.2} RSI(14)=<warming up>"),
}
}
Ok(())
}