Ранее я уже писал о бесценной библиотеке CCXT, которую можно использовать для доступа к общим методам API биржи. CCXT поддерживает целый ряд унифицированных методов «из коробки». CCXT делает всю тяжелую работу, предоставляя вам стандартный набор данных от каждой биржи.
Однако, как мы все знаем, у каждой биржи могут быть свои причуды и особенности. Например, Binance, как и некоторые другие биржи, выдает дивиденды, если вы решили заблокировать определенные криптоактивы. Например, если вы храните USDT на Binance, вы можете получить до 10% годовых на первые $2000.
В CCXT нет единого набора методов для получения или работы с дивидендами, что означает, что нам нужно использовать специфические методы биржи или конечные точки API для получения данных. К счастью для нас, у CCXT есть способ сделать это.
Чтобы использовать любую из базовых конечных точек, вы просто соединяете части конечной точки в функцию, не указывая номер версии. Например, конечная точка для дивидендов — /sapi/v1/asset/assetDividend
, и это также запрос GET
, поэтому имя функции становится .sapiGetAssetAssetDividend()
. Обратите внимание на использование CamelCase и добавление ‘Get’ между именем API и конечной точкой.
Может быть полезно посмотреть на функцию describe()
класса для каждой биржи, чтобы получить представление о том, как формируются эти функции. Вы можете взглянуть на функцию для Binance здесь.
Когда у вас будет неявная функция API, вам нужно будет просто передать параметры для конечной точки в Dict:
from ccxt import binance
client = binance(
{
"apiKey": "the_api_key_from_binance"
"secret": "the_api_secret_from_binance"
}
)
response = client.sapiGetAssetAssetDividend({"startTime":
1656635948000, "endTime": 1658191192000, "limit": 500})
for dividend in response["rows"]:
print(f"You received {dividend["amount"]} of
{dividend["asset"] from {dividend["enInfo"]}.")
Каждая конечная точка имеет свой набор необходимых и необязательных параметров, которые вы можете ей передать. Вы можете узнать подробности о том, что требуется для конечной точки Dividend, здесь.
Большинство бирж имеют документацию для своего API, аналогичную Binance. Имейте в виду, что она может быть неактуальной, поэтому вы захотите взять образец json-ответа из примера вызова, чтобы проверить, соответствует ли он тому, о чем говорится.
Еще одна вещь, которую я узнал, заключается в том, что стандартный набор вызовов CCXT сортирует возвращаемые данные так, чтобы самая последняя запись находилась на первой позиции, а самая старая — на последней. Однако Binance и некоторые другие биржи возвращают данные в обратном порядке. Опять же, перепроверьте свои данные.
Заключение
CCXT предоставляет очень хороший набор стандартных вызовов для получения и отправки данных на биржи, но биржи бывают разных форм и размеров. Иногда вам придется заглянуть под капот и вызвать некоторые конечные точки, характерные только для данной биржи. Эти неявные вызовы API помогут вам сделать именно это. Не бойтесь немного испачкать руки.
Эта статья содержит партнерские ссылки; без дополнительной платы для вас я могу получить компенсацию, если вы приобретете товары или услуги по ссылкам, указанным в этой статье. Покупка, продажа и торговля криптоактивами сопряжены с риском. Всегда проводите собственные исследования, прежде чем вкладывать деньги. Эта статья не является финансовой консультацией.