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

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


Полученный фидбэк

Итак, статья была опубликована, я стал ждать сообщения от заинтересовавшихся людей. За первую неделю мне написали около 15 человек, и что тогда вызвало у меня некоторое удивление – большинство было из разных стран, хотя сами люди были русскоговорящие. Я получил интереснейший опыт общения с ребятами, которые также имели похожий бэкграунд командной работы и исследований/разработок в этой области. Например, программист из США, который со своей командой разработал платформу анализа данных. Их софт анализировал большие объёмы информации, получаемой с множества контор, и находил перевес в значениях, сравнивая все котировки с эталонной линией Pinnacle. Более того, в разработке их мат. аппарата принимал участие доктор математических наук. Или, к примеру, молодой парень с Кипра, который использовал алгоритм, основанный на задержках обновления котировок. У его команды был даже свой офис в Москве.

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

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

Формирование команды

Для начала предлагаю познакомиться с ребятами поближе. Руслан – программист из Беларуси, работающий в международной логистической компании, разрабатывающей продукт для пользователей из СНГ и Европы. Кирилл – предприниматель из Бельгии, занимающийся разными проектами (от аналитики до ритейла) в Европе со своей командой.

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

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

Концепция и цели

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

Укрупнённо этапы проекта можно описать следующим образом:

  1. Разработка аналитического ПО

На этом этапе необходимо было разработать систему сбора и анализа данных для онлайн-конторы, а также систему уведомлений о событиях (telegram bot). Мы с Русланом оба программисты, поэтому решили, что наших сил и времени для разработки будет вполне достаточно – система задумывалась относительно простая.

  1. Сбор и анализ данных

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

  1. Подготовка к запуску

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

  1. Запуск

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

  1. Масштабирование

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

Мы составили детальный план, распределили роли и, настроившись на результат, принялись за работу.

Разработка аналитического ПО

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

Теперь нужно было определиться со стеком. Я хотел реализовать модуль логики и обработки данных самостоятельно на C# (поскольку это мой основной язык), а Руслан бы занялся модулем получения и отправки данных, реализовывая все это на PHP. Однако он предложил сделать всё в одном месте, чтобы уменьшить сложность и скорость разработки – так и поступили. Итоговый стек выглядел просто: PHP + Yii2 + MySQL. На тот момент с PHP я был уже знаком и даже имел небольшой разработанный проект на нём, поэтому C# или PHP – особой разницы для меня не было, и мы приступили.

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

Доска проекта на начальном этапе в Trello
Доска проекта на начальном этапе в Trello

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

Сбор и анализ данных

Мы ждали, а система работала. Первые собранные данные имели такой формат.

Первые собранные данные и их структура
Первые собранные данные и их структура

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

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

Таким образом, за два месяца мы перешли от общей выборки около 1900 событий с приростом чуть больше нуля к прореженной выборке 200 событий с приростом 20 номиналов, т.е. ROI (показатель рентабельности) был равен 10%. График представлен ниже.

График прироста оптимизированного алгоритма
График прироста оптимизированного алгоритма

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

Подготовка к запуску

Как я и отметил ранее, сейчас нужно было запустить все процессы «на минималках». На этом этапе Кирилл выделил первичную инвестицию 2000€ на общий депозит – на одну ставку отводилось ровно 100€. Заложили бюджет и на следующий этап, планируя обороты уже больше. По странам решили начать с Германии и Бельгии – по одному человеку в стране. Итак, всё было готово, и мы сделали тестовый запуск.

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

Проработав в таком режиме около месяца, мы поняли, что наш банк не растёт, а просто колеблется около начального значения, хотя по исходным данным из базы был небольшой прирост. Тут мы поняли, что дело в коэффициентах, а точнее, в их разнице. Коэффициент на конкретное событие на российской конторе отнюдь не равен коэффициенту на это же событие на европейской. Как правило, он всегда меньше. Весь прирост по алгоритму нивелировался разницей в коэффициентах – повышенной маржей на конторах в Европе. Прямое следствие этого – непригодность алгоритма с ROI 10% (на российском) для работы на европейском рынке.

Поиск нового алгоритма

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

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

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

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

Мы достаточно быстро провели переговоры и договорились о сотрудничестве. Его алгоритм подходил нам по всем параметрам, ROI составлял 20%. Собственно, вот и график с приростом в 400 номиналов на 2000 событий за полтора года работы.

График работы бота по алгоритму Александра
График работы бота по алгоритму Александра

Разница коэффициентов

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

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

Несложным расчётом можно получить ROI этого алгоритма применительно уже к рынку Европы – с исходных 20% мы имеем около 6%. Учитывая процент для части команды в пунктах в разных странах, комиссии при переводах, передвижения по странам и прочие дополнительные издержки, чистой прибыли мы можем и не увидеть вовсе. Было решено не запускать процесс.

Подводя итоги

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

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

В остальном, это всё. Я благодарю каждого, кто дочитал статью до конца. Желаю всем успехов и быстрых запусков! :)

Комментарии (9)


  1. gmtd
    16.12.2023 17:59

    Завоевание мира не удалось из-за:

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

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

    А чего по РФ то не захотели поработать?


    1. arlol Автор
      16.12.2023 17:59

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

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


      1. gmtd
        16.12.2023 17:59

        Поди фильмов страшных насмотрелись..

        Casino, 1995

        Я прочитал обе ваши статьи, в чем суть вашего алгоритма/гипотезы/стратегии так и не понял

        И вообще, есть ли она


        1. savostin
          16.12.2023 17:59

          Это как всегда в таких случаях большой секрет. Правда в большинстве там все банально. Сам сделал несколько таких «открытий». Правда до создания международной банды не дошло - хватило ума зайти на сайт контор и проверить все гениальные теории на исторических данных.


          1. gmtd
            16.12.2023 17:59

            Это точно

            Проверка "гениальных" теорий на исторических данных ставит всё на свои места и в спортсбеттинге, и на фондовых рынках.


            1. savostin
              16.12.2023 17:59

              И даже когда на исторических все в шоколаде, есть огромная вероятность что где-то закралась ошибка ;)


  1. nkrrr
    16.12.2023 17:59

    Есть три совета . 1)Если исходить только из статистического анализа дело можно бросать сразу. 2)Если вылавливать вилки дело можно бросать сразу таких сервисов полно итак. 3)Если строить стоящий ИИ ограничиваться только проффесиональными лигами НХЛ НБА с большой интенсивностью матчей и иметь в команде человека с компетенцией по спортивной части


    1. Sanes
      16.12.2023 17:59

      Проще сделать динамический коэф., как пари. Делал недавно подобное, но не успел запустить. Времени нет.


      1. arlol Автор
        16.12.2023 17:59

        Это как на бирже или что-то другое?