コード例 #1
0
ファイル: analysis.py プロジェクト: igormago/imsoccer2
def simpleHomeDrawAwayMaxOdds():

    championships = session.query(Championship)
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        profits = [0,0,0]
        results = [0,0,0]
        odds = [Decimal(0),Decimal(0),Decimal(0)]

        games = 0
        for match in matches:
            try:
                maxOdds = ResumeOdds.get(match.id)
                if (match.oddsHome is None):
                    oddsHome = 0
                else:
                    games = games + 1
                    oddsHome = maxOdds.maxHome

                if (match.oddsHome is None):
                    oddsAway = 0
                else:
                    oddsAway = maxOdds.maxAway

                if (match.oddsDraw is None):
                    oddsDraw = 0
                else:
                    oddsDraw = maxOdds.maxDraw
            except:
                oddsHome = 0
                oddsAway = 0
                oddsDraw = 0

            #Quantidade de jogos | apostas casa/local/visitante
            if (match.goalsHome > match.goalsAway):
                results[0] = results[0] + 1
                odds[0] = odds[0] + oddsHome
                #maxOdd = session.query(func.max(Odds.oddsHome)).filter(Odds.matchId == c.id)
                #print (match, maxOdd)

            elif (match.goalsHome < match.goalsAway):
                results[2] = results[2] + 1
                odds[2] = odds[2] + oddsAway
            else:
                results[1] = results[1] + 1
                odds[1] = odds[1] + oddsDraw

        profits[0]=odds[0] - games
        profits[1]=odds[1] - games
        profits[2]=odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","Home","Draw","Away",\
                                   "Home(%)","Draw(%)", "Away(%)",\
                                   "Odds Home","Odds Draw","Odds Away",\
                                   "Profit Home","Profit Draw","Profit Away"
                                   ]))
コード例 #2
0
ファイル: analysis.py プロジェクト: igormago/imsoccer2
def drawNoBetFavoriteUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = c.listMatches()

        games = 0
        draws = 0
        results = [0,0]
        profits = [0,0]
        odds = [Decimal(0),Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    dnbOdds = ResumeOddsDNB.get(match.id)
                    oddsHome = dnbOdds.avgHome
                    oddsAway = dnbOdds.avgAway

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        odds[0] = odds[0] + oddsHome
                        games = games + 1
                    elif (match.result == 2):
                        results[1] = results[1] + 1
                        odds[1] = odds[1] + oddsAway
                        games = games + 1
                    else:
                        draws = draws + 1


                except:
                    pass

        else:

            for match in matches:

                try:
                    dnbOdds = ResumeOddsDNB.get(match.id)
                    oddsHome = dnbOdds.maxHome
                    oddsAway = dnbOdds.maxAway

                    if (match.result == 0):
                        if (oddsHome < oddsAway):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsHome
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsAway
                        games = games + 1
                    elif (match.result == 2):
                        if (oddsAway < oddsHome):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsHome
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsAway
                        games = games + 1
                    else:
                        draws = draws + 1
                except:
                    pass

        profits[0]=odds[0] - games
        profits[1]=odds[1] - games
        percents = [0,0]
        if (games == 0):
            percents[0] = 0
            percents[1] = 0
        else:
            percents[0] = util.replaceDotToComman(round(results[0] / (games/100), 2))
            percents[1] = util.replaceDotToComman(round(results[1] / (games/100), 2))
        table.append([c.name, \
                  games, \
                  results[0], results[1],\
                  percents[0], percents[1],\
                  util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]),\
                  util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1])
                  ])


    print(tabulate(table, headers=["CHAMP","MATCH","FAVO","UNDO",\
                                   "FAVO(%)","UNDO(%)",\
                                   "ODDS FAVO","ODDS UNDO",\
                                   "PROFIT FAVO","PROFIT UNDO",
                                   ]))
コード例 #3
0
ファイル: analysis.py プロジェクト: igormago/imsoccer2
def doubleChanceHomeDrawAway(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        games = 0
        results = [0,0,0]
        profits = [0,0,0]
        odds = [Decimal(0),Decimal(0),Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    matchOdds = ResumeOddsDC.get(match.id)
                    oddsHomeDraw = matchOdds.avgHomeDraw
                    oddsHomeAway = matchOdds.avgHomeAway
                    oddsAwayDraw = matchOdds.avgAwayDraw

                    if (oddsHomeDraw is None):
                        oddsHomeDraw = 0

                    if (oddsHomeAway is None):
                        oddsHomeAway = 0

                    if (oddsAwayDraw is None):
                        oddsAwayDraw = 0

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        results[1] = results[1] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[1] = odds[1] + oddsHomeAway
                    elif (match.result == 1):
                        results[0] = results[0] + 1
                        results[2] = results[2] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[2] = odds[2] + oddsAwayDraw
                    else:
                        results[1] = results[1] + 1
                        results[2] = results[2] + 1
                        odds[1] = odds[1] + oddsHomeAway
                        odds[2] = odds[2] + oddsAwayDraw
                    games = games + 1
                except:
                    pass



        else:

            for match in matches:

                try:
                    matchOdds = ResumeOddsDC.get(match.id)
                    oddsHomeDraw = matchOdds.maxHomeDraw
                    oddsHomeAway = matchOdds.maxHomeAway
                    oddsAwayDraw = matchOdds.maxAwayDraw

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        results[1] = results[1] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[1] = odds[1] + oddsHomeAway
                    elif (match.result == 1):
                        results[0] = results[0] + 1
                        results[2] = results[2] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[2] = odds[2] + oddsAwayDraw
                    else:
                        results[1] = results[1] + 1
                        results[2] = results[2] + 1
                        odds[1] = odds[1] + oddsHomeAway
                        odds[2] = odds[2] + oddsAwayDraw
                    games = games + 1
                except:
                    pass

        profits[0]=odds[0] - games
        profits[1]=odds[1] - games
        profits[2]=odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","HomeDraw","HomeAway","AwayDraw",\
                                   "HomeDraw(%)","HomeAway(%)", "AwayDraw(%)",\
                                   "Odds HomeDraw","Odds HomeAway","Odds AwayDraw",\
                                   "Profit HomeDraw","Profit HomeAway","Profit AwayDraw"
                                   ]))
コード例 #4
0
ファイル: analysis.py プロジェクト: igormago/imsoccer2
def matchFavoriteMediumUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        games = 0
        results = [0,0,0]
        profits = [0,0,0]
        odds = [Decimal(0),Decimal(0),Decimal(0)]

        for match in matches:

            if (type == 'max'):
                try:
                    maxOdds = ResumeOdds.get(match.id)
                    if (match.oddsHome is None):
                        oddsHome = 0
                    else:
                        games = games + 1
                        oddsHome = maxOdds.maxHome

                    if (match.oddsHome is None):
                        oddsAway = 0
                    else:
                        oddsAway = maxOdds.maxAway

                    if (match.oddsDraw is None):
                        oddsDraw = 0
                    else:
                        oddsDraw = maxOdds.maxDraw
                except:
                    oddsHome = 0
                    oddsAway = 0
                    oddsDraw = 0
            else:
                if (match.oddsHome is None):
                    oddsHome = 0
                else:
                    games = games + 1
                    oddsHome = match.oddsHome

                if (match.oddsAway is None):
                    oddsAway = 0
                else:
                    oddsAway = match.oddsAway

                if (match.oddsDraw is None):
                    oddsDraw = 0
                else:
                    oddsDraw = match.oddsDraw

            oddsMatch = [oddsHome,oddsDraw,oddsAway]

            #Apostas favorito/azarao
            if (match.oddsHome is not None):

                oddsFavorite = min(oddsMatch)
                oddsMedium = statistics.median(oddsMatch)
                oddsUnderdog = max(oddsMatch)

                favorite = oddsMatch.index(oddsFavorite)
                medium = oddsMatch.index(oddsMedium)
                underdog = oddsMatch.index(oddsUnderdog)

                if (match.goalsHome > match.goalsAway):
                    result = 0
                elif (match.goalsAway > match.goalsHome):
                    result = 2
                else:
                    result = 1

                if (result == favorite):
                    results[0] = results[0] + 1
                    odds[0] = odds[0] + oddsFavorite
                elif (result == medium):
                    results[1] = results[1] + 1
                    odds[1] = odds[1] + oddsMedium
                else:
                    results[2] = results[2] + 1
                    odds[2] = odds[2] + oddsUnderdog

        profits[0]=odds[0] - games
        profits[1]=odds[1] - games
        profits[2]=odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","Favorite","Medium","Underdog",\
                                   "Favorite(%)","Medium(%)", "Underdog(%)",\
                                   "Odds Favorite","Odds Medium","Odds Underdog",\
                                   "Profit Favorite","Profit Medium","Profit Underdog"
                                   ]))
コード例 #5
0
ファイル: analysis.py プロジェクト: igormago/imsoccer2
def bothTeamScoreFavoriteUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = c.listMatches()

        games = 0
        results = [0,0]
        profits = [0,0]
        odds = [Decimal(0),Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    btsOdds = ResumeOddsBTS.get(match.id)
                    oddsYes = btsOdds.avgYes
                    oddsNo = btsOdds.avgNo

                    if (match.goalsHome > 0 and match.goalsAway > 0):
                        if (oddsYes > oddsNo):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    else:
                        if (oddsNo > oddsYes):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    games = games + 1

                except:
                    pass

        else:

            for match in matches:

                try:
                    btsOdds = ResumeOddsBTS.get(match.id)
                    oddsYes = btsOdds.maxYes
                    oddsNo = btsOdds.maxNo

                    if (match.goalsHome > 0 and match.goalsAway > 0):
                        if (oddsYes > oddsNo):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    else:
                        if (oddsNo > oddsYes):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    games = games + 1

                except:
                    pass

        profits[0]=odds[0] - games
        profits[1]=odds[1] - games
        percents = [0,0]
        if (games == 0):
            percents[0] = 0
            percents[1] = 0
        else:
            percents[0] = util.replaceDotToComman(round(results[0] / (games/100), 2))
            percents[1] = util.replaceDotToComman(round(results[1] / (games/100), 2))
        table.append([c.name, \
                  games, \
                  results[0], results[1],\
                  percents[0], percents[1],\
                  util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]),\
                  util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1])
                  ])


    print(tabulate(table, headers=["Championship","Matches","Yes","No",\
                                   "Favorite(%)","Underdog(%)",\
                                   "Odds Favorite","Odds Underdog",\
                                   "Profit Favorite","Profit Underdog",
                                   ]))
コード例 #6
0
def simpleHomeDrawAwayMaxOdds():

    championships = session.query(Championship)
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        profits = [0, 0, 0]
        results = [0, 0, 0]
        odds = [Decimal(0), Decimal(0), Decimal(0)]

        games = 0
        for match in matches:
            try:
                maxOdds = ResumeOdds.get(match.id)
                if (match.oddsHome is None):
                    oddsHome = 0
                else:
                    games = games + 1
                    oddsHome = maxOdds.maxHome

                if (match.oddsHome is None):
                    oddsAway = 0
                else:
                    oddsAway = maxOdds.maxAway

                if (match.oddsDraw is None):
                    oddsDraw = 0
                else:
                    oddsDraw = maxOdds.maxDraw
            except:
                oddsHome = 0
                oddsAway = 0
                oddsDraw = 0

            #Quantidade de jogos | apostas casa/local/visitante
            if (match.goalsHome > match.goalsAway):
                results[0] = results[0] + 1
                odds[0] = odds[0] + oddsHome
                #maxOdd = session.query(func.max(Odds.oddsHome)).filter(Odds.matchId == c.id)
                #print (match, maxOdd)

            elif (match.goalsHome < match.goalsAway):
                results[2] = results[2] + 1
                odds[2] = odds[2] + oddsAway
            else:
                results[1] = results[1] + 1
                odds[1] = odds[1] + oddsDraw

        profits[0] = odds[0] - games
        profits[1] = odds[1] - games
        profits[2] = odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","Home","Draw","Away",\
                                   "Home(%)","Draw(%)", "Away(%)",\
                                   "Odds Home","Odds Draw","Odds Away",\
                                   "Profit Home","Profit Draw","Profit Away"
                                   ]))
コード例 #7
0
def doubleChanceHomeDrawAway(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        games = 0
        results = [0, 0, 0]
        profits = [0, 0, 0]
        odds = [Decimal(0), Decimal(0), Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    matchOdds = ResumeOddsDC.get(match.id)
                    oddsHomeDraw = matchOdds.avgHomeDraw
                    oddsHomeAway = matchOdds.avgHomeAway
                    oddsAwayDraw = matchOdds.avgAwayDraw

                    if (oddsHomeDraw is None):
                        oddsHomeDraw = 0

                    if (oddsHomeAway is None):
                        oddsHomeAway = 0

                    if (oddsAwayDraw is None):
                        oddsAwayDraw = 0

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        results[1] = results[1] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[1] = odds[1] + oddsHomeAway
                    elif (match.result == 1):
                        results[0] = results[0] + 1
                        results[2] = results[2] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[2] = odds[2] + oddsAwayDraw
                    else:
                        results[1] = results[1] + 1
                        results[2] = results[2] + 1
                        odds[1] = odds[1] + oddsHomeAway
                        odds[2] = odds[2] + oddsAwayDraw
                    games = games + 1
                except:
                    pass

        else:

            for match in matches:

                try:
                    matchOdds = ResumeOddsDC.get(match.id)
                    oddsHomeDraw = matchOdds.maxHomeDraw
                    oddsHomeAway = matchOdds.maxHomeAway
                    oddsAwayDraw = matchOdds.maxAwayDraw

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        results[1] = results[1] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[1] = odds[1] + oddsHomeAway
                    elif (match.result == 1):
                        results[0] = results[0] + 1
                        results[2] = results[2] + 1
                        odds[0] = odds[0] + oddsHomeDraw
                        odds[2] = odds[2] + oddsAwayDraw
                    else:
                        results[1] = results[1] + 1
                        results[2] = results[2] + 1
                        odds[1] = odds[1] + oddsHomeAway
                        odds[2] = odds[2] + oddsAwayDraw
                    games = games + 1
                except:
                    pass

        profits[0] = odds[0] - games
        profits[1] = odds[1] - games
        profits[2] = odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","HomeDraw","HomeAway","AwayDraw",\
                                   "HomeDraw(%)","HomeAway(%)", "AwayDraw(%)",\
                                   "Odds HomeDraw","Odds HomeAway","Odds AwayDraw",\
                                   "Profit HomeDraw","Profit HomeAway","Profit AwayDraw"
                                   ]))
コード例 #8
0
def drawNoBetFavoriteUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = c.listMatches()

        games = 0
        draws = 0
        results = [0, 0]
        profits = [0, 0]
        odds = [Decimal(0), Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    dnbOdds = ResumeOddsDNB.get(match.id)
                    oddsHome = dnbOdds.avgHome
                    oddsAway = dnbOdds.avgAway

                    if (match.result == 0):
                        results[0] = results[0] + 1
                        odds[0] = odds[0] + oddsHome
                        games = games + 1
                    elif (match.result == 2):
                        results[1] = results[1] + 1
                        odds[1] = odds[1] + oddsAway
                        games = games + 1
                    else:
                        draws = draws + 1

                except:
                    pass

        else:

            for match in matches:

                try:
                    dnbOdds = ResumeOddsDNB.get(match.id)
                    oddsHome = dnbOdds.maxHome
                    oddsAway = dnbOdds.maxAway

                    if (match.result == 0):
                        if (oddsHome < oddsAway):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsHome
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsAway
                        games = games + 1
                    elif (match.result == 2):
                        if (oddsAway < oddsHome):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsHome
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsAway
                        games = games + 1
                    else:
                        draws = draws + 1
                except:
                    pass

        profits[0] = odds[0] - games
        profits[1] = odds[1] - games
        percents = [0, 0]
        if (games == 0):
            percents[0] = 0
            percents[1] = 0
        else:
            percents[0] = util.replaceDotToComman(
                round(results[0] / (games / 100), 2))
            percents[1] = util.replaceDotToComman(
                round(results[1] / (games / 100), 2))
        table.append([c.name, \
                  games, \
                  results[0], results[1],\
                  percents[0], percents[1],\
                  util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]),\
                  util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1])
                  ])


    print(tabulate(table, headers=["CHAMP","MATCH","FAVO","UNDO",\
                                   "FAVO(%)","UNDO(%)",\
                                   "ODDS FAVO","ODDS UNDO",\
                                   "PROFIT FAVO","PROFIT UNDO",
                                   ]))
コード例 #9
0
def bothTeamScoreFavoriteUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = c.listMatches()

        games = 0
        results = [0, 0]
        profits = [0, 0]
        odds = [Decimal(0), Decimal(0)]

        if (type == util.ODD_AVG):

            for match in matches:

                try:
                    btsOdds = ResumeOddsBTS.get(match.id)
                    oddsYes = btsOdds.avgYes
                    oddsNo = btsOdds.avgNo

                    if (match.goalsHome > 0 and match.goalsAway > 0):
                        if (oddsYes > oddsNo):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    else:
                        if (oddsNo > oddsYes):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    games = games + 1

                except:
                    pass

        else:

            for match in matches:

                try:
                    btsOdds = ResumeOddsBTS.get(match.id)
                    oddsYes = btsOdds.maxYes
                    oddsNo = btsOdds.maxNo

                    if (match.goalsHome > 0 and match.goalsAway > 0):
                        if (oddsYes > oddsNo):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    else:
                        if (oddsNo > oddsYes):
                            results[0] = results[0] + 1
                            odds[0] = odds[0] + oddsYes
                        else:
                            results[1] = results[1] + 1
                            odds[1] = odds[1] + oddsNo
                    games = games + 1

                except:
                    pass

        profits[0] = odds[0] - games
        profits[1] = odds[1] - games
        percents = [0, 0]
        if (games == 0):
            percents[0] = 0
            percents[1] = 0
        else:
            percents[0] = util.replaceDotToComman(
                round(results[0] / (games / 100), 2))
            percents[1] = util.replaceDotToComman(
                round(results[1] / (games / 100), 2))
        table.append([c.name, \
                  games, \
                  results[0], results[1],\
                  percents[0], percents[1],\
                  util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]),\
                  util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1])
                  ])


    print(tabulate(table, headers=["Championship","Matches","Yes","No",\
                                   "Favorite(%)","Underdog(%)",\
                                   "Odds Favorite","Odds Underdog",\
                                   "Profit Favorite","Profit Underdog",
                                   ]))
コード例 #10
0
def matchFavoriteMediumUnderdog(type):

    championships = session.query(Championship).filter()
    table = []

    for c in championships:

        matches = session.query(Match).filter(Match.championshipId == c.id)

        games = 0
        results = [0, 0, 0]
        profits = [0, 0, 0]
        odds = [Decimal(0), Decimal(0), Decimal(0)]

        for match in matches:

            if (type == 'max'):
                try:
                    maxOdds = ResumeOdds.get(match.id)
                    if (match.oddsHome is None):
                        oddsHome = 0
                    else:
                        games = games + 1
                        oddsHome = maxOdds.maxHome

                    if (match.oddsHome is None):
                        oddsAway = 0
                    else:
                        oddsAway = maxOdds.maxAway

                    if (match.oddsDraw is None):
                        oddsDraw = 0
                    else:
                        oddsDraw = maxOdds.maxDraw
                except:
                    oddsHome = 0
                    oddsAway = 0
                    oddsDraw = 0
            else:
                if (match.oddsHome is None):
                    oddsHome = 0
                else:
                    games = games + 1
                    oddsHome = match.oddsHome

                if (match.oddsAway is None):
                    oddsAway = 0
                else:
                    oddsAway = match.oddsAway

                if (match.oddsDraw is None):
                    oddsDraw = 0
                else:
                    oddsDraw = match.oddsDraw

            oddsMatch = [oddsHome, oddsDraw, oddsAway]

            #Apostas favorito/azarao
            if (match.oddsHome is not None):

                oddsFavorite = min(oddsMatch)
                oddsMedium = statistics.median(oddsMatch)
                oddsUnderdog = max(oddsMatch)

                favorite = oddsMatch.index(oddsFavorite)
                medium = oddsMatch.index(oddsMedium)
                underdog = oddsMatch.index(oddsUnderdog)

                if (match.goalsHome > match.goalsAway):
                    result = 0
                elif (match.goalsAway > match.goalsHome):
                    result = 2
                else:
                    result = 1

                if (result == favorite):
                    results[0] = results[0] + 1
                    odds[0] = odds[0] + oddsFavorite
                elif (result == medium):
                    results[1] = results[1] + 1
                    odds[1] = odds[1] + oddsMedium
                else:
                    results[2] = results[2] + 1
                    odds[2] = odds[2] + oddsUnderdog

        profits[0] = odds[0] - games
        profits[1] = odds[1] - games
        profits[2] = odds[2] - games

        table.append([c.name, \
                      games, \
                      results[0], results[1], results[2], \
                      util.replaceDotToComman(round(results[0] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[1] / 3.8, 2)), \
                      util.replaceDotToComman(round(results[2] / 3.8, 2)), \
                      util.replaceDotToComman(odds[0]), util.replaceDotToComman(odds[1]), util.replaceDotToComman(odds[2]), \
                      util.replaceDotToComman(profits[0]), util.replaceDotToComman(profits[1]), util.replaceDotToComman(profits[2])
                      ])

    print(tabulate(table, headers=["Championship","Matches","Favorite","Medium","Underdog",\
                                   "Favorite(%)","Medium(%)", "Underdog(%)",\
                                   "Odds Favorite","Odds Medium","Odds Underdog",\
                                   "Profit Favorite","Profit Medium","Profit Underdog"
                                   ]))