pub trait GenericPosition {
Show 28 methods
// Required methods
fn symbol(&self) -> &str;
fn underlying_symbol(&self) -> &str;
fn is_long(&self) -> bool;
fn unit_cost(&self) -> Option<Rational64>;
fn unit_cost_mut(&mut self) -> &mut Option<Rational64>;
fn unit_bid_price(&self) -> Option<Rational64>;
fn unit_bid_price_mut(&mut self) -> &mut Option<Rational64>;
fn unit_ask_price(&self) -> Option<Rational64>;
fn unit_ask_price_mut(&mut self) -> &mut Option<Rational64>;
fn unit_delta(&self) -> Option<NotNan<f64>>;
fn unit_vega(&self) -> Option<NotNan<f64>>;
fn unit_theta(&self) -> Option<NotNan<f64>>;
fn quantity(&self) -> Rational64;
fn quantity_mut(&mut self) -> &mut Rational64;
fn equivalent_strike_price(&self) -> Rational64;
fn equivalent_option_type(&self) -> OptionType;
fn equivalent_lot_size(&self) -> i64;
// Provided methods
fn signed_quantity(&self) -> Rational64 { ... }
fn cost(&self) -> Option<Rational64> { ... }
fn net_liq(&self) -> Option<Rational64> { ... }
fn bid_price(&self) -> Option<Rational64> { ... }
fn ask_price(&self) -> Option<Rational64> { ... }
fn mid_price(&self) -> Option<Rational64> { ... }
fn unit_mid_price(&self) -> Option<Rational64> { ... }
fn delta(&self) -> Option<NotNan<f64>> { ... }
fn vega(&self) -> Option<NotNan<f64>> { ... }
fn theta(&self) -> Option<NotNan<f64>> { ... }
fn profit_at_expiry(&self, underlying_price: Rational64) -> Rational64 { ... }
}
Expand description
Defines methods that are shared between option and share positions.
Required Methods§
Sourcefn symbol(&self) -> &str
fn symbol(&self) -> &str
For an option position, the symbol of the option itself. For a share position, equal to Self::underlying_symbol()
.
Sourcefn underlying_symbol(&self) -> &str
fn underlying_symbol(&self) -> &str
For an option position, the symbol of the instrument that the option is a derivative of. For a share position, the symbol of the stock.
Sourcefn unit_cost(&self) -> Option<Rational64>
fn unit_cost(&self) -> Option<Rational64>
The original cost per option contract or share in this position. If the position is long, this should be negative.
fn unit_cost_mut(&mut self) -> &mut Option<Rational64>
Sourcefn unit_bid_price(&self) -> Option<Rational64>
fn unit_bid_price(&self) -> Option<Rational64>
The current bid price per option contract or share in this position. If the position is long, this should be positive.
fn unit_bid_price_mut(&mut self) -> &mut Option<Rational64>
Sourcefn unit_ask_price(&self) -> Option<Rational64>
fn unit_ask_price(&self) -> Option<Rational64>
The current ask price per option contract or share in this position. If the position is long, this should be positive.
fn unit_ask_price_mut(&mut self) -> &mut Option<Rational64>
Sourcefn unit_delta(&self) -> Option<NotNan<f64>>
fn unit_delta(&self) -> Option<NotNan<f64>>
The delta per option contract or share in this position, where the delta equivalent of 1 share == 0.01.
Sourcefn unit_vega(&self) -> Option<NotNan<f64>>
fn unit_vega(&self) -> Option<NotNan<f64>>
The vega per option contract or share in this position.
Sourcefn unit_theta(&self) -> Option<NotNan<f64>>
fn unit_theta(&self) -> Option<NotNan<f64>>
The theta per option contract in this position.
Sourcefn quantity(&self) -> Rational64
fn quantity(&self) -> Rational64
The number of option contracts or shares in this position.
fn quantity_mut(&mut self) -> &mut Rational64
Sourcefn equivalent_strike_price(&self) -> Rational64
fn equivalent_strike_price(&self) -> Rational64
For an option position, the strike price of the option. For a share position, the strike price of the call option with the equivalent cost at the time of purchase i.e. $0.
Sourcefn equivalent_option_type(&self) -> OptionType
fn equivalent_option_type(&self) -> OptionType
For an option position, the type of the option. For a share position, equal to OptionType::Call
.
Sourcefn equivalent_lot_size(&self) -> i64
fn equivalent_lot_size(&self) -> i64
For an option position, the number of units of the underlying per option contract. For a share position, equal to 1.
Provided Methods§
Sourcefn signed_quantity(&self) -> Rational64
fn signed_quantity(&self) -> Rational64
Equal to Self::quantity()
, but negative if the position is short.
Sourcefn cost(&self) -> Option<Rational64>
fn cost(&self) -> Option<Rational64>
The total original cost of all option contracts or shares in this position.
fn net_liq(&self) -> Option<Rational64>
Sourcefn bid_price(&self) -> Option<Rational64>
fn bid_price(&self) -> Option<Rational64>
The total current bid price for all option contracts or shares in this position.
Sourcefn ask_price(&self) -> Option<Rational64>
fn ask_price(&self) -> Option<Rational64>
The total current ask price for all option contracts or shares in this position.
Sourcefn mid_price(&self) -> Option<Rational64>
fn mid_price(&self) -> Option<Rational64>
The total current mid price for all option contracts or shares in this position.
Sourcefn unit_mid_price(&self) -> Option<Rational64>
fn unit_mid_price(&self) -> Option<Rational64>
The current mid price per option contract or share in this position. If the position is long, this will be positive.
Sourcefn delta(&self) -> Option<NotNan<f64>>
fn delta(&self) -> Option<NotNan<f64>>
The total delta for all option contracts or shares in this position, where the delta equivalent of 1 share == 0.01.
Sourcefn vega(&self) -> Option<NotNan<f64>>
fn vega(&self) -> Option<NotNan<f64>>
The total vega for all option contracts or shares in this position.
Sourcefn theta(&self) -> Option<NotNan<f64>>
fn theta(&self) -> Option<NotNan<f64>>
The total theta for all option contracts or shares in this position.