Skip to main content

UserDataConfig

Struct UserDataConfig 

Source
pub struct UserDataConfig {
    pub alor: AlorConfig,
    pub source: Arc<str>,
    pub order_state_buffer: usize,
    pub reconnect_min: Duration,
    pub reconnect_max: Duration,
    pub subscribe_ack_timeout: Duration,
    pub price_grid: PriceGrid,
}
Expand description

Settings of UserDataConnector.

The portfolio and the exchange come from the alor config: see AlorConfig::portfolio.

§Examples

use brokapi_alor_protocol::config::AlorConfig;
use brokapi_alor::UserDataConfig;

let alor = AlorConfig::new("refresh-token".into()).with_portfolio("D12345");
let mut cfg = UserDataConfig::new(alor, "alor-ud");
assert_eq!(cfg.order_state_buffer, 1024);
// A bigger buffer gives a slow bot more room before an overflow closes the trading gate.
cfg.order_state_buffer = 4096;

Fields§

§alor: AlorConfig

Client settings of the ALOR API: refresh token, contour, timeouts, endpoints, portfolio, exchange.

§source: Arc<str>

Envelope source label, e.g. "alor-ud".

§order_state_buffer: usize

Capacity of the lossless buffer of each order state and execution subscription (default 1024 events). When it is full, the subscription reports an overflow and the connector becomes degraded: commands are refused until the next successful reconcile.

§reconnect_min: Duration

Pause before the first reconnect of the WebSocket, doubling up to reconnect_max (default 0.5 s).

§reconnect_max: Duration

Upper bound of the pause (default 30 s).

§subscribe_ack_timeout: Duration

How long a subscribe_* call waits for the broker to confirm the subscription (default 3 s), see MarketDataConfig::subscribe_ack_timeout.

§price_grid: PriceGrid

Price steps and lot sizes the connector checks orders against (default: empty, only the lot sizes the connector reads from the broker). Fill it with [PriceGrid::learn] from the trading parameters of the instruments you trade. A price off the step is then refused with Rejected (price_off_step) before anything is sent.

Implementations§

Source§

impl UserDataConfig

Source

pub fn new(alor: AlorConfig, source: impl Into<Arc<str>>) -> Self

Creates a config with the default buffer (1024 events) and the default reconnect pauses.

source is the label put in every Envelope this connector emits.

Trait Implementations§

Source§

impl Clone for UserDataConfig

Source§

fn clone(&self) -> UserDataConfig

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 UserDataConfig

Source§

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

Formats the value using the given formatter. 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> 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