Каждая биржа имеет специальные функции для привлечения трейдеров. Coinbase Pro имеет специальный код, помогающий автоматизировать и упростить торговлю. Этот код представляет собой API Coinbase Pro.
Создать учетную запись, а также включить API Coinbase Pro абсолютно бесплатно.
У этих двух платформ действительно есть кое-что общее. По крайней мере, Coinbase Global Inc владеет обоими, и пользовательские интерфейсы похожи друг на друга.
Тем не менее, очевидно, что Coinbase и Coinbase Pro имеют довольно много различий. Coinbase - это скорее рынок криптовалют, в то время как Coinbase Pro - это полноценная криптобиржа. Coinbase напоминает криптовалютный кошелек, в то время как Coinbase Pro, скорее всего, является торговой платформой.
Инновационные атрибуты и конечные точки делают торговлю на Coinbase Pro API намного быстрее и лучше, чем на Coinbase.
Теперь Coinbase Pro API доступен более чем в 100 странах.
Вот краткий список плюсов и минусов, которые трейдеры должны принимать во внимание.
Плюсы:
● Простой
● Интуитивно понятный
● Полностью регулируется в США
● Высокая ликвидность
● Поддержка fiat (USD, EUR, GBP)
● Поддерживает более 120 криптовалют
Минусы:
● Высокие сборы
● Медленная поддержка клиентов
● Слишком сложно для новичков
Подводя итог, можно сказать, что у Coinbase Pro API в два раза больше плюсов, чем минусов.
Да, это так. Coinbase Pro взимает обычные торговые сборы со своих пользователей. Это происходит по истечении 30-дневного периода, когда рассчитывается окончательная цена. Для удобства трейдера сумма берется в долларах США.
Как обычно, сборы делятся на “создателей” и “берущих”.:
1. Пользователь становится тейкером, когда размещенный рыночный ордер немедленно исполняется. Комиссия: от 0,04% до 0,50%.
2. Aser становится производителем, когда размещенный заказ не заполняется сразу и попадает в книгу заказов. Так что нужно подождать, пока он не будет подобран другим трейдером. Комиссия: от 0,00% до 0,50%.
3. И когда заказ заполняется только частично, оплачиваются обе комиссии. Сначала оплачивается плата за прием, соответствующая заполненной части, в то время как остальная часть заказа перемещается в книгу заказов на более поздний срок. И когда он сопоставляется, выплачивается плата за создание.
В этой таблице показан текущий объем торгов для обеих комиссий:
У многих других бирж есть API. Вот почему Coinbase Pro API не может быть единственным выбором для трейдеров. Вот лишь несколько обменов с API:
● Binance
● BitMEX
● HitBTC
● Кракен
● Близнецы
● KuCoin
● Bittrex
● Bitfinex
После завершения надлежащего исследования трейдеры могут выбрать одну из представленных бирж или найти другие платформы, которые соответствовали бы их потребностям. Однако давайте вернемся к Coinbase Pro.
У трейдеров есть только два способа создания учетной записи на этой платформе:
1. Если у трейдера уже есть учетная запись Coinbase, единственное, что осталось, - это подключить ее к Coinbase Pro. Тогда был бы возможен перевод средств между счетами.
2. Или просто посетите стартовую страницу Coinbase Pro и запустите учетную запись прямо там.
Нажав на кнопку “Начать работу”, новички должны заполнить свои основные данные учетной записи, подтвердить адрес электронной почты и включить двухфакторную аутентификацию. Чтобы завершить регистрацию, пользователи должны предоставить некоторую личную информацию: имя, дату рождения, адрес, намерения, источник средств, род занятий, включая фотографию, удостоверяющую личность, и ссылку на банковский счет.
Чтобы иметь дело с API Coinbase Pro, трейдерам требуется ключ API Coinbase. Прежде всего, нажмите на “API”, а затем на кнопку “+ Новый ключ API”. Затем пользователи должны выбрать разрешения для ключа API, установить псевдоним и пароль, дополнительный уровень аутентификации и функцию безопасности, реализованную Coinbase.
Прежде чем ключ API сможет начать работать, трейдерам необходимо выполнить еще один шаг: ввести проверочный код, чтобы получить секретный ключ. Более того, пользователи должны хранить этот секретный ключ в надежном месте, чтобы не потерять его.
Наконец, создан API Coinbase Pro. Давайте двигаться дальше и поговорим о его способностях.
Каждый трейдер может выбрать своего любимого клиента из пяти поддерживаемых:
● Python
● Перейти
● Java
● Ржавчина
● C#
Python - самый популярный клиент для написания команд в Coinbase Pro API. Вот почему примеры будут состоять только из этого.
Давайте начнем:
pip install cbpro
В API Coinbase Pro библиотека python использует конечную точку get_products для получения информации о торговых парах. Следующий шаг - импорт библиотеки, инициализация клиента, получение данных о продуктах:
импорт cbpro
импортируйте pandas как pd
c = cbpro.PublicClient()
данные = pd.DataFrame(c.get_products())
data.tail().
Чтобы получить информацию о ценовых данных, используйте конечную точку get_product_ticker и укажите параметр ticker. Для Кардано это было бы:
тикер = c.get_product_ticker(product_id='ADA-USD')
тикер
Второй способ получить дату - с помощью конечных точек Coinbase Pro REST API:
тикер запросов на импорт = requests.get('https://api.pro.coinbase.com/products/ADA-USD/ticker ').json()
тикер
Чтобы получить информацию об исторических данных, используйте конечную точку get_product_historic_rates. Можно указать степень детализации, дату начала и окончания.
Посмотрите, как просто получить исторические данные ETH-USD с параметрами по умолчанию и упорядочить все это в упорядоченный фрейм данных:
historical = pd.DataFrame(c.get_product_historic_rates(product_id='ETH-USD')) historical.columns= ["Дата","Открытие","Максимум","Минимум","Закрытие","Объем"]
исторический['Дата'] = pd.to_datetime(исторический['Дата'], единица измерения='s')
historical.set_index('Дата', inplace=True)
historical.sort_values(по='Дата', по возрастанию=True, inplace=True)
исторический
При необходимости позже эти данные можно было бы использовать для создания простого индикатора и построения графика свечей.
К сожалению, Coinbase Pro API не предлагает никаких предустановленных индикаторов. Тем не менее, их можно создать, используя встроенные функции pandas или просто полагаясь на библиотеку btalib.
Вот как создать простой индикатор 20 SMA с помощью pandas:
исторический['20 SMA'] = исторический.Закрыть.прокатка(20).среднее значение()
исторический.хвост()
И, имея все эти данные, можно создать интерактивную диаграмму:
импортируйте plotly.graph_objects как go
fig = go.Figure(данные=[go.Candle(x = historical.index,
открыть = исторический['Открыть'],
высокий = исторический['Высокий'],
низкий = исторический['Низкий'],
закрыть = исторический['Закрыть'], ),
go.Scatter(x=historical.index, y=historical['20 SMA'], line=dict(цвет='фиолетовый', ширина=1))])
рис.показать()
Чтобы получить доступ к данным Книги заказов, используйте конечную точку get_product_order_book
Coinbase Pro API. Вот пример получения данных для BTC-USD и организации заявок и запросов.
order_book = c.get_product_order_book('BTC-USD')
книга заказов
Следующим шагом является создание двух фреймов данных:
ставки = pd.DataFrame(книга заказов['ставки'])
спрашивает = pd.DataFrame(order_book['спрашивает'])
ставки.head()
Теперь объединяем их и переименовываем столбцы, чтобы они были более информативными:
df = pd.merge(ставки, запросы, left_index=True, right_index=True)
df = df.переименовать({"0_x":"Цена предложения","1_x":"Размер предложения", "2_x":"Сумма предложения",
"0_y":"Запрашиваемая цена","1_y":"Запрашиваемый размер", "2_y":"Запрашиваемая сумма"}, ось='столбцы')
df.head()
Чтобы получить данные о сделках, используйте конечную точку get_product_trades. Не забудьте ввести актив, получающий данные о; ETH-USD в этом примере.
сделки = pd.DataFrame(запросы.get('https://api.pro.coinbase.com/products/ETH-USD/trades ').json())
сделки.хвост()
Чтобы библиотека Python не застряла, используйте REST API.
Для доступа к веб-сайтам Coinbase Pro используйте конечную точку WebscoketClient. Благодаря этому трейдеры могут легко оставаться в курсе интересных данных.
импорт cbpro
wsc = cbpro.WebSocketClient(url="wss://ws-feed.pro.coinbase.com", products="ADA-USD",
каналы=["бегущая строка"])
Чтобы закрыть WebSocket, просто используйте простую команду:
wsc.закрыть()
Следующая команда помогает собрать данные о цене тикера до определенного количества сообщений WebSocket и распечатать их:
время импорта, cbpro
класс myWebsocketClient(cbpro.WebSocketClient):
определение on_open(self):
self.url = "wss://ws-feed.pro.coinbase.com/"
self.products = ["ETH-USDT"]
self.channels=["тикер"]
self.message_count = 0
определение on_message(self, msg):
self.message_count += 1
если "цена" в msg и "тип" в msg:
печать ("Тип сообщения:", msg["тип"],
"\t@ {:.3f}".формат(float(msg["цена"])))
определение on_close(self):
печать ("Закрытие")
wsClient = myWebsocketClient()
wsClient.start()
печать(wsClient.url, wsClient.products, wsClient.channels)
while (wsClient.message_count < 50):
печать ("\nmessage_count =", "{} \n".формат(wsClient.message_count))
время сна(1)
wsClient.close()
С помощью команд python Coinbase API совершать сделки довольно просто. Давайте рассмотрим два примера: совершение сделки по ETH, когда BTC достигает определенной цены, и совершение сделки по ETH, когда BTC движется на 5% за последние 5 минут.
Теперь давайте выясним, как правильно запустить ордер с указанными требованиями: начните торговлю на ETH, когда BTC достигнет определенной цены (например, 38500 долларов).
1. Установите основу заказа;
2. Создайте цикл, который будет проверять, достигнут ли уровень цены или нет;
3. Как только цена будет достигнута, рыночный ордер будет исполнен;
4. Подождите несколько секунд и проверьте, действительно ли заказ был выполнен.
После настройки логики пришло время импортировать соответствующие библиотеки и настроить API:
импорт cbpro
импорт base64
импорт json из time
импорт сна
ключ = "
секрет = "
кодовая фраза = "
encoded = json.dumps(секретный).encode()
b64secret = base64.b64encode(закодированный)
auth_client = cbpro.AuthenticatedClient(ключ=ключ, b64secret=секрет, кодовая фраза=кодовая фраза)
c = cbpro.PublicClient()
Что касается основной торговой логики, вот важное замечание, чтобы сделать ордер более безопасным. Для этого разместите лимитный ордер, взяв текущую цену ETH-USD и добавив несколько долларов сверху.
в то время как Верно:
Пытаться:
тикер = c.get_product_ticker(product_id='BTC-USD')
за исключением исключения в виде e:
печать(ошибка при получении данных тикера: {e}')
если значение с плавающей запятой(тикер['цена']) >= 38500,00:
Пытаться:
limit = c.get_product_ticker(product_id='ETH-USD')
за исключением исключения в виде e:
печать(ошибка при получении данных тикера: {e}')
Пытаться:
заказ=auth_client.place_limit_order(product_id='ETH-USDT',
сторона="купить",
цена=плавающая(ограничение['цена'])+2,
размер='0.007')
за исключением исключения в виде e:
печать(ошибка при размещении заказа: {e}')
сон(2)
Пытаться:
проверка = заказ['id']
check_order = auth_client.get_order(order_id=проверка)
за исключением исключения в виде e:
печать (можно настроить для проверки заказа. Это может быть отклонено. {e}')
если check_order['status'] == 'готово':
печать("Заказ размещен успешно")
печать(check_order)
перерыв
остальное:
печать("Заказ не был согласован")
перерыв
остальное:
печать(f) Требование не выполнено. Цена тикера равна {тикер["цена"]}')
сон(10)
Задача немного усложняется. Новый цикл должен будет получить цены двух криптовалют и рассчитать процентное изменение между ними:
● Если процентное изменение составляет менее 5%, программа будет находиться в режиме ожидания еще 5 минут;
● Если процентное изменение равно или превышает 5%, сделка будет выполнена.
Подождите несколько секунд после завершения и снова проверьте сделку.
в то время как Верно:
Пытаться:
ticker_old = c.get_product_ticker(product_id='BTC-USD')
за исключением исключения в виде e:
печать(ошибка при получении данных тикера: {e}')
сон(300)
Пытаться:
ticker_new = c.get_product_ticker(product_id='BTC-USD')
за исключением исключения в виде e:
печать(ошибка при получении данных тикера: {e}')
процент = ((float(ticker_new['price']) - float(ticker_old['price']))*100)/float(ticker_old['price'])
если процент >= 5:
Пытаться:
limit = c.get_product_ticker(product_id='ETH-USDT')
за исключением исключения в виде e:
печать(ошибка при получении данных тикера: {e}')
Пытаться:
заказ=auth_client.place_limit_order(product_id='ETH-USDT',
сторона="купить",
цена=плавающая(ограничение['цена'])+2,
размер='0.007')
за исключением исключения в виде e:
печать(ошибка при размещении заказа: {e}')
сон(2)
Пытаться:
проверка = заказ['id']
check_order = auth_client.get_order(order_id=проверка)
за исключением исключения в виде e:
печать (можно настроить для проверки заказа. Это может быть отклонено. {e}')
если check_order['status'] == 'готово':
печать("Заказ размещен успешно")
печать(check_order)
перерыв
остальное:
печать("Заказ не был согласован")
перерыв
остальное:
печать(f) Требование не выполнено. Процентное изменение составляет {процент}')
Отменить заказ очень просто. Перейдите к конечной точке
API cancel_order и введите идентификатор заказа в качестве параметра:
client.cancel_order(идентификатор заказа = "ИДЕНТИФИКАТОР ЗАКАЗА-ЗДЕСЬ")
В этой статье мы более подробно рассмотрели Coinbase Pro API и привели несколько примеров кода на python. Полный код можно найти на странице платформы GitHub.
Здесь пока нет комментариев. Будьте первым!