Рубрики
Без рубрики

Как построить простую криптовалютную торговую бот в Node.js

Строительство CryptogUrnency Trading Bot в Node.js – отличный способ улучшить свои навыки кодирования. Давайте прыгнем в это в этой статье!

Автор оригинала: Dr. Michael Garbade.

Создание CryptogUrnency Trading Bot – это отличное упражнение для улучшения вашего опыта развития. Кроме того, вы можете коммерциализировать его и заглавить быстрый рост криптовалютов для увеличения вашего богатства.

Эта статья будет просто поцарапать поверхность построения криптовалюнтной торговой бота в Node.js. Конечно, вы всегда можете научиться построить что-то продвинутое от экспертов, таких как Эллиотминнс , который является опытным программным инженером из США Вот некоторые цели, которые мы хотим, чтобы торговый бот достигнет:

• Подключитесь к GDAX и используйте его API • Получите текущие цены на криптовалюту • Сделайте торги на основе предусмотренных правил

Давайте начнем

Предположим, что читатели уже имеют базовое понимание JavaScript и Nodejs, MongoDB и Docker.

Вы также должны иметь учетную запись в GDAX, который является удивительной платформой, поддерживаемой Coinbase, которая предлагает комплексную торговую API.

Чтобы настроить проект, вам нужно будет создать папку и создать файл на нем.

Вот как вы можете сделать это на командной строке (на машине Windows).

mkdir cryptobot
cd cryptobot
edit index.js
npm init

Затем вам нужно будет включить пакет библиотеки узла GDAX в качестве одной из ваших зависимостей в файле Package.json.

npm install gdax

Давайте добесем наши руки грязнее с некоторым кодом.

Использование Public API GDAX

GDAX имеет публичное API, которое вы можете получить доступ без регистрации учетной записи. Давайте использовать его публичные API, чтобы увидеть криптовалюты, которые он предлагает для торговли.

const GDAX = require("gdax");
const publicClient = new GDAX.PublicClient();
 
const callback = (error, response, data) => {
  if (error)
 	return console.dir(error);
 
  return console.dir(data);
}
publicClient.getProducts(callback);

Если вы запустите вышеуказанный код, ваш результат будет выглядеть следующее.

gdax1.png.png.

Как вы можете видеть выше, PartyClient Метод требует обратного вызова, чтобы избежать возвращенных обещаний.

Функция обратного вызова принимает три аргумента:

Ошибка: Создает сообщение об ошибке, если что-то идет Amss. • Ответ: Это общий аргумент абстракции отклика HTTP. • Данные: Это информация, предоставленная API GDAX.

GetProducts Это метод общественного API, который используется для перечисления Cryptogurrens GDAX.

Есть также некоторые другие публичные методы, такие как GetCurrenss и GetProductistoricalrates.

Вот как GetCurrenss Метод можно использовать.

const GDAX = require("gdax");
const publicClient = new GDAX.PublicClient();
 
const callback = (error, response, data) => {
  if (error)
 	return console.dir(error);
 
  return console.dir(data);
}
//publicClient.getProducts(callback);

publicClient.getCurrencies(callback);
 

Вот вывод.

gdax2.png.png.

Например, давайте будем использовать GetProductistoricalrates Способ получения исторических цен Биткойна.

const GDAX = require("gdax");
const publicClient = new GDAX.PublicClient();
 
const callback = (error, response, data) => {
  if (error)
 	return console.dir(error);
 
  return console.dir(data);
}
 
//publicClient.getProducts(callback);
 
//publicClient.getCurrencies(callback);
 
publicClient.getProductHistoricRates('BTC-USD', callback);
 
publicClient.getProductHistoricRates(
  'BTC-USD',
  { granularity: 3600 },
  callback
);

Вот вывод.

gdax3.png.png.

Использование клавиш личных API GDAX

После регистрации аккаунта с GDAX вы получите доступ к своей личному API, который предлагает больше функций в создании краевой торговой бота.

Чтобы создать личный ключ API, перейдите к вашему Настройки учетной записи GDAX Раздел Отказ После создания ключа API вы будете предоставляться тремя критическими элементами информации:

Ключ – автоматически создан для вас. • Секрет – Также сделан случайно для вас. • Переноса – Вы должны предоставить ему предложить дополнительную безопасность для вашего доступа API. Хотя

GDAX сохраняет соленый хэш вашей парольной фразы, она не может восстановить его в случае, если вы забудете.

Вам также необходимо указать URL доступа API; Или иначе он будет по умолчанию для https://api.gdax.com.

Вот код для аутентификации ключа API.

const gdaxKey = "INSERT_YOUR_GDAX_KEY";

const gdaxSecret = "INSERT_YOUR_GDAX_SECRET";

const passPhrase = "INSERT_YOUR_GDAX_PASSPHRASE";

const apiURI = 'https://api.gdax.com';
const authenticatedClient = new GDAX.AuthenticatedClient(gdaxKey, gdaxSecret, passPhrase, apiURI);

АутентификацияClient Pressocient Метод наследует все методы API от PartyClient метод. Следовательно, если вы получаете доступ как к общедоступному устройству GDAX, так и частным API, просто создайте один клиент.

Кроме того, как метод PartyClient, каждый частный метод API также требует, чтобы выполнить функцию обратного вызова в качестве аргумента.

Например, если вы хотите получить список всех торговых счетов, вы можете использовать getaccounts метод.

authenticatedClient.getAccounts(callback);

После получения информации о ваших аккаунтах вы можете сделать отдельный запрос на каждую учетную запись, чтобы получить более конкретные детали.

const INDIVIDUAL_ACCOUNT = "INSERT_ACCOUNT_ID";

authenticatedClient.getAccount(INDIVIDUAL ACCOUNT, callback);
 

Получать текущие цены

Вместо того, чтобы затопить GDAX с запросами, что-то сильно обескуражено, вы можете получить информацию о текущих ценах Cryptogurrens, используя ее WebsocketClient.

После создания подключения WebSocket с серверами GDAX вы сможете прослушать обмен сообщениями, имеющими место, и соответствующим образом фильтруйте конкретную информацию, которую вам требуется.

Например, скажем, нам нужна информация о биткойн.

const BTC_USD = 'BTC-USD';
const websocket = new GDAX.WebsocketClient([BTC_USD]);

const websocketCallback = (data) => console.dir(data);
websocket.on('message', websocketCallback);

Получение текущей цены на биткойн на сгенерированном выходе требуется, чтобы мы внесли модификации вышеуказанного кода.

Для достижения этого нам нужно отфильтровать заказы, которые заполнены и/или сделаны. Таким образом, мы получим информацию о продаже, которая только что закрыла и получила ценовую информацию, сопровождающую этот заказ.

Понятно?

Вот улучшенный код, который извлекает текущие цены на биткойн.

const websocketCallback = (data) => {

 	if (!(data.type === 'done' && data.reason === 'filled'))

     	return;
 	console.dir(data);

}

Размещение покупки и продажи заказов

Это раздел, о котором вы ждали?

Поскольку у вас есть вся информация о ваших аккаунтах, и вы можете получить изменения в

Ethereum Цена, размещение покупки и продажи заказы возможны.

Вот пример кода для размещения заказов.

function placeBuy(buyData) {

  const buyParams = {

    	'price': buyData.price,

    	'size': buyData.size,

    	'product_id': BTC_USD,

  };
  this.buyOrderId = authedClient.buy(buyParams, callback);

}

Вот код для размещения заказов на продажу.

function placeSell(buyData) {

  const sellParams = {

    	'price': buyData.price,

    	'size': buyData.size,

        'product_id': BTC_USD,

  };
  this.sellOrderId = authedClient.sell(sellParams,  callback);

}

Вот и все!

Заключение

Торговый бот, который мы создали выше, очень просты и не могут гарантировать прибыльную торговлю.

Некоторые из ключевых функций, которые он пропускает, являются возможности остройки, прочные торговые стратегии и дорожная карта для развертывания в фактических условиях торговли.

Если вы идете вперед и используете бот в торговле, вы можете испытать убытки. Поэтому, если вы хотите, чтобы практический опыт создания Расширенный торговый бот Убедитесь, что вы включаете недостающие функциональные возможности или учитесь у профессионала о том, как это сделать.

Всего наилучшего.