pub struct Bybit { /* private fields */ }Expand description
Bybit exchange structure.
Implementations§
Source§impl Bybit
impl Bybit
Sourcepub fn check_required_credentials(&self) -> Result<()>
pub fn check_required_credentials(&self) -> Result<()>
Check that required credentials are configured.
Sourcepub async fn fetch_markets(&self) -> Result<HashMap<String, Arc<Market>>>
pub async fn fetch_markets(&self) -> Result<HashMap<String, Arc<Market>>>
Fetch all trading markets.
§Returns
Returns a vector of Market structures containing market information.
§Errors
Returns an error if the API request fails or response parsing fails.
§Example
let bybit = Bybit::builder().build()?;
let markets = bybit.fetch_markets().await?;
println!("Found {} markets", markets.len());Sourcepub async fn fetch_ticker(&self, symbol: &str) -> Result<Ticker>
pub async fn fetch_ticker(&self, symbol: &str) -> Result<Ticker>
Sourcepub async fn fetch_order_book(
&self,
symbol: &str,
limit: Option<u32>,
) -> Result<OrderBook>
pub async fn fetch_order_book( &self, symbol: &str, limit: Option<u32>, ) -> Result<OrderBook>
Sourcepub async fn fetch_ohlcv(
&self,
symbol: &str,
timeframe: &str,
since: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<OHLCV>>
pub async fn fetch_ohlcv( &self, symbol: &str, timeframe: &str, since: Option<i64>, limit: Option<u32>, ) -> Result<Vec<OHLCV>>
Sourcepub async fn fetch_balance(&self) -> Result<Balance>
pub async fn fetch_balance(&self) -> Result<Balance>
Sourcepub async fn fetch_my_trades(
&self,
symbol: &str,
since: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<Trade>>
pub async fn fetch_my_trades( &self, symbol: &str, since: Option<i64>, limit: Option<u32>, ) -> Result<Vec<Trade>>
Sourcepub async fn create_order(
&self,
symbol: &str,
order_type: OrderType,
side: OrderSide,
amount: f64,
price: Option<f64>,
) -> Result<Order>
pub async fn create_order( &self, symbol: &str, order_type: OrderType, side: OrderSide, amount: f64, price: Option<f64>, ) -> Result<Order>
Sourcepub async fn fetch_open_orders(
&self,
symbol: Option<&str>,
since: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<Order>>
pub async fn fetch_open_orders( &self, symbol: Option<&str>, since: Option<i64>, limit: Option<u32>, ) -> Result<Vec<Order>>
Source§impl Bybit
impl Bybit
Sourcepub fn builder() -> BybitBuilder
pub fn builder() -> BybitBuilder
Creates a new Bybit instance using the builder pattern.
This is the recommended way to create a Bybit instance.
§Example
use ccxt_exchanges::bybit::Bybit;
let bybit = Bybit::builder()
.api_key("your-api-key")
.secret("your-secret")
.testnet(true)
.build()
.unwrap();Sourcepub fn new(config: ExchangeConfig) -> Result<Self>
pub fn new(config: ExchangeConfig) -> Result<Self>
Sourcepub fn new_with_options(
config: ExchangeConfig,
options: BybitOptions,
) -> Result<Self>
pub fn new_with_options( config: ExchangeConfig, options: BybitOptions, ) -> Result<Self>
Creates a new Bybit instance with custom options.
This is used internally by the builder pattern.
§Arguments
config- Exchange configuration.options- Bybit-specific options.
Sourcepub fn base(&self) -> &BaseExchange
pub fn base(&self) -> &BaseExchange
Returns a reference to the base exchange.
Sourcepub fn base_mut(&mut self) -> &mut BaseExchange
pub fn base_mut(&mut self) -> &mut BaseExchange
Returns a mutable reference to the base exchange.
Sourcepub fn options(&self) -> &BybitOptions
pub fn options(&self) -> &BybitOptions
Returns the Bybit options.
Sourcepub fn set_options(&mut self, options: BybitOptions)
pub fn set_options(&mut self, options: BybitOptions)
Sets the Bybit options.
Sourcepub fn rate_limit(&self) -> u32
pub fn rate_limit(&self) -> u32
Returns the rate limit in requests per second.
Sourcepub fn is_sandbox(&self) -> bool
pub fn is_sandbox(&self) -> bool
Returns true if sandbox/testnet mode is enabled.
Sandbox mode is enabled when either:
config.sandboxis set totrueoptions.testnetis set totrue
§Returns
true if sandbox mode is enabled, false otherwise.
§Example
use ccxt_exchanges::bybit::Bybit;
use ccxt_core::ExchangeConfig;
let config = ExchangeConfig {
sandbox: true,
..Default::default()
};
let bybit = Bybit::new(config).unwrap();
assert!(bybit.is_sandbox());Sourcepub fn timeframes(&self) -> HashMap<String, String>
pub fn timeframes(&self) -> HashMap<String, String>
Returns the supported timeframes.
Sourcepub fn default_type(&self) -> DefaultType
pub fn default_type(&self) -> DefaultType
Returns the default type configuration.
Sourcepub fn default_sub_type(&self) -> Option<DefaultSubType>
pub fn default_sub_type(&self) -> Option<DefaultSubType>
Returns the default sub-type configuration.
Sourcepub fn is_contract_type(&self) -> bool
pub fn is_contract_type(&self) -> bool
Checks if the current default_type is a contract type (Swap, Futures, or Option).
This is useful for determining whether contract-specific API parameters should be used.
§Returns
true if the default_type is Swap, Futures, or Option; false otherwise.
Sourcepub fn is_inverse(&self) -> bool
pub fn is_inverse(&self) -> bool
Checks if the current configuration uses inverse (coin-margined) contracts.
§Returns
true if default_sub_type is Inverse; false otherwise.
Sourcepub fn is_linear(&self) -> bool
pub fn is_linear(&self) -> bool
Checks if the current configuration uses linear (USDT-margined) contracts.
§Returns
true if default_sub_type is Linear or not specified (defaults to Linear); false otherwise.
Sourcepub fn category(&self) -> &'static str
pub fn category(&self) -> &'static str
Returns the Bybit category string based on the current default_type and default_sub_type.
Bybit V5 API uses category parameter for filtering:
Spot-> “spot”Swap+ Linear -> “linear”Swap+ Inverse -> “inverse”Futures+ Linear -> “linear”Futures+ Inverse -> “inverse”Option-> “option”Margin-> “spot” (margin trading uses spot category)
§Returns
The category string to use for Bybit API calls.
Sourcepub fn create_ws(&self) -> BybitWs
pub fn create_ws(&self) -> BybitWs
Creates a public WebSocket client.
The WebSocket URL is selected based on the configured default_type:
Spot-> spot public streamSwap/Futures+ Linear -> linear public streamSwap/Futures+ Inverse -> inverse public streamOption-> option public stream
§Returns
Returns a BybitWs instance for public data streams.
§Example
use ccxt_exchanges::bybit::Bybit;
use ccxt_core::ExchangeConfig;
let bybit = Bybit::new(ExchangeConfig::default())?;
let ws = bybit.create_ws();
ws.connect().await?;