pub struct HistoricalInteractiveBrokersClient { /* private fields */ }Expand description
Historical data client for Interactive Brokers.
This client provides methods for requesting historical bars and ticks for backtesting and research purposes.
Implementations§
Source§impl HistoricalInteractiveBrokersClient
impl HistoricalInteractiveBrokersClient
Sourcepub fn new(
ib_client: Arc<Client>,
instrument_provider: Arc<InteractiveBrokersInstrumentProvider>,
) -> Self
pub fn new( ib_client: Arc<Client>, instrument_provider: Arc<InteractiveBrokersInstrumentProvider>, ) -> Self
Create a new historical data client.
§Arguments
ib_client- The IB API clientinstrument_provider- The instrument provider
Sourcepub async fn request_bars(
&self,
bar_specifications: Vec<&str>,
end_date_time: DateTime<Utc>,
start_date_time: Option<DateTime<Utc>>,
duration: Option<&str>,
contracts: Option<Vec<Contract>>,
instrument_ids: Option<Vec<InstrumentId>>,
use_rth: bool,
timeout: u64,
) -> Result<Vec<Bar>>
pub async fn request_bars( &self, bar_specifications: Vec<&str>, end_date_time: DateTime<Utc>, start_date_time: Option<DateTime<Utc>>, duration: Option<&str>, contracts: Option<Vec<Contract>>, instrument_ids: Option<Vec<InstrumentId>>, use_rth: bool, timeout: u64, ) -> Result<Vec<Bar>>
Request historical bars.
§Arguments
bar_specifications- List of bar specifications (e.g., “1-HOUR-LAST”)end_date_time- End date for barsstart_date_time- Optional start dateduration- Optional duration string (e.g., “1 D”)contracts- List of IB contractsinstrument_ids- List of instrument IDsuse_rth- Use regular trading hours onlytimeout- Request timeout in seconds
§Errors
Returns an error if the request fails.
Sourcepub async fn request_ticks(
&self,
tick_type: &str,
start_date_time: DateTime<Utc>,
end_date_time: DateTime<Utc>,
contracts: Option<Vec<Contract>>,
instrument_ids: Option<Vec<InstrumentId>>,
use_rth: bool,
_timeout: u64,
) -> Result<Vec<Data>>
pub async fn request_ticks( &self, tick_type: &str, start_date_time: DateTime<Utc>, end_date_time: DateTime<Utc>, contracts: Option<Vec<Contract>>, instrument_ids: Option<Vec<InstrumentId>>, use_rth: bool, _timeout: u64, ) -> Result<Vec<Data>>
Request historical ticks with pagination support.
§Arguments
tick_type- “TRADES” or “BID_ASK”start_date_time- Start dateend_date_time- End datecontracts- List of IB contractsinstrument_ids- List of instrument IDsuse_rth- Use regular trading hours onlytimeout- Request timeout in seconds
§Errors
Returns an error if the request fails.
Sourcepub async fn request_instruments(
&self,
instrument_ids: Option<Vec<InstrumentId>>,
contracts: Option<Vec<Contract>>,
) -> Result<Vec<InstrumentAny>>
pub async fn request_instruments( &self, instrument_ids: Option<Vec<InstrumentId>>, contracts: Option<Vec<Contract>>, ) -> Result<Vec<InstrumentAny>>
Request instruments given instrument IDs or contracts.
This method uses the instrument provider to load and return instruments.
§Arguments
instrument_ids- Optional list of instrument IDscontracts- Optional list of IB contracts
§Returns
Returns a list of instruments.
§Errors
Returns an error if loading fails.
Trait Implementations§
Source§impl<'a, 'py> FromPyObject<'a, 'py> for HistoricalInteractiveBrokersClientwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for HistoricalInteractiveBrokersClientwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for HistoricalInteractiveBrokersClient
impl<'py> IntoPyObject<'py> for HistoricalInteractiveBrokersClient
Source§type Target = HistoricalInteractiveBrokersClient
type Target = HistoricalInteractiveBrokersClient
Source§type Output = Bound<'py, <HistoricalInteractiveBrokersClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <HistoricalInteractiveBrokersClient 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 HistoricalInteractiveBrokersClient
impl PyClass for HistoricalInteractiveBrokersClient
Source§impl PyClassBaseType for HistoricalInteractiveBrokersClient
impl PyClassBaseType for HistoricalInteractiveBrokersClient
type LayoutAsBase = <HistoricalInteractiveBrokersClient as PyClassImpl>::Layout
type BaseNativeType = <HistoricalInteractiveBrokersClient as PyClassImpl>::BaseNativeType
type Initializer = PyClassInitializer<HistoricalInteractiveBrokersClient>
type PyClassMutability = <HistoricalInteractiveBrokersClient as PyClassImpl>::PyClassMutability
Source§type Layout<T: PyClassImpl> = <<HistoricalInteractiveBrokersClient as PyClassBaseType>::BaseNativeType as PyClassBaseType>::Layout<T>
type Layout<T: PyClassImpl> = <<HistoricalInteractiveBrokersClient as PyClassBaseType>::BaseNativeType as PyClassBaseType>::Layout<T>
Source§impl PyClassImpl for HistoricalInteractiveBrokersClient
impl PyClassImpl for HistoricalInteractiveBrokersClient
Source§const IS_BASETYPE: bool = true
const IS_BASETYPE: bool = true
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 = /// Historical data client for Interactive Brokers.
///
/// This client provides methods for requesting historical bars and ticks
/// for backtesting and research purposes.
const RAW_DOC: &'static CStr = /// Historical data client for Interactive Brokers. /// /// This client provides methods for requesting historical bars and ticks /// for backtesting and research purposes.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<HistoricalInteractiveBrokersClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<HistoricalInteractiveBrokersClient>
type Layout = <<HistoricalInteractiveBrokersClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<HistoricalInteractiveBrokersClient>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForHistoricalInteractiveBrokersClient
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 HistoricalInteractiveBrokersClient
impl PyClassNewTextSignature for HistoricalInteractiveBrokersClient
const TEXT_SIGNATURE: &'static str = "(instrument_provider, config)"
Source§impl PyTypeInfo for HistoricalInteractiveBrokersClient
impl PyTypeInfo for HistoricalInteractiveBrokersClient
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.impl DerefToPyAny for HistoricalInteractiveBrokersClient
Auto Trait Implementations§
impl Freeze for HistoricalInteractiveBrokersClient
impl !RefUnwindSafe for HistoricalInteractiveBrokersClient
impl Send for HistoricalInteractiveBrokersClient
impl Sync for HistoricalInteractiveBrokersClient
impl Unpin for HistoricalInteractiveBrokersClient
impl UnsafeUnpin for HistoricalInteractiveBrokersClient
impl !UnwindSafe for HistoricalInteractiveBrokersClient
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
§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,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
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.
§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