АвтоСтавки
инструмент для умных игроков

Механизм Автостратегий

Механизм автостратегий, заложенный в программе заключается в том, что Вы можете создавать неограниченное количество стратегий, основанных на нескольких базовых стратегиях, в которых заложен определенный алгоритм работы и расширенный функционал для реализации различных вариантов стратегий торговли и ставок.
Есть некая общая функциональная модель, по которому работает программа, Вы лишь корректируете параметры работы так, как считаете нужным.
Таким образом, каждая создаваемая Вами стратегия - это набор настроек, который сохраняется под своим названием и работает независимо.
Рассмотрим основную и самую функциональную базовую автостратегию АвтоСтавки.
Общая модель работы стратегии состоит из нескольких этапов.
Этап 1. Поиск рынков. Для начала работы необходимо выбрать те рынки, на которых планируется реализовать стратегию. Для этого необходимо задать ряд параметров, по которым рынки будут попадать в выборку для работы.
Далее рынки, которые попадут в выборку, будут обрабатываться по заданному в дальнейших параметрах алгоритму.
Параметры Поиска рынков
search markets

Параметры следует выбирать последовательно - сверху вниз, т.к. состав некоторых параметров зависит от выбранных ранее значений.
Описание параметров:
  • Биржи
    Возможные значения: UK или AU
    Биржи, на которых нужно искать рынки UK - Великобритания, AU - Австралия
  • Виды спорта
    Виды спорта, по которым необходимо искать рынки.
  • Страны
    Страны, в которых проходят соревнования. Если не указано, то поиск производится по всем странам.
  • Venue
    Venue - Место проведения, ипподром. Актуально только для скачек и собачьих бегов. Если не указано, то поиск производится по всем ипподромам.
  • Соревнования
    Соревнования, турниры. Если не указано, то поиск производится по всем соревнованиям.
  • Виды рынков
    Возвожные виды рынков зависят от видов спорта. У многих видов спорта свои особенности. Например, на скачках есть виды рынков: WIN (Победитель), Place (Призер) и другие.
    В футболе свои виды, их гораздо больше: MATCH_ODDS (Ставки), OVER_UNDER (Тоталы), CORRECT_SCORE (Результат, точный счет) и многие другие.
    Внимание! Если не указано, то поиск производится по всем видам рынков.
  • С поддержкой СЦ
    Искать рынки только с поддержкой Стартовой цены.
  • С поддержкой In-Play
    Искать только рынки, на которых планируется, что рынок будет открыт для ставок по ходу игры (In-Play).
  • Уже перешли в In-Play
    Искать только рынки, которые уже перешли в режим In-Play в момент поиска.
  • Минимальная/максимальная сумма в паре
    Объем принятых ставок на рынке в момент поиска. 0 - без ограничений.
  • Минимальное/максимальное количество исходов
    Минимальное/максимальное количество исходов на рынке. 0 - без ограничений.
  • Период поиска
    В каждый поиск программа ищет рынки, начинающиеся с текущего момента и по заданный Период поиска. На приведенном скриншоте - на 1 час вперед.
  • Фильтр
    Дополнительный текстовый фильтр. Если указан, то будут находиться только рынки и соревнования, содержащие данную строку.
  • Частота поиска
    Периодичность, с которой будет повторяться поиск рынков.
  • Максимальное количество рынков
    Максимальное количество рынков, добавляемые в результаты поиска. Параметр может быть полезным для тестирования стратегий. 0 - без ограничений.
  • Минимальное/максимальное окончание номера рынка
    Фильтр для случайной выборки рынков по окончанию его номера (ID). По умолчанию от 0 до 99 - то есть все рынки.
    Параметр может быть полезен в случае запуска одной стратегии на нескольких счетах - для разделения рынков между счетами случайным образом.
  • Минимальная/максимальная минута часа старта рынка
    Фильтр для выборки рынков, начинающиеся в определенные минуты часа. По умолчанию от 0 до 59 - то есть все рынки.
    Параметр может быть полезен в случае запуска одной стратегии на нескольких счетах - для разделения рынков между счетами по времени старта.
  • Период обновления общих данных по рынку
    Периодичность, с которой обновляются общие данные по рынкам. Самое главное - это время старта рынка.
    Параметр актуален особенно для теннисных матчей, где время старта рынков часто меняется - переносится на более позднее время.

  • Этап 2. Обработка рынков
    Все найденные рынки постоянно мониторятся программой "по кругу". На каждом рынке программа делает ставки по заданному алгоритму.
    filters for bets
    Описание параметров:
  • Виртуальные суммы
    При установленной галке программа "будет видеть" на рынках так называемые виртуальные (зеркальные) суммы.
    Подробнее о них можно прочитать здесь (на английском языке): https://api.developer.betfair.com/.../Virtual+Bets
  • Частота обработки
    Периодичность, с которой программа будет запрашивать данные по рынкам и производить дальнейшие действия при необходимости.
  • Обрабатывать рынки In-Play
    При установленном параметре ставки будут делаться в том числе в In-Play, иначе - только до перехода рынка в инплей (Pre-In-Play).
    Внимание! Параметры поиска "Уже перешли в In-Play" и "С поддержкой In-Play" влияют только на добавление рынков в результаты поиска.
    При этом, будут ли делаться ставки в In-Play определяется только этим параметром "Обрабатывать рынки In-Play".
  • Комиссия Betfair (%)
    Комиссия, которая применяется на Вашем счете. Нужна только для расчета результатов работы стратегии на вкладке Статистика:
    statistics
  • Счетчик транзакций
    Лимит ставок (транзакций) в час. За превышение лимита в 1000 транзакций в час на бирже предусмотрена комиссия.
    Параметр Период (минут) - это длина отрезка внутри часа в минутах, за который будут лимитироваться транзакции.
    Например, если указано 1, значит лимит 1000 в час будет означать 1000 / 60 * 1 = 17 в минуту;
    если указано 15 минут, значит лимит 1000 в час будет означать 1000 / 60 * 15 = 250 в 15 минут.
    Если указать 60 минут, то программа внутри часа не будет ограничивать транзакции, будет действовать только общий лимит - 1000 в час.
    Остальные параметры транзакций не редактируются, в них отображается количество сделанных транзакций в текущий промежуток времени.
    В параметре "Всего транзакций" показано количество транзакций, сделанных с момента старта стратегии.

  • Этап 3. Фильтры для ставок
    Как сказано выше, по всем найденным рынкам с заданной частотой программа запрашивает данные с биржи и делает ставки по заданному алгоритму. Сначала рынки и исходы на этих рынках проверяются на заданные фильтры - условия. Если и рынок и исход прошел все фильтры, делаются ставки, иначе рынок пропускается и повторная обработка следует при следующем получении данных.
    Рассмотрим эти условия:
    filters for bets
    Описание параметров:
  • Минимальный/Максимальный Overround (%)
    Overround - сумма обратных коэффициентов на рынке, умноженная на 100
    Например, если на рынке лучшие коэффициенты для ставок За: 1.7 / 3.5 / 5.5,
    Overround = (1/1.7 + 1/3.5 + 1/5.5) * 100 = 105.58%
    Если текущий Overround на рынке не вписывается в заданные ограничения, первоначальные ставки на рынке не делаются.
    По умолчанию 0 - без ограничений
    Внимание! Для рынков с несколькими победителями (например, Place в скачках) оверроунд задается также: в пределах от 100, но при расчете 100 умножается на количество победителей. Если задать от 105 до 110, то на рынках с двумя победителями подходящие рынки будут с оверроундом от 205 до 210; на рынках с тремя победителями от 305 до 310.
  • Минимальное/Максимальное соотношение между коэффициентами двух фаворитов
    На рынке находятся исходы с наименьшими коэффициентами. Допустим, это исходы с коэффициентом 3.5 (Фаворит 1) и коэффициентом 4.5 (Фаворит 2). Далее коэффициент фаворита 2 делится на коэффициент фаворита 1, то есть: 4.5 / 3.5 = 1.28 - это и есть искомое соотношение.
  • Только для скачек: Минимальная/Максимальная длина трассы
    Длина трассы задается в виде: XmYf, например, 1m6f. Может присутствовать два символа, например, 6f или 1m.
    Если длина рынка не вписывается в заданный диапазон, первоначальные ставки на рынке не делаются.
  • Только для скачек: Препятствия
    Возможные варианты:
    - Все рынки - без ограничений
    - Только с препятствиями - ставки делаются только на тех рынках, в названии которых присутствуют обозначения Chs или Hrd
    - Только без препятствий - ставки делаются только на тех рынках, в названии которых отсутствуют обозначения Chs или Hrd
  • Только для скачек: Номера трапов
    Номера трапов, с которых стратуют лошади, через запятую. Например: 1,2,6,7. Если не задано, то ограничений нет.
  • Тренд
    Возможные варианты:
    - Любой
    - Падающий
    - Растущий
    - Горизонтальный
    Тренд считается на основании трех цен: средняя по исходу, средневзвешенная (с учетом сматченных сумм) и текущая.
    Вычисляется процент изменения средневзвешенной цены относительно средней (считается, что средневзвешенная - это более поздняя, то есть более объективная) и если этот процент больше, чем заданный в параметре "Процент изменения при расчете тренда", значит тренд есть. Если нет, то он "Горизонтальный".
  • Максимальное количество исходов на рынке
    Если параметр установлен, значит программа сделает ставку максимум на заданное количество подходящих исходов, даже если параметрам будут соответствовать больше. 0 - без ограничений.
  • Наименование исходов (через запятую)
    Если указаны наименования исходов, то только на заданные исходы будут делаться ставки. Например, 0 - 0, Ничья, Over 2.5 Goals. Наименования нужно задавать на том языке, на котором программа получает данные. В общих настройках программы задается: на Русском или Английском. Посмотреть точное наименование того или иного исхода можно посмотреть, открыв нужный рынок в программе.
  • Исходы из файла
    Можно задать имя текстового файла, из которого программа будет считывать исходы и делать ставки только на них. Каждое наименование исхода должно быть написано в файле на отдельной строке. Файл будет перечитываться с заданной периодичностью в следующем параметре.
  • Минимальный/Максимальный спред на исходе (в тиках)
    Спред - разница между рыночными коэффициентами За и Прротив. 0 - без ограничений
  • Для футбола: минимальная/максимальная минута матча
    0 - без ограничений
  • Для футбола: фильтр по счету
    Если фильтр по счету задан, то только при перечисленных счетах программа будет делать ставки
    Внимание!Часто российские провайдеры блокируют сервис Betfair, с которого программа получает счет.
    В этом случае в логах будут видны ошибки при получении счета и соответствующие фильтры работать не будут (ни по счету, ни по минуте матча). Чтобы убедиться, что Ваш провайдер сервис не блокирует, откройте любой рынок в In-Play и посмотрите, отображается ли в нем счет и минута матча.

  • Этап 4. Ставки
    Если все предыдущие фильтры рынок и конкретный исход на нем прошли, делаются ставки.
    bets
    Описание параметров:
  • Алгоритм расчета базового коэффициента
    Сначала необходимо посчитать базовый коэффициент, исходя из которого программа будет считать коэффициент ставки.
    Возможные варианты расчета базового коэффициента:
    - По всем сматченным суммам. Базовый коэффициент рассчитывается на основании объемов всех сделок на рынке по следующему алгоритму:
    а) по каждому исходу считается средневзвешенный коэффициент по всем сматченным суммам по формуле: (коэффициент * сумма по коэффициенту) / (общая сумма по всем коэффициентам)
    б) коэффициенты по всем исходам переводятся в вероятности (1 / коэффициент), суммируются, пропорционально приводятся к единице и обратно переводятся в коэффициенты
    Примечание: может возникнуть ситуация, когда сумма вероятностей средневзвешенных коэффициентов будет сильно отличаться от единицы.
    Если она будет больше 1.2 или меньше 0.8, программа считает, что такую погрешность слишком большой и базовые коэффициенты посчитаны не будут

    г) таким образом по каждому исходу получается базовый коэффициент равный "чистому" или "честному"
    - По сматченным суммам c момента входа. Алгоритм расчета аналогичен, но в рассчет берутся только суммы, сматченные после того, как рынок был найден.
    Как только по всем исходам будут сматчены какие-то суммы, базовые коэффициенты будут посчитаны.
    - Считать текущие рыночные коэффициенты базовыми. Программа считает базовыми текущие коэффициенты на рынке. Причем для ставок Против берутся коэффициента "Слева" - то есть доступные для ставок За, а для ставок За берутся коэффициенты "Справа" - то есть доступные для ставок Против.
    - Считать текущие противоположные коэффициенты базовыми. Программа считает базовыми текущие коэффициенты на рынке. Причем для ставок Против берутся коэффициента "Справа" - то есть доступные для ставок Против, а для ставок За берутся коэффициенты "Слева" - то есть доступные для ставок За.
    - Считать последние сматченные коэффициенты базовыми. Программа считает базовыми последние сматченные на исходе коэффициенты.
  • Минимальная сумма "видимости" коэффициента на рынке
    При определении текущего коэффициента на рынке (при установленном алгоритме расчета от текущих) те коэффициенты, на которых находятся суммы меньше заданного параметра, будут игнорироваться.
    Например, на рынке на каком-то исходе такая ситуация: 1.56 ($1500) - 1.57 ($2300) - 1.58 ($10)
    Если в данном параметре поставить 20, то в качестве текущего коэффициента будет взят 1.57, а если 10 или меньше, то 1.58
  • Глубина поиска суммы "видимости" в лестнице (тиков)
    По умолчанию 3 - стандартное количество коэффициентов на рынке, среди которых ищется сумма видимости. Если увеличить, то программа будет искать сумму видимости не только среди лучших трех коэффициентов, а среди заданного количества.
  • Тип Ставок
    Возможные варианты: Back(За) или Lay(Против)
  • Сумма Ставок
    Сумма задается в валюте счета. Сумма ставки зассчитывается из заданного варианта:
    - Payout ("Выплата") - Сумма ставки = Заданная Сумма / Коэффициент
    - BetAmount ("Сумма ставки") - Сумма ставки = Заданная Сумма
    - Liability ("Ответственность") - Сумма ставки = Заданная Сумма / (Коэффициент - 1)
  • Маржа от базового коэффициента
    Маржа задается в тиках, в процентах от коэффициента (по сути процент повышения вероятности) или в процентах от величины коэффициент - 1 (по сути отражает комиссию Betfair).
    Если в тиках, значит коэффициент ставки будет уменьшен (для ставок Против) / увеличен (для ставок За) от базового коэффициента на заданное количество тиков.
    Если в процентах, коэффициент первоначальной ставки будет уменьшен (для ставок Против) / увеличен (для ставок За) от базового коэффициента на заданное количество процентов и округлен до ближайшей корректной цены. Например, если делаем ставки Против, то при базовом коэффициенте 1.5 и марже 10% будет выставлена ставка с коэффициентом: 1.5 * (100 - 10) / 100 = 1.35.
    Если в процентах от (кэф - 1), коэффициент первоначальной ставки будет уменьшен (для ставок Против) / увеличен (для ставок За) от базового коэффициента на заданное количество процентов от величины (коэф - 1) и округлен до ближайшей корректной цены. Например, если делаем ставки Против, то при базовом коэффициенте 1.5 и марже 10% будет выставлена ставка с коэффициентом: (1.5 - 1) * (100 - 10) / 100 + 1 = 1.45.
  • Минимальный/Максимальный коэффициент ставок
    Если рассчитанный коэффициент попадает в заданный диапазон, то ставки будут сделаны, иначе - нет.
  • Ставки по СЦ Betfair
    Если признак установлен, ставки будут делаться не по рассчитанному коэффициенту от базового, а по Betfair Starting Price (Стартовой цене). Если установлен параметр ""коэффициент СЦ не хуже", то будет установлена ставка по СЦ, но с лимитом по указанному коэффициенту.
  • Время жизни
    Если установлено, то по истечении заданного времени после выставления ставка будет отменена, если не будет сматчена.
  • Улучшать позицию заявки по возможности
    Если установлена маржа -1 тик от текущих рыночных коэффициентов, то есть ставки выставляются впереди всех на рынке, то при установке данного признака ставки будут отменяться, если конкурирующие заявки на рынке были отменены. Например, на рынке коэффициенты "слева" 1.2 - 1.25 - 1.3. Стратегия выставила ставку Против 1.31. Если сумма 1.3 с рынка исчезнет, то ставка 1.31 будет отменена и будет выставлена снова, но уже 1.26.
  • Максимальное количество ставок на исходе
    По умолчанию 1 - на одном исходе делается только одна ставка. Можно задать любое количество, тогда после сматчивания ставки, если количество ставок на исходе не достигнет максимального, будет выставлена еще ставка по тем же правилам, но возможно уже в новой рыночной ситуации.
  • Отменять ставки не лучшие на рынке
    Если установлена маржа -1 тик от текущих рыночных коэффициентов, то есть ставки выставляются впереди всех на рынке, то ставки будут переставляться всегда на лучшие позиции. Однако, если рыночный коэффициент уже не входит в диапазон допустимых, то ставки переставляться естественно не будут, но останутся "висеть". При установке данного параметра они будут отменяться в таких ситуациях.
  • Оставлять в In-Play
    при установке параметра ставки будут делаться с признаком "Оставить в In-Play". В этом случае в параметрах поиска необходимо установить признак "С поддержкой In-Play"

  • Этап 5. Обратные ставки
    search markets
    Описание параметров:
  • Делать обратные ставки
    При установленом флаге каждая принятая ставка будет "порождать" обратную ставку.
  • С признаком "Оставить в In-Play"
    При установленном флаге обратные ставки будут оставлены в In-Play. В этом случае в параметрах поиска необходимо установить признак "С поддержкой In-Play".
  • Маржа обратных ставок
    Значение в тиках или процентах, на которое необходимо увеличить/уменьшить коэффициент обратных ставок.
  • Переставлять при частичном сматчивании
    Если признак установлен, сматченные суммы будут переставляться на обратные при каждом получении данных о сматчивании, то есть с приодичностью, заданной в параметре "Частота обработки рынков". Если параметр не установлен, то ставка будет переставлена на обратную только тогда, когда будет приянта полностью.

  • Этап 7. Закрытие рынков
    Под закрытием рынков понимается уравнивание результатов по всем исходам.
    search markets
    Описание параметров:
  • Отменять все ставки после перехода рынка в In-Play
    Если параметр установлен, все ставки будут отменены после перехода рынка в In-Play.
  • Закрывать рынки
    Если параметр установлен, то в какой-то момент времени в зависимости от заданного типа закрытия прекращает делать ставки на рынке по алгоритмам, описанным в предыдущих этапах, отменяет все ставки и с заданной периодичностью пытается уравнять результаты по всем исходам. Уравнивание происходит по коэффициентам "Перед лучшими". Например, если на рынке "слева" 1.5, "справа" 1.55, то закрывающая ставка За будет выставлена с коэффициентом 1.54, а закрывающая ставка Против - с коэффициентом 1.51.
  • Тип закрытия рынков
    Возможные варианты:
    - По времени до начала старта. - означает, что момент закрытия наступакет, когда до старта рынка остается заданное время в параметре "Время закрытия (до старта события)". Также в данном типе закрытия в параметре "Время мгновенного закрытия (до старта события)" можно указать время, за которое необходимо уравнять рынок по рыночным коэффициентам;
    - По количеству принятых ставок на рынке - означает, что момент закрытия наступает как только на рынке будет принято заданное количество ставок (в параметре "Количество принятых ставок");
    - По достижению Целевой прибыли - означает, что как только программа обнаружит на рыке ситуацию, при которой мгновенное закрытие (то есть по рыночным коэффициентам) принесет заданную прибыль (в параметре "Целевая прибыль"), рынок будет закрыт и уравнен;
    - По времени после перехода рынка в In-Play - означает, что момент закрытия наступит спустя заданное в параметре "Время закрытия после перехода в In-Play" время.
  • Использовать зеркальное закрытие
    Если параметр установлен, при формировании закрывающих ставок на двухисходных рынках программа будет выбирать исход, на который выгоднее сделать ставку. Например, вместо ставки За с кэфом 1.2 выгоднее сделать ставку Против с кэфом 5.6.
  • Только отменить ставки
    Если параметр установлен, то в момент закрытия программа отменит все ставки, но закрывающих ставок делать не будет.
  • Закрывающие ставки оставлять в In-Play
    Если параметр установлен, закрывающие ставки будут делаться с признаком "Оставить In-Play"
  • Погрешность итогов при уравнивании
    Допустимая разница в итогах на исходах при уравнивании. Например, если поставить 1 цент, программа будет пытаться уравнять результаты по всем исходам до терх пор, пока разница в них будет превышать 1 цент, хотя это часто невозможно. Как только разница в результатах по всем исходам будет меньше заданной суммы, программа посчитает рынок уравненным.
  • Минимальная сумма уравнивающих ставок
    Меньше этой суммы уравнивающие ставки делаться не будут. Сделано для экономии транзакций.
  • Минимальный/Максимальный коэффициенты ставок За/Против
    При желании можно ограничить коэффициенты закрывающих ставок. С коэффициентами вне заданных диапазонов закрывающие ставки делаться не будут.

  • Дополнительные настройки
    search markets
  • В параметрах "Оповещения" можно задать имя звукового файла, который будет проигрываться при принятии ставок, если установлена соответствующая галочка.
  • Автостарт - при установленной галочке Автостарт стратегия всегда будет запущена в интервале времени, который задается в параметрах Время запуска и Время остановки
    . Если время запуска и время остановки заданы как 00:00:00, стратегия будет работать постоянно без остановок.
  • Прекращать делать ставки при достижении прибыли/убытка - если в данных параметрах заданы значения, отличные от нуля, стратегия пеестанет делать ставки, если прибыль/убыток по резальтатам работы стратегии превысит указанное значение. Прибыль/убыток работы стратегии:
    search markets
    обнуляется при остановке стратегии. Таким образом, можно задать максимальные убытки/прибыль по итогам работы дня, а с помощью параметров Время запуска и Время остановки останавливать и запускать стратегию раз в сутки.

  • Удачи Вам в поиске своих прибыльных стратегий!