Блог им. 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 – наиболее волатильны акции из индекса Мосбиржи. С другой стороны, у акций не из индекса есть больше шансов как для резкого роста, так и для резкого падения.

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

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

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.6К | ★24
49 комментариев
Т.е. работающий дома комп это не надежно, а гугл прям очень надежное решение? Я тут на днях в этом гугле пытался аккаунт сделать — хрен там. Плюнул и забыл.
avatar
Vkt, еще можно попробовать использовать дома комп во время отключения интернета или слушая ночи напролет как шумят кулеры системного блока. Электричество кстати тоже вроде не бесплатное.
avatar
divitrader, у меня дома 3 провайдера, 2 бесперебойника, а кулеры я заменил на несколько кг меди 
avatar
Vkt, осталось пустить оптоволокно до биржи))
avatar
Самое надёжное — минимум посредников. Т.е. торговать без брокера. Но за это Мосбиржа в позапрошлом году взимала с физлиц примерно 30 тыс руб ежемесячно.
avatar
Вообще не понял смысл этого геморроя с гууглом, если покупка идёт тупо лесенкой. Лимитные ордена поставил и все.
avatar
Salvinit, осталось запустить бота чтобы понять.
avatar
Заработало!
Как его выключить? (Ури, где у него кнопка?)
Александр Стуликов, api обрубаешь топором
Александр Стуликов, просто удалите токен из вкладки Настройки. Также можно удалить тикер из вкладки Акции.
avatar
divitrader, Без кнопки не жизнь :)
Пока бот за ценой не успевает: тек.Цена — 86.425, а последняя заявка - 86.230
Александр Стуликов, по кнопке 👉 ТРИГГЕРЫ можно также выбрать Удалить триггеры.
По поводу поспевания за ценой, тут как показала практика больше выигрывают те кто умеет ждать. Если же хочется побыстрее, то можно применить меньший процент или меньшее время перевыставления заявки.
avatar
все ваши скрипте запускаются в облаке гугла, акуратней)
avatar
Algo Hub 01, в этом и суть. Код открытый, на сторонних сервисах ничего кроме API брокеров не происходит.
avatar
Александр Стуликов, попробуйте установить меньший процент и меньшее время перевыставления заявок. Так бот будет быстрее закупаться, но и продавать. Из наблюдений, наибольшей прибыли удается достигать если просто ждать и корректировать по минимуму.
avatar
а стопов нет получается
avatar
ICEDONE, что вы имеете ввиду?
avatar
divitrader, вход есть, прибыль есть, стоплосса нет
avatar
ICEDONE, понятно. В этом плане бот не будет выставлять заявки на продажу по цене ниже средней по позиции скорректированной на шаг тикера.
avatar
 на истории тестировал такой алгоритм, сначала движ потом затишье. Хорошо выделять не более 5% депоза, чтобы хватило на несколько раз. Или сразу просадку 50% ставить для закупа
avatar
ICEDONE, очень индивидуально, зависит от тикера, торгового дня, времени суток и прочее. Не от алгоритма зависит по большей части. Алгоритм просто берет цену и сближает заявки каналом по выставленным вами настройкам.
avatar
Бот будет торговать бумаги находящиеся в портфеле на момент старта (естественно при условии что тикер указан в настройках)? Или только те что купил, те и продал? Мне просто не совсем понятна логика управления им.
Александр Стуликов, только те что купил по таблице. Если есть опасения, то можете завести отдельный счет для теста и под него получить токен.
avatar
divitrader, Я так и сделал, открыл отдельный счет. Просто думал в противоположном направлении, если он (бот) к концу сессии не продал бумаги, будет ли он их торговать, при следующем входе. Нет, не будет — понятно.
И еще вопрос — это демо-вариант?
Александр Стуликов, да, вечером бот проставляет комментарий об отмене заявок биржей, а утром возобновляет торги. У вас все так на сегодняшний день? Проверьте пожалуйста.
avatar
divitrader, Я сам вчерашнюю сессию остановил.
Сегодня не запускал, т.к. за вчерашний день: 0.6 р. — комиссия. Как то не очень :)
Это прошлый век. Надо из блокнота торговать.
avatar
Sergey Pavlov, Из такого?

Интересно на другие биржи он подключается.
Александр Портной, бот работает только с акциями на Мосбирже и СПБ Бирже (Т-Инвестиции некоторых эмитентов оттуда торгуют).
avatar
По моему, это гениально, без сарказма. Завтра буду в бое тестить, спасибо тебе
avatar
А почему первый вход не по рыночной цене..?
avatar
Vyacheslav B., потому что по рынку мы всегда успеем зайти. Интереснее купить дешевле на установленный вами процент, а продать дороже. Таким образом благодаря времени коррекции цена постепенно сходится в точке сделки и вы можете либо купить дешевле если подождать, либо продать дороже то что куплено опять же если подождать.
avatar
Он все таки торгует в минус. 4-ре раза купил и продал.
avatar
Павел Нагаев, это невозможно. 91.555+91.335+91.05+90.8=364.74 что в среднем дало цену 91.185. Бот корректировал цену по установленному вами интервалу и докорректировал ее до 91.185 ниже которой бот и не продал. Все работает верно. Если нужен больший запас, то как описано в статье лучше ставить больший процент и большее время коррекции.
avatar
divitrader, а как же комиссия за покупку и продажу.
avatar
Павел Нагаев, бот знает только ключ который вы ему сообщаете и команды купить/продать. Бот не знает какой у вас тариф, а брокер это не сообщает. Как вариант можно закладывать процент комиссии вашего тарифа в требуемую доходность.
avatar
Павел Нагаев, кстати покупать без комиссии можно на этом и этом тарифе.
avatar
divitrader, Да, но за продажу то есть комиссия. Не учитывать в автоматизации комиссию это провал. Неужели нельзя поставить доп параметр на продажу с учетом комиссии. Что мол не доходит до средней цены n% и пусть пользователь сам ставит свою комиссию.
avatar
Павел Нагаев, можно, но у каждого тарифа же своя комиссия. У меня на Free Trade например ее вообще нет, да и о каких суммах идет речь ради которых в суперредких случаях нужно так заморачивать код у трех брокеров? Вот реально сколько — рубль, 3 рубля, 10 рублей? Которые через минуту отобьются следующей сделкой?
avatar
Как увеличить шаг между докупками при падении цены, но при этом не увеличивать разницу в цене купли/продажи?
avatar
MoverSoft, это демонстрационный робот, он больше показывает стартовые возможности самой идеи, которая в принципе объясняет, что любая задача может быть легко реализуема и допилена, особенно учитывая то, что я не программист. Я пишу с помощью ИИ Qwen и иногда DeepSeek, с самого нуля правда, поэтому какой-то тонкий код можно брать и допиливать самому если желаете. Но например ваш случай уже обработан в некотором смысле, а именно в PRO-версии бот корректирует заявки по стакану чтобы выставить как можно более выгодную цену и не попасть на середину спреда теряя доход. Отвечая на ваш вопрос, величина между шагами в Free Trading Bot задается через параметр Изменение цены, %. 
avatar
divitrader, если я изменю параметр «Изменение цены, %» изменится ли величина на которую робот пытается дешевле купить и дороже продать?
avatar
MoverSoft, «Изменение цены, %» отвечает за равноудаленный разброс цен от цены в Начало закупа, помноженный на глубину шага. Например начало закупа цена 100, процент поставим 1. Шаг1 buy 99, шаг2 buy 98, шаг3 buy 97 и так далее. Цена же продажи всегда выставляется от цены начала закупа + наш процент, то бишь при удовлетворении каждого шага buy будет перевыставляться sell с новым объемом по цене 101 в нашем примере. И далее канал начинает сужаться с заданным вами интервалом времени корректировки.
Наибольшей доходности удается достичь после наибольшего количества закупов по наименьшей цене и соответственно продажи по наибольшей цене. Тут лучше представлять движение рынка в динамике чтобы увидеть как бот сужением канала (+ объявлением новых нижних границ канала с каждым новым шагом) пытается отхватить максимально возможный объем и максимально возможный спред между вашей средней buy и фактической sell.
Добавлю, что бот рассчитывает данные для продажи по фактическим сделкам, то бишь вы можете часть пути идти с одним процентом, а часть пути выставить другой процент, и бот на очередных новых (не перевыставленных по таймауту) заявках скорректирует цены.
avatar
Работает! 3 продажи уже было. Все в плюс. Пробовал в Т-банке, тариф «Трейдер». Не знаю на счет заработать, но мне кажется этого робота можно использовать, чтобы накрутить оборот на квала.
avatar
Данные на листе «Статистика» в колонках «доход» и «доходность» записаны не числами. Поэтому как-то использовать их в формулах невозможно. Например, просуммировать. 
avatar
MoverSoft, да, есть такое. Сейчас такое время, что люди предпочитают «мигрировать» свое виртуальное местоположение, это бы приводило к разным форматам отображения данных, а значит и их приведению и дальнейшей обработки. Google вообще часто любит записать например 1.01 как 01.01.2026 например и т.д. Поэтому было принято решение упростить оформление и привести все к тексту доверившись расчетам бота. Кстати статистика в PRO-версии выглядит уже вот так:
avatar

Читайте на SMART-LAB:
Фото
Группа «Русагро» представляет Единый годовой отчет за 2025 год
Подробнее ознакомиться с текстом отчета можно на нашем сайте:...
Сеть «ОКОЛО» достигла 6 000 магазинов
📌 Юбилейная торговая точка открылась во Всеволожском районе Ленинградской области, где уже работают 312 магазинов сети. Франчайзи выбирают «ОКОЛО»...
💰 Российский бизнес откладывает инвестпроекты
Высокая ключевая ставка и охлаждение экономики вынуждают российские компании пересматривать инвестиционные планы. Об этом заявил глава Российского...
Фото
Хэдхантер. Отчет МСФО за Q1 2026г. Всё будет непросто…но…есть надежда.
Вышли финансовые результаты по МСФО за Q1 2026г. от компании Хэдхантер: 👉Выручка — 9,49 млрд руб. (-1,5% г/г) 👉Операционные расходы —...

теги блога divitrader

....все тэги



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