I tried to scrap the odds price from 7M and NowGoal website, and apply Kelly-Criterion Model, from the simulatioin we can know that the EM model is profitable. However real-time trading platform is the future project which need to start soon… https://github.com/englianhu/Kelly-Criterion.

Load and manipulate the dataset.

require('turner', quietly=TRUE)

load('C:/Users/Scibrokes Trading/Documents/GitHub/englianhu/Kelly-Criterion/dataset/dataset.RData')
COModds <- subset(COM_7M1112$AH, names(COM_7M1112$AH) %in% eng1112$MatchID_7M)

# initial odds price
ini.odds <- lapply(COModds, function(x) na.omit(x)[1,-1])
ini.odds <- lapply(ini.odds, function(x){ df_to_blocks(x,blocks=c(rep(3,ncol(x)/3)),byrow=FALSE)})
ini.odds2 <- lapply(seq(ini.odds), function(i) {
  lapply(seq(ini.odds[[i]]),function(j) {
    COM=substr(names(ini.odds[[i]][[j]]),1,nchar(names(ini.odds[[i]][[j]]))-3)[1]
    names(ini.odds[[i]][[j]])=c('AH','HM','AW')
    data.frame(MatchID=names(ini.odds)[[i]], COM, ini.odds[[i]][[j]])}) })
iniOdds <- Reduce(function(x, y) merge(x, y, all = T), unlist(ini.odds2, recursive=F), accumulate = F)
iniOdds <- iniOdds[iniOdds$MatchID %in% EM_7M1112$FT$FTAH$MatchID,]
iniOdds$Spreads <- iniOdds$HM + iniOdds$AW
rm(ini.odds, ini.odds2)

Manipulate and reshape the dataset

library('reshape2')

# EM_7M1112$FT$FTAH[,1:5]
# filter the soccer matches which the teams has selected to calculated
eng1112b <- subset(eng1112, MatchID_7M %in% EM_7M1112$FT$FTAH$MatchID)
nrow(EM_7M1112$FT$FTAH)
## [1] 272
# filter the initial odds data from 7M by MatchID
dat <- EM_7M1112$FT$FTAH[EM_7M1112$FT$FTAH$MatchID %in% iniOdds$MatchID,]
# nrow(EM_7M1112$FT$FTAH[EM_7M1112$FT$FTAH$MatchID %in% iniOdds$MatchID,])
ah <- ifelse(nchar(abs(iniOdds$AH*100))<3, paste0('0',abs(iniOdds$AH*100)),iniOdds$AH*100)
ah <- ifelse(substr(ah,1,1)=='-', paste0('HN',ah), paste0('HP',ah))
ah <- gsub('-', '', ah); iniOdds$AHCode <- gsub('HP00', 'H000', ah); rm(ah)
iniOdds$AHCode <- as.factor(iniOdds$AHCode)
iniHM <- iniOdds[c("MatchID","COM","AH","HM","AHCode","Spreads")]; iniHM$AH <- -iniHM$AH
iniAW <- iniOdds[c("MatchID","COM","AH","AW","AHCode","Spreads")]
iniAW$AHCode <- gsub('HN','AP',iniAW$AHCode); iniAW$AHCode <- gsub('HP','AN',iniAW$AHCode)
iniAW$AHCode <- gsub('H000','A000',iniAW$AHCode)
iniOdds <- merge(iniHM, iniAW, all=T)
iniOdds$AH <- ifelse(substr(iniOdds$AHCode,2,2)=='N', -abs(iniOdds$AH), abs(iniOdds$AH))
iniOdds$COMOdds <- ifelse(is.na(iniOdds$HM) & !is.na(iniOdds$AW), iniOdds$AW,
                       ifelse(!is.na(iniOdds$HM) & is.na(iniOdds$AW), iniOdds$HM, NA))
iniOdds <- iniOdds[c('MatchID','COM','AH','AHCode','COMOdds','Spreads')]
iniOdds$RProb <- iniOdds$COMOdds * 2/iniOdds$Spreads
rm(iniHM, iniAW)

Merge the dataset

# Filter the MatchID of EM_7M and iniOdds
EMOdds <- melt(EM_7M1112$FT$FTAH,id=c('MatchID','Round','KODate','Home',
                                      'Away','FTHG','FTAG','HTHG','HTAG'),
               variable.name='AHCode', value.name='EMprob')
length(unique(EMOdds$MatchID))
## [1] 272
length(unique(iniOdds$MatchID))
## [1] 272
# merge iniOdds and EMOdds
mbase <- merge(iniOdds, EMOdds, by=c("MatchID","AHCode"))
mbase$AH <- ifelse(substr(mbase$AHCode,2,2)=='N', -abs(mbase$AH), abs(mbase$AH))

AH Calculator and Kelly-Betting

# -----------------------------------------------------------------------------
# Kelly criterion
# Advantages = (prob of win * decimal odds) + (prob of lose * -1)
# Optimal Kelly wager % = Advantages / decimal odds
mbase$Adv <- (mbase$EMprob * mbase$COMOdds) + ((1-mbase$EMprob) * -1)
mbase$Staking <- mbase$Adv / mbase$COMOdds
mbase$Staking <- ifelse(mbase$Staking < 0, 0, mbase$Staking)

# Measure the advantage (pure odds without overround/margin)
mbase$Adv2 <- (mbase$EMprob * mbase$RProb) + ((1-mbase$EMprob) * -1)
mbase$Staking2 <- mbase$Adv2 / mbase$COMOdds
mbase$Staking2 <- ifelse(mbase$Staking2 < 0, 0, mbase$Staking2)

# AH & OU Calculator
mbase$Output <- 0
for(i in seq(mbase$AH)){
  if(substr(mbase$AHCode[i], 1, 1)=='H'){
    if((mbase$FTHG[i] + mbase$AH[i] - mbase$FTAG[i]) > 0.25){
      mbase$Output[i] = "W"
    } else if((mbase$FTHG[i] + mbase$AH[i] - mbase$FTAG[i]) == -0.25){
      mbase$Output[i] = "LH"
    } else if((mbase$FTHG[i] + mbase$AH[i] - mbase$FTAG[i]) == 0){
      mbase$Output[i] = "VOID"
    } else if((mbase$FTHG[i] + mbase$AH[i] - mbase$FTAG[i]) == 0.25){
      mbase$Output[i] = "WH"
    } else if((mbase$FTHG[i] + mbase$AH[i] - mbase$FTAG[i]) < -0.25){
      mbase$Output[i] = "L"
    }
  } else if(substr(mbase$AHCode[i],1,1)=='A'){
    if((mbase$FTAG[i] + mbase$AH[i] - mbase$FTHG[i]) > 0.25){
      mbase$Output[i] = "W"
    } else if((mbase$FTAG[i] + mbase$AH[i] - mbase$FTHG[i]) == -0.25){
      mbase$Output[i] = "LH"
    } else if((mbase$FTAG[i] + mbase$AH[i] - mbase$FTHG[i]) == 0){
      mbase$Output[i] = "VOID"
    } else if((mbase$FTAG[i] + mbase$AH[i] - mbase$FTHG[i]) == 0.25){
      mbase$Output[i] = "WH"
    } else if((mbase$FTAG[i] + mbase$AH[i] - mbase$FTHG[i]) < -0.25){
      mbase$Output[i] = "L"
    }
 }
}; rm(i)

# Calculate the Net Profit and Lose (AH and OU odds without capital)
mbase$PL <- 0
for(i in seq(mbase$Output)){
  if(mbase$Output[i]=='W'){
    mbase$PL[i] <- mbase$COMOdds[i] * mbase$Staking[i]
  } else if(mbase$Output[i]=='WH'){
    mbase$PL[i] <- mbase$COMOdds[i] * mbase$Staking[i] * 0.5 
  } else if(mbase$Output[i]=='VOID'){
    mbase$PL[i] <-  0
  } else if(mbase$Output[i]=='LH'){
    mbase$PL[i] <- mbase$COMOdds[i] * mbase$Staking[i] * -0.5
  } else if(mbase$Output[i]=='L'){
    mbase$PL[i] <- mbase$COMOdds[i] * -mbase$Staking[i]
  } else {
    mbase$PL[i] <- NA
  }
}; rm(i)

# Calculate the Net Profit and Lose (AH and OU odds without capital and without overround/margin)
mbase$PL2 <- 0
for(i in seq(mbase$Output)){
  if(mbase$Output[i]=='W'){
    mbase$PL2[i] <- mbase$COMOdds[i] * mbase$Staking2[i]
  } else if(mbase$Output[i]=='WH'){
    mbase$PL2[i] <- mbase$COMOdds[i] * mbase$Staking2[i] * 0.5 
  } else if(mbase$Output[i]=='VOID'){
    mbase$PL2[i] <-  0
  } else if(mbase$Output[i]=='LH'){
    mbase$PL2[i] <- mbase$COMOdds[i] * mbase$Staking2[i] * -0.5
  } else if(mbase$Output[i]=='L'){
    mbase$PL2[i] <- mbase$COMOdds[i] * -mbase$Staking2[i]
  } else {
    mbase$PL2[i] <- NA
  }
}; rm(i)

mbase[1:100,-c(6:9,12:13)]
##     MatchID AHCode            COM    AH COMOdds              Home
## 1    473549  AN025         X12BET -0.25    0.79  Blackburn Rovers
## 2    473549  AN025        X188Bet -0.25    0.80  Blackburn Rovers
## 3    473549  AN025         Bet365 -0.25    0.80  Blackburn Rovers
## 4    473549  AN025      Mansion88 -0.25    0.79  Blackburn Rovers
## 5    473549  AN025         SBOBET -0.25    0.80  Blackburn Rovers
## 6    473549  AN050      Ladbrokes -0.50    0.72  Blackburn Rovers
## 7    473549  AN050          YSB88 -0.50    0.75  Blackburn Rovers
## 8    473549  AN050         X10Bet -0.50    0.59  Blackburn Rovers
## 9    473549  AN050      Macauslot -0.50    0.72  Blackburn Rovers
## 10   473549  HP025        X188Bet  0.25    1.13  Blackburn Rovers
## 11   473549  HP025      Mansion88  0.25    1.19  Blackburn Rovers
## 12   473549  HP025         SBOBET  0.25    1.17  Blackburn Rovers
## 13   473549  HP025         Bet365  0.25    1.15  Blackburn Rovers
## 14   473549  HP025         X12BET  0.25    1.19  Blackburn Rovers
## 15   473549  HP050         X10Bet  0.50    1.40  Blackburn Rovers
## 16   473549  HP050      Macauslot  0.50    1.14  Blackburn Rovers
## 17   473549  HP050          YSB88  0.50    1.10  Blackburn Rovers
## 18   473549  HP050      Ladbrokes  0.50    1.14  Blackburn Rovers
## 19   473550  AN025      Ladbrokes -0.25    1.16            Fulham
## 20   473550  AN025         X10Bet -0.25    1.41            Fulham
## 21   473550  AN025      Macauslot -0.25    1.06            Fulham
## 22   473550  AN050         Bet365 -0.50    1.02            Fulham
## 23   473550  AN050         X12BET -0.50    1.02            Fulham
## 24   473550  AN050        X188Bet -0.50    1.04            Fulham
## 25   473550  AN050         SBOBET -0.50    1.05            Fulham
## 26   473550  AN050      Mansion88 -0.50    1.02            Fulham
## 27   473550  AN050          YSB88 -0.50    0.80            Fulham
## 28   473550  HP025      Ladbrokes  0.25    0.70            Fulham
## 29   473550  HP025         X10Bet  0.25    0.54            Fulham
## 30   473550  HP025      Macauslot  0.25    0.80            Fulham
## 31   473550  HP050        X188Bet  0.50    0.91            Fulham
## 32   473550  HP050         SBOBET  0.50    0.90            Fulham
## 33   473550  HP050      Mansion88  0.50    0.93            Fulham
## 34   473550  HP050          YSB88  0.50    1.05            Fulham
## 35   473550  HP050         Bet365  0.50    0.90            Fulham
## 36   473550  HP050         X12BET  0.50    0.93            Fulham
## 37   473551  AP100      Ladbrokes  1.00    1.16         Liverpool
## 38   473551  AP100         X10Bet  1.00    1.30         Liverpool
## 39   473551  AP100      Macauslot  1.00    1.10         Liverpool
## 40   473551  AP125         Bet365  1.25    1.00         Liverpool
## 41   473551  AP125         X12BET  1.25    0.99         Liverpool
## 42   473551  AP125        X188Bet  1.25    1.05         Liverpool
## 43   473551  AP125         SBOBET  1.25    1.00         Liverpool
## 44   473551  AP125      Mansion88  1.25    0.99         Liverpool
## 45   473551  AP125          YSB88  1.25    0.75         Liverpool
## 46   473551  HN100      Ladbrokes -1.00    0.72         Liverpool
## 47   473551  HN100         X10Bet -1.00    0.62         Liverpool
## 48   473551  HN100      Macauslot -1.00    0.76         Liverpool
## 49   473551  HN125        X188Bet -1.25    0.90         Liverpool
## 50   473551  HN125         SBOBET -1.25    0.95         Liverpool
## 51   473551  HN125      Mansion88 -1.25    0.96         Liverpool
## 52   473551  HN125          YSB88 -1.25    1.10         Liverpool
## 53   473551  HN125         Bet365 -1.25    0.93         Liverpool
## 54   473551  HN125         X12BET -1.25    0.96         Liverpool
## 55   473553  AN025        X188Bet -0.25    0.92         Newcastle
## 56   473553  AN025      Mansion88 -0.25    0.92         Newcastle
## 57   473553  AN025         SBOBET -0.25    0.92         Newcastle
## 58   473553  AN025         Bet365 -0.25    0.93         Newcastle
## 59   473553  AN025         X12BET -0.25    0.92         Newcastle
## 60   473553  AN050         X10Bet -0.50    1.18         Newcastle
## 61   473553  AN050      Macauslot -0.50    1.12         Newcastle
## 62   473553  AN050          YSB88 -0.50    1.02         Newcastle
## 63   473553  AN050      Ladbrokes -0.50    1.12         Newcastle
## 64   473553  HP025         X12BET  0.25    1.03         Newcastle
## 65   473553  HP025        X188Bet  0.25    1.03         Newcastle
## 66   473553  HP025         Bet365  0.25    1.00         Newcastle
## 67   473553  HP025      Mansion88  0.25    1.03         Newcastle
## 68   473553  HP025         SBOBET  0.25    1.03         Newcastle
## 69   473553  HP050      Ladbrokes  0.50    0.72         Newcastle
## 70   473553  HP050          YSB88  0.50    0.83         Newcastle
## 71   473553  HP050         X10Bet  0.50    0.68         Newcastle
## 72   473553  HP050      Macauslot  0.50    0.74         Newcastle
## 73   473555  AN075      Macauslot -0.75    1.09        Stoke City
## 74   473555  AN075         X10Bet -0.75    0.93        Stoke City
## 75   473555  AN075        X188Bet -0.75    1.36        Stoke City
## 76   473555  AN075         SBOBET -0.75    1.36        Stoke City
## 77   473555  AN075      Mansion88 -0.75    1.35        Stoke City
## 78   473555  AN075      Ladbrokes -0.75    1.16        Stoke City
## 79   473555  AN075          YSB88 -0.75    0.88        Stoke City
## 80   473555  AN075         Bet365 -0.75    1.20        Stoke City
## 81   473555  AN075         X12BET -0.75    1.35        Stoke City
## 82   473555  HP075      Ladbrokes  0.75    0.72        Stoke City
## 83   473555  HP075          YSB88  0.75    0.97        Stoke City
## 84   473555  HP075         Bet365  0.75    0.65        Stoke City
## 85   473555  HP075         X12BET  0.75    0.69        Stoke City
## 86   473555  HP075      Macauslot  0.75    0.77        Stoke City
## 87   473555  HP075         X10Bet  0.75    0.95        Stoke City
## 88   473555  HP075        X188Bet  0.75    0.68        Stoke City
## 89   473555  HP075         SBOBET  0.75    0.68        Stoke City
## 90   473555  HP075      Mansion88  0.75    0.69        Stoke City
## 91   473556  AN075      Ladbrokes -0.75    1.07 Tottenham Hotspur
## 92   473556  AN075         X10Bet -0.75    1.21 Tottenham Hotspur
## 93   473556  AN075      Macauslot -0.75    1.16 Tottenham Hotspur
## 94   473556  AP100         Bet365  1.00    0.85 Tottenham Hotspur
## 95   473556  AP100         X12BET  1.00    0.85 Tottenham Hotspur
## 96   473556  AP100        X188Bet  1.00    0.86 Tottenham Hotspur
## 97   473556  AP100         SBOBET  1.00    0.84 Tottenham Hotspur
## 98   473556  AP100      Mansion88  1.00    0.85 Tottenham Hotspur
## 99   473556  AP100          YSB88  1.00    0.87 Tottenham Hotspur
## 100  473556  AP100 VictorChandler  1.00    0.87 Tottenham Hotspur
##            Away HTHG HTAG    EMprob         Adv    Staking        Adv2
## 1        Wolves    1    1 0.3782559 -0.32292192 0.00000000 -0.31990352
## 2        Wolves    1    1 0.3782559 -0.31913936 0.00000000 -0.30816406
## 3        Wolves    1    1 0.3782559 -0.31913936 0.00000000 -0.31138027
## 4        Wolves    1    1 0.3782559 -0.32292192 0.00000000 -0.31990352
## 5        Wolves    1    1 0.3782559 -0.31913936 0.00000000 -0.31453117
## 6        Wolves    1    1 0.3148178 -0.45851340 0.00000000 -0.44145231
## 7        Wolves    1    1 0.3148178 -0.44906887 0.00000000 -0.42992454
## 8        Wolves    1    1 0.3148178 -0.49943971 0.00000000 -0.49850633
## 9        Wolves    1    1 0.3148178 -0.45851340 0.00000000 -0.44145231
## 10       Wolves    1    1 0.6217441  0.32431491 0.28700435  0.34979675
## 11       Wolves    1    1 0.6217441  0.36161956 0.30388198  0.36909305
## 12       Wolves    1    1 0.6217441  0.34918468 0.29844844  0.36026245
## 13       Wolves    1    1 0.6217441  0.33674979 0.29282591  0.35508327
## 14       Wolves    1    1 0.6217441  0.36161956 0.30388198  0.36909305
## 15       Wolves    1    1 0.6851822  0.64443730 0.46031236  0.64925768
## 16       Wolves    1    1 0.6851822  0.46628993 0.40902625  0.52508298
## 17       Wolves    1    1 0.6851822  0.43888264 0.39898422  0.49999349
## 18       Wolves    1    1 0.6851822  0.46628993 0.40902625  0.52508298
## 19  Aston Villa    0    0 0.2722466 -0.41194728 0.00000000 -0.38817693
## 20  Aston Villa    0    0 0.2722466 -0.34388562 0.00000000 -0.33404286
## 21  Aston Villa    0    0 0.2722466 -0.43917194 0.00000000 -0.41745076
## 22  Aston Villa    0    0 0.1965036 -0.60306279 0.00000000 -0.59471139
## 23  Aston Villa    0    0 0.1965036 -0.60306279 0.00000000 -0.59792346
## 24  Aston Villa    0    0 0.1965036 -0.59913272 0.00000000 -0.59389262
## 25  Aston Villa    0    0 0.1965036 -0.59716768 0.00000000 -0.59187720
## 26  Aston Villa    0    0 0.1965036 -0.60306279 0.00000000 -0.59792346
## 27  Aston Villa    0    0 0.1965036 -0.64629357 0.00000000 -0.63354740
## 28  Aston Villa    0    0 0.7277534  0.23718073 0.33882961  0.27552472
## 29  Aston Villa    0    0 0.7277534  0.12074019 0.22359294  0.13081677
## 30  Aston Villa    0    0 0.7277534  0.30995607 0.38744508  0.35377777
## 31  Aston Villa    0    0 0.8034964  0.53467818 0.58755844  0.55342643
## 32  Aston Villa    0    0 0.8034964  0.52664322 0.58515913  0.54518544
## 33  Aston Villa    0    0 0.8034964  0.55074811 0.59220227  0.56990841
## 34  Aston Villa    0    0 0.8034964  0.64716768 0.61635017  0.71557346
## 35  Aston Villa    0    0 0.8034964  0.52664322 0.58515913  0.55677433
## 36  Aston Villa    0    0 0.8034964  0.55074811 0.59220227  0.56990841
## 37   Sunderland    1    0 0.3553565 -0.23242988 0.00000000 -0.20611837
## 38   Sunderland    1    0 0.3553565 -0.18267996 0.00000000 -0.16343149
## 39   Sunderland    1    0 0.3553565 -0.25375127 0.00000000 -0.22432928
## 40   Sunderland    1    0 0.4084115 -0.18317706 0.00000000 -0.16836421
## 41   Sunderland    1    0 0.4084115 -0.18726117 0.00000000 -0.17689381
## 42   Sunderland    1    0 0.4084115 -0.16275649 0.00000000 -0.15176079
## 43   Sunderland    1    0 0.4084115 -0.18317706 0.00000000 -0.17270497
## 44   Sunderland    1    0 0.4084115 -0.18726117 0.00000000 -0.17689381
## 45   Sunderland    1    0 0.4084115 -0.28527993 0.00000000 -0.26044409
## 46   Sunderland    1    0 0.6446435  0.10878682 0.15109281  0.13841299
## 47   Sunderland    1    0 0.6446435  0.04432247 0.07148785  0.06097576
## 48   Sunderland    1    0 0.6446435  0.13457256 0.17706916  0.17144894
## 49   Sunderland    1    0 0.5915885  0.12401815 0.13779794  0.13767019
## 50   Sunderland    1    0 0.5915885  0.15359757 0.16168166  0.16800806
## 51   Sunderland    1    0 0.5915885  0.15951346 0.16615985  0.17407564
## 52   Sunderland    1    0 0.5915885  0.24233585 0.22030532  0.29509915
## 53   Sunderland    1    0 0.5915885  0.14176580 0.15243635  0.16172042
## 54   Sunderland    1    0 0.5915885  0.15951346 0.16615985  0.17407564
## 55      Arsenal    0    0 0.4525688 -0.13106783 0.00000000 -0.12039184
## 56      Arsenal    0    0 0.4525688 -0.13106783 0.00000000 -0.12039184
## 57      Arsenal    0    0 0.4525688 -0.13106783 0.00000000 -0.12039184
## 58      Arsenal    0    0 0.4525688 -0.12654214 0.00000000 -0.11127673
## 59      Arsenal    0    0 0.4525688 -0.13106783 0.00000000 -0.12039184
## 60      Arsenal    0    0 0.3729103 -0.18705557 0.00000000 -0.15393472
## 61      Arsenal    0    0 0.3729103 -0.20943019 0.00000000 -0.17799345
## 62      Arsenal    0    0 0.3729103 -0.24672121 0.00000000 -0.21588053
## 63      Arsenal    0    0 0.3729103 -0.20943019 0.00000000 -0.17311197
## 64      Arsenal    0    0 0.5474312  0.11128525 0.10804393  0.12574305
## 65      Arsenal    0    0 0.5474312  0.11128525 0.10804393  0.12574305
## 66      Arsenal    0    0 0.5474312  0.09486231 0.09486231  0.11471733
## 67      Arsenal    0    0 0.5474312  0.11128525 0.10804393  0.12574305
## 68      Arsenal    0    0 0.5474312  0.11128525 0.10804393  0.12574305
## 69      Arsenal    0    0 0.6270897  0.07859430 0.10915875  0.11785557
## 70      Arsenal    0    0 0.6270897  0.14757417 0.17780020  0.18977561
## 71      Arsenal    0    0 0.6270897  0.05351071 0.07869222  0.08560692
## 72      Arsenal    0    0 0.6270897  0.09113610 0.12315689  0.12606432
## 73   Chelsea FC    0    0 0.3015361 -0.36978956 0.00000000 -0.34505063
## 74   Chelsea FC    0    0 0.3015361 -0.41803533 0.00000000 -0.40013563
## 75   Chelsea FC    0    0 0.3015361 -0.28837481 0.00000000 -0.29641577
## 76   Chelsea FC    0    0 0.3015361 -0.28837481 0.00000000 -0.29641577
## 77   Chelsea FC    0    0 0.3015361 -0.29139017 0.00000000 -0.29937201
## 78   Chelsea FC    0    0 0.3015361 -0.34868203 0.00000000 -0.32635553
## 79   Chelsea FC    0    0 0.3015361 -0.43311214 0.00000000 -0.41159713
## 80   Chelsea FC    0    0 0.3015361 -0.33662058 0.00000000 -0.30728194
## 81   Chelsea FC    0    0 0.3015361 -0.29139017 0.00000000 -0.29937201
## 82   Chelsea FC    0    0 0.6984639  0.20135791 0.27966377  0.23345753
## 83   Chelsea FC    0    0 0.6984639  0.37597389 0.38760195  0.43090713
## 84   Chelsea FC    0    0 0.6984639  0.15246544 0.23456221  0.18927637
## 85   Chelsea FC    0    0 0.6984639  0.18040399 0.26145506  0.17095419
## 86   Chelsea FC    0    0 0.6984639  0.23628111 0.30685858  0.27676197
## 87   Chelsea FC    0    0 0.6984639  0.36200461 0.38105748  0.40435827
## 88   Chelsea FC    0    0 0.6984639  0.17341936 0.25502846  0.16410650
## 89   Chelsea FC    0    0 0.6984639  0.17341936 0.25502846  0.16410650
## 90   Chelsea FC    0    0 0.6984639  0.18040399 0.26145506  0.17095419
## 91      Everton    1    0 0.1164201 -0.75901037 0.00000000 -0.74891014
## 92      Everton    1    0 0.1164201 -0.74271155 0.00000000 -0.73371996
## 93      Everton    1    0 0.1164201 -0.74853256 0.00000000 -0.73836771
## 94      Everton    1    0 0.6046338  0.11857251 0.13949707  0.13721277
## 95      Everton    1    0 0.6046338  0.11857251 0.13949707  0.13175042
## 96      Everton    1    0 0.6046338  0.12461885 0.14490564  0.13795180
## 97      Everton    1    0 0.6046338  0.11252617 0.13395973  0.12289132
## 98      Everton    1    0 0.6046338  0.11857251 0.13949707  0.13175042
## 99      Everton    1    0 0.6046338  0.13066518 0.15018987  0.17331638
## 100     Everton    1    0 0.6046338  0.13066518 0.15018987  0.15258316
##      Staking2 Output          PL         PL2
## 1   0.0000000      W  0.00000000  0.00000000
## 2   0.0000000      W  0.00000000  0.00000000
## 3   0.0000000      W  0.00000000  0.00000000
## 4   0.0000000      W  0.00000000  0.00000000
## 5   0.0000000      W  0.00000000  0.00000000
## 6   0.0000000      W  0.00000000  0.00000000
## 7   0.0000000      W  0.00000000  0.00000000
## 8   0.0000000      W  0.00000000  0.00000000
## 9   0.0000000      W  0.00000000  0.00000000
## 10  0.3095547      L -0.32431491 -0.34979675
## 11  0.3101622      L -0.36161956 -0.36909305
## 12  0.3079166      L -0.34918468 -0.36026245
## 13  0.3087681      L -0.33674979 -0.35508327
## 14  0.3101622      L -0.36161956 -0.36909305
## 15  0.4637555      L -0.64443730 -0.64925768
## 16  0.4605991      L -0.46628993 -0.52508298
## 17  0.4545395      L -0.43888264 -0.49999349
## 18  0.4605991      L -0.46628993 -0.52508298
## 19  0.0000000     LH  0.00000000  0.00000000
## 20  0.0000000     LH  0.00000000  0.00000000
## 21  0.0000000     LH  0.00000000  0.00000000
## 22  0.0000000      L  0.00000000  0.00000000
## 23  0.0000000      L  0.00000000  0.00000000
## 24  0.0000000      L  0.00000000  0.00000000
## 25  0.0000000      L  0.00000000  0.00000000
## 26  0.0000000      L  0.00000000  0.00000000
## 27  0.0000000      L  0.00000000  0.00000000
## 28  0.3936067     WH  0.11859036  0.13776236
## 29  0.2422533     WH  0.06037009  0.06540839
## 30  0.4422222     WH  0.15497803  0.17688889
## 31  0.6081609      W  0.53467818  0.55342643
## 32  0.6057616      W  0.52664322  0.54518544
## 33  0.6128047      W  0.55074811  0.56990841
## 34  0.6814985      W  0.64716768  0.71557346
## 35  0.6186381      W  0.52664322  0.55677433
## 36  0.6128047      W  0.55074811  0.56990841
## 37  0.0000000      W  0.00000000  0.00000000
## 38  0.0000000      W  0.00000000  0.00000000
## 39  0.0000000      W  0.00000000  0.00000000
## 40  0.0000000      W  0.00000000  0.00000000
## 41  0.0000000      W  0.00000000  0.00000000
## 42  0.0000000      W  0.00000000  0.00000000
## 43  0.0000000      W  0.00000000  0.00000000
## 44  0.0000000      W  0.00000000  0.00000000
## 45  0.0000000      W  0.00000000  0.00000000
## 46  0.1922403      L -0.10878682 -0.13841299
## 47  0.0983480      L -0.04432247 -0.06097576
## 48  0.2255907      L -0.13457256 -0.17144894
## 49  0.1529669      L -0.12401815 -0.13767019
## 50  0.1768506      L -0.15359757 -0.16800806
## 51  0.1813288      L -0.15951346 -0.17407564
## 52  0.2682720      L -0.24233585 -0.29509915
## 53  0.1738929      L -0.14176580 -0.16172042
## 54  0.1813288      L -0.15951346 -0.17407564
## 55  0.0000000     LH  0.00000000  0.00000000
## 56  0.0000000     LH  0.00000000  0.00000000
## 57  0.0000000     LH  0.00000000  0.00000000
## 58  0.0000000     LH  0.00000000  0.00000000
## 59  0.0000000     LH  0.00000000  0.00000000
## 60  0.0000000      L  0.00000000  0.00000000
## 61  0.0000000      L  0.00000000  0.00000000
## 62  0.0000000      L  0.00000000  0.00000000
## 63  0.0000000      L  0.00000000  0.00000000
## 64  0.1220806     WH  0.05564262  0.06287152
## 65  0.1220806     WH  0.05564262  0.06287152
## 66  0.1147173     WH  0.04743116  0.05735867
## 67  0.1220806     WH  0.05564262  0.06287152
## 68  0.1220806     WH  0.05564262  0.06287152
## 69  0.1636883      W  0.07859430  0.11785557
## 70  0.2286453      W  0.14757417  0.18977561
## 71  0.1258925      W  0.05351071  0.08560692
## 72  0.1703572      W  0.09113610  0.12606432
## 73  0.0000000      L  0.00000000  0.00000000
## 74  0.0000000      L  0.00000000  0.00000000
## 75  0.0000000      L  0.00000000  0.00000000
## 76  0.0000000      L  0.00000000  0.00000000
## 77  0.0000000      L  0.00000000  0.00000000
## 78  0.0000000      L  0.00000000  0.00000000
## 79  0.0000000      L  0.00000000  0.00000000
## 80  0.0000000      L  0.00000000  0.00000000
## 81  0.0000000      L  0.00000000  0.00000000
## 82  0.3242466      W  0.20135791  0.23345753
## 83  0.4442342      W  0.37597389  0.43090713
## 84  0.2911944      W  0.15246544  0.18927637
## 85  0.2477597      W  0.18040399  0.17095419
## 86  0.3594311      W  0.23628111  0.27676197
## 87  0.4256403      W  0.36200461  0.40435827
## 88  0.2413331      W  0.17341936  0.16410650
## 89  0.2413331      W  0.17341936  0.16410650
## 90  0.2477597      W  0.18040399  0.17095419
## 91  0.0000000      L  0.00000000  0.00000000
## 92  0.0000000      L  0.00000000  0.00000000
## 93  0.0000000      L  0.00000000  0.00000000
## 94  0.1614268      L -0.11857251 -0.13721277
## 95  0.1550005      L -0.11857251 -0.13175042
## 96  0.1604091      L -0.12461885 -0.13795180
## 97  0.1462992      L -0.11252617 -0.12289132
## 98  0.1550005      L -0.11857251 -0.13175042
## 99  0.1992142      L -0.13066518 -0.17331638
## 100 0.1753829      L -0.13066518 -0.15258316

Summary of the betting

Summary <- data.frame(
  Category = c('No of Matches','Total PL','No of Bets','No of Won Bets','No of Voided Bets','No of Lose Bets',
              'Staking','Won Bets Stakes','Voided Stakes','Lose Bets Stakes'),
  Bets_Wf_Overround = c(nrow(mbase), sum(mbase$PL), length(mbase[mbase$Staking>0,]$Staking), length(mbase[mbase$PL>0,]$PL),
                      length(mbase[mbase$PL==0 & mbase$Staking>0,]$PL), length(mbase[mbase$PL<0,]$PL),
                      sum(mbase[mbase$Staking>0,]$Staking), sum(mbase[mbase$PL>0,]$PL),
                      sum(mbase[mbase$PL==0 & mbase$Staking>0,]$Staking), sum(mbase[mbase$PL<0,]$PL)),
  Bets_No_Overround = c(nrow(mbase), sum(mbase$PL2), length(mbase[mbase$Staking2>0,]$Staking2), length(mbase[mbase$PL2>0,]$PL2),
                      length(mbase[mbase$PL2==0 & mbase$Staking2>0,]$PL2), length(mbase[mbase$PL2<0,]$PL2),
                      sum(mbase[mbase$Staking2>0,]$Staking2), sum(mbase[mbase$PL2>0,]$PL2),
                      sum(mbase[mbase$PL2==0 & mbase$Staking2>0,]$Staking2), sum(mbase[mbase$PL2<0,]$PL2)))
COMPL <- data.frame(PL=unlist(lapply(split(mbase,mbase$COM), function(x) sum(x$PL))),
                    PL2=unlist(lapply(split(mbase,mbase$COM), function(x) sum(x$PL2))))
Summary
##             Category Bets_Wf_Overround Bets_No_Overround
## 1      No of Matches        4896.00000        4896.00000
## 2           Total PL         353.96966         381.06299
## 3         No of Bets        2268.00000        2404.00000
## 4     No of Won Bets        1531.00000        1584.00000
## 5  No of Voided Bets         128.00000         143.00000
## 6    No of Lose Bets         609.00000         677.00000
## 7            Staking         636.98372         705.89203
## 8    Won Bets Stakes         453.43724         496.09555
## 9      Voided Stakes          19.13296          22.67241
## 10  Lose Bets Stakes         -99.46758        -115.03256
COMPL
##                       PL      PL2
## Ladbrokes      33.772411 38.25184
## Bet365         34.120624 37.19263
## Macauslot      35.740062 40.23454
## X10Bet         37.538487 41.64034
## X188Bet        36.579289 38.25589
## SBOBET         40.392461 41.90898
## Mansion88      31.219547 32.38999
## YSB88          13.167746 14.34128
## X12BET         36.802466 38.19015
## VictorChandler 24.391917 25.95763
## Canbet         10.347393 10.97516
## Betinternet    10.286812 11.18731
## Titanbet        9.610441 10.53726