Stochastics

Struct Stochastics 

Source
pub struct Stochastics {
    pub period_k: usize,
    pub period_d: usize,
    pub slowing: usize,
    pub ma_type: MovingAverageType,
    pub d_method: StochasticsDMethod,
    pub value_k: f64,
    pub value_d: f64,
    pub initialized: bool,
    /* private fields */
}

Fields§

§period_k: usize

The lookback period for %K calculation (highest high / lowest low).

§period_d: usize

The smoothing period for %D calculation.

§slowing: usize

The slowing period for %K smoothing (1 = no slowing (Nautilus original).

§ma_type: MovingAverageType

The moving average type used for slowing and MA-based %D.

§d_method: StochasticsDMethod

The method for calculating %D (Ratio = Nautilus original method, MovingAverage = MA Smoothed).

§value_k: f64

The current %K value (slowed if slowing > 1).

§value_d: f64

The current %D value.

§initialized: bool

Whether the indicator has received sufficient inputs to produce valid values.

Implementations§

Source§

impl Stochastics

Source

pub fn new(period_k: usize, period_d: usize) -> Self

Creates a new Stochastics instance with default parameters.

This is the backward-compatible constructor that produces identical output to the original Nautilus implementation, setting the following to:

  • slowing = 1 (no slowing applied to %K)
  • ma_type = Exponential (unused when slowing = 1 or with Ratio method)
  • d_method = Ratio (Nautilus native %D calculation)
§Panics

This function panics if:

  • period_k or period_d is less than 1 or greater than MAX_PERIOD.
Source

pub fn new_with_params( period_k: usize, period_d: usize, slowing: usize, ma_type: MovingAverageType, d_method: StochasticsDMethod, ) -> Self

Creates a new Stochastics instance with full parameter control.

§Parameters
  • period_k: The lookback period for %K (highest high / lowest low).
  • period_d: The smoothing period for %D.
  • slowing: MA smoothing period for raw %K (1 = no slowing, > 1 = smoothed).
  • ma_type: MA type for slowing and MA-based %D (EMA, SMA, Wilder, etc.).
  • d_method: %D calculation method (Ratio = Nautilus original, MovingAverage = MA smoothed).
§Panics

This function panics if:

  • period_k, period_d, or slowing is less than 1 or greater than MAX_PERIOD.
Source

pub fn update_raw(&mut self, high: f64, low: f64, close: f64)

Updates the indicator with raw price values.

§Parameters
  • high: The high price for the period.
  • low: The low price for the period.
  • close: The close price for the period.
Source§

impl Stochastics

Source

pub fn py_new( period_k: usize, period_d: usize, slowing: Option<usize>, ma_type: Option<MovingAverageType>, d_method: Option<StochasticsDMethod>, ) -> Self

Creates a new Stochastics indicator.

§Parameters

period_k : int The lookback period for %K calculation (highest high / lowest low). period_d : int The smoothing period for %D calculation. slowing : int, optional The slowing period for %K smoothing. Default is 1 (no slowing). Use >1 for MA smoothed %K. ma_type : MovingAverageType, optional The MA type for slowing and MA-based %D. Default is Exponential. d_method : StochasticsDMethod, optional The %D calculation method. Default is Ratio (Nautilus original). Use MovingAverage for MA smoothed %D.

Trait Implementations§

Source§

impl Debug for Stochastics

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for Stochastics

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Indicator for Stochastics

Source§

fn name(&self) -> String

Source§

fn has_inputs(&self) -> bool

Source§

fn initialized(&self) -> bool

Source§

fn handle_bar(&mut self, bar: &Bar)

Source§

fn reset(&mut self)

Source§

fn handle_delta(&mut self, delta: &OrderBookDelta)

Source§

fn handle_deltas(&mut self, deltas: &OrderBookDeltas)

Source§

fn handle_depth(&mut self, depth: &OrderBookDepth10)

Source§

fn handle_book(&mut self, book: &OrderBook)

Source§

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

Source§

fn handle_trade(&mut self, trade: &TradeTick)

Source§

impl<'py> IntoPyObject<'py> for Stochastics

Source§

type Target = Stochastics

The Python output type
Source§

type Output = Bound<'py, <Stochastics as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

The type returned in the event of a conversion error.
Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for Stochastics

Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for Stochastics

Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = c"\x00"

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = SendablePyClass<Stochastics>

This handles following two situations: Read more
Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<isize>

§

fn weaklist_offset() -> Option<isize>

Source§

impl PyClassNewTextSignature for Stochastics

Source§

const TEXT_SIGNATURE: &'static str = "(period_k, period_d, slowing=None, ma_type=None, d_method=None)"

Source§

impl PyMethods<Stochastics> for PyClassImplCollector<Stochastics>

Source§

fn py_methods(self) -> &'static PyClassItems

Source§

impl PyTypeInfo for Stochastics

Source§

const NAME: &'static str = "Stochastics"

Class name.
Source§

const MODULE: Option<&'static str>

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

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_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl DerefToPyAny for Stochastics

Source§

impl ExtractPyClassWithClone for Stochastics

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

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
§

impl<T, U> Into<U> for T
where U: From<T>,

§

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
§

impl<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

§

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>

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>

Converts self into a Python object. Read more
Source§

impl<'py, T> IntoPyObjectNautilusExt<'py> for T
where T: IntoPyObjectExt<'py>,

Source§

fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>

Convert self into a [Py<PyAny>] while panicking if the conversion fails. Read more
§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

const NAME: &'static str = T::NAME

👎Deprecated since 0.27.0: Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.
Name of self. This is used in error messages, for example.
§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Separable for T
where T: Display,

Source§

fn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String

Adds separators according to the given SeparatorPolicy. Read more
Source§

fn separate_with_commas(&self) -> String

Inserts a comma every three digits from the right. Read more
Source§

fn separate_with_spaces(&self) -> String

Inserts a space every three digits from the right. Read more
Source§

fn separate_with_dots(&self) -> String

Inserts a period every three digits from the right. Read more
Source§

fn separate_with_underscores(&self) -> String

Inserts an underscore every three digits from the right. Read more
§

impl<T> ToString for T
where T: Display + ?Sized,

§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

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
§

impl<T> Ungil for T
where T: Send,