pub struct AxMdWebSocketClient { /* private fields */ }Expand description
Market data WebSocket client for Ax.
Provides streaming market data including tickers, trades, order books, and candles.
Requires Bearer token authentication obtained via the HTTP /api/authenticate endpoint.
Implementations§
Source§impl AxMdWebSocketClient
impl AxMdWebSocketClient
Sourcepub fn new(url: String, auth_token: String, heartbeat: Option<u64>) -> Self
pub fn new(url: String, auth_token: String, heartbeat: Option<u64>) -> Self
Creates a new Ax market data WebSocket client.
The auth_token is a Bearer token obtained from the HTTP /api/authenticate endpoint.
Sourcepub fn set_auth_token(&mut self, token: String)
pub fn set_auth_token(&mut self, token: String)
Sets the authentication token for subsequent connections.
This should be called before connect() if authentication is required.
Sourcepub fn subscription_count(&self) -> usize
pub fn subscription_count(&self) -> usize
Returns the number of confirmed subscriptions.
Sourcepub fn cache_instrument(&self, instrument: InstrumentAny)
pub fn cache_instrument(&self, instrument: InstrumentAny)
Caches an instrument for use during message parsing.
Sourcepub fn get_cached_instrument(&self, symbol: &Ustr) -> Option<InstrumentAny>
pub fn get_cached_instrument(&self, symbol: &Ustr) -> Option<InstrumentAny>
Returns a cached instrument by symbol.
Sourcepub async fn connect(&mut self) -> AxWsResult<()>
pub async fn connect(&mut self) -> AxWsResult<()>
Establishes the WebSocket connection.
§Errors
Returns an error if the connection cannot be established.
Sourcepub async fn subscribe(
&self,
symbol: &str,
level: AxMarketDataLevel,
) -> AxWsResult<()>
pub async fn subscribe( &self, symbol: &str, level: AxMarketDataLevel, ) -> AxWsResult<()>
Subscribes to market data for a symbol at the specified level.
§Errors
Returns an error if the subscription command cannot be sent.
Sourcepub async fn unsubscribe(&self, symbol: &str) -> AxWsResult<()>
pub async fn unsubscribe(&self, symbol: &str) -> AxWsResult<()>
Unsubscribes from market data for a symbol.
§Errors
Returns an error if the unsubscribe command cannot be sent.
Sourcepub async fn subscribe_candles(
&self,
symbol: &str,
width: AxCandleWidth,
) -> AxWsResult<()>
pub async fn subscribe_candles( &self, symbol: &str, width: AxCandleWidth, ) -> AxWsResult<()>
Subscribes to candle data for a symbol.
§Errors
Returns an error if the subscription command cannot be sent.
Sourcepub async fn unsubscribe_candles(
&self,
symbol: &str,
width: AxCandleWidth,
) -> AxWsResult<()>
pub async fn unsubscribe_candles( &self, symbol: &str, width: AxCandleWidth, ) -> AxWsResult<()>
Unsubscribes from candle data for a symbol.
§Errors
Returns an error if the unsubscribe command cannot be sent.
Sourcepub fn stream(&mut self) -> impl Stream<Item = NautilusWsMessage> + use<'_>
pub fn stream(&mut self) -> impl Stream<Item = NautilusWsMessage> + use<'_>
Returns a stream of messages from the WebSocket.
§Panics
Panics if called more than once or before connecting.
Sourcepub async fn disconnect(&self)
pub async fn disconnect(&self)
Disconnects the WebSocket connection gracefully.
Source§impl AxMdWebSocketClient
impl AxMdWebSocketClient
pub fn py_url(&self) -> &str
pub fn py_is_active(&self) -> bool
pub fn py_is_closed(&self) -> bool
pub fn py_subscription_count(&self) -> usize
Trait Implementations§
Source§impl Clone for AxMdWebSocketClient
impl Clone for AxMdWebSocketClient
Source§impl Debug for AxMdWebSocketClient
impl Debug for AxMdWebSocketClient
Source§impl<'py> IntoPyObject<'py> for AxMdWebSocketClient
impl<'py> IntoPyObject<'py> for AxMdWebSocketClient
Source§type Target = AxMdWebSocketClient
type Target = AxMdWebSocketClient
Source§type Output = Bound<'py, <AxMdWebSocketClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <AxMdWebSocketClient 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 AxMdWebSocketClient
impl PyClass for AxMdWebSocketClient
Source§impl PyClassImpl for AxMdWebSocketClient
impl PyClassImpl for AxMdWebSocketClient
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 = /// Market data WebSocket client for Ax.
///
/// Provides streaming market data including tickers, trades, order books, and candles.
/// Requires Bearer token authentication obtained via the HTTP `/api/authenticate` endpoint.
const RAW_DOC: &'static CStr = /// Market data WebSocket client for Ax. /// /// Provides streaming market data including tickers, trades, order books, and candles. /// Requires Bearer token authentication obtained via the HTTP `/api/authenticate` endpoint.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<AxMdWebSocketClient>
type ThreadChecker = SendablePyClass<AxMdWebSocketClient>
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 for AxMdWebSocketClient
impl PyClassNewTextSignature for AxMdWebSocketClient
const TEXT_SIGNATURE: &'static str = "(url, auth_token, heartbeat=None)"
Source§impl PyMethods<AxMdWebSocketClient> for PyClassImplCollector<AxMdWebSocketClient>
impl PyMethods<AxMdWebSocketClient> for PyClassImplCollector<AxMdWebSocketClient>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for AxMdWebSocketClient
impl PyTypeInfo for AxMdWebSocketClient
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 AxMdWebSocketClient
impl ExtractPyClassWithClone for AxMdWebSocketClient
Auto Trait Implementations§
impl Freeze for AxMdWebSocketClient
impl !RefUnwindSafe for AxMdWebSocketClient
impl Send for AxMdWebSocketClient
impl Sync for AxMdWebSocketClient
impl Unpin for AxMdWebSocketClient
impl !UnwindSafe for AxMdWebSocketClient
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
§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