Новые технотренды в сфере финансов: зачем нужны чат-боты. Финансовый бот


Финансовый Telegram-бот за 30 минут с Market Data API / Блог компании EXANTE / Хабр

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

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

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

Доступ к данным

Начнем с простой ситуации: приложение будет использовать текущие и исторические данные о торгах, а не отправлять на биржу собственные заявки. Эти данные (т. н. market data, или биржевую информацию) можно получать у ряда компаний за относительно небольшую плату или вообще бесплатно. С отправкой заявок все заметно сложнее (как минимум — дороже), и мы рассмотрим этот процесс подробнее в следующих статьях.

Какие существуют технологии для получения биржевых данных? Список их не слишком велик: это FIX-протокол (реализации могут немного различаться от поставщика к поставщику), FAST, ITCH и несколько вариантов бинарных и HTTP API (к примеру, CQG, EXANTE или MOEX). Впрочем, универсализация здесь не так принципиальна: набор предоставляемых данных может сильно различаться, и в любом случае при интеграции придется разобраться с особенностями конкретного поставщика.

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

Функциональность

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

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

Что интересует начинающего инвестора? Конечно же, выбор портфеля акций, вложив средства в которые, он сможет получить прибыль. Существует много способов выбирать акции: можно читать обзоры, можно ориентироваться на портфели лучших инвесторов, вроде Уоррена Баффетта или Билла Экмана, а можно пользоваться аналитическими методами. Один из общепринятых и самых распространенных методов — это оценка компании по метрике P/E (коэффициент цена/прибыль). P/E рассчитывается как отношение нынешней цены акции компании к показателю Earning Per Share (EPS, прибыль на акцию).

Таким образом, наш чат-бот будет помогать инвестору решить, включать ли акции определенной компании фондового рынка США в свой портфель, исходя из текущей оценки коэффициента цена/прибыль. Высокий P/E относительно других компаний этой отрасли покажет, что у акций есть потенциал роста. Низкий же, напротив, даст понять, что в будущем компания может столкнуться с проблемами.

Архитектура

Итак, в качестве основного источника биржевой информации выберем EXANTE Market Data API (MD API). Для получения фундаментальной информации — информации об общем состоянии финансов компании — будем использовать открытый источник данных datatables.org, с которым можно работать через YQL (Yahoo! Query Language).

Для реализации самого бота возьмем Python 3, а чтобы запустить его максимально быстро, применим фреймворк, поддерживающий все необходимые методы Telegram: python-telegram-bot.

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

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

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

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

MD API требует авторизации запросов с помощью JSON Web Token, для генерации токенов возьмем библиотеку PyJWT.

Подключение к API

Для начала работы с MD API нужно зарегистрироваться на сайте EXANTE для разработчиков.

После регистрации на портале становится доступным дэшборд с данными для доступа и управлением приложениями. Создадим там приложение для нашего бота:

Самого бота заведем так, как описано в документации к Telegram, через переписку с роботом BotFather:

Реализация

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

— Привет, робот, сегодня в новостях слышал об AAPL, кажется, это какая-то фруктовая компания, думаю вложить туда деньги, что скажешь? — Акции AAPL (Apple Inc, биржа NASDAQ) имеют текущую оценку P/E 14, цена акции $117,06 — Спасибо, а что насчет NVDA и GOOG? — NVDA (Nvidia Corp., NASDAQ): P/E 69, цена $105.7 GOOG (Alphabet Inc., NASDAQ): P/E 29, цена $796.42

Инициализируем бота и создаем обработчики сообщений:

# -*- coding:utf-8 -*- import re from sys import path from configparser import ConfigParser from telegram import ParseMode, Emoji from telegram.ext import Updater, CommandHandler, MessageHandler, Filters config = ConfigParser() config.read_file(open('config.ini')) # Create telegram poller with token from settings up = Updater(token=config[‘Api’]['token']) dispatcher = up.dispatcher # Welcome message def start(bot, update): msg = "Hello {user_name}! I'm {bot_name}. Ask me about stocks!" # Send the message bot.send_message(chat_id=update.message.chat_id, text=msg.format( user_name=update.message.from_user.first_name, bot_name=bot.name)) def process(bot, update): msg = "I will try to show info on {tickers}" tickers = re.findall(r'[A-Z]{1,4}', update.message.text) bot.send_message(chat_id=update.message.chat_id, text=msg.format(tickers=", ".join(tickers))) def main(): # Add handlers to dispatcher dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(MessageHandler(Filters.text, process)) # Start the program up.start_polling() up.idle() if __name__ == '__main__': main() Сейчас наш бот уже умеет выделять тикеры акций, но ничего больше с ними сделать не может.

Напишем интерфейс для работы с Market Data API и генерации токенов. Используем документацию и руководство по авторизации.

import jwt # token expiration time in seconds EXPIRATION = 3600 class MDApiConnector(): token = (None, None) algo = "HS256" def __init__(self, client_id, app_id, key): self.client_id = client_id self.app_id = app_id self.key = key def __get_token(self): now = datetime.now() # if there is token and it's not expired yet if self.token[0] and (now - self.token[1]).total_seconds() < EXPIRATION: return self.token[0] claims = { "iss": self.client_id, "sub": self.app_id, "aud": ["symbols", "ohlc"], # NB: only allowed scopes can be accessed "iat": int(now.timestamp()), "exp": int(now.timestamp()) + EXPIRATION } new_token = str(jwt.encode(claims, self.key, self.algo), ‘utf-8’) self.token = (new_token, now) return new_token Полный код всех модулей доступен в репозитории: github.com/exante/telegram-bot-with-md-api

Добавим отдельный поток, который будет периодически запрашивать объемные данные по акциям:

class DataStorage(Thread): def __init__(self, connector): super().__init__() self.connector = connector self.stocks = {} def run(self): while True: timeout = 15 * 60 # 15 minutes try: self.stocks = connector.get_stocks() except Exception as e: logger.error(e) timeout = 30 # re-read in case of exception time.sleep(timeout) Метод работы с API для получения списка акций США может выглядеть так:def get_stocks(self): stocks = self.__request("/types/STOCK") return {x['ticker']: {"id": x["id"], "exchange": x["exchange"], "description": x["description"]} for x in stocks if x.get("country") == "US"} После запуска этого потока и обращения к нему из обработчика сообщения, бот сможет вывести больше полезных данных (P/E здесь пока еще заглушка): Добавим запрос Earning Per Share, для этого сделаем небольшую обертку над YQL с кэшированием (в скором будущем мы сможем заменить этот вызов на аналогичный из MD API), которая запросит значение «EarningsShare» для выбранной акции.

Теперь мы можем вывести полученный показатель EPS:

Осталось последнее: получить текущую цену акции. Для большей производительности нам следовало бы подписаться на поток обновлений с ценами, но для прототипа можно выбрать более простой способ: запрашивать последнюю дневную «свечу» — так называют элемент графика цен, популярного среди трейдеров.Пример свечного графика соотношения индекса DJI и цены на золото по годам

«Свеча» строится для определенного периода (например, дня или часа) и на одном рисунке объединяет четыре цифры: цену на начало периода, максимальную и минимальную цену за период и цену на момент окончания периода. Сокращение OHLC, обозначающее такую свечу, как раз и расшифровывается как Open-High-Low-Close. Цена Close самой последней свечи будет соответствовать текущей цене акции.

Метод получения последней свечи может выглядеть так:

def get_last_ohlc_bar(self, symbolId): # NB: we use internal symbolId, not ticker # 86400 (sec) - day duration ohlc = self.__request("/ohlc/%s/86400" % symbolId, {"size": 1}) return ohlc[0] Собрав вместе все вызовы, мы получим такой код обработки одного тикера: stock = storage.stocks.get(ticker) eps = fundamendal_api.request(ticker).get('EarningsShare') price = api.get_last_ohlc_bar(stock['id']) ratio = Decimal("%.4f" % price['close']) / Decimal(eps) msg = "{ticker} ({name}, {exchange}): EPS {eps}, P/E {ratio}, цена ${price} \n".format( ticker = ticker, name = stock['description'], exchange = stock['exchange'], ratio = "%.2f" % ratio, price = price['close'], eps = eps ) И теперь наш бот стал действительно полезен! Он может рассказать о текущем положении дел на рынке акций и даже кое-что посоветовать:

Развитие проекта

Текущий проект можно найти по адресу github.com/exante/telegram-bot-with-md-api

Дальнейшее развитие возможно по многим направлениям. К примеру, можно воспользоваться потоком данных о нынешней цене акции из MD API (/md/1.0/feed) и не запрашивать цену каждый раз из «свечек», а просто брать ее из внутреннего кэша, куда та будет попадать при обновлении потока.

Можно добавить боту мониторинг и аналитику (например через botan.io), а также развернуть его на каком-нибудь облачном хостинге, вроде Heroku или Google App Engine.

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

Заключение

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

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

В феврале EXANTE проведет хакатон, посвященный работе с рыночными данными с помощью EXANTE Market Data API. Авторы лучших чат-ботов и приложений получат призы, и сейчас как раз есть время подготовиться :) Подробнее о мероприятии напишем чуть позже.

А какие API используете вы? Что бы вы хотели делать с рыночными данными?

habr.com

8 полезных ботов для финансов

1. Greenz

Бот для учёта финансов. Он позволяет легко фиксировать доходы, все расходы по категориям трат (автомобили, продукты и т.п.), рассчитывать сумму, которую стоит ежедневно тратить, чтобы не превысить свой месячный бюджет, а если он всё же будет превышен, то бот расскажет, в каких именно категориях был допущен перерасход. Все данные заносятся в google-таблицу.

Как найти бота: @GreenzBot

2. Sberometer bot

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

Как найти бота: @SberometerBot

3. Yamoneybot

Позволяет переводить деньги с кошелька «Яндекс.Деньги» друзьям, в том числе из телефонной книги. Ещё с его помощью можно следить за балансом. Бот работает в тестовом режиме.

Как найти бота: @yamoneybot

4. Штрафы ГИБДД

Автовладельцам будет полезен бот для проверки штрафов ГИБДД. Нужно ввести свои реквизиты как водителя, можно сразу на несколько машин, и робот проверит наличие штрафов. Если таковые есть, то в чат придёт ссылка на быструю оплату. Также пользователь будет получать уведомления о всех новых штрафах.

Как найти бота: @ShtrafyBot

5. Бот-автоюрист

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

Как найти бота: @AutoLawyerBot

6. Совкомбот

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

Как найти бота: @SovCom_bot

7. Бот Промсвязьбанка

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

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

Как найти бота: @psbankbot

8. Sapsanasapbot

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

Как найти бота: @sapsanasapbot

www.sravni.ru

Бот для заработка денег в интернете: виды и особенности работы

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

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

Всех ботов можно разделить по способу заработка

Боты боты для заработка на почтовиках

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

 

Два самых популярных бота для работы почтовиках:

 

  • Автокликер DonkeyMails.com, смотрится, как обычный браузер, удобный интерфейс и приятный дизайн, делают его простым и понятным в использовании;
  • DonkeyClicker 3.0, похож на первый, но работает с англоязычными почтовиками.

bot-dlya-zarabotka-deneg-v-internete

Боты автопостеры для заработка денег

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

 

Вот наиболее популярные из них:

 

  • Cyberboard, рассылает ваше послание по всем виртуальным доскам объявлений;
  • Xrumer, специализируется на рассылке писем по блогам и социальным сетям.

Боты для майнинга

Говоря обычными словами, можно заработать просто сдавая мощность своего компьютера в аренду. Платят за это хорошие деньги, поэтому желающих полно. Чтобы увеличить свои шансы на заработок, желающие заработать объединяются в группы, их еще называют «майнинг-пулами». Когда работа достается кому-то одному, прибыль делить пополам на всех участников группы. Для такой работы понадобиться специальный плагин:Wmzona.com, все расчеты производятся только в долларах на вебмани кошелек.

bot-dlya-zarabotka-deneg-v-internete3

Боты для автосерфинга

Думаю, что такое серфинг вы уже знаете. Суть работы заключается в следующем, вы просматриваете рекламу, за это вы получаете деньги. Все это можно делать быстрее, если установить специального бота. Он сам будет проходить по нужным ссылками и смотреть рекламу, ничего делать не нужно, только правильно его настроить. Самым популярным считается сервер «teaser.bz». Для работы на этом сервере необходимо пройти процедуру регистрации, после, вам станет доступен плагин для вашего браузера. Затем в этом плагине будут появляться рекламные объявления, чем их больше, тем выше ваш доход.

Боты для регистрации

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

Бот для скайпа

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

Боты для заработка в сети без вложений видео:

mihailermakov.ru

Финансовые боты Телеграм (Telegram bots)

 

Популярные мессенджеры по количеству пользователей догоняют население планеты – 2 млрд сообщений ежедневно фиксирует сравнительно новый продукт Павла Дурова Telegram Messenger. С недавних пор известная площадка для группового общения позиционирует себя, как финансовый бот Телеграм. Почин подхватили многие кредитные учреждения, в числе которых известные имена из «топовой» сотни.

Активизация финансовых институтов понятна – было бы кощунственно упускать возможность привлечь для рекламы миллионную аудиторию потенциальных клиентов, готовых использовать бот Telegram на ПК, на iOS, Android, Windows Phone.

Что это такое – Telegram bot, чем он может быть полезен и как он поможет простым людям при выборе подходящего кредита?

 

Что такое – бот

 

Так на компьютерном языке называют программных роботов. Работа любого бота строится на 3-х главных позициях:

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

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

 

6 популярных ботов

 

Обширную рекламную территорию с удовольствием осваивают финансовые организации. 1000bankov.ru выделил 6 ботов с финансовой тематикой. На наш взгляд, это одни из лучших систем в плане пользы и доступности.

 

@GreenzBot

 

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

 

@ExpenseBot

 

Англоязычный финансовый бот Телеграм работает по следующему алгоритму:

  • Вы делаете покупку;
  • Вносите в программу ее название и стоимость;
  • Бот зафиксирует товар в определенной статье расходов;
  • В конце месяца робот выдаст общую сумму затраченных средств.

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

 

@SberometerBot

 

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

 

@cbr_bot

 

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

 

@rubbot

 

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

 

@gdebankbot

 

Бот-помощник, созданный командой 1000bankov.ru. Ищите с его помощью ближайшие банкоматы, установленные вашей кредитной организацией. Допустим, вы давно совершаете платежные операции с помощью терминала стороннего банка – наш бот подскажет, где находится «родной» банкомат - ближайший или в соседнем населенном пункте. Ну, зачем вам всякий раз тратиться на комиссии. 

 

1000bankov.ru за время существования помог сотням тысяч граждан России, являющихся активными пользователями банковских продуктов, или только собирающихся найти кредит, займ в МФО, выгодный с позиций переплаты и сроков. Публикуем свежую актуальную информацию о курсах валют, о банках, лишившихся лицензии, о новостях, происходящих в банковском секторе. К вашим услугам подробное описание условий по кредитам банков федерального и регионального уровня.

 

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

1000bankov.ru

зачем нужны чат-боты / Блог компании ITI Capital / Хабр

Изображение: Thomson Reuters

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

Как это работает: примеры банковских чат-ботов

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

Финансовая организация также запустила виртуального ассистента Alexa Skill для Amazon Echo и планирует первой запустить аналогичный продукт для Cortana от Microsoft.

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

Американский банк Wells Fargo также объявил о разработке собственного умного бота для Facebook Messenger. Виртуальный помощник будет обрабатывать сообщения пользователей и выдавать в ответ информацию об остатках средств на их счетах, подсказывать расположение ближайшего банкомата и т.д.

Финансовая медиакомпания Thomson Reuters заявляет о том, что работает над внедрением функциональности чат-ботов в свою коммуникационную платформу Eikon.

Не только банки: боты для биржевых трейдеров

Наиболее распространенной функцией чат-ботов в сфере биржевой торговли на данный момент является информационная. Ботов используют для оперативного получения финансовой информации. Например, бот Letstock транслирует в Facebook Messenger информацию о текущей стоимости акций («сколько сегодня стоит Apple») и финансовые новости.

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

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

Схема работы такого бота

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

Помимо получения цен акций и размещения приказов на покупку и продажу, боты могут решать и другие задачи. Например, компания Polly Portfolio специализируется на вопросах повышения финансовой грамотности и помощи начинающим инвесторам. Организация запустила бота PollyChat для Facebook Messenger — он задает пользователю вопросы о его отношении к текущим новостям и на основе ответов создает финансовый профиль, в котором объединены рекомендации по финансовым операциям и подбору инструментов для торговли.

Заключение: живое общение в финансах слишком важно

Несмотря на «трендовость» темы чат-ботов, практика показывает, что в сфере финансов этот инструмент пока решает ограниченное количество задач. Чаще всего боты помогают пользователям узнавать новую информацию — будь то остаток средств на банковском счете или котировки акций.

Даже самым умным ботам не хватает возможностей понимания человеческих потребностей, особенно связанных со сложными вопросами принятия финансовых решений. Поэтому ждать того, что финансовые чат-боты станут лучшим другом инвесторов и трейдеров не стоит, сходятся во мнении опрошенные New York Times эксперты.

Популярностью продолжат пользоваться коммуникационные системы, позволяющие обсуждать финансовые вопросы непосредственно с людьми — такие, как, например, система «ЛИСА» от ITinvest.

habr.com

10 сервисов для решения финансовых вопросов

Каких финансовых чат-ботов можно встретить в уанете и зачем они нужны — читайте далее

Чат-боты в Украине

Чат-боты в Украине Фото: ohmybot.io

Pедакция PaySpace Magazine отобрала десятку чат-ботов из сферы платежей, которые были запущены в 2016-2017 годах.  Они позволяют переводить средства, брать кредиты,  управлять бюджетом, получать уведомления о статусе транзакций и учиться электронным платежам. Подробнее о том, как пользоваться услугами роботов — читайте в обзоре.

LeoBot

Мессенджер — Facebook

Функция бота — денежные переводы с карты на карту между картами украинских банков

Как использовать?

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

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

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

 

Greenz Bot

Мессенджер — Telegram

Функция бота — помощь в ведении бюджета

Как использовать?

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

 

Фото: epravda.com.ua

 

 

PrivatBankBot

 

Мессенджер — Telegram

Функция бота —  отправка или запрос средств у своих друзей в мессенджере

Как использовать?

Этот бот позволяет пересылать средства прямо в диалогах. Для этого надо найти контакт @PrivatBankBot (старое название Paypbbot) в мессенджере и отправить запрос на переписку. Поскольку услуги бота доступны только вкладчикам ПриватБанка, чат-бот запросит мобильный телефон пользователя, последние четыре цифры карты и одноразовый пароль, который придет на смартфон держателя счета.

После авторизации отправить средства можно будет прямо в диалоге с пользователем. Для этого достаточно написать в сообщении имя бота и сумму платежа — @PrivatBankBot 10. После этого сервис переведет этому контакту 10 гривен. Однако нужно помнить, что получатель средств тоже должен быть вкладчиком ПриватБанка. Чтобы принять платеж ему нужно будет сообщить чат-боту свои платежные реквизиты.

 

 

PrivatOchBot

 

Мессенджер — Telegram

Функция бота — сервисы, связанные с кредитованием

Как использовать? 

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

Мы проверили, как работает проверка лимитов по карте.

 

Онлайн-помощник Ощадбанка

 

Источник: Сайт и мобильное приложение Ощадбанка

Функция бота — информация о карточных счетах, изменение лимитов, блокировка карт

Как использовать? 

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

 

 

otpbank_bot

Мессенджер: Telegram

Функция бота — информация и платежи с карточного счета, курсы валют банка, адреса отделений и банкоматов банка

Как использовать? 

ОTP Bank запустил чат-бата в ноябре прошлого года. Услуга внедрена совместно с партнером iPay на базе кошелька Masterpass, и, помимо описанных выше функций, открывает доступ к таким операциям, как пополнение мобильного телефона, который привязан к аккаунту в мессенджере Telegram, операции с Masterpass, погашение задолженности по потребительскому кредиту.

 

 

Tascombot

Мессенджер: Telegram

Функция бота — актуальные курсы валют, адрес ближайшего отделения или банкомата банка, помощь в оформлении платежной или кредитной карты

Как использовать? 

Вкладчикам нужно «подружиться » с ботом @tascombot в мессенджере и самим инициировать беседу.

 

 Fbank_bot

Мессенджер: Telegram

Функция бота — информация по картам, несложные операции, адреса отделений банка

Как использовать? 

Беседу с чат-ботом банка Forward Bank можно активировать в мессенджере Telegram. Для этого нужно найти контакт под названием Fbank_bot и дать ему команду Start. После банк предложит узнать информацию по карточным и депозитным счетам, а также совершить с ними несложные операции. Для тех, кто не является клиентом банка, есть функция «курс валют» и адреса отделений и офисов банка.

 

 

 

WayForPay_bot

 

Мессенджер — Facebook, Viber, Telegram

Функция бота — отчет о статусе онлайн-платежей

Как использовать?

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

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

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

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

 

 

WebMoneybot

 

Мессенджер — Facebook

Функция бота — техподдержка

Как использовать?

Подключение к чат-боту происходит традиционным способом — контакт с роботом и авторизация в кошельке WebMoney. Уже подключенные пользователи смогут пользоваться подсказками, узнавая актуальную информацию о работе с электронными деньгами. Нестандартные запросы будут перенаправлены в службу поддержки. Также бот перенаправляет туда запросы на русском языке.

Это не все украинские чат-боты, которые будут полезны для управления финансами. Так, в уанете есть сервисы, посвященные курсам традиционных и крипто-валют, ресурсы, помогающие проводить расчеты по заданным формулам и др. Также в Украине было заявлено сразу два сервиса для оплаты коммунальных услуг — КП ГіОЦ КМДА и Мои платежи — ПриватБанк. Однако боты не отвечают на запросы в течение суток.

За рубежом финансовые компании тоже активно переводят клиентов на общение с чат-ботами. Так, чат-бот American Express, запуск которого состоялся еще в 2016, информирует покупателей об их последних расчетах картой. А индийский YES Bank предлагает сервис по предоставлению кредитов в мессенджере Facebook. Его бот YES mPOWER предоставляет консультацию по всей линейке кредитных продуктов финучреждения.

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

 

ВАС ЗАИНТЕРЕСУЕТ — Чат-боты для бизнеса: возможности и перспективы

psm7.com

Финансовый Telegram-бот за 30 минут с Market Data API / Наука и техника / YaUmma.Ru

Наука и техника: Финансовый Telegram-бот за 30 минут с Market Data API

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

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

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

Доступ к данным

Начнем с простой ситуации: приложение будет использовать текущие и исторические данные о торгах, а не отправлять на биржу собственные заявки. Эти данные (т. н. market data, или биржевую информацию) можно получать у ряда компаний за относительно небольшую плату или вообще бесплатно. С отправкой заявок все заметно сложнее (как минимум — дороже), и мы рассмотрим этот процесс подробнее в следующих статьях.Какие существуют технологии для получения биржевых данных? Список их не слишком велик: это FIX-протокол (реализации могут немного различаться от поставщика к поставщику), FAST, ITCH и несколько вариантов бинарных и HTTP API (к примеру, CQG, EXANTE или MOEX). Впрочем, универсализация здесь не так принципиальна: набор предоставляемых данных может сильно различаться, и в любом случае при интеграции придется разобраться с особенностями конкретного поставщика.

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

Функциональность

Определив спектр возможностей, нужно решить, что именно будет делать наш чат-бот. Существует масса вариантов: от отображения курсов валют до аналитики торговых стратегий по запросу на конкретный биржевой инструмент. Пока что не станем углубляться в детали финансовых алгоритмов и попробуем сделать что-то полезное, но при этом достаточно простое.Один из самых понятных финансовых инструментов — это акции компаний, торгующиеся на фондовых биржах. С ними и будем работать, выбрав для простоты фондовый рынок США, т. к. по нему легче всего получить фундаментальные данные, и торги там наиболее активны.Что интересует начинающего инвестора? Конечно же, выбор портфеля акций, вложив средства в которые, он сможет получить прибыль. Существует много способов выбирать акции: можно читать обзоры, можно ориентироваться на портфели лучших инвесторов, вроде Уоррена Баффетта или Билла Экмана, а можно пользоваться аналитическими методами. Один из общепринятых и самых распространенных методов — это оценка компании по метрике P/E (коэффициент цена/прибыль). P/E рассчитывается как отношение нынешней цены акции компании к показателю Earning Per Share (EPS, прибыль на акцию).Таким образом, наш чат-бот будет помогать инвестору решить, включать ли акции определенной компании фондового рынка США в свой портфель, исходя из текущей оценки коэффициента цена/прибыль. Высокий P/E относительно других компаний этой отрасли покажет, что у акций есть потенциал роста. Низкий же, напротив, даст понять, что в будущем компания может столкнуться с проблемами.

Архитектура

Итак, в качестве основного источника биржевой информации выберем EXANTE Market Data API (MD API). Для получения фундаментальной информации — информации об общем состоянии финансов компании — будем использовать открытый источник данных datatables.org, с которым можно работать через YQL (Yahoo! Query Language).Для реализации самого бота возьмем Python 3, а чтобы запустить его максимально быстро, применим фреймворк, поддерживающий все необходимые методы Telegram: python-telegram-bot.Для работы с Telegram будем использовать поллинг новых сообщений с сервера, т. к. в прототипе мы не рассчитываем на большой объем трафика. Заранее подумаем о том, чтобы приложение могло работать не только с одним клиентом. Для этого будем обрабатывать запросы в отдельных потоках. Для синхронизации и запуска потоков используем встроенные возможности фреймворка python-telegram-bot и примитивы синхронизации, доступные в Python.Все выбранные внешние сервисы доступны по HTTP, так что для работы с ними будем использовать известный модуль Requests.Наверняка многие инвесторы будут интересоваться одними и теми же акциями, которые на слуху, так что добавим слой кэширования, чтобы эффективнее использовать ресурсы.MD API требует авторизации запросов с помощью JSON Web Token, для генерации токенов возьмем библиотеку PyJWT.

Подключение к API

Для начала работы с MD API нужно зарегистрироваться на сайте EXANTE для разработчиков. После регистрации на портале становится доступным дэшборд с данными для доступа и управлением приложениями. Создадим там приложение для нашего бота:Самого бота заведем так, как описано в документации к Telegram, через переписку с роботом BotFather:

Реализация

Начнем с того, что научим бота обрабатывать полученные запросы. Из каждого сообщения будем пытаться выделить тикеры акций и выдавать по ним информацию, чтобы диалог мог выглядеть так:— Привет, робот, сегодня в новостях слышал об AAPL, кажется, это какая-то фруктовая компания, думаю вложить туда деньги, что скажешь?— Акции AAPL (Apple Inc, биржа NASDAQ) имеют текущую оценку P/E 14, цена акции $117,06— Спасибо, а что насчет NVDA и GOOG?— NVDA (Nvidia Corp., NASDAQ): P/E 69, цена $105.7GOOG (Alphabet Inc., NASDAQ): P/E 29, цена $796.42

Инициализируем бота и создаем обработчики сообщений:

<code><span># -*- coding:utf-8 -*-</span> <span>import</span> re <span>from</span> sys <span>import</span> path <span>from</span> configparser <span>import</span> ConfigParser <span>from</span> telegram <span>import</span> ParseMode, Emoji <span>from</span> telegram.ext <span>import</span> Updater, CommandHandler, MessageHandler, Filters config = ConfigParser() config.read_file(open(<span>'config.ini'</span>)) <span># Create telegram poller with token from settings</span> up = Updater(token=config[‘Api’][<span>'token'</span>]) dispatcher = up.dispatcher <span># Welcome message</span> <span><span>def</span> <span>start</span><span>(bot, update)</span>:</span> msg = <span>"Hello {user_name}! I'm {bot_name}. Ask me about stocks!"</span> <span># Send the message</span> bot.send_message(chat_id=update.message.chat_id, text=msg.format( user_name=update.message.from_user.first_name, bot_name=bot.name)) <span><span>def</span> <span>process</span><span>(bot, update)</span>:</span> msg = <span>"I will try to show info on {tickers}"</span> tickers = re.findall(<span>r'[A-Z]{1,4}'</span>, update.message.text) bot.send_message(chat_id=update.message.chat_id, text=msg.format(tickers=<span>", "</span>.join(tickers))) <span><span>def</span> <span>main</span><span>()</span>:</span> <span># Add handlers to dispatcher</span> dispatcher.add_handler(CommandHandler(<span>"start"</span>, start)) dispatcher.add_handler(MessageHandler(Filters.text, process)) <span># Start the program</span> up.start_polling() up.idle() <span>if</span> __name__ == <span>'__main__'</span>: main()</code>

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

Напишем интерфейс для работы с Market Data API и генерации токенов. Используем документацию и руководство по авторизации.

<code><span>import</span> jwt <span># token expiration time in seconds</span> EXPIRATION = <span>3600</span> <span><span>class</span> <span>MDApiConnector</span><span>()</span>:</span> token = (<span>None</span>, <span>None</span>) algo = <span>"HS256"</span> <span><span>def</span> <span>__init__</span><span>(self, client_id, app_id, key)</span>:</span> self.client_id = client_id self.app_id = app_id self.key = key <span><span>def</span> <span>__get_token</span><span>(self)</span>:</span> now = datetime.now() <span># if there is token and it's not expired yet</span> <span>if</span> self.token[<span>0</span>] <span>and</span> (now - self.token[<span>1</span>]).total_seconds() < EXPIRATION: <span>return</span> self.token[<span>0</span>] claims = { <span>"iss"</span>: self.client_id, <span>"sub"</span>: self.app_id, <span>"aud"</span>: [<span>"symbols"</span>, <span>"ohlc"</span>], <span># NB: only allowed scopes can be accessed</span> <span>"iat"</span>: int(now.timestamp()), <span>"exp"</span>: int(now.timestamp()) + EXPIRATION } new_token = str(jwt.encode(claims, self.key, self.algo), ‘utf<span>-8</span>’) self.token = (new_token, now) <span>return</span> new_token</code>

Полный код всех модулей доступен в репозитории: github.com/exante/telegram-bot-with-md-api

Добавим отдельный поток, который будет периодически запрашивать объемные данные по акциям:

<code><span><span>class</span> <span>DataStorage</span><span>(Thread)</span>:</span> <span><span>def</span> <span>__init__</span><span>(self, connector)</span>:</span> super().__init__() self.connector = connector self.stocks = {} <span><span>def</span> <span>run</span><span>(self)</span>:</span> <span>while</span> <span>True</span>: timeout = <span>15</span> * <span>60</span> <span># 15 minutes</span> <span>try</span>: self.stocks = connector.get_stocks() <span>except</span> Exception <span>as</span> e: logger.error(e) timeout = <span>30</span> <span># re-read in case of exception</span> time.sleep(timeout)</code>

Метод работы с API для получения списка акций США может выглядеть так:

<code><span><span>def</span> <span>get_stocks</span><span>(self)</span>:</span> stocks = self.__request(<span>"/types/STOCK"</span>) <span>return</span> {x[<span>'ticker'</span>]: {<span>"id"</span>: x[<span>"id"</span>], <span>"exchange"</span>: x[<span>"exchange"</span>], <span>"description"</span>: x[<span>"description"</span>]} <span>for</span> x <span>in</span> stocks <span>if</span> x.get(<span>"country"</span>) == <span>"US"</span>} </code>

После запуска этого потока и обращения к нему из обработчика сообщения, бот сможет вывести больше полезных данных (P/E здесь пока еще заглушка):

Добавим запрос Earning Per Share, для этого сделаем небольшую обертку над YQL с кэшированием (в скором будущем мы сможем заменить этот вызов на аналогичный из MD API), которая запросит значение «EarningsShare» для выбранной акции.

Теперь мы можем вывести полученный показатель EPS:

Осталось последнее: получить текущую цену акции. Для большей производительности нам следовало бы подписаться на поток обновлений с ценами, но для прототипа можно выбрать более простой способ: запрашивать последнюю дневную «свечу» — так называют элемент графика цен, популярного среди трейдеров.Наука и техника: Финансовый Telegram-бот за 30 минут с Market Data API

Пример свечного графика соотношения индекса DJI и цены на золото по годам

«Свеча» строится для определенного периода (например, дня или часа) и на одном рисунке объединяет четыре цифры: цену на начало периода, максимальную и минимальную цену за период и цену на момент окончания периода. Сокращение OHLC, обозначающее такую свечу, как раз и расшифровывается как Open-High-Low-Close. Цена Close самой последней свечи будет соответствовать текущей цене акции.Метод получения последней свечи может выглядеть так:

<code> <span><span>def</span> <span>get_last_ohlc_bar</span><span>(self, symbolId)</span>:</span> <span># NB: we use internal symbolId, not ticker</span> <span># 86400 (sec) - day duration</span> ohlc = self.__request(<span>"/ohlc/%s/86400"</span> % symbolId, {<span>"size"</span>: <span>1</span>}) <span>return</span> ohlc[<span>0</span>]</code>

Собрав вместе все вызовы, мы получим такой код обработки одного тикера:

<code> stock = storage.stocks.get(ticker) eps = fundamendal_api.request(ticker).get(<span>'EarningsShare'</span>) price = api.get_last_ohlc_bar(stock[<span>'id'</span>]) ratio = Decimal(<span>"%.4f"</span> % price[<span>'close'</span>]) / Decimal(eps) msg = <span>"{ticker} ({name}, {exchange}): EPS {eps}, P/E {ratio}, цена ${price} \n"</span>.format( ticker = ticker, name = stock[<span>'description'</span>], exchange = stock[<span>'exchange'</span>], ratio = <span>"%.2f"</span> % ratio, price = price[<span>'close'</span>], eps = eps )</code>

И теперь наш бот стал действительно полезен! Он может рассказать о текущем положении дел на рынке акций и даже кое-что посоветовать:

Развитие проекта

Текущий проект можно найти по адресу github.com/exante/telegram-bot-with-md-apiДальнейшее развитие возможно по многим направлениям. К примеру, можно воспользоваться потоком данных о нынешней цене акции из MD API (/md/1.0/feed) и не запрашивать цену каждый раз из «свечек», а просто брать ее из внутреннего кэша, куда та будет попадать при обновлении потока.Можно добавить боту мониторинг и аналитику (например через botan.io), а также развернуть его на каком-нибудь облачном хостинге, вроде Heroku или Google App Engine. Бота можно сделать более «живым», добавив больше вариантов ответов, а также научить его отображать графики изменения цен, чтобы дать инвестору еще больше информации для анализа. Можно добавить любые другие метрики для оценки акций, сохранять портфель в данных робота, чтобы держать инвестора в курсе всех изменений, и расширить функциональность — например, на российский рынок акций.

Заключение

Подключив EXANTE Market Data API и воспользовавшись открытой фундаментальной информацией, за короткий срок мы разработали функционального робота, который поможет пользователю быстро оценить ситуацию на рынке. В процессе работы мы узнали о некоторых способах оценки акций на рынке и о терминологии, используемой в биржевой торговле.Кроме того, мы рассмотрели возможности развития, и даже у такого небольшого робота их немало. Есть еще много способов применения market data — и много пользователей, которые заинтересуются вашими финансовыми приложениями.В феврале EXANTE проведет хакатон, посвященный работе с рыночными данными с помощью EXANTE Market Data API. Авторы лучших чат-ботов и приложений получат призы, и сейчас как раз есть время подготовиться :) А какие API используете вы? Что бы вы хотели делать с рыночными данными?

habrahabr.ru

yaumma.ru