public void PredictQuarter(int QuarterNo, int GameNo) { Team HomeTeam = _getStatMethods.GetHomeTeam(GameNo); Team AwayTeam = _getStatMethods.GetAwayTeam(GameNo); QuarterPredictions Quarter = _simulator.QuarterSimulator(HomeTeam, AwayTeam, QuarterNo, GameNo); _statscraper.AddQuarterPrediction(Quarter); }
public int GetLatestQuarterNoQuarterPredictions() { try { QuarterPredictions quarter = this._dbContext.QuarterPredictions.OrderByDescending(x => x.ID).First(); return(quarter.QuarterNo); } catch (Exception) { return(0); } }
public QuarterPredictions QuarterCalculator(QuarterModel Stats, QuarterModel HomeAverages, QuarterModel AwayAverages, QuarterModel HomeDeviation, QuarterModel AwayDeviation) { double paceofplay = PaceofPlayCalculator(Stats); double home2PP = (Stats.HomeFGM - Stats.Home3PM) / (Stats.HomeFGA - Stats.Home3PA); double away2PP = (Stats.AwayFGM - Stats.Away3PM) / (Stats.AwayFGA - Stats.Away3PA); double home3PP = Stats.Home3PM / Stats.Home3PA; double away3PP = Stats.Away3PM / Stats.Away3PA; double homeFTP = Stats.HomeFTM / Stats.HomeFTA; double awayFTP = Stats.AwayFTM / Stats.AwayFTA; int Home3PA = DeviationApllication(Stats.Home3PA, HomeDeviation.Home3PA, HomeAverages.Home3PA); int HomeTurnovers = DeviationApllication(Stats.HomeTurnovers, HomeDeviation.HomeTurnovers, HomeAverages.HomeTurnovers); int HomeOffensiveRebounds = DeviationApllication(Stats.HomeOffensiveRebounds, HomeDeviation.HomeOffensiveRebounds, HomeAverages.HomeOffensiveRebounds); int HomeFTA = DeviationApllication(Stats.HomeFTA, HomeDeviation.HomeFTA, HomeAverages.HomeFTA); int Home2PA = Convert.ToInt16(Math.Round(paceofplay / 2 - HomeFTA / 2.5 - HomeTurnovers * 0.7 - Home3PA + HomeOffensiveRebounds)); int Home2PM = DeviationApllication(Home2PA * home2PP, HomeDeviation.HomeFGM - HomeDeviation.Home3PM, HomeAverages.HomeFGM - HomeAverages.Home3PM); int Away3PA = DeviationApllication(Stats.Away3PA, AwayDeviation.Away3PA, AwayAverages.Away3PA); int AwayTurnovers = DeviationApllication(Stats.AwayTurnovers, AwayDeviation.AwayTurnovers, AwayAverages.AwayTurnovers); int AwayOffensiveRebounds = DeviationApllication(Stats.AwayOffensiveRebounds, AwayDeviation.AwayOffensiveRebounds, AwayAverages.AwayOffensiveRebounds); int AwayFTA = DeviationApllication(Stats.AwayFTA, AwayDeviation.AwayFTA, AwayAverages.AwayFTA); int Away2PA = Convert.ToInt16(Math.Round(paceofplay / 2 - AwayFTA / 2.5 - AwayTurnovers * 0.7 - Away3PA + AwayOffensiveRebounds)); int Away2PM = DeviationApllication(Away2PA * away2PP, AwayDeviation.AwayFGM - AwayDeviation.Away3PM, AwayAverages.AwayFGM - AwayAverages.Away3PM); QuarterPredictions quarter = new QuarterPredictions { HomeFGA = Home3PA + Home2PA, Home3PA = Home3PA, Home3PM = DeviationApllication(Home3PA * home3PP, HomeDeviation.Home3PA, HomeAverages.Home3PM), HomeFTA = HomeFTA, HomeFTM = DeviationApllication(HomeFTA * homeFTP, HomeDeviation.HomeFTM, HomeAverages.HomeFTM), HomeAssists = DeviationApllication(Stats.HomeAssists, HomeDeviation.HomeAssists, HomeAverages.HomeAssists), HomeTurnovers = HomeTurnovers, HomeOffensiveRebounds = HomeOffensiveRebounds, HomeDefensiveRebounds = DeviationApllication(Stats.HomeDefensiveRebounds, HomeDeviation.HomeDefensiveRebounds, HomeAverages.HomeDefensiveRebounds), HomeBlocks = DeviationApllication(Stats.HomeBlocks, HomeDeviation.HomeBlocks, HomeAverages.HomeBlocks), HomeSteals = DeviationApllication(Stats.HomeSteals, HomeDeviation.HomeSteals, HomeAverages.HomeSteals), AwayFGA = Away3PA + Away2PA, Away3PA = Away3PA, Away3PM = DeviationApllication(Away3PA * away3PP, AwayDeviation.Away3PA, AwayAverages.Away3PM), AwayFTA = AwayFTA, AwayFTM = DeviationApllication(AwayFTA * awayFTP, AwayDeviation.AwayFTM, AwayAverages.AwayFTM), AwayAssists = DeviationApllication(Stats.AwayAssists, AwayDeviation.AwayAssists, AwayAverages.AwayAssists), AwayTurnovers = AwayTurnovers, AwayOffensiveRebounds = AwayOffensiveRebounds, AwayDefensiveRebounds = DeviationApllication(Stats.AwayDefensiveRebounds, AwayDeviation.AwayDefensiveRebounds, AwayAverages.AwayDefensiveRebounds), AwayBlocks = DeviationApllication(Stats.AwayBlocks, AwayDeviation.AwayBlocks, AwayAverages.AwayBlocks), AwaySteals = DeviationApllication(Stats.AwaySteals, AwayDeviation.AwaySteals, AwayAverages.AwaySteals) }; quarter.HomeFGM = quarter.Home3PM + Home2PM; quarter.HomePoints = quarter.Home3PM * 3 + Home2PM * 2 + quarter.HomeFTM; quarter.AwayFGM = quarter.Away3PM + Away2PM; quarter.AwayPoints = quarter.Away3PM * 3 + Away2PM * 2 + quarter.AwayFTM; return(quarter); }
public void CoefficientOptimizerQuarter(int No) { int firstgames = 0; int othergames = 0; double Coefficient1, Coefficient2, Coefficient3, Coefficient4, Coefficient5, Coefficient6, Coefficient7; CoEfficientOptimizer optimizer = new CoEfficientOptimizer(); Coefficient1 = Math.Floor((double)(No / 729)); Coefficient2 = Math.Floor((No - Coefficient1 * 729) / 81); Coefficient3 = Math.Floor((No - Coefficient1 * 729 - Coefficient2 * 81) / 9); Coefficient4 = Math.Floor(No - Coefficient1 * 729 - Coefficient2 * 81 - Coefficient3 * 9); Coefficient1++; Coefficient2++; Coefficient3++; Coefficient4++; double total = Coefficient1 + Coefficient2 + Coefficient3 + Coefficient4; Coefficient1 = total / Coefficient1; Coefficient2 = total / Coefficient2; Coefficient3 = total / Coefficient3; Coefficient4 = total / Coefficient4; Coefficient5 = Math.Floor((double)(No % 729 / 81)); Coefficient6 = Math.Floor((No % 729 - Coefficient5 * 81) / 9); Coefficient7 = Math.Floor(No % 729 - Coefficient5 * 81 - Coefficient6 * 9); Coefficient5++; Coefficient6++; Coefficient7++; total = Coefficient5 + Coefficient6 + Coefficient7; Coefficient5 = total / Coefficient5; Coefficient6 = total / Coefficient6; Coefficient7 = total / Coefficient7; optimizer.Coefficient1 = Coefficient1; optimizer.Coefficient2 = Coefficient2; optimizer.Coefficient3 = Coefficient3; optimizer.Coefficient4 = Coefficient4; optimizer.Coefficient5 = Coefficient5; optimizer.Coefficient6 = Coefficient6; optimizer.Coefficient7 = Coefficient7; for (int i = 750; i < 971; i++) { if (i == 707) { continue; } Team homeTeam = _getStatMethods.GetHomeTeam1920(i); Team awayTeam = _getStatMethods.GetAwayTeam1920(i); for (int j = 1; j < 5; j++) { QuarterPredictions prediction = _simulator.QuarterSimulator1920(homeTeam, awayTeam, j, i, Coefficient1, Coefficient2, Coefficient3, Coefficient4, Coefficient5, Coefficient6, Coefficient7); FullSeasonQuarters19_20 game = _getStatMethods.GetFullSeasonQuarters1920(i, j); if (game.HomePoints == prediction.HomePoints && game.AwayPoints == prediction.AwayPoints) { if (prediction.FirstGame) { optimizer.TotalHomePoints++; } optimizer.TotalAwayPoints++; } if (prediction.FirstGame) { firstgames++; optimizer.FirstHomePoints += Math.Abs(game.HomePoints - prediction.HomePoints) / game.HomePoints * 100; if (game.Home3PA == 0) { optimizer.FirstHome3PA += 100; } else { optimizer.FirstHome3PA += Math.Abs(game.Home3PA - prediction.Home3PA) / game.Home3PA * 100; } if (game.Home3PM == 0) { optimizer.Home3PM += 100; } else { optimizer.Home3PM += Math.Abs(game.Home3PM - prediction.Home3PM) / game.Home3PM * 100; } optimizer.FirstHomeFGA += Math.Abs(game.HomeFGA - prediction.HomeFGA) / game.HomeFGA * 100; optimizer.FirstHomeFGM += Math.Abs(game.HomeFGM - prediction.HomeFGM) / game.HomeFGM * 100; if (game.HomeFTA == 0) { optimizer.FirstHomeFTA += 100; } else { optimizer.FirstHomeFTA += Math.Abs(game.HomeFTA - prediction.HomeFTA) / game.HomeFTA * 100; } if (game.HomeFTM == 0) { optimizer.FirstHomeFTM += 100; } else { optimizer.FirstHomeFTM += Math.Abs(game.HomeFTM - prediction.HomeFTM) / game.HomeFTM * 100; } optimizer.FirstAwayPoints += Math.Abs(game.AwayPoints - prediction.AwayPoints) / game.AwayPoints * 100; if (game.Away3PA == 0) { optimizer.FirstAway3PA += 100; } else { optimizer.FirstAway3PA += Math.Abs(game.Away3PA - prediction.Away3PA) / game.Away3PA * 100; } if (game.Away3PM == 0) { optimizer.FirstAway3PM += 100; } else { optimizer.FirstAway3PM += Math.Abs(game.Away3PM - prediction.Away3PM) / game.Away3PM * 100; } optimizer.FirstAwayFGA += Math.Abs(game.AwayFGA - prediction.AwayFGA) / game.AwayFGA * 100; optimizer.FirstAwayFGM += Math.Abs(game.AwayFGM - prediction.AwayFGM) / game.AwayFGM * 100; if (game.AwayFTA == 0) { optimizer.FirstAwayFTA += 100; } else { optimizer.FirstAwayFTA += Math.Abs(game.AwayFTA - prediction.AwayFTA) / game.AwayFTA * 100; } if (game.AwayFTM == 0) { optimizer.FirstAwayFTM += 100; } else { optimizer.AwayFTM += Math.Abs(game.AwayFTM - prediction.AwayFTM) / game.AwayFTM * 100; } optimizer.FirstTotalHomePoints += Convert.ToInt16(prediction.HomePoints); optimizer.FirstTotalHome3PA += Convert.ToInt16(prediction.Home3PA); optimizer.FirstTotalHome3PM += Convert.ToInt16(prediction.Home3PM); optimizer.FirstTotalHomeFGA += Convert.ToInt16(prediction.HomeFGA); optimizer.FirstTotalHomeFGM += Convert.ToInt16(prediction.HomeFGM); optimizer.FirstTotalHomeFTA += Convert.ToInt16(prediction.HomeFTA); optimizer.FirstTotalHomeFTM += Convert.ToInt16(prediction.HomeFTM); optimizer.FirstTotalAwayPoints += Convert.ToInt16(prediction.AwayPoints); optimizer.FirstTotalAway3PA += Convert.ToInt16(prediction.Away3PA); optimizer.FirstTotalAway3PM += Convert.ToInt16(prediction.Away3PM); optimizer.FirstTotalAwayFGA += Convert.ToInt16(prediction.AwayFGA); optimizer.FirstTotalAwayFGM += Convert.ToInt16(prediction.AwayFGM); optimizer.FirstTotalAwayFTA += Convert.ToInt16(prediction.AwayFTA); optimizer.FirstTotalAwayFTM += Convert.ToInt16(prediction.AwayFTM); } else { othergames++; optimizer.HomePoints += Math.Abs(game.HomePoints - prediction.HomePoints) / game.HomePoints * 100; if (game.Home3PA == 0) { optimizer.Home3PA += 100; } else { optimizer.Home3PA += Math.Abs(game.Home3PA - prediction.Home3PA) / game.Home3PA * 100; } if (game.Home3PM == 0) { optimizer.Home3PM += 100; } else { optimizer.Home3PM += Math.Abs(game.Home3PM - prediction.Home3PM) / game.Home3PM * 100; } optimizer.HomeFGA += Math.Abs(game.HomeFGA - prediction.HomeFGA) / game.HomeFGA * 100; optimizer.HomeFGM += Math.Abs(game.HomeFGM - prediction.HomeFGM) / game.HomeFGM * 100; if (game.HomeFTA == 0) { optimizer.HomeFTA += 100; } else { optimizer.HomeFTA += Math.Abs(game.HomeFTA - prediction.HomeFTA) / game.HomeFTA * 100; } if (game.HomeFTM == 0) { optimizer.HomeFTM += 100; } else { optimizer.HomeFTM += Math.Abs(game.HomeFTM - prediction.HomeFTM) / game.HomeFTM * 100; } optimizer.AwayPoints += Math.Abs(game.AwayPoints - prediction.AwayPoints) / game.AwayPoints * 100; if (game.Away3PA == 0) { optimizer.Away3PA += 100; } else { optimizer.Away3PA += Math.Abs(game.Away3PA - prediction.Away3PA) / game.Away3PA * 100; } if (game.Away3PM == 0) { optimizer.Away3PM += 100; } else { optimizer.Away3PM += Math.Abs(game.Away3PM - prediction.Away3PM) / game.Away3PM * 100; } optimizer.AwayFGA += Math.Abs(game.AwayFGA - prediction.AwayFGA) / game.AwayFGA * 100; optimizer.AwayFGM += Math.Abs(game.AwayFGM - prediction.AwayFGM) / game.AwayFGM * 100; if (game.AwayFTA == 0) { optimizer.AwayFTA += 100; } else { optimizer.AwayFTA += Math.Abs(game.AwayFTA - prediction.AwayFTA) / game.AwayFTA * 100; } if (game.AwayFTM == 0) { optimizer.AwayFTM += 100; } else { optimizer.AwayFTM += Math.Abs(game.AwayFTM - prediction.AwayFTM) / game.AwayFTM * 100; } optimizer.FirstTotalHomePoints += Convert.ToInt16(prediction.HomePoints); optimizer.FirstTotalHome3PA += Convert.ToInt16(prediction.Home3PA); optimizer.FirstTotalHome3PM += Convert.ToInt16(prediction.Home3PM); optimizer.FirstTotalHomeFGA += Convert.ToInt16(prediction.HomeFGA); optimizer.FirstTotalHomeFGM += Convert.ToInt16(prediction.HomeFGM); optimizer.FirstTotalHomeFTA += Convert.ToInt16(prediction.HomeFTA); optimizer.FirstTotalHomeFTM += Convert.ToInt16(prediction.HomeFTM); optimizer.FirstTotalAwayPoints += Convert.ToInt16(prediction.AwayPoints); optimizer.FirstTotalAway3PA += Convert.ToInt16(prediction.Away3PA); optimizer.FirstTotalAway3PM += Convert.ToInt16(prediction.Away3PM); optimizer.FirstTotalAwayFGA += Convert.ToInt16(prediction.AwayFGA); optimizer.FirstTotalAwayFGM += Convert.ToInt16(prediction.AwayFGM); optimizer.FirstTotalAwayFTA += Convert.ToInt16(prediction.AwayFTA); optimizer.FirstTotalAwayFTM += Convert.ToInt16(prediction.AwayFTM); } } } optimizer.FirstHomePoints /= firstgames; optimizer.FirstHome3PA /= firstgames; optimizer.FirstHome3PM /= firstgames; optimizer.FirstHomeFGA /= firstgames; optimizer.FirstHomeFGM /= firstgames; optimizer.FirstHomeFTA /= firstgames; optimizer.FirstHomeFTM /= firstgames; optimizer.FirstAwayPoints /= firstgames; optimizer.FirstAway3PA /= firstgames; optimizer.FirstAway3PM /= firstgames; optimizer.FirstAwayFGA /= firstgames; optimizer.FirstAwayFGM /= firstgames; optimizer.FirstAwayFTA /= firstgames; optimizer.FirstAwayFTM /= firstgames; optimizer.HomePoints /= othergames; optimizer.Home3PA /= othergames; optimizer.Home3PM /= othergames; optimizer.HomeFGA /= othergames; optimizer.HomeFGM /= othergames; optimizer.HomeFTA /= othergames; optimizer.HomeFTM /= othergames; optimizer.AwayPoints /= othergames; optimizer.Away3PA /= othergames; optimizer.Away3PM /= othergames; optimizer.AwayFGA /= othergames; optimizer.AwayFGM /= othergames; optimizer.AwayFTA /= othergames; optimizer.AwayFTM /= othergames; this._dbContext.CoEfficientOptimizer.Add(optimizer); _unitOfWork.Commit(); }
public QuarterPredictions QuarterSimulator(Team HomeTeam, Team AwayTeam, int QuarterNo, int GameNo) { //FullSeason Lists List <GameTime> homeGT = _getStatMethods.GetFullSeasonGameTimePlayed(HomeTeam); List <GameTime> awayGT = _getStatMethods.GetFullSeasonGameTimePlayed(AwayTeam); List <FullSeasonQuarters> homeFullSeasonQuarters = new List <FullSeasonQuarters>(); List <FullSeasonQuarters> awayFullSeasonQuarters = new List <FullSeasonQuarters>(); foreach (var game in homeGT) { try { homeFullSeasonQuarters.Add(_getStatMethods.GetFullSeasonQuarters(game.GameNo, QuarterNo)); } catch (Exception) { } } foreach (var game in awayGT) { try { awayFullSeasonQuarters.Add(_getStatMethods.GetFullSeasonQuarters(game.GameNo, QuarterNo)); } catch (Exception) { } } //Standard Deviations QuarterModel TotalDeviation = new QuarterModel(); QuarterModel HomeDeviation = _statCalculator.DeviationCalculator(homeFullSeasonQuarters, HomeTeam); _statCalculator.QuarterModelAddition(TotalDeviation, HomeDeviation); QuarterModel AwayDeviation = _statCalculator.DeviationCalculator(awayFullSeasonQuarters, AwayTeam); _statCalculator.QuarterModelSwitch(AwayDeviation); _statCalculator.QuarterModelAddition(TotalDeviation, AwayDeviation); //Season Averages with Coefficients var firstGame = true; QuarterModel HomeQuarters = new QuarterModel(); QuarterModel AwayQuarters = new QuarterModel(); List <Team> homePlayedAgainst = new List <Team>(); foreach (var game in homeFullSeasonQuarters) { if (HomeTeam == game.HomeTeam && !homePlayedAgainst.Contains(game.AwayTeam)) { homePlayedAgainst.Add(game.AwayTeam); } else if (HomeTeam == game.AwayTeam && !homePlayedAgainst.Contains(game.HomeTeam)) { homePlayedAgainst.Add(game.HomeTeam); } } List <Team> awayPlayedAgainst = new List <Team>(); foreach (var game in awayFullSeasonQuarters) { if (AwayTeam == game.HomeTeam && !awayPlayedAgainst.Contains(game.AwayTeam)) { awayPlayedAgainst.Add(game.AwayTeam); } else if (AwayTeam == game.AwayTeam && !awayPlayedAgainst.Contains(game.HomeTeam)) { awayPlayedAgainst.Add(game.HomeTeam); } } List <Team> commonTeams = new List <Team>(); foreach (var team1 in homePlayedAgainst) { foreach (var team2 in awayPlayedAgainst) { if (team1 == team2) { commonTeams.Add(team1); } } } List <FullSeasonQuarters> homePlayedCommon = new List <FullSeasonQuarters>(); List <FullSeasonQuarters> awayPlayedCommon = new List <FullSeasonQuarters>(); foreach (var team in commonTeams) { homePlayedCommon.Add(homeFullSeasonQuarters.FirstOrDefault(x => x.HomeTeam == team || x.AwayTeam == team)); awayPlayedCommon.Add(awayFullSeasonQuarters.FirstOrDefault(x => x.HomeTeam == team || x.AwayTeam == team)); } if (homeFullSeasonQuarters.FirstOrDefault(x => (x.HomeTeam == HomeTeam && x.AwayTeam == AwayTeam) || (x.HomeTeam == AwayTeam && x.AwayTeam == HomeTeam)) != null) { firstGame = false; QuarterModel homelast5gamesQuarters = _statCalculator.AverageCalculator(homeFullSeasonQuarters.Take(5).ToList(), HomeTeam); _statCalculator.QuarterModelDivision(homelast5gamesQuarters, 3); QuarterModel homeathomegamesQuarters = _statCalculator.AverageCalculator(homeFullSeasonQuarters.Where(x => x.HomeTeam == HomeTeam).ToList(), HomeTeam); _statCalculator.QuarterModelDivision(homeathomegamesQuarters, 3); QuarterModel homecommon = _statCalculator.AverageCalculator(homePlayedCommon, HomeTeam); _statCalculator.QuarterModelDivision(homecommon, 4); QuarterModel awaylast5gamesQuarters = _statCalculator.AverageCalculator(awayFullSeasonQuarters.Take(5).ToList(), AwayTeam); _statCalculator.QuarterModelDivision(awaylast5gamesQuarters, 3); QuarterModel awayatawaygamesQuarters = _statCalculator.AverageCalculator(awayFullSeasonQuarters.Where(x => x.AwayTeam == AwayTeam).ToList(), AwayTeam); _statCalculator.QuarterModelDivision(awayatawaygamesQuarters, 3); QuarterModel awaycommon = _statCalculator.AverageCalculator(awayPlayedCommon, AwayTeam); _statCalculator.QuarterModelDivision(awaycommon, 4); QuarterModel seasonmatchupsQuarters = _statCalculator.AverageCalculator(homeFullSeasonQuarters.Where(x => (x.HomeTeam == HomeTeam && x.AwayTeam == AwayTeam) || (x.HomeTeam == AwayTeam && x.AwayTeam == HomeTeam)).ToList(), HomeTeam); _statCalculator.QuarterModelDivision(seasonmatchupsQuarters, 12); _statCalculator.QuarterModelAddition(HomeQuarters, homelast5gamesQuarters); _statCalculator.QuarterModelAddition(HomeQuarters, homeathomegamesQuarters); _statCalculator.QuarterModelAddition(HomeQuarters, homecommon); _statCalculator.QuarterModelAddition(HomeQuarters, seasonmatchupsQuarters); _statCalculator.QuarterModelAddition(AwayQuarters, awaylast5gamesQuarters); _statCalculator.QuarterModelAddition(AwayQuarters, awayatawaygamesQuarters); _statCalculator.QuarterModelAddition(AwayQuarters, awaycommon); _statCalculator.QuarterModelAdditionSwitch(AwayQuarters, seasonmatchupsQuarters); _statCalculator.QuarterModelSwitch(AwayQuarters); } else { QuarterModel homelast5gamesQuarters = _statCalculator.AverageCalculator(homeFullSeasonQuarters.Take(5).ToList(), HomeTeam); _statCalculator.QuarterModelDivision(homelast5gamesQuarters, 3.166); QuarterModel homeathomegamesQuarters = _statCalculator.AverageCalculator(homeFullSeasonQuarters.Where(x => x.HomeTeam == HomeTeam).ToList(), HomeTeam); _statCalculator.QuarterModelDivision(homeathomegamesQuarters, 2.375); QuarterModel homecommon = _statCalculator.AverageCalculator(homePlayedCommon, HomeTeam); _statCalculator.QuarterModelDivision(homecommon, 3.8); QuarterModel awaylast5gamesQuarters = _statCalculator.AverageCalculator(awayFullSeasonQuarters.Take(5).ToList(), AwayTeam); _statCalculator.QuarterModelDivision(awaylast5gamesQuarters, 3.166); QuarterModel awayatawaygamesQuarters = _statCalculator.AverageCalculator(awayFullSeasonQuarters.Where(x => x.AwayTeam == AwayTeam).ToList(), AwayTeam); _statCalculator.QuarterModelDivision(awayatawaygamesQuarters, 2.375); QuarterModel awaycommon = _statCalculator.AverageCalculator(awayPlayedCommon, AwayTeam); _statCalculator.QuarterModelDivision(awaycommon, 3.8); _statCalculator.QuarterModelAddition(HomeQuarters, homelast5gamesQuarters); _statCalculator.QuarterModelAddition(HomeQuarters, homeathomegamesQuarters); _statCalculator.QuarterModelAddition(HomeQuarters, homecommon); _statCalculator.QuarterModelAddition(AwayQuarters, awaylast5gamesQuarters); _statCalculator.QuarterModelAddition(AwayQuarters, awayatawaygamesQuarters); _statCalculator.QuarterModelAddition(AwayQuarters, awaycommon); _statCalculator.QuarterModelSwitch(AwayQuarters); } _statCalculator.QuarterModelMultiplication(HomeQuarters, AwayDeviation); _statCalculator.QuarterModelMultiplication(AwayQuarters, HomeDeviation); _statCalculator.QuarterModelAddition(HomeQuarters, AwayQuarters); _statCalculator.QuarterModelDivision(HomeQuarters, TotalDeviation); QuarterModel homeSeasonAverages = _statCalculator.AverageCalculator(homeFullSeasonQuarters, HomeTeam); QuarterModel awaySeasonAverages = _statCalculator.AverageCalculator(awayFullSeasonQuarters, AwayTeam); _statCalculator.QuarterModelSwitch(awaySeasonAverages); QuarterPredictions Quarter = QuarterCalculator(HomeQuarters, homeSeasonAverages, awaySeasonAverages, HomeDeviation, AwayDeviation); Quarter.HomeTeam = HomeTeam; Quarter.AwayTeam = AwayTeam; Quarter.QuarterNo = QuarterNo; Quarter.GameNo = GameNo; Quarter.FirstGame = firstGame; return(Quarter); }