MCPcopy Create free account
hub / github.com/ccxt/ccxt / handle_ohlcv

Method handle_ohlcv

python/ccxt/pro/backpack.py:483–520  ·  view source on GitHub ↗
(self, client: Client, message)

Source from the content-addressed store, hash-verified

481 return await self.watch_public(topics, messageHashes, params, True)
482
483 def handle_ohlcv(self, client: Client, message):
484 #
485 # {
486 # data: {
487 # E: '1754519557526056',
488 # T: '2025-08-07T00:00:00',
489 # X: False,
490 # c: '3680.520000000',
491 # e: 'kline',
492 # h: '3681.370000000',
493 # l: '3667.650000000',
494 # n: 255,
495 # o: '3670.150000000',
496 # s: 'ETH_USDC',
497 # t: '2025-08-06T22:00:00',
498 # v: '62.2621000'
499 # },
500 # stream: 'kline.2h.ETH_USDC'
501 # }
502 #
503 data = self.safe_dict(message, 'data', {})
504 marketId = self.safe_string(data, 's')
505 market = self.market(marketId)
506 symbol = market['symbol']
507 stream = self.safe_string(message, 'stream')
508 parts = stream.split('.')
509 timeframe = self.safe_string(parts, 1)
510 if not (symbol in self.ohlcvs):
511 self.ohlcvs[symbol] = {}
512 if not (timeframe in self.ohlcvs[symbol]):
513 limit = self.safe_integer(self.options, 'OHLCVLimit', 1000)
514 stored = ArrayCacheByTimestamp(limit)
515 self.ohlcvs[symbol][timeframe] = stored
516 ohlcv = self.ohlcvs[symbol][timeframe]
517 parsed = self.parse_ws_ohlcv(data)
518 ohlcv.append(parsed)
519 messageHash = 'candles:' + symbol + ':' + timeframe
520 client.resolve([symbol, timeframe, ohlcv], messageHash)
521
522 def parse_ws_ohlcv(self, ohlcv, market=None) -> list:
523 #

Callers 1

handle_messageMethod · 0.95

Calls 9

parse_ws_ohlcvMethod · 0.95
safe_dictMethod · 0.80
safe_stringMethod · 0.80
splitMethod · 0.80
safe_integerMethod · 0.80
resolveMethod · 0.65
marketMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected