Блог им. divitrader

Торговый робот в Google Таблицах

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

Стоит начать с того, что бот является реализацией заложенной торговой идеи. А какая это идея?

Изначально идея заключалась в автоматизации стратегии Лесенок, приведу пример:

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

Торговый робот в Google Таблицах

На представленном примере «сейчас» цена 13.96, уже было приобретено 7 лотов инструмента по 13.70 и еще стоят заявки на покупку ниже:

  • 7 лотов по 13.02
  • 8 лотов по 12.26
  • 8 лотов по 11.34
  • 9 лотов по 10.11

Глубина шагов лесенки может быть абсолютно любой.

Для ознакомления с функционалом и реализации торговой стратегии я использую брокеров Финам, БКС Мир инвестиций и Т-Инвестиции, так как они:

  1. Предоставляют работающее API (это набор инструкций чтобы можно было использовать свой код);
  2. Позволяют торговать широким выбором инструментов на бирже; 
  3. А также один из них имеет самый выгодный тариф.

Почему для реализации идеи нужны именно Google Таблицы? Все просто – чтобы не платить за аренду виртуальных серверов. Наша задача зарабатывать, а не тратить.

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

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

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

Торговый робот в Google Таблицах

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

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

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

Получить свой уникальный токен для Финама можно по этой ссылке, для Т-Инвестиций по этой ссылке, а для БКС Мир инвестиций по этой ссылке.

По итогу копируем полученный токен и вставляем в таблицу в Настройки в ячейку B1:

Торговый робот в Google Таблицах
После того как мы закончили получать токен и внесли его в таблицу в B1, нам нужно подумать над тем какой процент разницы цены мы хотим заложить для торговли, а также как часто мы хотим чтобы бот корректировал цены заявок:

Торговый робот в Google Таблицах

Мы хотим получать прибыль, но как это сделать? Очевидный ответ – покупать дешевле, а продавать дороже. Но на сколько дешевле от текущей рыночной цены мы должны пытаться купить и на сколько дороже потом пытаться продать? На этот вопрос отвечает параметр Изменение цены, %.

В примере указано число 0.5 (разделитель должен быть точка, а не запятая, с запятой работать не будет), но там может быть и 1, и 3, и 0.05 – в целом любое положительное число. Для ознакомления с принципами работы бота я рекомендую оставить 0.5, так вы увидите как бот рассчитывает цены для выставления заявок делая это не сильно глубоко в стакане.

Но что если по нашей цене никто не хочет нам продать или если бот уже купил и от заветной продажи нас отделяют сущие копейки? Значит нужно пожертвовать этими копейками прибыли и позволить боту перевыставить заявку с:

  • чуть большей ценой если это заявка на покупку
  • чуть меньшей ценой если это заявка на продажу

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

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

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

Для проведения теста я бы посоветовал оставить 60 минут чтобы увидеть, что ничего не происходит в течение этого времени если заявка не удовлетворится, а затем может быть скорректировал до 3-8 минут чтобы увидеть корректировку в действии. Понимание работы бота придет с опытом, нужно только уделить этому немного времени.

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

Сверху в меню мы выбираем 👉 ТРИГГЕРЫ и далее 👉 Установить триггеры:

Торговый робот в Google Таблицах

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

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

Торговый робот в Google Таблицах

Авторизуемся чтобы дать разрешение, нажимаем ОК:

Торговый робот в Google Таблицах

Для этого выбираем созданный нами Google аккаунт:

Торговый робот в Google Таблицах

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

Торговый робот в Google Таблицах

Нажимаем внизу Перейти на страницу:

Торговый робот в Google Таблицах

На открывшейся странице нам нужно нажать Выбрать все:

Торговый робот в Google Таблицах

Внизу последний раз жмем Продолжить и на этом пока все:

Торговый робот в Google Таблицах

Установщик установит нужные триггеры, скроет ненужную вкладку Настройки и откроет вкладки АкцииПортфель и Статистика. Удалить триггеры в случае чего можно также в верхнем меню 👉 ТРИГГЕРЫ. Вкладка Настройки легко открывается из скрытых, она скрывается так как как показала практика эта вкладка для ознакомления с работой бота не особо нужна.

Давайте перейдем к запуску торгов.

Начиная с этого момента наш бот ждет от нас по каким акциям ему нужно работать, давайте начнем например с ВТБ, так как стоимость одного лота ВТБ небольшая, на нем удобно проводить тест. Вписываем в колонку Тикер VTBR соответственно:

Торговый робот в Google Таблицах

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

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

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

Торговый робот в Google Таблицах

Для иллюстрации примера я выставил настройки 0.1 изменения цены и 5 минут периода коррекции. Сначала бот посмотрел какая цена в стакане у инструмента, внес строку с операцией Начало закупа и определил какую цену ему нужно будет использовать для заявки на покупку. Цена в стакане была 70.78, цена покупки за минусом 0.1% из настроек была 70.70, бот выставил заявку:

Торговый робот в Google Таблицах

Если на этом этапе у вас тоже всё заработало, то напишите внизу в комментариях ЗАРАБОТАЛО! и поставьте лайк если еще не сделали этого.

Спустя 5 минут бот проверил нашу заявку, она оказалась неудовлетворена, поэтому он ее отменил и выставил новую по цене чуть выше, а именно по 70.71:

Торговый робот в Google Таблицах

Спустя еще 5 минут бот проверил как поживает заявка и обнаружил, что она ИСПОЛНЕНА, а значит теперь есть что выставить на продажу и пытаться закупить следующий лот дешевле. Бот выставил заявку на продажу по цене 70.78 + 0.1% из настроек = 70.86 руб, а также выставил новую заявку на покупку по цене 70.63 руб.

Торговый робот в Google Таблицах

Спустя следующие 5 минут наши заявки не были выполнены, поэтому бот перевыставил их: заявку на продажу дешевле, а заявку на покупку дороже:

Торговый робот в Google Таблицах

А дальше биржа позволила нам удовлетворить ранее выставленную заявку на покупку, поэтому бот отметил её как исполненную, перевыставил заявку на продажу так как истекло время выделенное на коррекцию цены, но тут же отменил эту заявку, так как у нас в портфеле увеличилось количество лотов которые нужно продавать, поэтому заявку на продажу бот выставил новую с новым количеством лотов и начиная все так же с нужной нам первоначальной цены в 70.86 руб:

Торговый робот в Google Таблицах

Спустя 5 минут наши заявки отменились из-за того, что их никто не удовлетворил и затем перевыставились с коррекцией цен. А вот уже далее кто-то удовлетворил нашу заявку на покупку по цене 70.57, соответственно бот перевыставил заявку на продажу с новым количеством все так же начиная считать вниз от 70.86. Не забыл бот и о выставлении очередной заявки на покупку по цене еще ниже – 70.49 руб. Обратите внимание на количество шагов в первой колонке. Если бы мы выделили только 3 шага например, то бот бы не пошел на выставление заявки на покупку по четвертому шагу:

Торговый робот в Google Таблицах

Далее какое-то время бот перевыставлял заявки на покупку и на продажу сужая таким образом канал срабатывания. Замечено, что если после серии закупок долгое время идет тишина в исполненных заявках, то это верный признак к развороту рынка. Что собственно говоря и произошло. Мы умудрились купить еще один лот, выставить уже 4 лота на продажу и удовлетворить отскок рынка вверх:

Торговый робот в Google ТаблицахПосле продажи всех лотов последнюю заявку на покупку бот отменяет сам и вносит результат в лист Статистика:

Торговый робот в Google Таблицах

Далее бот чистит лист с тикером и начинает все заново.

Давайте теперь посчитаем наш пример. Всего было затрачено 352.94 с учетом лота в строке 31, который фактически был отменен, но затраты на него мы посчитать обязаны. Без него закуп получился бы на 282.47, а продали мы 4 лота за 283.44 что дает нам разницу 0.97 рубля или 0.343% за час работы бота.

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

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

Торговый робот в Google Таблицах

Торговый робот в Google Таблицах

Совет №1 – экспериментируйте. Ставьте небольшие проценты, время коррекции и количество шагов. Если бот быстро исчерпал выделенное количество шагов – значит один или оба параметра оказались слишком маленькими для данного инструмента.

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

Совет №3 – наиболее волатильны акции из индекса Мосбиржи. С другой стороны, у акций не из индекса есть больше шансов как для резкого роста, так и для резкого падения.

Для этой таблицы стоит упомянуть о следующем: у этой таблицы все настройки действуют одинаково для всех тикеров из вкладки Акции. Однако то что эффективно работает например для ВТБ, может не работать с Яндексом или Газпромом.

Я надеюсь вам понравится работать с таблицей и вы напишете в комментариях свои предложения по работе бота.

1.8К | ★10
#10 по плюсам, #7 по комментариям
14 комментариев
Т.е. работающий дома комп это не надежно, а гугл прям очень надежное решение? Я тут на днях в этом гугле пытался аккаунт сделать — хрен там. Плюнул и забыл.
avatar
Самое надёжное — минимум посредников. Т.е. торговать без брокера. Но за это Мосбиржа в позапрошлом году взимала с физлиц примерно 30 тыс руб ежемесячно.
Вообще не понял смысл этого геморроя с гууглом, если покупка идёт тупо лесенкой. Лимитные ордена поставил и все.
avatar
Salvinit, осталось запустить бота чтобы понять.
avatar
Заработало!
Как его выключить? (Ури, где у него кнопка?)
Александр Стуликов, api обрубаешь топором
Александр Стуликов, просто удалите токен из вкладки Настройки. Также можно удалить тикер из вкладки Акции.
avatar
divitrader, Без кнопки не жизнь :)
Пока бот за ценой не успевает: тек.Цена — 86.425, а последняя заявка - 86.230
Александр Стуликов, по кнопке 👉 ТРИГГЕРЫ можно также выбрать Удалить триггеры.
По поводу поспевания за ценой, тут как показала практика больше выигрывают те кто умеет ждать. Если же хочется побыстрее, то можно применить меньший процент или меньшее время перевыставления заявки.
avatar
все ваши скрипте запускаются в облаке гугла, акуратней)
avatar
Algo Hub 01, в этом и суть. Код открытый, на сторонних сервисах ничего кроме API брокеров не происходит.
avatar
Александр Стуликов, попробуйте установить меньший процент и меньшее время перевыставления заявок. Так бот будет быстрее закупаться, но и продавать. Из наблюдений, наибольшей прибыли удается достигать если просто ждать и корректировать по минимуму.
avatar

Читайте на SMART-LAB:
Фото
Новая аналитическая платформа для проф инвесторов — что умеет Андромеда?
  На рынке аналитических сервисов для фондового рынка появился новый инструмент – платформа Андромеда . Это информационно-аналитическая...
Фото
Продвижение ТЦ в соцсетях: где, как и зачем
Как и любой бизнес, торговый центр должен приносить прибыль, причем, не только его собственнику, но и арендаторам. А прибыль зависит от трафика и...
Фото
Биткойн. Полгода снижения подошли к концу?
Впервые за два месяца биткойн уверенно закрыл неделю. Дно в рамках текущего цикла пройдено? В сегодняшнем материале рассмотрим локальные и...
Фото
Мой Рюкзак #65: Ставка на энергетический и продовольственный кризис из-за перекрытия проливов
Если февраль радовал стоимостных инвесторов, то март пока радует только валютных спекулянтов и миноритариев Роснефти и Совкомфлота (в совкомфлоте...

теги блога divitrader

....все тэги



UPDONW
Новый дизайн