Как сделать бота самому

13 крутых онлайн-сервисов для создания чат-ботов

Чат-бот – хороший способ автоматизировать коммуникацию с пользователями в любом бизнесе. От саппорта и справочной функции до маркетинга и прямых продаж – со всеми этими задачами чат-боты хорошо справляются и показывают неплохие результаты.

Мы подготовили подборку 13 сервисов, в которых можно создать чат-боты для популярных мессенджеров без знания кода. Читайте и выбирайте.

Чат-бот не тренд, а необходимость

Чат-ботом сейчас никого не удивишь. Их используют практически во всех нишах: от госучреждений до интернет-магазинов. Чат-боты отлично справляются с различными задачами:

ответами на частые вопросы пользователей и т. д.

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

Чат-бот – полезный инструмент не только для службы поддержки, но и для маркетинговых задач. Можно вести трафик из поисковых систем и соцсетей на чат-бота, внутри него реализовать автоворонку продаж, которая будет подогревать пользователей полезным и интересным контентом, а затем конвертировать в клиентов, продавая основной продукт. Открываемость сообщений в мессенджерах в разы выше, чем email-рассылок, поэтому использование чат-ботов помогает повысить эффективность вложений в маркетинг. Кстати, ее можно повысить еще больше, запуская контекстную и таргетированную рекламу через Click.ru и получая партнерское вознаграждение до 18% от общих затрат на рекламу по всем аккаунтам. Подробнее о партнерской программе здесь.

Трендовость темы породила большое количество сервисов, с помощью которых можно без знания кода создавать чат-боты разной степени сложности и использовать их для своих проектов.

Когда мы делали подборку, мы ориентировались на сервисы, которые, по нашему мнению, наиболее удобны, приемлемы по цене + обладают хорошим функционалом:

процесс создания чат-бота понятен и гибок (почти все сервисы из подборки – визуальные конструкторы);

тарифные планы адекватны и прозрачны;

есть встроенная CRM, интеграции с внешними сервисами просты;

сервис поддерживает популярные мессенджеры и соцсети.

13 сервисов для создания чат-ботов

1. Aimylogic

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

Кроме чат-ботов в Aimylogic также можно создавать голосовые боты, настраивать сценарии умных обзвонов и внедрять их в бизнес-процессы.

Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

Бот создается с помощью визуального конструктора:

Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

Основные возможности чат-ботов:

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

можно обучать бота на примере реальных фраз (например, можно создать интенты и добавить несколько примеров фраз пользователей, с помощью машинного обучения бот будет распознавать большинство фраз, которые относятся к этой теме);

Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    готовые интеграции с популярными мессенджерами, голосовыми помощниками и другими сервисами;

Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    перевод диалога на живого человека;

    для интернет-магазинов актуальна опция «Справочник товаров». В него можно внести список товаров, и бот сможет распознавать запросы о продукции и выдавать пользователям цены, характеристики и другую информацию о товаре.

    Поддерживаемые соцсети и мессенджеры: WhatsApp, Telegram, Viber, Facebook, ВКонтакте, Instagram, онлайн-чаты.

    Стоимость: сервис не самый дешевый. Минимальный тарифный план «Developer» стоит 990 руб/мес, но в этом тарифе доступно только 100 пользователей (людей, которые пользуются ботом). Тариф на 1000 пользователей обойдется уже в 5 900 рублей ежемесячно.

    2. Flow XO

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

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    создание ботов с помощью визуального конструктора;

    создание автоматизированных потоков для основных сценариев взаимодействия с пользователями;

    интеграция с 100+ сервисами (сервисы Google, CRM, платежные системы и т. д.);

    сбор статистики по взаимодействию с пользователями;

    кроссплатформенное взаимодействие с пользователями.

    Поддерживаемые мессенджеры и соцсети: Facebook Messenger, Telegram, Twilio, Clack, также можно разместить чат на сайте.

    3. BotKits

    Русскоязычный онлайн-конструктор чат-ботов. В сервисе можно создавать чат-боты для мессенджеров и соцсетей.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    создание сценариев и вариантов развития диалога в чат-боте;

    проведение опросов, сбор и обработка данных пользователей;

    прием заказов и платежей;

    сбор клиентской базы;

    триггерные рассылки пользователям, которые взаимодействовали с ботом.

    Поддерживаемые мессенджеры и соцсети: ВКонтакте, Telegram, Facebook, Viber, Одноклассники, Яндекс.Алиса (также ожидается интеграция с WhatsApp).

    В BotKits есть встроенная CRM, в которой доступна база пользователей, взаимодействовавших с ботом. Базу можно выгружать в таблицы для использования в других системах.

    Стоимость: минимальный тариф – 390 руб/мес. В нем достаточно много ограничений (например, недоступны CRM-таблица, рассылки, прием платежей и т. д.). Максимальный тариф (со всем функционалом) – 1390 руб/мес.

    Также в BotKits можно заказать создание чат-бота под ключ.

    4. Botmother

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

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    настройка сценариев для взаимодействия с пользователями;

    переключение между чат-ботом и онлайн-чатом (подключение в чат оператора);

    отправка файлов пользователям (видео, изображения, другие файлы);

    прием платежей (есть интеграция с Robokassa, ЮKassa и другими платежными системами);

    обмен данными с другими сервисами (Botmother поддерживает интеграцию с сервисами Zapier, Albato и ApiX-Drive, через которые можно связать чат-бот практически с любым сервисом – от Google Таблиц до сервисов рассылки и CRM);

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

    Поддерживаемые мессенджеры и соцсети: Telegram, Viber, WhatsApp, Facebook, ВКонтакте, Одноклассники.

    Стоимость: от 999 руб/мес. Функционал сервиса можно протестировать бесплатно.

    5. Fasttrack

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

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    визуальный конструктор чат-ботов для мессенджеров;

    омниканальные сценарии. Можно настраивать и подключать единую логику для всех активных каналов коммуникации (мессенджеры, соцсети, чат на сайте и т. д.);

    встроенная CRM-система с полной историей взаимодействия клиента с каналами коммуникации;

    обработка данных от пользователей или внешних источников в реальном времени;

    автоматические и ручные подписки пользователей на автоворонки;

    поддержка одновременного запуска нескольких сценариев для пользователя;

    покупки в мессенджере (возможность встраивания web-страницы с каталогом и корзиной).

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

    Есть несколько вариантов использования платформы:

    облачный SaaS с сертификатом по ФЗ-152 (хранение пользовательских данных согласно законодательству РФ);

    коробочное решение для установки в корпоративной сети компании.

    Поддерживаемые мессенджеры и соцсети: Telegram, Viber, Facebook Messenger, VK, OK, WhatsApp, WhatsApp Business API, email и чат на сайте.

    Стоимость: рассчитывается индивидуально, по запросу.

    6. Botsify

    Англоязычный сервис для создания чат-ботов с использованием искусственного интеллекта.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    визуальный онлайн-конструктор чат-ботов;

    обучение ботов с помощью алгоритмов машинного обучения;

    подбор похожих фраз из запросов пользователей;

    поддержка быстрых ответов;

    сбор и квалификация лидов;

    поддержка 190 языков;

    подключение оператора в диалог.

    Поддерживаемые платформы: WhatsApp, Facebook Messenger, Telegram, SMS, можно установить как чат на сайте.

    7. Dexter

    Англоязычный сервис, предлагающий платформу для создания чат-ботов. Главная фишка платформы – боты создаются тут не привычным конструктором с помощью добавления и перетаскивания блоков, а в текстовом редакторе. Как считают сами создатели сервиса, это позволяет максимально просто создавать ботов (не сложнее, чем написать короткую историю), а уход от блоков и схем дает возможность не перегружать пользователей.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    отправка сообщений по заданному сценарию;

    ведение и хранение истории сообщений с пользователями;

    сбор и обработка данных пользователей;

    отправка файлов (видео, аудио, картинки);

    рассылка сообщений и уведомлений по расписанию.

    Поддерживаемые платформы: Slack, Facebook Messenger, Twilio, Twitter, Alexa, Viber, сайт.

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

    8. Gerabot

    Украинский онлайн-конструктор для создания и управления чат-ботами. Также у Gerabot можно заказать создание чат-бота под задачи бизнеса под ключ.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    настройка сценариев взаимодействия с пользователями;

    подключение оператора в чат с пользователем (по запросу пользователя или по заданному сценарию);

    прием заявок от пользователей;

    консультирование клиентов и предоставление нужной информации.

    Поддерживаемые платформы: Viber, Telegram, Facebook, сайт.

    Стоимость: от 480 грн в месяц.

    9. Chatforma

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

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    ответы на вопросы пользователей и предоставление нужной информации;

    сбор и квалификация лидов с помощью тестов, опросов и других механик;

    обработка заявок от пользователей;

    ручные и автоматические рассылки по базе пользователей;

    сегментация базы клиентов и использование сегментов в различных сценариях;

    возможность создания мини-лендингов в чат-боте;

    переключение на живого специалиста;

    создание витрины товаров в чате;

    автоматические уведомления от бота о новых заказах или определенных действиях пользователей.

    Платформы: Facebook, Telegram, Viber, ВКонтакте, сайт.

    Стоимость: 1000 рублей в месяц за 1 чат-бот.

    10. Chatbot

    Англоязычная платформа для создания чат-ботов под задачи основных направлений бизнеса (маркетинг, продажи, саппорт клиентов).

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    визуальный конструктор типа drag-and-drop;

Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    возможность тестирования готового бота прямо в интерфейсе платформы;

    кастомизация виджета чата для сайта;

    сбор данных о пользователях, хранение и сегментация базы;

    отправка изображений и других типов файлов;

    кнопки для быстрых ответов;

    анализ сообщений и обучение с помощью алгоритмов искусственного интеллекта;

    база готовых шаблонов для типовых сценариев, шаблоны можно редактировать и кастомизировать под себя.

    Поддерживаемые платформы: Facebook Messenger, Slack, LiveChat, сайт.

    11. Salebot

    Еще один русскоязычный конструктор чат-ботов. Платформа позволяет создавать ботов с помощью блок-схем и интегрировать их с различными сервисами.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    прием и обработка заявок от пользователей;

    прием и контроль оплат через платежные системы;

    отправка файлов в чат (аудио, видео, изображения);

    можно получать файлы от пользователей;

    запись клиентов на прием и оформление брони;

    можно в любой момент подключиться к чату с пользователем и продолжить общение вместо бота;

    есть статистика активности бота и пользователей, CRM и другие полезные инструменты;

    чат-бот можно интегрировать с внешними CRM (Битрикс, AmoCRM), а также с другими сервисами по API.

    Поддерживаемые платформы: Telegram, ВКонтакте, Facebook Messenger, Talk-me, Viber, WhatsApp, Webim, LiveTex, Авито, Одноклассники, JivoSite, Юла, Instagram.

    Стоимость: минимальный тарифный план – 799 руб/мес.

    12. Konverbot

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

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    интеграция с CRM и онлайн-чатами (Битрикс24, Webim, Avito, Tilda, Jivosite, Carrot Quest, Livetex);

    создание сценариев диалогов;

    создание микровиджетов (текстовые кнопки, формы обратной связи, выбор даты, товарные карточки и другие функциональные кнопки внутри бота);

    встроенный функционал для тестирования бота;

    контекстные первичные сообщения (подстройка сообщений в зависимости от URL страницы, на которой находится пользователь);

    реализация товарного каталога и сопутствующих товаров для допродаж.

    Поддерживаемые платформы: ВКонтакте, Facebook, Telegram, WhatsApp, Instagram, сайт.

    Стоимость: от 1000 руб/мес.

    13. BotHelp

    Русскоязычная платформа для создания рассылок, автоворонок и чат-ботов в мессенджерах и соцсетях.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Основные возможности:

    визуальный конструктор чат-ботов;

    сбор и сегментация базы пользователей, взаимодействующих с ботом;

    настройка ручных и автоматических рассылок;

    интеграция с CRM-системами (Битрикс24, amoCRM и другие);

    кастомные интеграции с помощью API и вебхуков.

    Поддерживаемые мессенджеры: WhatsApp, ВКонтакте, Telegram, Facebook Messenger, Viber.

    Стоимость: от 990 рублей в месяц.

    Сравнение конструкторов чат-ботов: что выбрать

    Мы свели основные параметры всех сервисов из подборки в сравнительную таблицу:

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Здесь можно сравнить сервисы по семи наиболее важным параметрам:

    способ визуализации процесса (у всех сервисов, за исключением Gerabot, это блок-схемы);

    готовые шаблоны (если они есть, создать чат-бот для типовой задачи будет проще);

    цена и наличие пробного периода (сервисы, у которых есть пробный период, можно более объективно оценить – протестировать функционал, попробовать создать бота и понять, подходят ли возможности сервиса для ваших задач);

    интеграция с CRM (важный критерий, так как удержание клиентов и работа с базой критически важны для любого бизнеса в современных реалиях);

    наличие дополнительного функционала вроде рассылок, мини-лендингов и т. д.

    Полная версия таблицы доступна здесь.

    Источник

    Инструкция: Как создавать ботов в Telegram

    24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.

    Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

    Рассмотрим API на примере создания тривиального бота:

    1. Регистрация

    Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.

    Пишем ему /start и получаем список всех его команд.
    Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

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

    Не забудьте проверить полученный токен с помощью ссылки /getMe»>api.telegram.org/bot /getMe, говорят, не всегда работает с первого раза.

    2. Программирование

    Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.

    Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)

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

    Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

    Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.

    Собственно, её код довольно прост:

    Теперь, когда вся логика бота описана можно начать придумывать ему команды.

    3. Команды

    Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

    Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.

    Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.

    После этого можно добавить какую-нибудь свою команду, например, /base64:

    Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
    I: /setcommands
    BotFather : Choose a bot to change the list of commands.
    I: @******_bot
    BotFather: OK. Send me a list of commands for your bot. Please use this format:

    C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

    4. Свобода

    Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.

    UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/ ) (https://core.telegram.org/bots#privacy-mode)

    Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.

    Для начала в Handler добавляем обработчик:

    А потом в список команд добавляем псевдо-речь:

    Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

    5. Не текст.

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

    Для примера расширим словарь RESPONSES:

    И будем отлавливать текст :

    Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

    И все, теперь бот будет время от времени присылать стикер вместо времени:

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    6. Возможности

    Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

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

    7. Ограничения

    К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.

    К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

    P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.

    UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).

    Источник

    Пошаговое руководство по созданию торгового бота на любом языке программирования

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

    Часто можно встретить статьи, которые называются примерно так: «10 проектов, которые нужно реализовать программисту». Часто в списки этих статей входят торговые боты. Я считаю, что разработка торгового бота — это достойное вложение сил. Поэтому я решил уделить некоторое время тому, чтобы написать учебное руководство об этом.

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

    Поэтом я расскажу о том, что полезно знать для разработки торгового бота, и о том, что для этого нужно (от работы с биржами до реализации простой торговой стратегии). Здесь же я коснусь вопросов, связанных с архитектурой и внутренним устройством простых торговых ботов, с идеями, которые лежат в их основе.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Я буду демонстрировать примеры, написанные на псевдокоде. Поэтому вы сможете читать это руководство и тут же писать собственного бота на выбранном вами языке программирования.

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

    Шаг 1. Выбираем оружие

    На первом шаге этого руководства вы выберете язык программирования, которым будете пользоваться. Этот вопрос вы должны решить самостоятельно.

    Некоторым языкам, вроде Python, можно отдать предпочтение в том случае, если вы планируете в будущем оснастить своего бота, например, механизмами машинного обучения. Но моя основная идея заключается в том, что вы можете выбрать тот язык, с которым вам удобнее всего работать.

    Шаг 2. Ищем поле битвы

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    В руководствах по написанию торговых ботов часто упускают одну важную тему. Она касается выбора биржи. Дело в том, что для того чтобы бот смог бы заниматься тем, для чего он создан, ему нужен доступ к бирже, на которой можно чем-то торговать. Выбор биржи и умение ей пользоваться — это так же важно, как навыки программирования.

    Итак, вашим первым шагом будет принятие решения о том, чем именно вы собираетесь торговать (акциями, валютами, криптовалютами), и решения о том, где именно вы будете торговать.

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

    Более «традиционными» активами можно торговать только в определённые временные промежутки, и часто — только по будним дням. Рынки акций, например, обычно открыты с 9 утра до 4 вечера и по выходным они не работают. Рынки FOREX, хотя и могут работать круглосуточно, обычно закрыты в выходные.

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

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

    И ещё, что так же важно, как и всё остальное, я порекомендовал бы оценить объём торгов биржи. Биржи с низкими объёмами имеют свойство «отставать» от ценовых движений. На них, кроме того, сложнее бывает выполнять лимитные заявки (подробнее об этом мы поговорим ниже).

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

    Шаг 3. Строим лагерь

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Если биржа — это поле битвы, то теперь мы поговорим о том месте, из которого будем отправлять на поле битвы свои войска. Кстати, мне, пожалуй, пора завязывать с такими аналогиями.

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

    Во время тестирования бота, естественно, в роли сервера может выступать ваш компьютер. Но если вам нужно, чтобы бот работал бы постоянно, обычный компьютер — это, определённо, не лучший выбор.

    Тут у меня есть два предложения:

    Но большинство создателей ботов, вероятно, остановят свой выбор на каком-нибудь провайдере облачных услуг вроде AWS, Azure, GCS или Digital Ocean.

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

    На этом я разговор о серверах завершаю. Вам стоит выбрать то, что лучше всего вам подходит. Для маленького проекта, вроде того, которым занимаемся мы, то, что именно будет выбрано, не особенно сильно повлияет на конечный результат работы.

    Шаг 4. Создаём бота

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    А вот теперь начинается самое интересное. Но, прежде чем приступать к этой части нашего проекта, проверьте, выполнено ли следующее:

    ▍Простейший бот

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

    У нашего бота будут некоторые ограничения:

    ▍Механизм принятия решений

    Вот простая диаграмма, дающая общий обзор функционирования нашего бота.

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    А теперь можно приступать к планированию архитектуры бота.

    Нам, для начала, понадобится переменная, в которой будут храниться сведения о том, в каком именно состоянии находится бот в текущий момент. Это либо BUY, либо — SELL. Для хранения подобных сведений хорошо подойдёт логическая переменная или перечисление.

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

    В нашем случае подобные значения будут константами. Нам понадобится 4 таких значения — по 2 на каждое состояние бота.

    ▍Пороговые значения для выполнения операции BUY (если бот находится в состоянии SELL)

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    ▍Пороговые значения для выполнения операции SELL (если бот находится в состоянии BUY)

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

    Теперь, после того, как у нас сформировалось общее понимание того, как функционирует бот, пришло время рассмотреть псевдокод.

    ▍Вспомогательные функции для работы с API

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

    Вышеприведённый код должен быть понятен без особых объяснений. Но, реализуя этот функционал, вы должны точно знать о том, какие именно данные нужно передать API при выполнении POST-запросов, инициирующих покупку или продажу чего-либо.

    Часто, например, когда торгуют парой XAU/USD (золото и доллары США), при выполнении запроса можно указать или то, сколько золота нужно купить, или то, сколько долларов нужно продать. При выполнении подобных запросов очень важно чётко понимать смысл производимых действий.

    ▍Главный цикл бота

    Теперь, когда мы подготовили вспомогательные функции, приступим к описанию действий бота. Для начала нам нужно создать бесконечный цикл, выполняемый с некоторой периодичностью. Предположим, нам нужно, чтобы бот пытался бы выполнить некую операцию каждые 30 секунд. Вот как может выглядеть такой цикл:

    Далее — настроим переменные и константы, о которых мы говорили выше, и напишем логику бота, позволяющую ему принимать решения. В результате, помимо вспомогательных функций и главного цикла, основной код бота будет выглядеть так:

    Обратите внимание на то, что пороговые значения в этом коде выбраны произвольным образом. Вам следует подобрать эти значения самостоятельно, в соответствии с применяемой вами торговой стратегией.

    На каждой итерации цикла бот будет проверять своё текущее состояние (BUY или SELL) и будет пытаться выполнить торговую операцию, используя при анализе текущей ситуации жёстко заданные в его коде пороговые значения. Затем, если операция будет выполнена, бот обновит сведения о своём текущем состоянии и данные о цене, по которой была совершена последняя операция.

    Шаг 5. Улучшаем бота

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

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

    ▍Журналы

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

    Каждый шаг работы программы должен был сопровождаться примерно такими записями:

    То, что попадает в файл журнала, снабжается отметками времени. В результате, если я подключаюсь к серверу раз в день, и вижу, например, сообщение об ошибке, я могу узнать о том, когда именно произошла ошибка, и о том, чем бот занимался всё это время.

    ▍Идентификация трендов

    Эти значения предназначены для ограничения убытков путём продажи актива при падении цены и для организации покупки актива при росте цены. Смысл тут в том, что с их помощью мы пытаемся предугадать тренды, цены при появлении которых выходят за пределы обычной стратегии, но могут либо нам навредить, либо дать нам заработать. И то и другое предусматривает некие действия с нашей стороны.

    То, как сейчас устроен анализ цены, очень сильно нас ограничивает. Анализ цены, проводимый путём сравнения пары показателей, далёк от механизма, позволяющего выявлять тренды.

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

    ▍База данных?

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

    При таком подходе бот, запускаясь, может не использовать значения, жёстко заданные в коде. Вместо этого он обращается к сохранённым данным и продолжает работу с того места, где она была прервана.

    ▍Панель управления

    Как сделать бота самому. Смотреть фото Как сделать бота самому. Смотреть картинку Как сделать бота самому. Картинка про Как сделать бота самому. Фото Как сделать бота самому

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

    Это потребует наличия у бота собственного серверного API, предназначенного для управления его функционалом.

    Подобный подход, например, позволит легко менять пороговые значения.

    Существует множество шаблонов панелей управления, а значит вам, если вы решите сделать что-то подобное, даже не придётся создавать такую панель с нуля. Взгляните, например, на Start Bootstrap и Creative Tim.

    ▍Тестирование стратегий на исторических данных

    Многие биржи дают клиентам доступ к историческим ценовым данным. Кроме того, если вам нужны такие данные, их обычно несложно достать.

    Их использование весьма полезно для тестирования торговых стратегий перед их реальным применением. Это позволяет запустить симуляцию, используя исторические данные и «ненастоящие» деньги. Благодаря этому можно узнать о том, насколько удачно показали бы себя пороговые значения, и, если нужно, поменять эти значения.

    ▍Дополнительные сведения о пороговых значениях и заявках

    При размещении заявок нужно учитывать несколько моментов.

    Во-первых, нужно знать о том, что существуют два типа заявок: лимитные и рыночные. Если вы совсем ничего об этом не знаете — вам, определённо, стоит почитать специальную литературу. Я тут объясню эти идеи буквально в двух словах.

    Рыночные заявки — это заявки, которые исполняются по текущей рыночной цене. В большинстве случаев это означает их немедленное исполнение.

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

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

    Кроме того, к таким заявкам обычно применяются более низкие комиссии, чем к рыночным. Это так из-за того, что к рыночным заявкам обычно применимо то, что называется «taker fee» («комиссия получателя»), а к лимитным заявкам — то, что обычно называется «maker fee» («комиссия создателя»).

    Причины, по которым эти комиссии называются именно так, заключаются в том, что тот, кто размещает рыночную заявку, просто принимает («taking») текущую рыночную цену. А лимитные заявки находятся за пределами рыночных цен, они добавляют рынку ликвидности и, в результате, «создают рынок», за что их создатели вознаграждаются более низкими комиссиями.

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

    И, завершая разговор о комиссиях, хочу отметить, что задавая значение PROFIT_THRESHOLD нужно учитывать и комиссии.

    Для того чтобы получить прибыль, бот должен сначала выполнить операцию BUY, а потом — операцию SELL. А это значит, что комиссия будет взята два раза.

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

    А теперь представьте себе, что ваш бот всегда закрывает сделки с чистым убытком. В такой ситуации можно довольно быстро потерять немалые деньги.

    Итоги

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

    Я исходил из предположения о том, что читатели этого материала знают о том, как, пользуясь выбранным ими языком программирования, выполнять HTTP-запросы. Поэтому в детали программирования я не вдавался, сосредоточившись на других вещах.

    Я рассказал вам о разработке торговых ботов всё, что хотел. Надеюсь, теперь вы сможете создать собственного бота.

    Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *