public static MainCalculator.TeamStdDevAndAverage CalculateExpectedGoals(MainCalculator.TeamStdDevAndAverage sesonalGoals, MainCalculator.TeamStdDevAndAverage latestGoal, MainCalculator.TeamStdDevAndAverage seasonalGoalConceded, MainCalculator.TeamStdDevAndAverage latestGoalConceded, MainCalculator.TeamStdDevAndAverage goalScoredAtHomeOrAway, MainCalculator.TeamStdDevAndAverage goalsConcededAtAwayOrHome) { var goalScoring = sesonalGoals.Average * 0.2 + latestGoal.Average * 0.4 + goalScoredAtHomeOrAway.Average * 0.4; var goalConceded = seasonalGoalConceded.Average * 0.2 + latestGoalConceded.Average * 0.4 + goalsConcededAtAwayOrHome.Average * 0.4; var av = goalScoring * 0.6 + goalConceded * 0.4; var std = (sesonalGoals.StdDev + latestGoal.StdDev + goalScoredAtHomeOrAway.StdDev + seasonalGoalConceded.StdDev + latestGoalConceded.StdDev + goalsConcededAtAwayOrHome.StdDev) / 6; return(new MainCalculator.TeamStdDevAndAverage { Average = av, StdDev = std }); }
public void Build(string homeTeamName, string awayTeamName) { HomeTeamName = homeTeamName; AwayTeamName = awayTeamName; using (var db = new sakilaEntities4()) { HomeTeamStats = new TeamReportStats(LettersDict, AttributesDict, CompetitionId, homeTeamName, db, isHomeTeam: true); AwayTeamStats = new TeamReportStats(LettersDict, AttributesDict, CompetitionId, awayTeamName, db, isHomeTeam: false); HomeExpectedGoals = GoalsCalculator.CalculateExpectedGoals(HomeTeamStats.TeamGoalsStats.TeamSeasonalGoalsScored, HomeTeamStats.TeamGoalsStats.TeamLastGamesGoalsScored, AwayTeamStats.TeamGoalsStats.TeamSeasonalGoalsConceded, AwayTeamStats.TeamGoalsStats.TeamLastGamesGoalsConceded, HomeTeamStats.TeamGoalsStats.TeamHomeOrAwayGoalsScored, AwayTeamStats.TeamGoalsStats.TeamHomeOrAwayGoalsConceded); AwayExpectedGoals = GoalsCalculator.CalculateExpectedGoals(AwayTeamStats.TeamGoalsStats.TeamSeasonalGoalsScored, AwayTeamStats.TeamGoalsStats.TeamLastGamesGoalsScored, HomeTeamStats.TeamGoalsStats.TeamSeasonalGoalsConceded, HomeTeamStats.TeamGoalsStats.TeamLastGamesGoalsConceded, AwayTeamStats.TeamGoalsStats.TeamHomeOrAwayGoalsScored, HomeTeamStats.TeamGoalsStats.TeamHomeOrAwayGoalsConceded); } }
public TeamGoalsStats(team team, int competitionId, bool isHometeam, sakilaEntities4 db, List <competitionmatch> relevantMatches) { TeamSeasonalGoalsScored = GoalsCalculator.GetGoalsScoringAverage(relevantMatches, team.TeamID, competitionId); TeamLastGamesGoalsScored = GoalsCalculator.GetGoalsScoringAverage(relevantMatches, team.TeamID, competitionId, 3); TeamSeasonalGoalsConceded = GoalsCalculator.GetGoalsConcededAverage(relevantMatches, team.TeamID, competitionId); TeamLastGamesGoalsConceded = GoalsCalculator.GetGoalsConcededAverage(relevantMatches, team.TeamID, competitionId, 3); if (isHometeam) { TeamHomeOrAwayGoalsScored = GoalsCalculator.GetGoalsScoringAverageAtHome(relevantMatches, team.TeamID, competitionId); TeamHomeOrAwayGoalsConceded = GoalsCalculator.GetGoalsConcededAverageAtHome(relevantMatches, team.TeamID, competitionId); } else { TeamHomeOrAwayGoalsScored = GoalsCalculator.GetGoalsScoringAverageAtAway(relevantMatches, team.TeamID, competitionId); TeamHomeOrAwayGoalsConceded = GoalsCalculator.GetGoalsConcededAverageAtAway(relevantMatches, team.TeamID, competitionId); } TopScorer = GoalsCalculator.GetTeamTopScorer(db, team.TeamID, competitionId); GoalsScoreDistribution = GoalsCalculator.GetTeamScorersByPosition(db, team.TeamID, competitionId); GoalsConcedeDistribution = GoalsCalculator.GetTeamScorersAgainstByPosition(db, team.TeamID, competitionId); }