5 releases

0.2.0 Apr 2, 2024
0.1.3 Jun 7, 2020
0.1.2 Jun 7, 2020
0.1.1 Jun 7, 2020
0.1.0 Feb 22, 2019

#282 in Finance

Download history 5/week @ 2024-02-21 2/week @ 2024-02-28 57/week @ 2024-03-27 149/week @ 2024-04-03

206 downloads per month

MIT/Apache

1.5MB
20K SLoC

fxoanda

This is an unofficial Oanda API client. This client is still an experimental work in progress however it is reasonably functional.

The client is generated from the Oanda V20 API definitions. The current state of the client API is low-level but usable however I would like to see a more ergonomic layer developed on top.

Installation

 cargo add fxoanda

Example usage

# in your Cargo.toml
reqwest = {version = "0.12.2", features = ["json"]}
tokio = { version = "1.37.0", features = ["macros", "time", "rt-multi-thread"] }
use std::env;
use fxoanda::*;

#[tokio::main]
async fn main() {
    let api_key = env::var("OANDA_KEY").expect("expected OANDA_KEY environment variable to be set");
    let api_host = env::var("OANDA_HOST").expect("expected OANDA_HOST environment variable to be set");

    let client = fxoanda::Client {
        host: String::from(api_host),
        reqwest: reqwest::Client::new(),
        authentication: String::from(api_key),
    };
    match fxoanda::GetInstrumentCandlesRequest::new()
        .with_instrument("EUR_USD".to_string())
        .with_granularity(CandlestickGranularity::H4)
        .remote(&client).await
    {
        Ok(x) => println!("OK: {:#?}", x),
        Err(e) => eprintln!("ERR: {:#?}", e),
    };
}

Warning

Forex markets are extremely risky. Automated trading is also extremely risky. This project is extremely risky. Market conditions, news events, or software bugs can wipe out your account in an instant.

Disclaimer

Use this project at your own risk. The maintainers of this project make no claims as to this product being fit for purpose. In fact, the maintainers of this project are telling you that you shouldn't use this project.

Dependencies

~8–21MB
~295K SLoC