вторник, 9 декабря 2014 г.

Бот-система (часть 2)

По ссылке Бот-система можно было посмотреть на результаты работы моей поделки.
В данный момент система отключена - деньги были проиграны. 

суббота, 30 августа 2014 г.

Бот-система (часть 1)

В процессе разработки бот-система для BetFair (API NG) на Python 2.7.
Текущая версия умеет собирать информацию о ценах футбольных рынков Match Odds и Under/Over 2.5.

Linux [deb-пакет версия 1-0-01]
Linux [deb-пакет версия 1-0-02]

Для запуска на Windows требуется наличие установленного дистрибутива Python.



Развёртывание системы ThrMelBot на Debian Linux
(на примере thrmelbot-1.0-01.deb)
Версии очень сильно устарели. Не стоит практически их разворачивать. :)


Скачать thrmelbot-1.0-01.deb и поместить в каталог /tmp.
Выполнить (понадобятся права суперпользователя) команды :
cd /tmp
apt-get install python-requests
dpkg -i thrmelbot-1.0-01.deb

Для того, что-бы посмотреть какая версия системы ThrMelBot установлена 
на вашей системе в данный момент можно выполнить команду:
dpkg -l | grep thrmelbot


Предпусковые работы
Запускать систему можно под учётной записью любого пользователя. Можно и от root, но я предпочитаю от “простого” пользователя.


Для запуска системы следует выполнить команду:
thrmbot stable start


Сообщение :
Для работы 'stable' необходимо наличие пользовательского
сертификата и закрытого ключа:
  '/home/mellon/thrmelbot/ssl-keys/client-2048.crt'
  '/home/mellon/thrmelbot/ssl-keys/client-2048.key'
Можно использовать программу thrmb-crkey
указывает на необходимость создания пользовательского сертификата и закрытого ключа (даже если вы не планируете их использовать для НЕинтерактивного запуска)
Certificate Generation With XCA тут можно прочитать рекомендации BetFair о процедуре создания сертификата и ключей.
Для создания сертификата и закрытого ключа можно запустить скрипт :
thrmb-crkey
Если вы планируете использовать НЕинтерактивный запуск бот системы вам следует разместить сформированный сертификат в настройки вашего аккоунта на сайте BetFair.

Так-же необходимо получить Application Key:
BetFair о Application Keys
Рекомендую перед переходом на Accounts API Visualiser выполнить авторизацию в системе. В этом случае в поле ввода “Session Token (ssoid)” будет отображаться ваш SessionToken (это один из вариантов его интерактивного получения для последующего использования в ботСистеме)

Для создания нового DeveloperAppKeys следует выбрать в левом меню пункт createDeveloperAppKeys; ввести название ВАШЕЙ программы (придумать уникальное имя) в поле ввода “Application Name”, убедиться что в поле ввода “Session Token (ssoid)” имеется SessionToken (который создаётся BetFair после вашей авторизации) и нажать кнопку Execute в нижней части экрана.
В случае успеха в правом части окно отобразится информация о сформированных Application Keys.
Значение “Application Key” для перового из отображаемых ключей (который НЕ содержит “-DELAY” в поле Version) следует внести в поле “application_key” файла log/stable.cfg. Строка должна принять примерно следующий вид
"application_key": "QXyasd2Fs1DRdfZq",

В общем случае для нормальной работы ботСистемы необходим SessionToken.
Можно скопировать содержание поля ввода “Session Token (ssoid)” в файл cfg/session_token.cache

Более менее всё готово для запуска ботСистемы. Как я уже отмечал ранее, для запуска системы следует выполнить команду:
thrmbot stable start
Для остановки системы следует выполнить команду:

thrmbot stable stop

Диагностические сообщения сохраняются в файле log/stable-<номер_процесса>.log Сообщения об ошибка в файле
log/stable-<номер_процесса>.err
Информация об отправленных запросах и результате их выполнения в файле
log/rr_stable.log






вторник, 15 апреля 2014 г.

Пуассон

Статья старая, скрипт новый.

Скрипт , решающий «обратную задачу распределения Пуассона» и рассчитывающий линию Correct Score. При необходимости, скрипт «избавляется от маржи», то есть имеется ещё одно место, где накапливаются ошибки. :)
Хостинг бесплатный и ужастно тормозит: расчёт происходит секунд 10-20. Ужас. ;)


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

Практически использую следующим образом: найдя параметры распределения (выйдя на fair-коэффициенты 
1-X-2 ТМ/ТБ 2.5) сравниваю вычисленные коэффициенты «Точный счёт» с рыночными и пробую найти 
«заниженные-завышенные». В основном это получаются счета 0-3 и 3-0, иногда «Любой другой».

... В данный момент (последние пару-тройку дней) балуюсь пред матчевой «торговлей»: Back, затем Lay. 
После того, как прочитал о «распределении Пуассона» решил попробовать её в своей предыдущей и несколько 
заброшенной идее. 
Тогда тоже пробовал «воссоздать линию, принимая за базовые 1-X-2 ТБ/TM 2.5», но 
(ничего не зная про Пуассона) использовал «вероятность что команда А забьёт в матче» и 
«вероятность что команда Б забьёт в матче». Был написан скрипт, который восстанавливал не только 
доматчевую линию, но и генерировал линию по ходу матча. Практически пришёл к выводу, 
что нужно вводить поправки для ничейных точных счетов, а так же выбрал для себя ставки на 
«точный счёт матча» и «точный счёт первого тайма» (не очень много рынков пытался поверхностно 
анализировать, но решил, что на «Match Odds» и «тоталах» перегибы встречаются очень редко). 
Получалось очень даже неплохо. Но слишком много времени уходило на ручной ввод «пяти базовых 
коэффициентов» (их брал с BetExplorer и потом кустарным методов преобразовывал в fair-коэффициенты, 
то есть избавлялся от «маржи») и ручную простановку ставок (про «торговлю» не думал, 
так как до стереотипно полагал, что она невыгодна). Решил отложить до «полной автоматизации», 
но… не довёл оную до начала, даже.