About Bybit Crypto Price Data

The Bybit Crypto Price Data by CoinAPI is for Cryptocurrency price and volume data points. The data covers 721 Cryptocurrency pairs, starts in July 2017, and is delivered on any frequency from tick to daily. This dataset is created by monitoring the trading activity on Bybit.


About CoinAPI

CoinAPI was founded by Artur Pietrzyk in 2016 with the goal of providing real-time and historical cryptocurrency market data, collected from hundreds of exchanges. CoinAPI provides access to Cryptocurrencies for traders, market makers, and developers building third-party applications.

Add Bybit Crypto Price Data

Add Dataset Create Free QuantConnect Account

About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.


Algorithm Example

from AlgorithmImports import *

class CoinAPIDataAlgorithm(QCAlgorithm):

    def initialize(self) -> None:
        self.set_start_date(2022, 6, 1)
        self.set_end_date(2023, 1, 1)
        # Set Account Currency to Tether, since USD and USDT will not auto-convert and USD cannot be used to trade
        self.set_account_currency("USDT", 100000)

        # Bybit accepts both Cash and Margin account types, select the one you need for the best reality modeling.
        self.set_brokerage_model(BrokerageName.BYBIT, AccountType.MARGIN)

        # Warm up the security with the last known price to avoid conversion error
        self.set_security_initializer(BrokerageModelSecurityInitializer(self.brokerage_model, FuncSecuritySeeder(self.get_last_known_price)))
        
        # Requesting data, we only trade on BTCUSDT in Bybit exchange
        crypto = self.add_crypto("BTCUSDT", Resolution.MINUTE, Market.BYBIT)
        self.btcusdt = crypto.symbol
        self.minimum_order_size = crypto.symbol_properties.minimum_order_size
        
        # Historical data
        history = self.history(self.btcusdt, 30, Resolution.DAILY)
        self.debug(f"We got {len(history)} items from our history request")

        # Add Crypto Universe Selection that select crypto pairs in Bybit exchange
        self._universe = self.add_universe(CryptoUniverse.bybit(self.universe_selection_filter))

        # Historical Universe data
        universe_history = self.history(self._universe, 30, Resolution.DAILY)
        self.debug(f"We got {len(universe_history)} items from our universe history request")
        for (univere_symbool, time), universe_day in universe_history.items():
            for universe_item in universe_day:
                self.debug(f"{universe_item.symbol} price at {universe_item.end_time}: {universe_item.close}")

    def universe_selection_filter(self, universe_day: List[CryptoUniverse]) -> List[Symbol]:
        # Filter for materially traded crypto pairs with significant size and dollar volume, assuming higher capital flow in for higher return
        return [universe_item.symbol for universe_item in universe_day
                if universe_item.volume >= 100 
                and universe_item.volume_in_usd > 10000]

    def on_data(self, slice: Slice) -> None:
        # Speculate-invest all available free cash on BTCUSDT, obeying the order quantity restriction to avoid invalid order
        if self.portfolio.cash_book['BTC'].amount == 0:
            free_cash = self.portfolio.cash_book['USDT'].amount * (1-self.settings.free_portfolio_value_percentage)
            quantity = free_cash / slice[self.btcusdt].price
            quantity -= quantity % self.minimum_order_size
            if quantity > 0:
                self.market_order(self.btcusdt, quantity)

Example Applications

The Bybit Crypto Price dataset enables you to accurately design strategies for Cryptocurrencies. Examples include the following strategies: