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

Method handle_ohlcv

python/ccxt/pro/gemini.py:287–338  ·  view source on GitHub ↗
(self, client: Client, message)

Source from the content-addressed store, hash-verified

285 return self.filter_by_since_limit(ohlcv, since, limit, 0, True)
286
287 def handle_ohlcv(self, client: Client, message):
288 #
289 # {
290 # "type": "candles_15m_updates",
291 # "symbol": "BTCUSD",
292 # "changes": [
293 # [
294 # 1561054500000,
295 # 9350.18,
296 # 9358.35,
297 # 9350.18,
298 # 9355.51,
299 # 2.07
300 # ],
301 # [
302 # 1561053600000,
303 # 9357.33,
304 # 9357.33,
305 # 9350.18,
306 # 9350.18,
307 # 1.5900161
308 # ]
309 # ...
310 # ]
311 # }
312 #
313 type = self.safe_string(message, 'type', '')
314 timeframeId = type[8:]
315 timeframeEndIndex = timeframeId.find('_')
316 timeframeId = timeframeId[0:timeframeEndIndex]
317 marketId = self.safe_string(message, 'symbol', '').lower()
318 market = self.safe_market(marketId)
319 symbol = self.safe_symbol(marketId, market)
320 changes = self.safe_value(message, 'changes', [])
321 timeframe = self.find_timeframe(timeframeId)
322 ohlcvsBySymbol = self.safe_value(self.ohlcvs, symbol)
323 if ohlcvsBySymbol is None:
324 self.ohlcvs[symbol] = {}
325 stored = self.safe_value(self.ohlcvs[symbol], timeframe)
326 if stored is None:
327 limit = self.safe_integer(self.options, 'OHLCVLimit', 1000)
328 stored = ArrayCacheByTimestamp(limit)
329 self.ohlcvs[symbol][timeframe] = stored
330 changesLength = len(changes)
331 # reverse order of array to store candles in ascending order
332 for i in range(0, changesLength):
333 index = changesLength - i - 1
334 parsed = self.parse_ohlcv(changes[index], market)
335 stored.append(parsed)
336 messageHash = 'ohlcv:' + symbol + ':' + timeframeId
337 client.resolve(stored, messageHash)
338 return message
339
340 async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
341 """

Callers 1

handle_messageMethod · 0.95

Calls 12

appendMethod · 0.95
safe_stringMethod · 0.80
findMethod · 0.80
safe_symbolMethod · 0.80
safe_valueMethod · 0.80
safe_integerMethod · 0.80
resolveMethod · 0.65
rangeFunction · 0.50
safe_marketMethod · 0.45
find_timeframeMethod · 0.45
parse_ohlcvMethod · 0.45

Tested by

no test coverage detected