pip install oddsapi_ev
pandas numpy requests json datetime dateutil.parser pytz typing
该模块从 The Odds API 获取即将到来的体育博彩赔率,并根据两个“真实赔率”标准中的一个或两个标准计算该投注的预期值 (ev)。有关 ev 投注的更多信息,请参阅这篇内容丰富的文章。
ev.py
这是该包中唯一的模块。它包含函数data()
。
data()
这是模块ev.py
中的唯一函数。
参数:参见data()
参数部分
返回: pandas 数据帧
data()
参数每个参数都是可选的,并且每个参数都有一个默认值。但是,必须传递api_key或文件名。
api_key( str
) :
有效的赔率 API 密钥
文件名( str
):
包含与 Odds API 格式相同的数据的 JSON 文件的名称
必须传递api_key或文件名(推荐使用api_key ),否则该函数将退出!**
以下参数将传递给 API 调用,以指定提取哪种类型的赔率并影响根据配额收取的请求数量。当上传文件而不是调用API时,以下除regions
之外的所有内容都将用于过滤文件数据。如果任何 API 参数的输入错误,该函数将退出。
体育( list[str]
):
由 The Odds API 定义的要包含的体育项目列表
区域( list[str]
):
要包含的体育博彩区域列表。必须是以下子集: ['us', 'eu', 'uk', 'au']
市场( list[str]
):
要包含的投注市场列表。必须是['h2h', 'spreads', 'totals']
的子集。欲了解更多信息,请参阅此处
此参数标识要使用哪种类型的预期值。有 2 种方法可以确定某个位置的公平赔率,因此也有 2 种方法可以确定投注的预期价值。
平均:将某个位置的公平赔率确定为所有体育博彩中该位置的所有赔率的平均值,并删除体育博彩的边缘。
Pinnacle(平博):将某个位置的公平赔率确定为去除体育博彩边缘后的锐利体育博彩公司 Pinnacle(平博)提供的赔率。
如果给出错误的输入,该函数将退出。
ev_type( str
):
要使用的计算预期值的方法。必须是以下之一: 'avg' 、 'pinnacle'或'both'
这些参数用于过滤赔率。如果给出错误的输入,该函数将继续,但不会根据该值过滤赔率。
推荐( bool
):
如果推荐为 True,则所有过滤器值都将被推荐值覆盖,以找到最有利可图的投注。
days_from_now ( int
或float
):
未来返回赔率的最大天数
书籍( list[str]
):
赔率中包含的体育书籍列表。请参阅此处了解有效的体育书籍密钥。
min_odds( int
或float
):
返回赔率的最小赔率线(美国格式)。
min_odds( int
或float
):
返回赔率的最大赔率线(美式格式)。
如果min_odds > max_odds ,该函数将返回一个空的 DataFrame
最大宽度( int
或float
):
返回赔率的最大宽度。 (有关宽度的更多信息,请参阅计算数据帧字段)
max_vig_pct( int
或float
):
体育博彩赔率中的最大“vig”或“edge”
min_ev_pct( int
或float
):
赔率的最小期望值百分比
min_num_books( int
或float
):
每行提供的体育书籍的最少数量
pref_ev_filter( str
):
用于过滤值的 ev 计算的首选方法。必须是以下之一: 'avg' 、 'pinnacle'或'both' 。
注意: ev_type和pref_ev_filter不能相互矛盾(例如,如果'avg'是ev_type ,则'pinnacle'不能是pref_ev_filter 。在这种情况下, pref_ev_filter将默认为ev_type )。
这些参数用于对 DataFrame 进行排序
排序( str
):
对 DataFrame 进行排序的值。
必须是以下值之一: 'commence_time' 、 'line' 、 'width' 、 'ev_pct' 、 'kelly_pct'或'default' 。
'default'根据默认的字段组合对 DataFrame 进行排序。
升序( bool
):
True 时按升序对所选值进行排序,False 时按降序对所选值进行排序
pref_ev_sort( str
):
用于对值进行排序的 ev 计算的首选方法。必须是'avg'或'pinnacle' (不是'both' )。
注意: ev_type和pref_ev_sort不能相互矛盾(例如,如果'avg'是ev_type ,则'pinnacle'不能是pref_ev_sort 。在这种情况下, pref_ev_sort将默认为ev_type )。
此参数控制返回的 DataFrame 是包含所有数据字段还是仅包含基本字段。默认为 False。
扩展( bool
):
如果 Expanded 为 True,则返回的 DataFrame 中将包含额外的字段。其中许多字段是计算更重要字段的中间字段。
如果 Expanded 为 False,则 DataFrame 仅返回最重要的字段。
如果未指定,则默认为 False。
from oddsapi_ev import ev # get all of the most profitable bets odds1 = ev.data(api_key=YOURKEY, recommended=True) # get all odds from DraftKings, sorted by ev percentage with respect to the average odds odds2 = ev.data(api_key=YOURKEY, regions=['us'], ev_type='avg', books=['draftkings'], sortby='ev_pct', ascending=False, pref_ev_sort='avg') # get all head to head odds at eu book makers for UEFA champions league games with maximum odds of +110 and the ev calculated with respect to Pinnacle odds odds3 = ev.data(api_key=YOURKEY, sports=['soccer_uefa_champs_league'], regions=['eu'], markets=['h2h'], ev_type='pinnacle', min_odds=110, pref_ev_filter='pinnacle')
以下是通过data()
计算出的 Odds API 数据中不存在的附加字段(不包括扩展字段)的说明。
书数:
为给定位置发布赔率的体育书籍数量。这对于使用平均值进行的计算非常重要,因为贡献平均值的书籍数量越多,它就越可靠
公平线:
这是如果体育博彩公司为保证利润而在赔率中建立的“维权”或“优势”被删除,则给定头寸的赔率。
它们表明根据体育博彩结果的实际机会是多少
宽度:
市场双方赔率低于公平赔率的总点数 (+100/-100)
例如,如果市场的两侧分别为 +105 和 -125,则宽度将为 20,因为 -125 为下方 25,+105 为上方 5,因此净数将为 20。
在这里阅读更多内容
维格_pct:
内置“vig”或“edge”的体育博彩公司给定赔率组的隐含胜率与去掉 vig 的同一体育博彩公司相同赔率组的胜率之间的百分比差异公平的胜率。它衡量赔率的不公平程度。
ev_pct:
预期值 (ev) 百分比是删除 vig 之前某些体育博彩中给定位置的隐含胜率与更准确的体育博彩(如平博)或平均值中相同位置的隐含胜率之间的百分比差异删除 vig 后的多个体育书籍。
更简单地说,它代表您投注的赔率与赢得投注的真实机会之间的差异。
大多数投注的 ev 百分比为负。少数具有正百分比的赌注是有利可图的。
在这里阅读更多内容
凯利_pct:
根据 ev 百分比和总体获胜概率得出的统计上最佳下注资金百分比。