pub struct IchimokuCloud {Show 16 fields
pub tenkan_period: usize,
pub kijun_period: usize,
pub senkou_period: usize,
pub displacement: usize,
pub tenkan_sen: f64,
pub kijun_sen: f64,
pub senkou_span_a: f64,
pub senkou_span_b: f64,
pub chikou_span: f64,
pub has_tenkan: bool,
pub has_kijun: bool,
pub has_senkou_a: bool,
pub has_senkou_b: bool,
pub has_chikou: bool,
pub count: usize,
pub initialized: bool,
/* private fields */
}Expand description
Ichimoku Kinko Hyo: the five-line cloud chart.
tenkan_sen = midpoint(high, low over tenkan_period)
kijun_sen = midpoint(high, low over kijun_period)
senkou_span_a = (tenkan_sen + kijun_sen) / 2 as computed `displacement - 1` bars ago
senkou_span_b = midpoint(high, low over senkou_period) as computed `displacement - 1` bars ago
chikou_span = close from `displacement - 1` bars agoThe two Senkou spans form the Kumo (cloud). Charts draw them displacement
bars ahead and the Chikou span displacement bars behind; streaming in
chronological order, the values visible at bar n are the ones buffered
displacement updates ago, that is bar n - displacement + 1.
Each line becomes available at its own bar: tenkan_sen after tenkan_period
bars, kijun_sen after kijun_period, chikou_span after displacement,
senkou_span_a after kijun_period + displacement - 1, and senkou_span_b
after senkou_period + displacement - 1 (77 bars at the classic
(9, 26, 52, 26)). The matching has_* flag reports whether each field
holds a value, and initialized gates on all five.
Fields§
§tenkan_period: usize§kijun_period: usize§senkou_period: usize§displacement: usize§tenkan_sen: f64§kijun_sen: f64§senkou_span_a: f64§senkou_span_b: f64§chikou_span: f64§has_tenkan: bool§has_kijun: bool§has_senkou_a: bool§has_senkou_b: bool§has_chikou: bool§count: usize§initialized: boolImplementations§
Source§impl IchimokuCloud
impl IchimokuCloud
Sourcepub fn new(
tenkan_period: usize,
kijun_period: usize,
senkou_period: usize,
displacement: usize,
) -> Self
pub fn new( tenkan_period: usize, kijun_period: usize, senkou_period: usize, displacement: usize, ) -> Self
Creates a new IchimokuCloud instance.
§Panics
Panics if:
- any of
tenkan_period,kijun_period,senkou_periodordisplacementis zero or exceeds 16,777,216. - the periods are not non-decreasing
(
tenkan_period <= kijun_period <= senkou_period).
Sourcepub fn update_raw(&mut self, high: f64, low: f64, close: f64)
pub fn update_raw(&mut self, high: f64, low: f64, close: f64)
Updates the indicator with the given high, low and close.
Trait Implementations§
Source§impl Debug for IchimokuCloud
impl Debug for IchimokuCloud
impl DerefToPyAny for IchimokuCloud
Source§impl Display for IchimokuCloud
impl Display for IchimokuCloud
impl ExtractPyClassWithClone for IchimokuCloud
Source§impl Indicator for IchimokuCloud
impl Indicator for IchimokuCloud
fn name(&self) -> String
fn has_inputs(&self) -> bool
fn initialized(&self) -> bool
fn handle_bar(&mut self, bar: &Bar)
fn reset(&mut self)
fn handle_delta(&mut self, delta: &OrderBookDelta)
fn handle_deltas(&mut self, deltas: &OrderBookDeltas)
fn handle_depth(&mut self, depth: &OrderBookDepth)
fn handle_book(&mut self, book: &OrderBook)
Source§fn handle_quote(&mut self, quote: &QuoteTick) -> Result<()>
fn handle_quote(&mut self, quote: &QuoteTick) -> Result<()>
fn handle_trade(&mut self, trade: &TradeTick)
Source§impl<'py> IntoPyObject<'py> for IchimokuCloud
impl<'py> IntoPyObject<'py> for IchimokuCloud
Source§type Target = IchimokuCloud
type Target = IchimokuCloud
Source§type Output = Bound<'py, <IchimokuCloud as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <IchimokuCloud 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 IchimokuCloud
impl PyClass for IchimokuCloud
Source§impl PyClassImpl for IchimokuCloud
impl PyClassImpl for IchimokuCloud
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§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Ichimoku Kinko Hyo: the five-line cloud chart.
///
/// ```text
/// tenkan_sen = midpoint(high, low over tenkan_period)
/// kijun_sen = midpoint(high, low over kijun_period)
/// senkou_span_a = (tenkan_sen + kijun_sen) / 2 as computed `displacement - 1` bars ago
/// senkou_span_b = midpoint(high, low over senkou_period) as computed `displacement - 1` bars ago
/// chikou_span = close from `displacement - 1` bars ago
/// ```
///
/// The two Senkou spans form the Kumo (cloud). Charts draw them `displacement`
/// bars ahead and the Chikou span `displacement` bars behind; streaming in
/// chronological order, the values visible at bar `n` are the ones buffered
/// `displacement` updates ago, that is bar `n - displacement + 1`.
///
/// Each line becomes available at its own bar: `tenkan_sen` after `tenkan_period`
/// bars, `kijun_sen` after `kijun_period`, `chikou_span` after `displacement`,
/// `senkou_span_a` after `kijun_period + displacement - 1`, and `senkou_span_b`
/// after `senkou_period + displacement - 1` (77 bars at the classic
/// `(9, 26, 52, 26)`). The matching `has_*` flag reports whether each field
/// holds a value, and `initialized` gates on all five.
const RAW_DOC: &'static CStr = /// Ichimoku Kinko Hyo: the five-line cloud chart. /// /// ```text /// tenkan_sen = midpoint(high, low over tenkan_period) /// kijun_sen = midpoint(high, low over kijun_period) /// senkou_span_a = (tenkan_sen + kijun_sen) / 2 as computed `displacement - 1` bars ago /// senkou_span_b = midpoint(high, low over senkou_period) as computed `displacement - 1` bars ago /// chikou_span = close from `displacement - 1` bars ago /// ``` /// /// The two Senkou spans form the Kumo (cloud). Charts draw them `displacement` /// bars ahead and the Chikou span `displacement` bars behind; streaming in /// chronological order, the values visible at bar `n` are the ones buffered /// `displacement` updates ago, that is bar `n - displacement + 1`. /// /// Each line becomes available at its own bar: `tenkan_sen` after `tenkan_period` /// bars, `kijun_sen` after `kijun_period`, `chikou_span` after `displacement`, /// `senkou_span_a` after `kijun_period + displacement - 1`, and `senkou_span_b` /// after `senkou_period + displacement - 1` (77 bars at the classic /// `(9, 26, 52, 26)`). The matching `has_*` flag reports whether each field /// holds a value, and `initialized` gates on all five.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<IchimokuCloud as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<IchimokuCloud>
type Layout = <<IchimokuCloud as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<IchimokuCloud>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForIchimokuCloud
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<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for IchimokuCloud
impl PyClassNewTextSignature for IchimokuCloud
const TEXT_SIGNATURE: &'static str = "(tenkan_period=9, kijun_period=26, senkou_period=52, displacement=26)"
Source§impl PyStubType for IchimokuCloud
impl PyStubType for IchimokuCloud
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for IchimokuCloud
impl PyTypeInfo for IchimokuCloud
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
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 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_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.Auto Trait Implementations§
impl Freeze for IchimokuCloud
impl RefUnwindSafe for IchimokuCloud
impl Send for IchimokuCloud
impl Sync for IchimokuCloud
impl Unpin for IchimokuCloud
impl UnsafeUnpin for IchimokuCloud
impl UnwindSafe for IchimokuCloud
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§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 more§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>where
Self: IntoPyObject<'py, Error = !>,
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>where
Self: IntoPyObject<'py, Error = !>,
self into a [Py<PyAny>] when the underlying conversion is infallible.§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more