pub struct BetPosition { /* private fields */ }
Expand description
A position comprising one or more bets.
Implementations§
Source§impl BetPosition
impl BetPosition
Sourcepub fn realized_pnl(&self) -> Decimal
pub fn realized_pnl(&self) -> Decimal
Returns the position’s realized profit and loss.
Sourcepub fn side(&self) -> Option<BetSide>
pub fn side(&self) -> Option<BetSide>
Returns the overall side of the position.
If exposure is positive the side is BACK; if negative, LAY; if zero, None.
Sourcepub fn as_bet(&self) -> Option<Bet>
pub fn as_bet(&self) -> Option<Bet>
Converts the current position into a single bet, if possible.
Sourcepub fn add_bet(&mut self, bet: Bet)
pub fn add_bet(&mut self, bet: Bet)
Adds a bet to the position, adjusting exposure and realized PnL.
Sourcepub fn position_increase(&mut self, bet: &Bet)
pub fn position_increase(&mut self, bet: &Bet)
Increases the position with the provided bet.
Sourcepub fn position_decrease(&mut self, bet: &Bet)
pub fn position_decrease(&mut self, bet: &Bet)
Decreases the position with the provided bet, updating exposure and realized P&L.
§Panics
Panics if there is no current side (empty position) when unwrapping the side.
Sourcepub fn unrealized_pnl(&self, price: Decimal) -> Decimal
pub fn unrealized_pnl(&self, price: Decimal) -> Decimal
Calculates the unrealized profit and loss given a current price.
Sourcepub fn total_pnl(&self, price: Decimal) -> Decimal
pub fn total_pnl(&self, price: Decimal) -> Decimal
Returns the total profit and loss (realized plus unrealized) given a current price.
Sourcepub fn flattening_bet(&self, price: Decimal) -> Option<Bet>
pub fn flattening_bet(&self, price: Decimal) -> Option<Bet>
Creates a bet that would flatten (neutralize) the current position.
Trait Implementations§
Source§impl Clone for BetPosition
impl Clone for BetPosition
Source§fn clone(&self) -> BetPosition
fn clone(&self) -> BetPosition
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for BetPosition
impl Debug for BetPosition
Source§impl Default for BetPosition
impl Default for BetPosition
Source§impl Display for BetPosition
impl Display for BetPosition
Source§impl IntoPy<Py<PyAny>> for BetPosition
impl IntoPy<Py<PyAny>> for BetPosition
Source§impl<'py> IntoPyObject<'py> for BetPosition
impl<'py> IntoPyObject<'py> for BetPosition
Source§type Target = BetPosition
type Target = BetPosition
The Python output type
Source§type Output = Bound<'py, <BetPosition as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BetPosition as IntoPyObject<'py>>::Target>
The smart pointer type to use. Read more
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Performs the conversion.
Source§impl PyClass for BetPosition
impl PyClass for BetPosition
Source§impl PyClassImpl for BetPosition
impl PyClassImpl for BetPosition
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
#[pyclass(subclass)]
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
Source§type ThreadChecker = SendablePyClass<BetPosition>
type ThreadChecker = SendablePyClass<BetPosition>
This handles following two situations: Read more
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature<BetPosition> for PyClassImplCollector<BetPosition>
impl PyClassNewTextSignature<BetPosition> for PyClassImplCollector<BetPosition>
fn new_text_signature(self) -> Option<&'static str>
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a BetPosition
impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a BetPosition
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a mut BetPosition
impl<'a, 'py> PyFunctionArgument<'a, 'py, false> for &'a mut BetPosition
Source§impl PyMethods<BetPosition> for PyClassImplCollector<BetPosition>
impl PyMethods<BetPosition> for PyClassImplCollector<BetPosition>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for BetPosition
impl PyTypeInfo for BetPosition
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::type_object
Deprecated name for [
PyTypeInfo::type_object
].§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type or a subclass of this type.§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::is_type_of
Deprecated name for [
PyTypeInfo::is_type_of
].§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type.§fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
👎Deprecated since 0.23.0: renamed to
PyTypeInfo::is_exact_type_of
Deprecated name for [
PyTypeInfo::is_exact_type_of
].impl DerefToPyAny for BetPosition
Auto Trait Implementations§
impl Freeze for BetPosition
impl RefUnwindSafe for BetPosition
impl Send for BetPosition
impl Sync for BetPosition
impl Unpin for BetPosition
impl UnwindSafe for BetPosition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
§fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
§fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
Converts
self
into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
Converts
self
into an owned Python object, dropping type information and unbinding it
from the 'py
lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
Converts
self
into a Python object. Read moreSource§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
Source§impl<T> Separable for Twhere
T: Display,
impl<T> Separable for Twhere
T: Display,
Source§fn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
fn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
Adds separators according to the given
SeparatorPolicy
. Read moreSource§fn separate_with_commas(&self) -> String
fn separate_with_commas(&self) -> String
Inserts a comma every three digits from the right. Read more
Source§fn separate_with_spaces(&self) -> String
fn separate_with_spaces(&self) -> String
Inserts a space every three digits from the right. Read more
Source§fn separate_with_dots(&self) -> String
fn separate_with_dots(&self) -> String
Inserts a period every three digits from the right. Read more
Source§fn separate_with_underscores(&self) -> String
fn separate_with_underscores(&self) -> String
Inserts an underscore every three digits from the right. Read more