Skip to main content

Event

Enum Event 

Source
pub enum Event {
Show 90 variants ConnectAck, ConnectionClosed, Error { req_id: i32, time: i64, code: i32, message: String, advanced_order_reject_json: String, }, NextValidId { order_id: i32, }, CurrentTime { time: i64, }, CurrentTimeInMillis { time_in_millis: i64, }, MarketDataType { req_id: i32, market_data_type: i32, }, TickPrice { req_id: i32, tick_type: i32, price: f64, attrib: i32, }, TickSize { req_id: i32, tick_type: i32, size: Decimal, }, TickGeneric { req_id: i32, tick_type: i32, value: f64, }, TickString { req_id: i32, tick_type: i32, value: String, }, TickEfp { req_id: i32, tick_type: i32, basis_points: f64, formatted_basis_points: String, total_dividends: f64, hold_days: i32, future_last_trade_date: String, dividend_impact: f64, dividends_to_last_trade_date: f64, }, TickSnapshotEnd { req_id: i32, }, TickOptionComputation { req_id: i32, tick_type: i32, tick_attrib: i32, implied_vol: f64, delta: f64, opt_price: f64, pv_dividend: f64, gamma: f64, vega: f64, theta: f64, und_price: f64, }, TickReqParams { req_id: i32, min_tick: String, bbo_exchange: String, snapshot_permissions: i32, last_price_precision: String, last_size_precision: String, }, CommissionAndFeesReport { report: CommissionAndFeesReport, }, DeltaNeutralValidation { req_id: i32, delta_neutral_contract: DeltaNeutralContract, }, OrderStatus { order_id: i32, status: String, filled: Decimal, remaining: Decimal, avg_fill_price: f64, perm_id: i64, parent_id: i32, last_fill_price: f64, client_id: i32, why_held: String, market_cap_price: f64, }, OpenOrder { order_id: i32, contract: Box<Contract>, order: Box<Order>, order_state: Box<OrderState>, }, OpenOrderEnd, ContractDetails { req_id: i32, details: Box<ContractDetails>, }, BondContractDetails { req_id: i32, details: Box<ContractDetails>, }, ContractDetailsEnd { req_id: i32, }, ExecutionDetails { req_id: i32, contract: Box<Contract>, execution: Execution, }, ExecutionDetailsEnd { req_id: i32, }, MarketDepth { req_id: i32, position: i32, operation: i32, side: i32, price: f64, size: Decimal, market_maker: String, is_smart_depth: bool, }, MarketDepthExchanges { descriptions: Vec<DepthMarketDataDescription>, }, SmartComponents { req_id: i32, components: Vec<SmartComponent>, }, RerouteMarketDataRequest { req_id: i32, con_id: i32, exchange: String, }, RerouteMarketDepthRequest { req_id: i32, con_id: i32, exchange: String, }, HistoricalData { req_id: i32, bar: BarData, }, HistoricalDataBars { req_id: i32, bars: Vec<BarData>, }, HistoricalDataUpdate { req_id: i32, bar: BarData, }, HistoricalDataEnd { req_id: i32, start: String, end: String, }, HistoricalTicks { req_id: i32, ticks: Vec<HistoricalTick>, done: bool, }, HistoricalTicksBidAsk { req_id: i32, ticks: Vec<HistoricalTickBidAsk>, done: bool, }, HistoricalTicksLast { req_id: i32, ticks: Vec<HistoricalTickLast>, done: bool, }, TickByTick { req_id: i32, tick_type: i32, tick: Option<TickByTick>, }, HistoricalSchedule { req_id: i32, start_date_time: String, end_date_time: String, time_zone: String, sessions: Vec<HistoricalSession>, }, Position { account: String, contract: Box<Contract>, position: Decimal, avg_cost: f64, }, PositionEnd, PositionMulti { req_id: i32, account: String, model_code: String, contract: Box<Contract>, position: Decimal, avg_cost: f64, }, PositionMultiEnd { req_id: i32, }, AccountValue { key: String, value: String, currency: String, account_name: String, }, PortfolioValue { contract: Box<Contract>, position: Decimal, market_price: f64, market_value: f64, average_cost: f64, unrealized_pnl: f64, realized_pnl: f64, account_name: String, }, AccountUpdateTime { timestamp: String, }, AccountDownloadEnd { account_name: String, }, AccountSummary { req_id: i32, account: String, tag: String, value: String, currency: String, }, AccountSummaryEnd { req_id: i32, }, AccountUpdateMulti { req_id: i32, account: String, model_code: String, key: String, value: String, currency: String, }, AccountUpdateMultiEnd { req_id: i32, }, RealTimeBar { req_id: i32, time: i64, bar: BarData, }, HeadTimestamp { req_id: i32, head_timestamp: String, }, HistogramData { req_id: i32, items: Vec<HistogramEntry>, }, ScannerParameters { xml: String, }, ScannerData { req_id: i32, rows: Vec<ScannerDataRow>, }, ScannerDataEnd { req_id: i32, }, SoftDollarTiers { req_id: i32, tiers: Vec<SoftDollarTier>, }, FamilyCodes { family_codes: Vec<FamilyCode>, }, SymbolSamples { req_id: i32, descriptions: Vec<ContractDescription>, }, SecurityDefinitionOptionParameter { req_id: i32, exchange: String, underlying_con_id: i32, trading_class: String, multiplier: String, expirations: Vec<String>, strikes: Vec<f64>, }, SecurityDefinitionOptionParameterEnd { req_id: i32, }, MarketRule { market_rule_id: i32, price_increments: Vec<PriceIncrement>, }, Pnl { req_id: i32, daily_pnl: f64, unrealized_pnl: f64, realized_pnl: f64, }, PnlSingle { req_id: i32, position: Decimal, daily_pnl: f64, unrealized_pnl: f64, realized_pnl: f64, value: f64, }, NewsArticle { req_id: i32, article_type: i32, article_text: String, }, NewsBulletin { news_msg_id: i32, news_msg_type: i32, news_message: String, originating_exch: String, }, NewsProviders { providers: Vec<NewsProvider>, }, HistoricalNews { req_id: i32, time: String, provider_code: String, article_id: String, headline: String, }, HistoricalNewsEnd { req_id: i32, has_more: bool, }, TickNews { req_id: i32, timestamp: i64, provider_code: String, article_id: String, headline: String, extra_data: String, }, WshMetaData { req_id: i32, data_json: String, }, WshEventData { req_id: i32, data_json: String, }, ReceiveFa { fa_data_type: i32, xml: String, }, ReplaceFaEnd { req_id: i32, text: String, }, DisplayGroupList { req_id: i32, groups: String, }, DisplayGroupUpdated { req_id: i32, contract_info: String, }, VerifyMessageApi { api_data: String, }, VerifyCompleted { is_successful: bool, error_text: String, }, VerifyAndAuthMessageApi { api_data: String, challenge: String, }, VerifyAndAuthCompleted { is_successful: bool, error_text: String, }, ConfigResponse { req_id: i32, status: String, message: String, }, UpdateConfigResponse { req_id: i32, status: String, message: String, changed_fields: Vec<String>, errors: Vec<String>, }, OrderBound { perm_id: i64, client_id: i32, order_id: i32, }, CompletedOrder { contract: Box<Contract>, order: Box<Order>, order_state: Box<OrderState>, }, CompletedOrdersEnd, UserInfo { req_id: i32, white_branding_id: String, }, ManagedAccounts { accounts: String, }, Raw { msg_id: i32, fields: Vec<String>, }, RawProtobuf { msg_id: i32, payload: Vec<u8>, },
}
Expand description

A normalized TWS callback event.

Variants§

§

ConnectAck

Connection completed.

§

ConnectionClosed

Connection closed.

§

Error

Error callback.

Fields

§req_id: i32

Request id.

§time: i64

Error time in milliseconds or server-provided timestamp.

§code: i32

Error code.

§message: String

Error message.

§advanced_order_reject_json: String

Advanced order reject payload.

§

NextValidId

Next valid order id.

Fields

§order_id: i32

Order id.

§

CurrentTime

Current time.

Fields

§time: i64

Unix timestamp seconds.

§

CurrentTimeInMillis

Current time in milliseconds.

Fields

§time_in_millis: i64

Unix timestamp milliseconds.

§

MarketDataType

Market data type.

Fields

§req_id: i32

Request id.

§market_data_type: i32

Market data type.

§

TickPrice

Tick price.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§price: f64

Price.

§attrib: i32

Attributes as raw bitset.

§

TickSize

Tick size.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§size: Decimal

Size.

§

TickGeneric

Generic tick value.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§value: f64

Value.

§

TickString

Tick string.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§value: String

Value.

§

TickEfp

Exchange-for-physical tick.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§basis_points: f64

Basis points.

§formatted_basis_points: String

Formatted basis points.

§total_dividends: f64

Total dividends.

§hold_days: i32

Hold days.

§future_last_trade_date: String

Future last trade date.

§dividend_impact: f64

Dividend impact.

§dividends_to_last_trade_date: f64

Dividends to last trade date.

§

TickSnapshotEnd

Tick snapshot end.

Fields

§req_id: i32

Request id.

§

TickOptionComputation

Option computation tick.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§tick_attrib: i32

Attribute bitset.

§implied_vol: f64

Implied volatility.

§delta: f64

Delta.

§opt_price: f64

Option price.

§pv_dividend: f64

Present value dividend.

§gamma: f64

Gamma.

§vega: f64

Vega.

§theta: f64

Theta.

§und_price: f64

Underlying price.

§

TickReqParams

Tick request parameters.

Fields

§req_id: i32

Request id.

§min_tick: String

Minimum tick.

§bbo_exchange: String

BBO exchange.

§snapshot_permissions: i32

Snapshot permissions.

§last_price_precision: String

Last price precision.

§last_size_precision: String

Last size precision.

§

CommissionAndFeesReport

Commission and fees report callback.

Fields

§

DeltaNeutralValidation

Delta-neutral validation callback.

Fields

§req_id: i32

Request id.

§delta_neutral_contract: DeltaNeutralContract

Delta-neutral contract.

§

OrderStatus

Order status.

Fields

§order_id: i32

Order id.

§status: String

Status text.

§filled: Decimal

Filled quantity.

§remaining: Decimal

Remaining quantity.

§avg_fill_price: f64

Average fill price.

§perm_id: i64

Permanent id.

§parent_id: i32

Parent id.

§last_fill_price: f64

Last fill price.

§client_id: i32

Client id.

§why_held: String

Why held.

§market_cap_price: f64

Market cap price.

§

OpenOrder

Open order callback.

Fields

§order_id: i32

Order id.

§contract: Box<Contract>

Contract.

§order: Box<Order>

Order.

§order_state: Box<OrderState>

Order state.

§

OpenOrderEnd

Open order end.

§

ContractDetails

Contract details.

Fields

§req_id: i32

Request id.

§details: Box<ContractDetails>

Details.

§

BondContractDetails

Bond contract details.

Fields

§req_id: i32

Request id.

§details: Box<ContractDetails>

Details.

§

ContractDetailsEnd

Contract details end.

Fields

§req_id: i32

Request id.

§

ExecutionDetails

Execution details.

Fields

§req_id: i32

Request id.

§contract: Box<Contract>

Contract.

§execution: Execution

Execution details.

§

ExecutionDetailsEnd

Execution details end.

Fields

§req_id: i32

Request id.

§

MarketDepth

Market depth update.

Fields

§req_id: i32

Request id.

§position: i32

Position.

§operation: i32

Operation.

§side: i32

Side.

§price: f64

Price.

§size: Decimal

Size.

§market_maker: String

Market maker.

§is_smart_depth: bool

Smart depth flag.

§

MarketDepthExchanges

Market depth exchanges.

Fields

§descriptions: Vec<DepthMarketDataDescription>

Exchange descriptions.

§

SmartComponents

Smart components callback.

Fields

§req_id: i32

Request id.

§components: Vec<SmartComponent>

Components.

§

RerouteMarketDataRequest

Reroute market-data request.

Fields

§req_id: i32

Request id.

§con_id: i32

Contract id.

§exchange: String

Exchange.

§

RerouteMarketDepthRequest

Reroute market-depth request.

Fields

§req_id: i32

Request id.

§con_id: i32

Contract id.

§exchange: String

Exchange.

§

HistoricalData

Historical data bar.

Fields

§req_id: i32

Request id.

§bar: BarData

Bar.

§

HistoricalDataBars

Historical data batch.

Fields

§req_id: i32

Request id.

§bars: Vec<BarData>

Bars.

§

HistoricalDataUpdate

Historical data update.

Fields

§req_id: i32

Request id.

§bar: BarData

Bar.

§

HistoricalDataEnd

Historical data end.

Fields

§req_id: i32

Request id.

§start: String

Start marker.

§end: String

End marker.

§

HistoricalTicks

Historical midpoint/trade ticks callback.

Fields

§req_id: i32

Request id.

§ticks: Vec<HistoricalTick>

Ticks.

§done: bool

Done marker.

§

HistoricalTicksBidAsk

Historical bid/ask ticks callback.

Fields

§req_id: i32

Request id.

§done: bool

Done marker.

§

HistoricalTicksLast

Historical last trade ticks callback.

Fields

§req_id: i32

Request id.

§ticks: Vec<HistoricalTickLast>

Ticks.

§done: bool

Done marker.

§

TickByTick

Tick-by-tick callback.

Fields

§req_id: i32

Request id.

§tick_type: i32

Tick type.

§tick: Option<TickByTick>

Tick payload.

§

HistoricalSchedule

Historical schedule callback.

Fields

§req_id: i32

Request id.

§start_date_time: String

Schedule start.

§end_date_time: String

Schedule end.

§time_zone: String

Time zone.

§sessions: Vec<HistoricalSession>

Sessions.

§

Position

Position callback.

Fields

§account: String

Account.

§contract: Box<Contract>

Contract.

§position: Decimal

Position.

§avg_cost: f64

Average cost.

§

PositionEnd

Position end.

§

PositionMulti

Position multi callback.

Fields

§req_id: i32

Request id.

§account: String

Account.

§model_code: String

Model code.

§contract: Box<Contract>

Contract.

§position: Decimal

Position.

§avg_cost: f64

Average cost.

§

PositionMultiEnd

Position multi end.

Fields

§req_id: i32

Request id.

§

AccountValue

Account value update.

Fields

§key: String

Key.

§value: String

Value.

§currency: String

Currency.

§account_name: String

Account name.

§

PortfolioValue

Portfolio value update.

Fields

§contract: Box<Contract>

Contract.

§position: Decimal

Position.

§market_price: f64

Market price.

§market_value: f64

Market value.

§average_cost: f64

Average cost.

§unrealized_pnl: f64

Unrealized PnL.

§realized_pnl: f64

Realized PnL.

§account_name: String

Account name.

§

AccountUpdateTime

Account update time.

Fields

§timestamp: String

Timestamp.

§

AccountDownloadEnd

Account download end.

Fields

§account_name: String

Account name.

§

AccountSummary

Account summary.

Fields

§req_id: i32

Request id.

§account: String

Account.

§tag: String

Tag.

§value: String

Value.

§currency: String

Currency.

§

AccountSummaryEnd

Account summary end.

Fields

§req_id: i32

Request id.

§

AccountUpdateMulti

Account update multi.

Fields

§req_id: i32

Request id.

§account: String

Account.

§model_code: String

Model code.

§key: String

Key.

§value: String

Value.

§currency: String

Currency.

§

AccountUpdateMultiEnd

Account update multi end.

Fields

§req_id: i32

Request id.

§

RealTimeBar

Real-time bar tick.

Fields

§req_id: i32

Request id.

§time: i64

Unix timestamp seconds.

§bar: BarData

Bar.

§

HeadTimestamp

Head timestamp.

Fields

§req_id: i32

Request id.

§head_timestamp: String

Head timestamp.

§

HistogramData

Histogram data.

Fields

§req_id: i32

Request id.

§items: Vec<HistogramEntry>

Price/size entries.

§

ScannerParameters

Scanner parameters XML.

Fields

§xml: String

XML payload.

§

ScannerData

Scanner data.

Fields

§req_id: i32

Request id.

§rows: Vec<ScannerDataRow>

Rows.

§

ScannerDataEnd

Scanner data end.

Fields

§req_id: i32

Request id.

§

SoftDollarTiers

Soft-dollar tiers.

Fields

§req_id: i32

Request id.

§tiers: Vec<SoftDollarTier>

Tiers.

§

FamilyCodes

Family codes.

Fields

§family_codes: Vec<FamilyCode>

Account family-code mappings.

§

SymbolSamples

Symbol samples callback.

Fields

§req_id: i32

Request id.

§descriptions: Vec<ContractDescription>

Contract descriptions.

§

SecurityDefinitionOptionParameter

Security definition option parameter callback.

Fields

§req_id: i32

Request id.

§exchange: String

Exchange.

§underlying_con_id: i32

Underlying contract id.

§trading_class: String

Trading class.

§multiplier: String

Multiplier.

§expirations: Vec<String>

Expirations.

§strikes: Vec<f64>

Strikes.

§

SecurityDefinitionOptionParameterEnd

Security definition option parameter end.

Fields

§req_id: i32

Request id.

§

MarketRule

Market rule.

Fields

§market_rule_id: i32

Market rule id.

§price_increments: Vec<PriceIncrement>

Price increments.

§

Pnl

PnL update.

Fields

§req_id: i32

Request id.

§daily_pnl: f64

Daily PnL.

§unrealized_pnl: f64

Unrealized PnL.

§realized_pnl: f64

Realized PnL.

§

PnlSingle

Single-contract PnL update.

Fields

§req_id: i32

Request id.

§position: Decimal

Position.

§daily_pnl: f64

Daily PnL.

§unrealized_pnl: f64

Unrealized PnL.

§realized_pnl: f64

Realized PnL.

§value: f64

Value.

§

NewsArticle

News article body.

Fields

§req_id: i32

Request id.

§article_type: i32

Article type.

§article_text: String

Article text.

§

NewsBulletin

News bulletin.

Fields

§news_msg_id: i32

Message id.

§news_msg_type: i32

Message type.

§news_message: String

Message text.

§originating_exch: String

Originating exchange.

§

NewsProviders

News providers.

Fields

§providers: Vec<NewsProvider>

Provider metadata.

§

HistoricalNews

Historical news item.

Fields

§req_id: i32

Request id.

§time: String

Time.

§provider_code: String

Provider code.

§article_id: String

Article id.

§headline: String

Headline.

§

HistoricalNewsEnd

Historical news end.

Fields

§req_id: i32

Request id.

§has_more: bool

Whether more data is available.

§

TickNews

Tick news item.

Fields

§req_id: i32

Request id.

§timestamp: i64

Timestamp.

§provider_code: String

Provider code.

§article_id: String

Article id.

§headline: String

Headline.

§extra_data: String

Extra data.

§

WshMetaData

WSH metadata.

Fields

§req_id: i32

Request id.

§data_json: String

JSON payload.

§

WshEventData

WSH event data.

Fields

§req_id: i32

Request id.

§data_json: String

JSON payload.

§

ReceiveFa

Receive FA data.

Fields

§fa_data_type: i32

FA data type.

§xml: String

XML payload.

§

ReplaceFaEnd

Replace FA end.

Fields

§req_id: i32

Request id.

§text: String

Response text.

§

DisplayGroupList

Display group list.

Fields

§req_id: i32

Request id.

§groups: String

Groups.

§

DisplayGroupUpdated

Display group updated.

Fields

§req_id: i32

Request id.

§contract_info: String

Contract info.

§

VerifyMessageApi

Verify message API.

Fields

§api_data: String

API data.

§

VerifyCompleted

Verify completed.

Fields

§is_successful: bool

Success flag.

§error_text: String

Error text.

§

VerifyAndAuthMessageApi

Verify-and-auth message API.

Fields

§api_data: String

API data.

§challenge: String

Challenge payload.

§

VerifyAndAuthCompleted

Verify-and-auth completed.

Fields

§is_successful: bool

Success flag.

§error_text: String

Error text.

§

ConfigResponse

Config response.

Fields

§req_id: i32

Request id.

§status: String

Status.

§message: String

Message.

§

UpdateConfigResponse

Update config response.

Fields

§req_id: i32

Request id.

§status: String

Status.

§message: String

Message.

§changed_fields: Vec<String>

Changed fields.

§errors: Vec<String>

Errors.

§

OrderBound

Order bound callback.

Fields

§perm_id: i64

Permanent id.

§client_id: i32

Client id.

§order_id: i32

Order id.

§

CompletedOrder

Completed order callback.

Fields

§contract: Box<Contract>

Contract.

§order: Box<Order>

Order.

§order_state: Box<OrderState>

Order state.

§

CompletedOrdersEnd

Completed orders end.

§

UserInfo

User info callback.

Fields

§req_id: i32

Request id.

§white_branding_id: String

White-branding id.

§

ManagedAccounts

Managed account list.

Fields

§accounts: String

Comma-separated accounts.

§

Raw

Raw callback not decoded into a typed variant yet.

Fields

§msg_id: i32

Message id.

§fields: Vec<String>

Raw fields.

§

RawProtobuf

Raw protobuf callback not decoded by this crate.

Fields

§msg_id: i32

Message id without protobuf offset.

§payload: Vec<u8>

Raw payload.

Implementations§

Source§

impl Event

Source

pub fn tick_type(&self) -> Option<TickType>

Returns a semantic tick type for tick events.

Source

pub fn market_data_type(&self) -> Option<MarketDataType>

Returns a semantic market-data type for a market-data-mode event.

Trait Implementations§

Source§

impl Clone for Event

Source§

fn clone(&self) -> Event

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Event

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Event

Source§

fn eq(&self, other: &Event) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Event

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnsafeUnpin for Event

§

impl UnwindSafe for Event

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.