Skip to main content

OptionChainManager

Struct OptionChainManager 

Source
pub struct OptionChainManager { /* private fields */ }
Expand description

Per-series option chain manager.

Each instance manages a single option series: its aggregator, handlers, timer, and lifecycle. The DataEngine holds one manager per active series.

Implementations§

Source§

impl OptionChainManager

Source

pub fn all_instrument_ids(&self) -> Vec<InstrumentId>

Returns all instrument IDs in the full catalog (not just the active set).

Source

pub fn venue(&self) -> Venue

Returns the venue for this option chain.

Source

pub fn teardown(&mut self, clock: &Rc<RefCell<dyn Clock>>)

Tears down this manager: unregisters all msgbus handlers and cancels the timer.

Source

pub fn handle_greeks(&mut self, greeks: &OptionGreeks)

Routes incoming greeks to the aggregator.

Also updates the ATM tracker from the forward price if ForwardPrice source is active, and triggers deferred bootstrap on the first arrival.

Source

pub fn handle_instrument_expired( &mut self, instrument_id: &InstrumentId, ) -> bool

Handles an expired/settled instrument by removing it from the aggregator, unregistering msgbus handlers, and pushing deferred wire unsubscribes.

Returns true if the aggregator catalog is now empty (all instruments expired), signaling the engine to tear down this entire manager.

Source

pub fn handle_quote(&mut self, quote: &QuoteTick)

Routes an incoming quote tick to the aggregator, then bootstraps if ready.

This handles both option instrument quotes (aggregator) and ATM source quotes (the aggregator’s ATM tracker handles filtering internally).

Source

pub fn add_instrument( &mut self, instrument_id: InstrumentId, strike: Price, kind: OptionKind, client: Option<&mut DataClientAdapter>, clock: &Rc<RefCell<dyn Clock>>, ) -> bool

Adds a dynamically discovered instrument to this option chain.

Registers msgbus handlers when the instrument falls in the active range and forwards wire-level subscriptions via client. Returns true if the instrument was newly inserted.

Source

pub fn publish_slice(&mut self, ts: UnixNanos)

Takes the accumulated snapshot and publishes it to the msgbus.

Trait Implementations§

Source§

impl Debug for OptionChainManager

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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
Source§

impl<T> Same for T

Source§

type Output = T

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

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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