use kiteconnect_rs::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = "<api_key>";
let mut kite = KiteConnect::builder(&api_key).build()?;
let access_token = "<access_token>";
kite.set_access_token(&access_token);
let instruments = vec!["NSE:INFY", "NSE:TCS", "NSE:RELIANCE"];
match kite.get_quote(&instruments).await {
Ok(quotes) => {
println!("quotes:: \n {:#?}", quotes);
}
Err(e) => {
eprintln!("Error fetching quotes: {}", e);
eprintln!("\nStack trace:");
e.print_backtrace();
}
}
match kite.get_ltp(&instruments).await {
Ok(ltps) => {
println!("ltps:: \n {:#?}", ltps);
}
Err(e) => {
eprintln!("Error fetching LTP: {}", e);
e.print_backtrace();
}
}
match kite.get_ohlc(&instruments).await {
Ok(ohlc_data) => {
println!("ohlc_data:: \n {:#?}", ohlc_data);
}
Err(e) => {
eprintln!("Error fetching OHLC: {}", e);
e.print_backtrace();
}
}
let instrument_token = 408065; let interval = "minute"; let from_date = "2024-01-01 09:15:00";
let to_date = "2024-01-01 15:30:00";
match kite
.get_historical_data(
instrument_token,
interval,
from_date,
to_date,
false, false, )
.await
{
Ok(historical_data) => {
println!("historical_data:: \n {:#?}", historical_data);
}
Err(e) => {
eprintln!("Error fetching historical data: {}", e);
e.print_backtrace();
}
}
match kite.get_instruments().await {
Ok(instruments) => {
println!("instruments:: \n {:#?}", instruments);
}
Err(e) => {
eprintln!("Error fetching instruments: {}", e);
e.print_backtrace();
}
}
match kite.get_instruments_by_exchange("NSE").await {
Ok(instruments) => {
println!("instruments:: \n {:#?}", instruments);
}
Err(e) => {
eprintln!("Error fetching NSE instruments: {}", e);
e.print_backtrace();
}
}
match kite.get_mf_instruments().await {
Ok(mf_instruments) => {
println!("mf_instruments:: \n {:#?}", mf_instruments);
}
Err(e) => {
eprintln!("Error fetching MF instruments: {}", e);
e.print_backtrace();
}
}
Ok(())
}