msyrs/src/main.rs
2024-11-14 16:54:27 +00:00

71 lines
2.2 KiB
Rust

use msyrs::download::jpmaqsdownload::{JPMaQSDownload, JPMaQSDownloadGetIndicatorArgs};
use msyrs::utils::dftools::is_quantamental_dataframe;
fn main() {
println!("Authentication to DataQuery API");
let mut jpamqs_download = JPMaQSDownload::default();
println!("Checking connection to DataQuery API");
jpamqs_download.check_connection().unwrap();
println!("Retrieving catalogue of tickers");
let start = std::time::Instant::now();
let tickers = jpamqs_download.get_catalogue().unwrap();
println!(
"Retrieved catalogue with {} tickers in {:?}",
tickers.len(),
start.elapsed()
);
let num_ticks = 100;
let sel_tickers: Vec<String> = tickers
.iter()
.take(num_ticks)
.map(|s| s.to_string())
.collect();
// let mut df_deets = Vec::new();
println!("Retrieving indicators for {} tickers", sel_tickers.len());
// start = std::time::Instant::now();
// let all_metrics: Vec<String> = ["value", "grading", "eop_lag", "mop_lag"]
// .iter()
// .map(|x| x.to_string())
// .collect();
// let res = jpamqs_download.save_indicators_as_csv(
// JPMaQSDownloadGetIndicatorArgs {
// tickers: sel_tickers.clone(),
// metrics: all_metrics,
// ..Default::default()
// },
// "./data/",
// );
// match res {
// Ok(_) => println!(
// "Saved indicators for {} tickers in {:?}",
// sel_tickers.len(),
// start.elapsed()
// ),
// Err(e) => println!("Error saving indicators: {:?}", e),
// }
let res_df = jpamqs_download
.get_indicators_qdf(JPMaQSDownloadGetIndicatorArgs {
tickers: sel_tickers.clone(),
start_date: "2024-11-05".to_string(),
..Default::default()
})
.unwrap();
println!(
"Retrieved indicators for {} tickers in {:?}",
sel_tickers.len(),
start.elapsed()
);
if !is_quantamental_dataframe(&res_df) {
println!("DataFrame is not a quantamental DataFrame");
} else {
println!("DataFrame is a quantamental DataFrame");
}
}