pub struct CoinApiOhlcvLoader { /* private fields */ }Expand description
Loads [Bar]s from exchange-wide T-OHLCV_ACTIVE_CONSOLIDATED files.
Each row names its symbol by the numeric symbol_id, the REST symbol_id_int, so the loader
holds the instrument each one maps to and skips rows of unmapped symbols. Infers each
instrument’s price and size precisions from its values. Captured sx_sum values can carry
numeric tails, so the loader rounds each volume half to even at the maximum precision.
It rejects negative volumes and positive volumes rounded to zero.
Implementations§
Source§impl CoinApiOhlcvLoader
impl CoinApiOhlcvLoader
Sourcepub fn new(
instrument_ids: impl IntoIterator<Item = (u64, InstrumentId)>,
) -> Self
pub fn new( instrument_ids: impl IntoIterator<Item = (u64, InstrumentId)>, ) -> Self
Creates a loader mapping each numeric symbol_id to an instrument.
Sourcepub fn from_symbols(symbols: &[Symbol]) -> Self
pub fn from_symbols(symbols: &[Symbol]) -> Self
Creates a loader for the instruments that CoinAPI symbol metadata maps to.
Skips symbols without a symbol_id_int or a native instrument.
Sourcepub fn load_bars(
&self,
path: impl AsRef<Path>,
period_id: Option<&str>,
limit: Option<usize>,
) -> Result<Vec<Bar>>
pub fn load_bars( &self, path: impl AsRef<Path>, period_id: Option<&str>, limit: Option<usize>, ) -> Result<Vec<Bar>>
Loads the bars of mapped symbols from the file at path.
The bar period comes from period_id, such as 1MIN, or from the file’s TP- name when
period_id is None.
§Errors
Returns an error if the period is unknown, the file cannot be read, a column is missing, or a mapped row is invalid.
Trait Implementations§
Source§impl Clone for CoinApiOhlcvLoader
impl Clone for CoinApiOhlcvLoader
Source§impl Debug for CoinApiOhlcvLoader
impl Debug for CoinApiOhlcvLoader
Source§impl Default for CoinApiOhlcvLoader
impl Default for CoinApiOhlcvLoader
impl DerefToPyAny for CoinApiOhlcvLoader
Source§impl<'a, 'py> FromPyObject<'a, 'py> for CoinApiOhlcvLoaderwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for CoinApiOhlcvLoaderwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for CoinApiOhlcvLoader
impl<'py> IntoPyObject<'py> for CoinApiOhlcvLoader
Source§type Target = CoinApiOhlcvLoader
type Target = CoinApiOhlcvLoader
Source§type Output = Bound<'py, <CoinApiOhlcvLoader as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <CoinApiOhlcvLoader 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 CoinApiOhlcvLoader
impl PyClass for CoinApiOhlcvLoader
Source§impl PyClassImpl for CoinApiOhlcvLoader
impl PyClassImpl for CoinApiOhlcvLoader
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 = /// Loads [`Bar`]s from exchange-wide `T-OHLCV_ACTIVE_CONSOLIDATED` files.
///
/// Each row names its symbol by the numeric `symbol_id`, the REST `symbol_id_int`, so the loader
/// holds the instrument each one maps to and skips rows of unmapped symbols. Infers each
/// instrument's price and size precisions from its values. Captured `sx_sum` values can carry
/// numeric tails, so the loader rounds each volume half to even at the maximum precision.
/// It rejects negative volumes and positive volumes rounded to zero.
const RAW_DOC: &'static CStr = /// Loads [`Bar`]s from exchange-wide `T-OHLCV_ACTIVE_CONSOLIDATED` files. /// /// Each row names its symbol by the numeric `symbol_id`, the REST `symbol_id_int`, so the loader /// holds the instrument each one maps to and skips rows of unmapped symbols. Infers each /// instrument's price and size precisions from its values. Captured `sx_sum` values can carry /// numeric tails, so the loader rounds each volume half to even at the maximum precision. /// It rejects negative volumes and positive volumes rounded to zero.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<CoinApiOhlcvLoader as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<CoinApiOhlcvLoader>
type Layout = <<CoinApiOhlcvLoader as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<CoinApiOhlcvLoader>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForCoinApiOhlcvLoader
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 CoinApiOhlcvLoader
impl PyClassNewTextSignature for CoinApiOhlcvLoader
const TEXT_SIGNATURE: &'static str = "(instrument_ids)"
Source§impl PyStubType for CoinApiOhlcvLoader
impl PyStubType for CoinApiOhlcvLoader
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for CoinApiOhlcvLoader
impl PyTypeInfo for CoinApiOhlcvLoader
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 CoinApiOhlcvLoader
impl RefUnwindSafe for CoinApiOhlcvLoader
impl Send for CoinApiOhlcvLoader
impl Sync for CoinApiOhlcvLoader
impl Unpin for CoinApiOhlcvLoader
impl UnsafeUnpin for CoinApiOhlcvLoader
impl UnwindSafe for CoinApiOhlcvLoader
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<'py, T> FromPyObjectOwned<'py> for Twhere
T: for<'a> FromPyObject<'a, 'py>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§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