- Торговые биткоин-боты для заработка на криптовалютных биржах
- Что такое боты и как они функционируют
- Исследование о ботах в конце 2020 года
- Боты для торговли биткоином
- 1 Бот RevenueBot
- 2 Бот Stratum Bot
- 3 Бот 3Commas
- 4 Бот Cryptorg
- 5 Бот Haas Online Trade Server
- 6 Бот CryptoTrader
- 7 Бот CryptoHopper
- Преимущества и недостатки
- Заключение
- Создание Telegram-бота для получения информации о криптовалютном кошельке Dogecoin
- Регистрация бота в Telegram
- Предустановки
- Создание бота, обработка команд
- Регистрация бота в MS Bot Framework
- Создание отчёта
Торговые биткоин-боты для заработка на криптовалютных биржах
Боты для торговли биткоином позволяют трейдеру, даже не находясь у компьютера, получать прибыль с торговых операций на криптобиржах. Программное обеспечение дает возможность создавать собственные стратегии или пользоваться уже существующими. В индустрии сегодня представлено достаточно много роботов, каждый со своими особенностями. Редакция Profinvestment.com расскажет о лучших на сегодняшний день ботах для биткоин-трейдинга.
Что такое боты и как они функционируют
Криптовалютным ботом можно считать любой автоматизированный инструмент, который торгует от вашего имени на основе сигналов в соответствии с заранее заданными правилами. Существуют роботы для торговли на спотовых, маржинальных, внебиржевых счетах. Система может быть загружена на компьютер, работать в качестве централизованной службы или через облако.
Стратегии, реализуемые ботами, опираются на созданные разработчиком приложения алгоритмы; также многие системы позволяют создавать пользовательские стратегии торговли. Криптовалютные торговые боты работают через получение доступа к бирже через открытый и частный API key – это позволяет бирже убедиться, что вы разрешили программе работать от вашего имени – отслеживать рыночную ситуацию, за балансом и создавать buy или sell ордеры. Снимать средства бот, как правило, не может. Если встретите ПО с такой функцией, задумайтесь.
Два ключевых предназначения ботов для торговли биткоином:
- автоматизировать слишком сложные действия;
- автоматизировать рутинные действия, отнимающие много времени.
Правильно настроенный бот помогает пользователю реализовать стратегию управления портфелем любой сложности, сэкономив массу времени на ручное размещение сделок. Боты собирают и анализируют данные намного быстрее человека. Однако им все равно нужен контроль, и гарантий прибыли никто не дает.
Исследование о ботах в конце 2020 года
Адам Кокран, партнер Cinneamhain Ventures, опросил более 10 000 трейдеров со всего мира и составил подробную статистику использования криптовалютных ботов и отношения к ним пользователей. Что показала аналитика:
- 38% трейдеров когда-либо пробовали использовать робота, пусть даже триал-версию. При этом учитывались только активные трейдеры, то есть те, кто совершает хотя бы 3 сделки ежемесячно на протяжении 6 месяцев.
- Те, кто пользуется ботами, отмечают, что при помощи этих автоматизированных программ торгуется от 50 до 75% их активов.
- 94% клиентов обычно используют ботов для спотовой торговли. 65% пробовали применять их в маржинальном трейдинге, менее 4% — во фьючерсном.
- 83% криптоботов поддерживают биржу Binance, 66% — Coinbase, 58% — Bitfinex, Kraken, Poloniex.
- Только 7,5% пользователей впоследствии отказываются от использования бота (такие причины, как технические проблемы с ботом или недостаток функций, не учитывались).
- Наиболее популярные криптоботы среди зарубежных трейдеров — Haas Online Trade Server (выбор 62% пользователей, применяющих боты), CryptoHopper (34%), CryptoTrader (21%).
Боты для торговли биткоином
Рассмотрим несколько наиболее популярных ботов для Bitcoin-трейдинга.
1 Бот RevenueBot
Бот с гибкой настройкой и без абонентской платы – RevenueBot берет с пользователя 20% от дохода. Соответственно, в случае отсутствия дохода платить ничего не придется. Комиссия списывается с баланса внутри системы. При помощи робота можно торговать спотом или фьючерсами.
Платформа поддерживает умную сетку ордеров на основе цен и объема. Для определения объема ордеров в сетке применяется метод мартингейл, а распределение цен бывает линейным или логарифмическим. Можно создавать списки криптовалют, чтобы торговая пара переключалась автоматически, если текущая не отвечает требованиям для выгодных торгов. Поддерживаются биржи: Binance, Exmo, Binance Futures, Livecoin, Cex.io, Bittrex, Bitfinex, Poloniex, HitBTC, OKex, Bitmax, Kraken, Kucoin.
2 Бот Stratum Bot
Программное обеспечение Stratum Bot рассчитано на работу с биржами YoBit и Binance. В первом случае использование робота полностью бесплатно, но и функционал значительно более узкий. Версия для Бинанс стоит $13 в месяц (если покупать на 6 месяцев) и дает возможность использовать стратегии Scapling, Classic Long, Classic Short, 22 индикатора и фильтра, запуск до двадцати потоков одновременно.
Бот позволяет применять различные торговые инструменты (трейлинг-профит, фронт-раннинг, реинвестирование, обратный трейлинг, торговля внутри спреда и др.). Основной особенностью программы разработчики позиционируют мгновенную настройку в один клик. Автоподбор параметров помогает определить идеальную стратегию для любой торговой пары на текущий момент.
3 Бот 3Commas
Работа с ботом 3Commas обойдется минимум в $14,5 при покупке на год. Есть 3-дневный пробный период самого дорогого тарифа. Платформа позволяет управлять единым портфелем, объединяя балансы всех подключенных бирж. Поддерживаются спотовые и фьючерсные торговые терминалы, Take Profit и Stop Loss, личные сигналы TradingView, алгоритмы шорт и лонг, а также GRID и опцион боты.
В рамках 3Commas можно просматривать и копировать чужие стратегии, а также анализировать инвестиционные портфели других пользователей. Присутствует функция автобалансировки портфеля для поддержки оптимального соотношения монет в нем. Количество удерживаемых монет и токенов не ограничено. Можно подключить уведомления о важных событиях, в том числе через Telegram. Поддерживаемые биржи: Binance, FTX, Bybit, Bitmex, Deribit, Bittrex, Binance Dex, Binance Futures, Yobit, Bitfinex, Cex, EXMO, Huobi, Okex, Poloniex.
4 Бот Cryptorg
Минимальный тариф Cryptorg стоит $15 в месяц, новым пользователям он предоставляется бесплатно на две недели. Платформа позволяет запускать до 500 торговых ботов одновременно, в том числе 250 фьючерсных. Есть веб-терминал для совершения ручных торговых операций. Обладатели тарифов PRO и Бизнес получают право на индивидуальную техническую поддержку.
У Cryptorg есть также криптовалютная биржа Cryptorg.Exchange. Разумеется, бот пригоден для торговли на ней, причем пользователи получают ряд привилегий – расширенное количество спотовых и фьючерсных ботов. Присутствует возможность получения токенов CTG путем проведения торговых сделок при помощи ботов на платформе Cryptorg.
5 Бот Haas Online Trade Server
Haas – локальный сервер автоматизации, позволяющий создавать продвинутые боты для торговли биткоином. Отличается тем, что торговые данные и ключи API хранятся на оборудовании пользователя, а не в облаке, и защищены от просмотра третьими лицами. Стоимость начальной лицензии составляет 0.026 BTC в месяц при условии покупки на год.
Дополнительные уровни управления рисками позволяют защитить позиции от волатильности или в отдельных случаях воспользоваться колебаниями цен для своей выгоды. Синтетические виды ордеров, сканер рынка, функционал для управления портфолио, широкий диапазон готовых шаблонов. Поддерживаются биржи: Binance, FTX, Binance Futures, Bybit, Bitmex, Deribit, Cex.io и другие.
6 Бот CryptoTrader
Облачный бот CryptoTrader.org для торговли биткоином, весьма популярный среди западных трейдеров. Есть маркетплейс для покупки или продажи стратегий. Можно протестировать свою или чужую стратегию при помощи бэктестинга (на основе исторических данных) в разнообразных рыночных условиях.
Есть бесплатный триал на 7 дней, затем оплата составляет $8 в месяц; более продвинутые тарифы имеют стоимость до $200 в месяц. Возможно подключение уведомлений по SMS или e-mail. Поддерживается маржинальная торговля, шорт позиции. Начальные тарифные планы имеют ограничения по количеству средств на торговом счету, также им недоступна приоритетная поддержка. Поддерживаются биржи: Huobi, Bitfinex, Poloniex, Binance, Kraken, Coinbase, Kucoin, Bitstamp.
7 Бот CryptoHopper
CryptoHopper предлагает экспертный набор инструментов для 13 криптовалютных бирж. Всеми биржевыми учетными записями можно управлять через один аккаунт, контролируя свои средства. Есть социальная платформа для обмена мнениями, стратегиями и шаблонами. Возможно создание рынков и арбитраж с минимальными трудозатратами и без специализированных навыков.
Конструктор стратегий дает возможность управлять собственным техническим анализом, используя популярные индикаторы и модели свечей: Parabolic Sar, RSI, EMA, Hanged Man и т.д. CryptoHopper предлагает бесплатный тариф, функционал которого ограничивается созданием не более 20 позиций, а также управлением портфелем и ручной торговлей. Также есть 7-дневный триал на следующий тариф, который затем будет стоить $19 в месяц.
Преимущества и недостатки
- Мгновенный анализ любых изменений на рынке.
- Отсутствие эмоций, которые зачастую заставляют трейдеров принимать убыточные решения.
- Устранение рутины – не нужно вручную создавать множество ордеров, что отнимает и время, и силы.
- Бот функционирует, даже когда вы спите или отсутствуете.
- Возможны слабые места в системе безопасности.
- Боты не полностью самостоятельны, им все равно требуется наблюдение.
- Нет гарантированной доходности.
Заключение
Криптобиржи, в отличие от фондовых торговых платформ, работают 24/7. Это создает определенные сложности в торговле – можно легко упустить момент для совершения выгодной сделки. А таких моментов, в связи с волатильностью криптовалюты, может быть множество даже за один день. Эти факторы и заставляют криптотрейдеров все чаще прибегать к использованию ботов для торговли биткоином.
С помощью этих автоматизированных роботов трейдер может получать отличные результаты, особенно если разберется, как правильно настроить программу в соответствии со своими предпочтениями. Выбирая конкретного бота, следует обращать внимание на отзывы, команду разработчиков и соответствие между ценой и функционалом.
Источник
Создание Telegram-бота для получения информации о криптовалютном кошельке Dogecoin
Со времени описания технологии блокчейн в 2008-м году и появления первой реализации в 2009-м (биткоин) по настоящее время создано более тысячи криптовалют. Каждые несколько дней проводятся ICO. Многие занимаются майнингом или игрой на криптовалютных биржах.
В связи с тем, что валюты нестабильны и их курс постоянно меняется, во избежание потери сбережений важно иметь возможность в кратчайшие сроки получать актуальную информацию о курсе и состоянии своих счетов.
Так как информация о блокчейне общедоступна, то доступ к ней возможен с помощью веб-сервисов и мобильных приложений. Для мониторинга состояния счетов удобно использовать мультивалютные мобильные приложения. Однако из-за высокой скорости создания новых криптовалют не все разработчики успевают добавлять их поддержку, и пользователь вынужден устанавливать другие приложения с требуемой валютой, что сказывается на удобстве и на занимаемом объёме памяти устройства. Здесь нам на помощь приходит ещё один тренд современности – чат-боты, API управления которыми предоставляют большинство мессенджеров.
Рассмотрим создание чат-бота для Telegram, предоставляющего информацию о счетах такой криптовалюты, как Dogecoin. Dogecoin был представлен в 2013-м году и назван в честь интернет-мема Doge. Часто используется для сбора пожертвований и благотворительности.
Регистрация бота в Telegram
Начнём с регистрации бота в мессенджере. Для этого найдём в Telegram отца всех ботов – BotFather, отправим ему команду «/newbot» и заполним обязательные параметры: отображаемое (DogeWallet) и уникальное имя (DogeWalletBot). После этого BotFather предоставит токен доступа к боту. На этом можно закончить с регистрацией, но для удобства использования введём также описание бота, изображение и список команд, которые будут появляться после ввода символа «/»:
- setwallet — устанавливает адрес кошелька Dogecoin;
- balance — возвращает баланс введённого или адреса по умолчанию кошелька DogeCoin;
- received — возвращает Dogecoin полученные введённым адресом кошелька или адресом по умолчанию;
- sent — возвращает Dogecoin отправленные указанным адресом кошелька или адресом по умолчанию;
- qrcode — возвращает QR-код указанного адреса или адреса по умолчанию;
- report — возвращает отчёт о транзакциях указанного адреса или адреса по умолчанию;
- rate – возвращает текущий курс Dogecoin в долларах США и биткоинах
- help — показывает все доступные команды.
Предустановки
Теперь, когда бот зарегистрирован и определён основной функционал, можно приступать к выбору платформы разработки. Писать бота будем на Microsoft Bot Framework, т.к. он предоставляет широкие возможности по работе с диалогами и большой набор поддерживаемых каналов общения (что предоставляет возможность быстрого запуска бота в другом мессенджере почти без переписывания кода), в качестве языка выбираем C# (также возможно использование Node.js).
Для начала работы требуется Visual Studio 2015 или выше, шаблоны бота Bot Application, Bot Controller, Bot Dialog и Bot Framework Emulator – подробнее процедура установки описана в документации Microsoft Bot Framework.
Создание бота, обработка команд
Создаём проект из шаблона «Bot Application».
В структуре проекта можно наблюдать такие классы, как MessagesController и RootDialog. Входной точкой приложения, принимающей все входящие сообщения, является метод Post класса MessagesController. Он содержит следующий код:
Сообщения, являющиеся текстом, передаются в RootDialog для дальнейшей обработки, а все остальные в метод HandleSystemMessage класса MessagesController. Сообщения, не являющиеся текстом, могут быть сообщением о добавлении пользователя или бота в чат, начале или конце диалога.
Класс RootDialog, как и все диалоги, реализует интерфейс IDialog и должен содержать метод StartAsync. Первое сообщение, полученное ботом, поступает в этот метод. По умолчанию он содержит вызов context.Wait(MessageReceivedAsync) – то есть устанавливается метод, обрабатывающий следующее сообщение (но, так как до этого не было установлено ни одного обработчика полученного сообщения, то вызов MessageReceivedAsync произойдёт сразу после StartAsync).
Изменим метод MessageReceivedAsync так, чтобы вместо отправки полученного сообщения назад пользователю, он обрабатывал команды, определённые ранее.
Первой обрабатывается команда «/setwallet»: если введена только эта команда без указания адреса, то вызывается диалог SetWalletDialog с помощью метода context.Call. Он принимает такие параметры, как новый вызываемый диалог и функция, вызываемая по завершении вызванного диалога (SetWalletDialogResumeAfter). Тут стоит отметить, что Microsoft Bot Framework использует такую структуру, как стек диалогов – то есть первым вызывается RootDialog, который в свою очередь вызывает SetWalletDialog, помещая его в верх стека. Пока он находится на вершине, все сообщения будут поступать к нему (не считая глобальных диалогов, способных перехватывать управление при необходимости). При создании нового диалога сразу вызывается метод StartAsync класса SetWalletDialog:
При условии, что команда не содержит адрес, выводится сообщение, призывающее пользователя ввести адрес. Затем устанавливается следующий обработчик сообщений и ожидается ввод.
Если поступает команда, содержащая также и адрес («/setwallet [address]»), то новый диалог вызывается с помощью метода Forward. Этот метод отличается от Call тем, что передаёт сообщение далее в вызываемый диалог и после завершения метода StartAsync не происходит ожидание ввода, а сообщение сразу передаётся в метод MessageReceivedAsync класса SetWalletDialog. Рассмотрим этот метод.
Анализируется сообщение, если оно содержит пробел (то есть и команду, и адрес), то этот адрес выделяется и сохраняется в переменной. Этот вариант срабатывает в случае вызова диалога методом Forward. Если сообщение не содержит пробела (предполагается что введён адрес после сообщения бота о предложении его ввести), то адрес сохраняется в переменную без обработки. Этот случай возникает при создании диалога методом Call. Далее проверяется адрес на существование, путём попытки получить его баланс. Если это удаётся, то адрес сохраняется во внутреннее хранилище MS Bot Framework (context.UserData.SetValue(«wallet», address)) и диалог SetWalletDialog завершает работу, удаляется из стека (context.Done(address)) и передаёт родительскому диалогу адрес.
В случае ошибки (неправильный адрес), происходит обработка ошибок в методе ProcessErrors:
Пользователю даётся несколько попыток ввести верный адрес, затем диалог завершается с сообщением об ошибке (context.Fail(new TooManyAttemptsException(ExceptionFinalMessage))) и управление передаётся RootDialog.
После завершения дочернего диалога в родительском вызывается метод [DialogClassName]ResumeAfter, где происходит дальнейшая обработка результата дочернего диалога и вызывается метод context.Wait(MessageReceivedAsync) для указания получателя следующего сообщения.
Подобным образом обрабатываются и остальные команды с одним лишь отличием – они всегда передаются методом Forward, так как не требуют ввода уточняющего сообщения (в случае ввода команды без аргумента, адрес берётся из хранилища (context.UserData.TryGetValue(«wallet», out address)).
Остановимся на получении данных для вывода ботом, и в частности на представленном ранее методе Client.GetBalanceAsync. Client – статический класс, предоставляющий доступ к данным о криптовалютных кошельках. Он содержит методы, обращающиеся к API соответствующих сервисов. В данном проекте используются API таких проектов, как dogechain.info и chain.so. Рассмотрим метод GetBalanceAsync:
Здесь вызывается обобщённый метод получения данных, дополняя запрос и указывая тип возвращаемых данных. Тип возвращаемых данных описывается в простом POCO-классе BalanceEntity:
Рассмотрим метод GetAsync:
Данный метод инициализирует новый экземпляр класса HttpClient в методе InitClient:
Далее производится запрос к серверу, предоставляющему данные о кошельке и в случае успешного получения json-объекта, происходит его преобразование в соответствующий класс.
После реализации основных команд можно проверить работоспособность бота. Для этого воспользуемся эмулятором, скаченным ранее. Вводим адрес, на котором запущен бот и жмём CONNECT. Вводим команду «/setwallet» — бот говорит нам ввести адрес кошелька. Вводим.
И бот сообщает, что успешно сохранил его.
Проверим баланс командой «/balance» и узнаем, что на счету лежит чуть более 357-и собак: «Balance of D6VDAHdzDuuUxorDN1dRZVudu2PfxZvUNp address is: 357.91600317 DogeCoin’s».
Добавим приветствие, посылаемое пользователю при первом обращении к боту. Так как в качестве платформы для коммуникации мы используем Telegram, то первое сообщение, получаемое ботом будет «/start». Обработаем его, а также команду «/help» в MessageReceivedAsync класса RootDialog:
При получении команды вызываем соответствующие методы, а затем устанавливаем метод для обработки следующего полученного сообщения. Метод GreetUser отправляет сообщение приветствия и показывает справку о командах, ShowHelp – только справку.
В методе SendGreetMessage происходит создание сообщения приветствия и прикрепляется изображение Doge:
Новое вложение (Attachment) содержит такие параметры, как ContentUrl – путь к изображению, ContentType – тип вложения и Name – имя.
Регистрация бота в MS Bot Framework
После создания бота и отладки локально с помощью эмулятора можно приступать к развёртыванию на сервере и регистрации в Azure (ранее регистрация производилась на портале botframework.com, но с недавнего времени производится миграция в Azure и рекомендуется создавать новых ботов именно там). Публикуем нашего бота на Windows-хостинге (к сожалению, Bot Builder не поддерживает Core в текущей версии) или в Azure. После этого регистрируем бота. Для этого переходим в portal.azure.com, жмём кнопку создания нового ресурса (New) и вводим в поиске «bot». Из списка выбираем Bot Channels Registration и жмём «Create».
Заполняем поля, вводим в качестве Messaging Endpoint адрес нашего развёрнутого бота, добавив далее «/api/messages» — dogewalletbot.azurewebsites.net/api/messages.
После создания «Bot Channels Registration» заходим в него и во вкладке «Settings» ищем Microsoft App ID и расположенную рядом ссылку Manage. Переходим по ней на apps.dev.microsoft.com и жмём кнопку «Создать новый пароль». Запоминаем Microsoft App ID и пароль (MicrosoftAppPassword) и вводим их в Web.config нашего бота в разделе appSettings. После этого связь бота с каналами должна работать. Проверим в созданном ранее сервисе Bot Channels Registration в разделе «Test in Web Chat»:
Далее подключим канал для соединения с Telegram. Жмём Channels, выбираем Telegram и вводим токен, предоставленный BotFather. Заходим в Telegram, добавляем бота и жмём «Start».
Бот, получив команду «/start» отвечает приветствием и справкой. Также происходит и обработка остальных команд.
Создание отчёта
Реализуем отправку отчёта о входящих на адрес кошелька транзакциях в виде списка «id транзакции, значение» в формате PDF. Для этого воспользуемся генератором отчётов FastReport.Net и библиотекой работы с Telegram API (Telegram.Bot) для отправки pdf на сервера Telegram.
Данные о транзакциях будем получать по адресу chain.so/api/v2/get_tx_received/DOGE[address]. Ответ будем преобразовывать в класс следующей структуры:
Метод получения данных о транзакциях класса Client выглядит следующим образом:
Он переопределяет URL вызова API вначале метода и возвращает обратно перед завершением.
После получения списка транзакций в классе ReportDialog вызывается метод SendReport:
В нём, в свою очередь, создаётся отчёт в классе Reporter. Затем создаётся TelegramBotClient и отправляется pdf-отчёт.
Рассмотрим метод GetReceivedTransactionsPdf класса Reporter:
В начале строкой Config.WebMode = true устанавливается режим работы FastReport.Net, предотвращающий появление индикаторов загрузки и другой графики, не нужной в веб-режиме. Далее загружается подготовленный ранее отчёт из папки App_Data. Отчёт содержит заголовок отчёта, страницы и DataBand. На бэнде данных расположены два текстовых объекта (TextObject) для отображения номера транзакции и её значения.
После загрузки отчёта происходит подключение данных с помощью метода Report.RegisterData, включение подключенного источника данных и назначение его бэнду Data. Затем производится экспорт в PDF и возвращается Stream, содержащий отчёт.
Проверим работу команды. Отправим в Telegram сообщение — /report DRapidDiBYggT1zdrELnVhNDqyAHn89cRi и получим в ответ сообщение.
Откроем файл и увидим список входящих транзакций и их значения.
Источник