Стоит начать с того, что бот является реализацией заложенной торговой идеи. А какая это идея?
Изначально идея заключалась в автоматизации стратегии Лесенок, приведу пример:
Покупка лесенкой означает поэтапную покупку выбранного инструмента с определенным шагом вниз. Это необходимо для того чтобы иметь возможность купить инструмент по все более и более выгодным ценам, таким образом средняя цена покупки будет становиться ниже:
На представленном примере «сейчас» цена 13.96, уже было приобретено 7 лотов инструмента по 13.70 и еще стоят заявки на покупку ниже:
- 7 лотов по 13.02
- 8 лотов по 12.26
- 8 лотов по 11.34
- 9 лотов по 10.11
Глубина шагов лесенки может быть абсолютно любой.
Для ознакомления с функционалом и реализации торговой стратегии я использую брокеров Финам, БКС Мир инвестиций и Т-Инвестиции, так как они:
Почему для реализации идеи нужны именно Google Таблицы? Все просто – чтобы не платить за аренду виртуальных серверов. Наша задача зарабатывать, а не тратить.
Подойдет ли классический Excel или LibreOffice? Нет, потому что если вы выключите компьютер, то бот выключится вместе с ним. Нам нужно, чтобы робот работал пока вы едите в ресторане или катаетесь на авто, а может гуляете в парке или смотрите кино. Нам нужно, чтобы бот работал даже пока вы спите.
С Google Таблицами бот работает и приносит прибыль всегда по нужному расписанию без необходимости держать компьютер включенным. Кроме того, ботом можно будет легко управлять из гугловского приложения Таблицы прямо на экране вашего смартфона.
После создания аккаунта остается сделать всего пару шагов и наш бот будет совершать первые сделки вместо нас! Отрываем Google и создаем аккаунт если его еще нет. Далее берем эту таблицу и делаем себе свою собственную копию. Для этого с компьютера нужно сверху нажать на Файл, далее Создать копию:
Если вы открываете с телефона, то сверху жмем на три точки, далее Доступ и экспорт, далее Создать копию, но первоначальные настройки необходимо произвести с компьютера.
Если в процессе использовании вашей копии у вас что-то сломается или удалится, то просто сделайте себе новую копию от основной таблицы. Ранее выставленные заявки на бирже это не отменит, поэтому в этом случае нужно будет контролировать процесс самостоятельно. Вывод – следуйте пошаговой инструкции.
Создавая копию вы можете назвать ее как угодно, место хранения можете оставить ваш диск. Все таблицы у нас хранятся в Google Таблицах, рекомендую сделать себе закладку. Ставьте внизу лайк и перейдем теперь к получению токена.
Получить свой уникальный токен для Финама можно по этой ссылке, для Т-Инвестиций по этой ссылке, а для БКС Мир инвестиций по этой ссылке.
По итогу копируем полученный токен и вставляем в таблицу в Настройки в ячейку B1:

После того как мы закончили получать токен и внесли его в таблицу в B1, нам нужно подумать над тем какой процент разницы цены мы хотим заложить для торговли, а также как часто мы хотим чтобы бот корректировал цены заявок:
Мы хотим получать прибыль, но как это сделать? Очевидный ответ – покупать дешевле, а продавать дороже. Но на сколько дешевле от текущей рыночной цены мы должны пытаться купить и на сколько дороже потом пытаться продать? На этот вопрос отвечает параметр Изменение цены, %.
В примере указано число 0.5 (разделитель должен быть точка, а не запятая, с запятой работать не будет), но там может быть и 1, и 3, и 0.05 – в целом любое положительное число. Для ознакомления с принципами работы бота я рекомендую оставить 0.5, так вы увидите как бот рассчитывает цены для выставления заявок делая это не сильно глубоко в стакане.
Но что если по нашей цене никто не хочет нам продать или если бот уже купил и от заветной продажи нас отделяют сущие копейки? Значит нужно пожертвовать этими копейками прибыли и позволить боту перевыставить заявку с:
Таким образом мы получаем прибыль и высвобождаем капитал для следующего цикла купли-продажи.
Период коррекции (в минутах) это параметр который разрешает боту корректировать цены наших текущих заявок, если с момента их выставления прошло указанное количество минут.
Например бот выставил заявку час назад, а ее никто так и не удовлетворил. Через 60 минут бот снимает старую заявку и выставляет новую по скорректированной цене. Размер коррекции это установленный биржей размер шага цены.
Для проведения теста я бы посоветовал оставить 60 минут чтобы увидеть, что ничего не происходит в течение этого времени если заявка не удовлетворится, а затем может быть скорректировал до 3-8 минут чтобы увидеть корректировку в действии. Понимание работы бота придет с опытом, нужно только уделить этому немного времени.
Дальше. Вот мы выставили необходимые настройки которые будут действовать для всех акций которые мы пожелаем. Если вы пополнили счет, то пора запускать бота. Если запустить бота с пустым счетом, то ничего интересного происходить не будет само собой. Приведенные ниже настройки требуется выполнить только один раз, больше Google этого не попросит.
Сверху в меню мы выбираем 👉 ТРИГГЕРЫ и далее 👉 Установить триггеры:
Триггер это как активатор кода нашего бота который был автоматически скопирован вместе с таблицей. По сути триггер и заставляет код нашего бота запускаться и работать без нашего участия.
Нажимаем 👉 Установить триггеры и далее нужно дать нашему боту несколько разрешений на то, чтобы он действовал без нашего участия. Начинается выполнение скрипта:
Авторизуемся чтобы дать разрешение, нажимаем ОК:
Для этого выбираем созданный нами Google аккаунт:
Так как написанный код написал не разработчик из Google, то нужно дать вручную ему разрешение на выполнение команд, жмем Дополнительные настройки:
Нажимаем внизу Перейти на страницу:
На открывшейся странице нам нужно нажать Выбрать все:
Внизу последний раз жмем Продолжить и на этом пока все:
Установщик установит нужные триггеры, скроет ненужную вкладку Настройки и откроет вкладки Акции, Портфель и Статистика. Удалить триггеры в случае чего можно также в верхнем меню 👉 ТРИГГЕРЫ. Вкладка Настройки легко открывается из скрытых, она скрывается так как как показала практика эта вкладка для ознакомления с работой бота не особо нужна.
Давайте перейдем к запуску торгов.
Начиная с этого момента наш бот ждет от нас по каким акциям ему нужно работать, давайте начнем например с ВТБ, так как стоимость одного лота ВТБ небольшая, на нем удобно проводить тест. Вписываем в колонку Тикер VTBR соответственно:
Бюджет на шаг определяет какое количество лотов мы будем покупать за один раз. В нашем примере мы поставили 100 рублей, таким образом при стоимости одного лота ВТБ в районе 70 рублей мы будем пытаться купить 1 лот.
Количество шагов может быть любым. Количество шагов означает, что если бот купил лот, то сколько еще раз он может купить других лотов? Из примера видно, что бот всего будет пытаться закупиться 5 раз по все более и более низким ценам, если до этого он не продаст все накупленное с той прибылью которая будет.
Можете добавить еще других тикеров и условий для торгов. SBER например или APTK, на ваше усмотрение. Получив тикер и необходимые настройки, наш бот сам создаст внизу новую вкладку для каждого тикера, в котором и будет говорить нам что он будет делать:
Для иллюстрации примера я выставил настройки 0.1 изменения цены и 5 минут периода коррекции. Сначала бот посмотрел какая цена в стакане у инструмента, внес строку с операцией Начало закупа и определил какую цену ему нужно будет использовать для заявки на покупку. Цена в стакане была 70.78, цена покупки за минусом 0.1% из настроек была 70.70, бот выставил заявку:
Если на этом этапе у вас тоже всё заработало, то напишите внизу в комментариях ЗАРАБОТАЛО! и поставьте лайк если еще не сделали этого.
Спустя 5 минут бот проверил нашу заявку, она оказалась неудовлетворена, поэтому он ее отменил и выставил новую по цене чуть выше, а именно по 70.71:
Спустя еще 5 минут бот проверил как поживает заявка и обнаружил, что она ИСПОЛНЕНА, а значит теперь есть что выставить на продажу и пытаться закупить следующий лот дешевле. Бот выставил заявку на продажу по цене 70.78 + 0.1% из настроек = 70.86 руб, а также выставил новую заявку на покупку по цене 70.63 руб.
Спустя следующие 5 минут наши заявки не были выполнены, поэтому бот перевыставил их: заявку на продажу дешевле, а заявку на покупку дороже:
А дальше биржа позволила нам удовлетворить ранее выставленную заявку на покупку, поэтому бот отметил её как исполненную, перевыставил заявку на продажу так как истекло время выделенное на коррекцию цены, но тут же отменил эту заявку, так как у нас в портфеле увеличилось количество лотов которые нужно продавать, поэтому заявку на продажу бот выставил новую с новым количеством лотов и начиная все так же с нужной нам первоначальной цены в 70.86 руб:
Спустя 5 минут наши заявки отменились из-за того, что их никто не удовлетворил и затем перевыставились с коррекцией цен. А вот уже далее кто-то удовлетворил нашу заявку на покупку по цене 70.57, соответственно бот перевыставил заявку на продажу с новым количеством все так же начиная считать вниз от 70.86. Не забыл бот и о выставлении очередной заявки на покупку по цене еще ниже – 70.49 руб. Обратите внимание на количество шагов в первой колонке. Если бы мы выделили только 3 шага например, то бот бы не пошел на выставление заявки на покупку по четвертому шагу:
Далее какое-то время бот перевыставлял заявки на покупку и на продажу сужая таким образом канал срабатывания. Замечено, что если после серии закупок долгое время идет тишина в исполненных заявках, то это верный признак к развороту рынка. Что собственно говоря и произошло. Мы умудрились купить еще один лот, выставить уже 4 лота на продажу и удовлетворить отскок рынка вверх:
После продажи всех лотов последнюю заявку на покупку бот отменяет сам и вносит результат в лист Статистика:
Далее бот чистит лист с тикером и начинает все заново.
Давайте теперь посчитаем наш пример. Всего было затрачено 352.94 с учетом лота в строке 31, который фактически был отменен, но затраты на него мы посчитать обязаны. Без него закуп получился бы на 282.47, а продали мы 4 лота за 283.44 что дает нам разницу 0.97 рубля или 0.343% за час работы бота.
Хотя бы раз в день получать такую доходность вполне допустимо, это более 125% годовых. Однако для разных тикеров настройки могут работать по разному.
Кстати о разных тикерах, бот может приносить прибыль торгуя сразу несколькими одновременно, просто внесите их как обычно в листе Акции:
Совет №1 – экспериментируйте. Ставьте небольшие проценты, время коррекции и количество шагов. Если бот быстро исчерпал выделенное количество шагов – значит один или оба параметра оказались слишком маленькими для данного инструмента.
Совет №2 – выбирайте для торговли ботом дивидендные акции. Дивиденды это всегда игра с ненулевой суммой. При покупке дивидендных акций вам так или иначе могут поступать дивиденды на счет, однако нужно учесть, что дивидендный гэп может привести к полному истощению выделенных шагов. Таким образом либо старайтесь торговать на росте дивидендными акциями до даты отсечки, либо начинайте торговать ими в дату закрытия реестра.
Совет №3 – наиболее волатильны акции из индекса Мосбиржи. С другой стороны, у акций не из индекса есть больше шансов как для резкого роста, так и для резкого падения.
Для этой таблицы стоит упомянуть о следующем: у этой таблицы все настройки действуют одинаково для всех тикеров из вкладки Акции. Однако то что эффективно работает например для ВТБ, может не работать с Яндексом или Газпромом.
Я надеюсь вам понравится работать с таблицей и вы напишете в комментариях свои предложения по работе бота.