suppressPackageStartupMessages(library('BBmisc'))
#'@ suppressPackageStartupMessages(library('rmsfuns'))

pkgs <- c('knitr', 'kableExtra', 'devtools', 'lubridate', 'data.table', 'qrmtools', 'tidyquant', 'plyr', 'stringr', 'magrittr', 'dplyr', 'tidyverse', 'tidyr', 'highcharter', 'formattable', 'DT', 'recharts', 'fmsb', 'radarchart', 'rvest', 'XML', 'RCurl')

suppressAll(lib(pkgs))
#'@ load_pkg(pkgs)

#'@ funs <- c('')
#'@ l_ply(funs, function(x) source(paste0('./function/', x)))
#'@ install_github('mwang27/recharts')
source('https://raw.githubusercontent.com/mwang27/recharts/master/R/echartR.R')

options(warn = -1)
rm(pkgs)

1 始めに

小さいから、三国志が大好きい。ある日は说英雄谁是英雄之光荣三国のみて、今日は賭け屋(ブックメーカー)の評価レーダー妖怪図を描きます。

2 データ

Bookmakers ranking1から、賭け屋の情報を采集しました。あのうウェブはサッカ.リーグ.ランキングみたいです。

lnk <- 'http://www.bookmakersranking.com/bookmakers_ranking'

dfm <- lnk %>% 
    getURL %>% 
    htmlParse %>% 
    readHTMLTable %>% 
    .[[1]]

names(dfm) <- paste0(c('', 'Bookmaker', 'logo', 'Betting offer', 'Bookmakers margin', 'Alexa Popularity', 'User rating', 'rewards', 'Our Assassment', 'Change points according to the last settlement', 'Final assassment', 'reviews'), '_', as.character(unlist(head(dfm, 1))))
dfm %<>% .[-1, -c(1, 3, 12)] %>% 
  as_data_frame

dfm[,-c(1, 8:9)] %<>% mutate_if(is.factor, as.character) %>% 
    mutate_if(is.character, as.numeric)
dfm[,8:9] %<>% mutate(
    `Change points according to the last settlement_1 month` = 
        str_replace_all(`Change points according to the last settlement_1 month`, ' pts.', ''), 
    `Final assassment_max 100` = 
        str_replace_all(`Final assassment_max 100`, ' pts.', '')) %>% 
    mutate_if(is.character, as.numeric)
names(dfm)[1] <- 'Bookmaker'
dfm %<>% mutate(Bookmaker = str_replace_all(Bookmaker, 'Bonus .{0,}', ''))

dfm %>% datatable(filter = 'top', 
                  caption = htmltools::tags$caption(
                    style = 'caption-side: bottom; text-align: center;', 
                    'Table 2.1: ', htmltools::em('Bookmakers rating.')), 
                  extensions = list('Scroller', 'FixedColumns'), options = list(
                    deferRender = TRUE, scrollY = 200, scroller = TRUE, 
                    dom = 't', scrollX = TRUE, fixedColumns = TRUE))

3 データ可視化

3.1 賭け屋一覧

Radar Chart Exampleからのrecharts::echartR()採用する。

dfm2 <- dfm %>% gather(cat, value, -Bookmaker)
dfm2 %<>% mutate_if(is.character, as.factor)

## need to convert to data.frame class, otherwise will be error.
dfm2 %>% data.frame %>% 
  recharts::echartR(x= ~cat, y= ~value, series= ~Bookmaker, type='radarfill', 
                    symbolList='none', #palette=c('firebrick1','dodgerblue'), 
                    title='Bookmaker Rating', subtitle= '(by @englianhu)')

3.2 評価一覧

radarchartからのradarchart::chartJSRadar()採用する。

chartJSRadar(dfm, main = 'Bookmakers Rating', maxScale = 10, showToolTipLabel=TRUE)

4 賭け屋

4.1 サッカ.リーグ一覧

かスポはうちの元賭け屋、GVC Holdings PLCにみたいで、色々な賭け屋ウェブサイトがあります。

  • bwin-party
  • sportingbet
  • Ladbrokes-Coral
  • Gamebookers
  • Betboo

上の絵の中に、あるウェブサイトは「皇冠(スメラギ.カンムリ)」やシングベットを呼ばれます。下の絵は外国人は色々有名なアジアン賭け屋に研究した。

もっと情報は量化分析与投资基金に読んでください。

何年前、色々な外国人の量化交易ファンドが1888Betに潰した。

scdt <- readRDS('data/report.rds')

残念です、サッカ.リーグの報告が僕カンボジアから帰ったん後消えた。

#-------- eval=FALSE --------
scdt[[1]] %>% tryCatch({
  ddply(.(Month, League), summarise, 
        Turnover = sum(Turnover, na.rm = TRUE), 
        Ticket = sum(Ticket, na.rm = TRUE), 
        Comp_Turn = sum(Comp_Turn, na.rm = TRUE), 
        PL = sum(PL, na.rm = TRUE)) %>% tbl_df}, 
  error = function(e) NULL)

scdt[[2]] %>% tryCatch({
  ddply(.(Month, League), summarise, 
        Turnover = sum(Turnover, na.rm = TRUE), 
        Ticket = sum(Ticket, na.rm = TRUE), 
        Comp_Turn = sum(Comp_Turn, na.rm = TRUE), 
        PL = sum(PL, na.rm = TRUE)) %>% tbl_df}, 
  error = function(e) NULL)

4.2 賭け産品一覧

9ヶ月の賭け産品リスト。これからのPLは。

scdt[[1]] %>% ddply(.(Bet_Type), summarise, 
#scdt[[1]] %>% ddply(.(Month, Bet_Type), summarise, 
               Turnover = sum(Turnover, na.rm = TRUE), 
               Ticket = sum(Ticket, na.rm = TRUE), 
               Comp_Turn = sum(Comp_Turn, na.rm = TRUE), 
               PL = sum(PL, na.rm = TRUE)) %>% tbl_df %>% 
  kable(caption = 'SB1') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive'))
SB1
Bet_Type Turnover Ticket Comp_Turn PL
1 x 2 (1st Half) 49622942 38385 1.325063e+07 -936553.7
Correct Score 185238253 607980 4.593016e+07 -7772133.9
Correct Score (1st Half) 1509857 3179 3.373481e+05 -2778.9
Half Time / Full Time 40944851 84921 1.124323e+07 -1825207.8
Handicap (1st Half) 2011323027 625498 3.859138e+08 -3168281.0
Over Under (1st Half) 2062109843 816495 4.010673e+08 -9333690.8
RB Asian Handicap 43550148251 13161797 9.856575e+09 -118728449.8
RB Handicap (1st Half) 6056779624 2215689 1.049068e+09 -11902314.7
RB Over Under 36954034424 12930538 9.157102e+09 -125555363.8
RB Over Under (1st Half) 9608493216 4618856 2.147047e+09 -40756016.9
Straight 1 x 2 151340034 64973 5.029911e+07 -2745848.2
Straight Handicap 49140841087 14653929 1.184712e+10 -110627168.7
Straight Over Under 10494581718 3490955 2.467179e+09 -36878180.2
Total Goal 1040853662 446768 2.797634e+08 -6452565.4
scdt[[2]] %>% ddply(.(Bet_Type), summarise, 
#scdt[[2]] %>% ddply(.(Month, Bet_Type), summarise, 
               Turnover = sum(Turnover, na.rm = TRUE), 
               Ticket = sum(Ticket, na.rm = TRUE), 
               Comp_Turn = sum(Comp_Turn, na.rm = TRUE), 
               PL = sum(PL, na.rm = TRUE)) %>% tbl_df %>% 
  kable(caption = 'SB2') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive'))
SB2
Bet_Type Turnover Ticket Comp_Turn PL
1 x 2 (1st Half) 228394475 208009 50535817 -4520678.4
Correct Score 1099782224 3258023 241884150 -45294981.2
Correct Score (1st Half) 7336358 14815 1622811 -750623.9
Half Time / Full Time 251019388 566474 55242702 -12270536.8
Handicap (1st Half) 10639172876 2833059 2004010156 -36287328.6
Over Under (1st Half) 9847727646 3609194 1850642369 -46067160.9
RB Asian Handicap 192835124106 61578253 40228108184 -633567756.3
RB Handicap (1st Half) 26545368547 9380118 4432358082 -77281065.3
RB Over Under 162029044345 56372317 36844324056 -701083078.9
RB Over Under (1st Half) 46032925218 107360329 10126300085 -235097767.3
Straight 1 x 2 606416191 392048 178685894 -14175200.4
Straight Handicap 234489908993 73307894 52308695271 -768889600.2
Straight Over Under 47446359406 15568668 10661153918 -249864733.9
Total Goal 5468208367 2398331 1393210679 -32917903.3

カンボジアから帰ったん、ある日数学と量化交易の文献が探して参考したいんですが、全ての文献とデータが壊れた。以下は僕のもと会社のレポット(あのサッカ.リーグと月も、陰陽師が潰した。)。

SB1 9 months Report (from Sep 2006 to Jun 2007)
Turnover Ticket Comp_Turn PL Rate
161347820789 53759963 37711892002 -476684554 -1.26%
SB2 9 months Report (from Sep 2006 to Jun 2007)
Turnover Ticket Comp_Turn PL Rate
737526788139 336847532 160376774173 -2858068415 -1.78%

5 量化交易のスポーツ.ヘッジファンド

あの英国やアメリカや色々な外国人、量化交易のスポーツ.ヘッジファンドBetting Strategy and Model Validation数学で賭ける、いつまでも利益を得る。

何年前から、僕は量化交易の研究Rmodelが終わった、あの研究文献先日ある試合Bookdown contest submission: Odds Modelling and Testing Inefficiency of Sports Bookmakersを参加すた。

Rプログラミングを支える、毎日のTシャツを着て、もし量化交易も気に入るなら、RProgramming.net Storeに連絡する。

6 終わりに

あの頃、僕はかスポで仕事してた、®γσ, ENG LIAN HUに読みます。でも、全てのベット.スリプのデータがないし、統計学もわからないし。だから、OHLCのデータさえもないで、今統計学も使えるられないんです。高頻度取引の事が外国人の量化交易にまなんで、APIがいります。例え話、4lowinがAPIで賭け屋に接続します。

Smart Oddsの賭け儲ける報告、もっと情報を知りたいなら、Betting Strategy and Model Validationに読んでください。

  • 賭け屋:全てのデータが有ったら、統計学が使えなら、利益率が是非増える。
  • 量化交易のスポーツ.ヘッジファンド:全てのデータが有ったら、統計学が使えなら、是非お金を儲ける。

もっと情報を知りたいなら、Boffins -vs- Bookies (The Man Who Broke the World Leading Bookmakers)富传奇色彩的博彩狙击公司EM2 (Expectation–Maximization)に読んでください。

Analyse the Finance and Stocks Price of Bookmakersで色々な賭け屋を分析します。

7 付録

7.1 文献情報

うちの文献情報、ご覧でください。

  • 文献作成日: 2018-09-11
  • 文献最終更新日: 2018-09-15
  • R version 3.5.1 (2018-07-02)
  • R 版本 (省略): 3.5.1
  • rmarkdown 包み version: 1.10.13
  • 文献版本: 1.0.1
  • 作者: ®γσ, Eng Lian Hu
  • ギットハブ: Source Code
  • ほかの情報:
Additional session information:
Category session_info Category Sys.info
version R version 3.5.1 (2018-07-02) sysname Windows
system x86_64, mingw32 release 10 x64
ui RTerm version build 17134
language en nodename RSTUDIO-SCIBROK
collate Japanese_Japan.932 machine x86-64
tz Asia/Tokyo login scibr
date 2018-09-15 user scibr
Current time 2018-09-15 22:45:56 JST effective_user scibr

  1. 参考文献に読みます。