yahoo! finance API

This project provides a set of functions to receive data from the the yahoo! finance website via their API. This project is licensed under Apache 2.0 or MIT license (see files LICENSE-Apache2.0 and LICENSE-MIT).

There is already an existing rust library yahoo-finance-rs, which I intended to use for my own projects. However, due some issues in the implementation (the library panics in some cases if yahoo does provide somehow invalid data), I currently can't use it. Once this issue is fixed, I might switch back and drop development of this library.

Get the latest available quote: ```rust use yahoofinanceapi as yahoo; use std::time::{Duration, UNIX_EPOCH}; use chrono::prelude::*;

fn main() { let provider = yahoo::YahooConnector::new(); // get the latest quotes in 1 minute intervals let response = provider.getlatestquotes("AAPL", "1m").unwrap(); // extract just the latest valid quote summery // including timestamp,open,close,high,low,volume let quote = response.lastquote().unwrap(); let time: DateTime = DateTime::from(UNIXEPOCH + Duration::fromsecs(quote.timestamp)); println!("At {} quote price of Apple was {}", time.torfc3339(), quote.close); } ```

Get history of quotes for given time period: ```rust use yahoofinanceapi as yahoo; use std::time::{Duration, UNIX_EPOCH}; use chrono::{Utc,TimeZone};

fn main() { let provider = yahoo::YahooConnector::new(); let start = Utc.ymd(2020, 1, 1).andhmsmilli(0, 0, 0, 0); let end = Utc.ymd(2020, 1, 31).andhmsmilli(23, 59, 59, 999); // returns historic quotes with daily interval let resp = provider.getquotehistory("AAPL", start, end).unwrap(); let quotes = resp.quotes().unwrap(); println!("Apple's quotes in January: {:?}", quotes); } ```

Another method to retrieve a range of quotes is by requesting the quotes for a given period and lookup frequency. Here is an example retrieving the daily quotes for the last month: ```rust use yahoofinanceapi as yahoo; use std::time::{Duration, UNIX_EPOCH}; use chrono::{Utc,TimeZone};

fn main() { let provider = yahoo::YahooConnector::new(); let response = provider.getquoterange("AAPL", "1d", "1mo").unwrap(); let quotes = response.quotes().unwrap(); println!("Apple's quotes of the last month: {:?}", quotes); } ```