Pull to refresh

Ставки по коэффициентам букмекеров на примере Формулы-1

Reading time3 min
Views7.9K
Miicky

О чём речь



Я истинный поклонник Формулы-1. За гонками слежу с восьми лет, в рабочем календаре расписаны все даты проведения Гран-При, а через RSS читаю несколько тематических сайтов. На одном из них ежегодно проводиться конкурс прогнозов. Правила просты – перед каждым Гран-При Вам нужно спрогнозировать первую десятку гонщиков на финише. По итогам сравнивается две таблицы — десять пилотов, указанных Вами в прогнозе и десять лучших пилотов по итогам гонки. Спрогнозировать финишную десятку тяжело из-за непредвиденных обстоятельств в виде сходов болидов, аварий или поломок. Потому я ответил на один простой вопрос — кто зарабатывает на ставках больше всех? Конечно букмекерские конторы. Так какие шансы на победу в конкурсе, если ставить по прогнозам, например, британской конторы William Hill?

Правила конкурса просты. Пилоты, финишировавшие вне призовой десятки, не учитываются. Если пилот финишировал на том месте, которое вы указали в прогнозе – вы получаете 25 очков, если ошиблись на одну позицию – 18 очков, на две – 15 очков, на три – 12 очков, на четыре – 10 очков, на пять — 8 очков, на шесть – 6 очков, на семь – 4 очка, на восемь – 2 очка и на девять – 1 очко. (Такие же очки получают гонщики за позицию на финише гонки). Очки за каждую позицию суммируются. При определении победителя по итогам сезона учитываются результаты пяти лучших прогнозов.

Приступаем к просчёту


Сначала я нашел прогноз букмекеров перед гонкой, а также итоги гонок и свёл их в одну таблицу.

Считать результаты по всем 20 Гран-При у меня не было желания, потому было решено написать небольшой скрипт. Но программировал последний раз я ешё в школе, и взяв на вооружение документацию Google Developers и их платформу, сумел набросать за довольно таки большой период времени работающий скрипт, вспомнив, при этом, внеземное чувство работающего скрипта после тридцати минут поиска ошибки.

*Пример Гран-При Австралии 2012
Гонка Прогноз Баллы
1 Баттон Феттель 12
2 Феттель Хэмилтон 18
3 Хэмилтон Уэббер 18
4 Уэббер Баттон 18
5 Алонсо Алонсо 25
6 Кобаяши Росберг 0
7 Райкконен Райкконен 25
8 Перес Шумахер 0
9 Риккардо Грожан 0
10 ди Реста Масса 0


Пример кода для подсчета баллов, заточен под данную таблицу

function points() {
  var sheet = SpreadsheetApp.getActiveSheet();                        //работаем с активной таблицей
  var race, forecast = new Array();                                   //результат гонки и прогноз
  var points_race = new Array(25,18,15,12,10,8,6,4,2,1);              //массив баллов 
  for (var k=3; k<=215; k=k+11){                                      //просчёта всех гонок
    race = sheet.getRange(k, 2, 10, 1).getValues();                   //считывает результат гонки
    forecast = sheet.getRange(k, 3, 10, 1).getValues();               //считывает прогноз
    for (var i=0; i<=9; i++){
      sheet.getRange(k+i,4).setValue(0);                              //по умолчанию заполняем баллы "0" 
      for (var j=0; j<=9 ; j++)
      if (race[i].toString() == forecast[j].toString()){              //сравниваем  строки
        sheet.getRange(k+i,4).setValue(points_race[Math.abs(j-i)]);   //записывает баллы
        break;                                                        //если сработало останавливаем цикл 
      }
    }
  }
}


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

Пятерка лучших результатов
Гран-При Сумма баллов
Индия 156
США 155
Канада 118
Сингапур 117
Австралия 116
Сумма 662



Первый вывод


Несмотря на хороший общий результат по всем гонкам (2064 балла), моя пятерка лучших результатов (662 балла), конкуренции первой тройке призеров (789-767 балла) составить не смогла, но результат был лучшим чем мой собственный, построенный на «чутье».

Не сдаваться


На этом я не остановился и сделал в общей сложности семь разных функций прогноза.
  1. Выше описанная — прогноз просчитывался по ставкам букмекеров на отдельный этап;
  2. По ставкам букмекеров на победу в чемпионате, перед началом сезона;
  3. Ставки моего любимца кота «МацЫка», который прошелся по клавиатуре — случайная десятка гонщиков, одна для всех этапов;
  4. Случайная десятка гонщиков для каждого этапа разная;
  5. Результаты первой практики;
  6. Результаты второй практики;
  7. Результаты третей практики.


Всё результаты в одной таблице
Расчёт Сумма баллов 5 лучших результатов
Букмекеры-этапы 662
Букмекеры-чемпион 640
Случайный-один (МацЫк) 569
Случайный-всё 542
Первая практика 596
Вторая практика 712
Третья практика 622


Выводы


В заключительной части статьи должен быть вывод, и с этим у меня проблема :) До начала работ, я думал что прогноз будет если не лучшим, то хотя бы близким к нему. Но подтвердилось другое — показать хороший результат за счет только простой теории вероятности не получиться, нужно модифицировать уже имеющийся алгоритм другими переменными. С другой стороны я повеселил свой, забывший что такое программирование, мозг, решил интересную для меня, а может и для Вас, задачу, и получил хоть немного опыта.

Пост Скриптум


На github код не заливал, поскольку он заточен под таблицу.
Таблица и сценарий доступны для просмотра, для работы с ними сделайте копию себе в Google Disk, для запуска подсчета — меню «Примочки».
Если у читателя возникнут какие-либо идеи о том, как еще можно просчитать прогноз — напишите мне, я с удовольствием выслушаю их.
Tags:
Hubs:
Total votes 15: ↑14 and ↓1+13
Comments4

Articles