Skip to main content

QuotesData

Struct QuotesData 

Source
pub struct QuotesData {
Show 15 fields pub ticker: String, pub class_code: String, pub date_time: Option<String>, pub bid: Option<Decimal>, pub ask: Option<Decimal>, pub last_price: Option<Decimal>, pub open: Option<Decimal>, pub close: Option<Decimal>, pub high: Option<Decimal>, pub low: Option<Decimal>, pub change: Option<Decimal>, pub change_rate: Option<f64>, pub value: Option<Decimal>, pub volume: Option<Decimal>, pub trade_num: Option<u64>,
}
Expand description

A quote update of one instrument.

The current docs name the best sell price offer and the last price last. Older samples used ask and lastPrice. Both spellings are read into QuotesData::ask and QuotesData::last_price. The docs give no quantity at the best prices.

§Examples

use brokapi_bcs_protocol::ws::models::QuotesData;

// The current docs form.
let q: QuotesData = serde_json::from_str(
    r#"{"ticker":"SBER","classCode":"TQBR","bid":305.86,"offer":305.96,"last":305.97}"#,
)?;
assert_eq!((q.bid, q.ask, q.last_price), (Some(dec!(305.86)), Some(dec!(305.96)), Some(dec!(305.97))));

// The older form.
let old: QuotesData = serde_json::from_str(r#"{"ticker":"SBER","classCode":"TQBR","ask":305.96,"lastPrice":305.97}"#)?;
assert_eq!(old.ask, Some(dec!(305.96)));

Fields§

§ticker: String

Ticker.

§class_code: String

Class code (board).

§date_time: Option<String>

Time the data was updated (UTC), kept as the text the broker sends.

§bid: Option<Decimal>

Best buy price.

§ask: Option<Decimal>

Best sell price. The broker docs call the field offer, older samples ask. Both are read.

§last_price: Option<Decimal>

Price of the last trade. The broker docs call the field last, older samples lastPrice. Both are read.

§open: Option<Decimal>

Opening price of the session.

§close: Option<Decimal>

Closing price of the previous session.

§high: Option<Decimal>

Highest price of the day.

§low: Option<Decimal>

Lowest price of the day.

§change: Option<Decimal>

Price change over the session, in the price currency.

§change_rate: Option<f64>

Price change over the session, in percent.

§value: Option<Decimal>

Traded value. Not in the current docs, read if the broker sends it.

§volume: Option<Decimal>

Traded volume. Not in the current docs, read if the broker sends it.

§trade_num: Option<u64>

Number of trades. Not in the current docs, read if the broker sends it.

Trait Implementations§

Source§

impl Clone for QuotesData

Source§

fn clone(&self) -> QuotesData

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 QuotesData

Source§

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

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

impl<'de> Deserialize<'de> for QuotesData

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more