Exemple #1
0
 def simulate_order_book_widening(order_book: OrderBook, top_bid: float, top_ask: float):
     bid_diffs: List[OrderBookRow] = []
     ask_diffs: List[OrderBookRow] = []
     update_id: int = order_book.last_diff_uid + 1
     for row in order_book.bid_entries():
         if row.price > top_bid:
             bid_diffs.append(OrderBookRow(row.price, 0, update_id))
         else:
             break
     for row in order_book.ask_entries():
         if row.price < top_ask:
             ask_diffs.append(OrderBookRow(row.price, 0, update_id))
         else:
             break
     order_book.apply_diffs(bid_diffs, ask_diffs, update_id)
    def __init__(self, trading_pairs: Optional[List[str]] = None):
        super().__init__()

        self._trading_pairs: Optional[List[str]] = trading_pairs
        self._order_book_create_function = lambda: OrderBook()

        self.trading_pair_id_conversion_dict: Dict[str, int] = {}
Exemple #3
0
 def __init__(self, trading_pairs: List[str] = None, rest_api_url="", websocket_url="", token_configuration=None):
     super().__init__(trading_pairs)
     self.REST_URL = rest_api_url
     self.WS_URL = websocket_url
     self._get_tracking_pair_done_event: asyncio.Event = asyncio.Event()
     self.order_book_create_function = lambda: OrderBook()
     self.token_configuration: LoopringAPITokenConfigurationDataSource = token_configuration
 def __init__(self,
              trading_pairs: List[str] = None,
              domain: str = CONSTANTS.DOMAIN,
              throttler: Optional[AsyncThrottler] = None):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
     self._domain = domain
     self._throttler = throttler or self._get_throttler_instance()
Exemple #5
0
 def __init__(self,
              base_url: str,
              stream_url: str,
              trading_pairs: List[str] = None):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
     self._base_url = base_url
     self._stream_url = stream_url + "/stream"
     self._domain = "binance_perpetual" if base_url == PERPETUAL_BASE_URL else "binance_perpetual_testnet"
Exemple #6
0
 def __init__(self,
              trading_pairs: List[str] = None,
              domain: str = "binance_perpetual"):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
     self._base_url = TESTNET_BASE_URL if domain == "binance_perpetual_testnet" else PERPETUAL_BASE_URL
     self._stream_url = TESTNET_STREAM_URL if domain == "binance_perpetual_testnet" else DIFF_STREAM_URL
     self._stream_url += "/stream"
     self._domain = domain
 def __init__(self,
              throttler: Optional[AsyncThrottler] = None,
              trading_pairs: List[str] = None,
              api_factory: Optional[WebAssistantsFactory] = None):
     super().__init__(trading_pairs)
     self._api_factory = api_factory or build_api_factory()
     self._rest_assistant = None
     self._ws_assistant = None
     self._order_book_create_function = lambda: OrderBook()
     self._throttler = throttler or self._get_throttler_instance()
Exemple #8
0
 def __init__(self,
              trading_pairs: List[str],
              domain: str = CONSTANTS.DEFAULT_DOMAIN,
              api_factory: Optional[WebAssistantsFactory] = None,
              throttler: Optional[AsyncThrottler] = None):
     super().__init__(trading_pairs)
     self._domain = domain
     self._throttler = throttler
     self._api_factory = api_factory or web_utils.build_api_factory()
     self._order_book_create_function = lambda: OrderBook()
     self._message_queue: Dict[str,
                               asyncio.Queue] = defaultdict(asyncio.Queue)
Exemple #9
0
 def __init__(
     self,
     throttler: Optional[AsyncThrottler] = None,
     trading_pairs: Optional[List[str]] = None,
     auth: Optional[KucoinAuth] = None,
 ):
     super().__init__(trading_pairs)
     self._throttler = throttler or self._get_throttler_instance()
     self._auth = auth
     self._order_book_create_function = lambda: OrderBook()
     self._tasks: DefaultDict[StreamType, Dict[
         int, KucoinAPIOrderBookDataSource.TaskEntry]] = defaultdict(dict)
Exemple #10
0
 def __init__(self,
              trading_pairs: List[str],
              domain="com",
              api_factory: Optional[WebAssistantsFactory] = None,
              throttler: Optional[AsyncThrottler] = None):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
     self._domain = domain
     self._throttler = throttler or self._get_throttler_instance()
     self._api_factory = api_factory or build_api_factory()
     self._rest_assistant: Optional[RESTAssistant] = None
     self._ws_assistant: Optional[WSAssistant] = None
     self._message_queue: Dict[str,
                               asyncio.Queue] = defaultdict(asyncio.Queue)
Exemple #11
0
    def __init__(
        self,
        trading_pairs: List[str] = None,
        domain: str = CONSTANTS.DOMAIN,
        throttler: Optional[AsyncThrottler] = None,
        api_factory: Optional[WebAssistantsFactory] = None,
    ):
        super().__init__(trading_pairs)
        self._api_factory: WebAssistantsFactory = api_factory or utils.build_api_factory()
        self._ws_assistant: Optional[WSAssistant] = None
        self._order_book_create_function = lambda: OrderBook()
        self._domain = domain
        self._throttler = throttler or self._get_throttler_instance()
        self._funding_info: Dict[str, FundingInfo] = {}

        self._message_queue: Dict[int, asyncio.Queue] = defaultdict(asyncio.Queue)
Exemple #12
0
    def test_calculate_trading_intensity_deterministic(self):
        def curve_fn(
            t_, a_, b_
        ):  # see curve fit in `TradingIntensityIndicator.c_estimate_intensity`
            return a_ * np.exp(-b_ * t_)

        last_price = 1
        trade_price_levels = [2, 3, 4, 5]
        a = 2
        b = 0.1
        ts = [curve_fn(p - last_price, a, b) for p in trade_price_levels]

        timestamp = self.start_timestamp

        trading_intensity_indicator = TradingIntensityIndicator(
            OrderBook(), self.price_delegate, 1)
        trading_intensity_indicator.last_quotes = [{
            "timestamp": timestamp,
            "price": last_price
        }]

        timestamp += 1

        for p, t in zip(trade_price_levels, ts):
            new_trade = OrderBookTradeEvent(
                trading_pair="COINALPHAHBOT",
                timestamp=timestamp,
                price=p,
                amount=t,
                type=TradeType.SELL,
            )
            trading_intensity_indicator.register_trade(new_trade)

        trading_intensity_indicator.calculate(timestamp)
        alpha, kappa = trading_intensity_indicator.current_value

        self.assertAlmostEqual(a, alpha, 10)
        self.assertAlmostEqual(b, kappa, 10)
 def __init__(self, trading_pairs: List[str]):
     self._trading_pairs: List[str] = trading_pairs
     self._order_book_create_function = lambda: OrderBook()
Exemple #14
0
 def __init__(self, trading_pairs: List[str]):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
     self._tasks: DefaultDict[StreamType, Dict[int, KucoinAPIOrderBookDataSource.TaskEntry]] = defaultdict(dict)
Exemple #15
0
 def __init__(self):
     self._order_book_create_function = lambda: OrderBook()
 def setUpClass(cls):
     cls.order_book_dex = OrderBook(dex=True)
     cls.order_book_cex = OrderBook(dex=False)
Exemple #17
0
 def __init__(self, trading_pairs: List[str]):
     super().__init__(trading_pairs)
     self._order_book_create_function = lambda: OrderBook()
Exemple #18
0
 def __init__(self, trading_pairs: Optional[List[str]] = None):
     super().__init__()
     self._trading_pairs: Optional[List[str]] = trading_pairs
     self._order_book_create_function = lambda: OrderBook()
 def __init__(self, symbols: Optional[List[str]] = None):
     super().__init__()
     self._symbols: Optional[List[str]] = symbols
     self._order_book_create_function = lambda: OrderBook()
    def __init__(self, trading_pairs: List[str]):
        super().__init__(trading_pairs)

        self._order_book_create_function = lambda: OrderBook()
        self.trading_pair_id_conversion_dict: Dict[str, int] = {}