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.
This method calculates the realized PnL by comparing the incoming bet with a corresponding bet derived from the current position.
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
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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
Source§type Output = Bound<'py, <BetPosition as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BetPosition as IntoPyObject<'py>>::Target>
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>
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
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§type ThreadChecker = SendablePyClass<BetPosition>
type ThreadChecker = SendablePyClass<BetPosition>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
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> for &'a BetPosition
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a BetPosition
Source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut BetPosition
impl<'a, 'py> PyFunctionArgument<'a, 'py> 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
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
PyTypeInfo::type_object
PyTypeInfo::type_object
].§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
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
PyTypeInfo::is_type_of
PyTypeInfo::is_type_of
].§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
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
PyTypeInfo::is_exact_type_of
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
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>
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>
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>
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
SeparatorPolicy
. Read more