Я хочу собрать данные websocket из coinbase pro и поместить их в фрейм данных. Пытаетесь найти способ собрать выходные данные из этого кода? - PullRequest
1 голос
/ 13 октября 2019

Я использую Копра для получения данных в реальном времени от Coinbase Pro. Этот код начинает выводить ленту веб-сокетов. Я понятия не имею, как собрать данные в переменной и сделать DF с ним? Конечная цель - поместить ее в базу данных.

Цель:

  • Сбор данных из канала WebSocket с шагом 5 минут (цели OHLCV)
  • Положить каждые 5 минутсбор в собственном DataFrame
  • Создание 5-минутных свечей OHLCV с этим DataFrame
  • Отправка данных OHLCV в базу данных PostgreSQL
import asyncio

from copra.websocket import Channel, Client

loop = asyncio.get_event_loop()

ws = Client(loop, Channel('matches', 'BTC-USD'))


async def work():
    while True:
        await asyncio.sleep(30)
        print("Task Executed")

loop = asyncio.get_event_loop()
try:
    asyncio.ensure_future(work())
    loop.run_forever()
except KeyboardInterrupt:
    pass
finally:
    print("Closing Loop")
    loop.close()

Пример вывода:

{'type': 'match', 'trade_id': 75894771, 'maker_order_id': '9742d468-770d-4403-82fc-23b87ce6aa9d', 'taker_order_id': 'f76e05d1-c206-4482-bce1-9763c73970d0', 'side': 'sell', 'size': '0.00280190', 'price': '8348.99', 'product_id': 'BTC-USD', 'sequence': 11001219347, 'time': '2019-10-13T01:59:42.814000Z'}
{'type': 'match', 'trade_id': 75894772, 'maker_order_id': '9742d468-770d-4403-82fc-23b87ce6aa9d', 'taker_order_id': '391c748a-ca33-4a11-9a9d-bbe3565e643e', 'side': 'sell', 'size': '0.00256354', 'price': '8348.99', 'product_id': 'BTC-USD', 'sequence': 11001219566, 'time': '2019-10-13T01:59:43.827000Z'}
{'type': 'match', 'trade_id': 75894773, 'maker_order_id': 'af29c906-be3d-41ca-904b-b87a7bb2270d', 'taker_order_id': 'a9a5ed9b-b83e-4408-bfb6-62b0dad6fce6', 'side': 'sell', 'size': '0.00400000', 'price': '8349.48', 'product_id': 'BTC-USD', 'sequence': 11001220104, 'time': '2019-10-13T01:59:45.944000Z'}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...