Crate ibkr

Crate ibkr 

Source
Expand description

IBKR Rust Client

A clean, idiomatic Rust interface to Interactive Brokers’ TWS API.

§Example

use ibkr::{Client, Contract, BarSize, Duration, WhatToShow};

#[tokio::main]
async fn main() -> ibkr::Result<()> {
    let client = Client::connect("127.0.0.1:7496", 1).await?;

    let contract = Contract::stock("AAPL", "SMART", "USD");
    let bars = client.historical_data(
        contract,
        Duration::Days(5),
        BarSize::Day1,
        WhatToShow::Trades,
        true,
    ).await?;

    for bar in bars {
        println!("{}: O:{} H:{} L:{} C:{}",
            bar.date, bar.open, bar.high, bar.low, bar.close);
    }
    Ok(())
}

Re-exports§

pub use client::Client;
pub use contract::Contract;
pub use contract::OptionRight;
pub use contract::SecurityType;
pub use error::Error;
pub use error::Result;
pub use historical::BarData;
pub use historical::BarSize;
pub use historical::Duration;
pub use historical::WhatToShow;
pub use message::IncomingMessageId;
pub use message::OutgoingMessageId;
pub use wire::extract_message;
pub use wire::make_field;
pub use wire::make_message;
pub use wire::parse_fields;
pub use wire::FieldIterator;

Modules§

client
Async client for TWS/IB Gateway.
contract
Contract definition for TWS API.
error
Error types for the IBKR client.
historical
Historical market data types.
message
TWS API message identifiers.
wire
Wire protocol utilities for TWS message framing.