一个自动化和优化绘图和风扇阵列结构的工具。
draftfast的Python项目详细描述
简介···
这是一个非常强大的工具,可以自动优化阵容建设,允许你在任何一个抽风或球迷决斗比赛进入数千阵容,在需要的时间,你抓住一杯咖啡。
安装
需要Python3.6。
pip install draftfast
用法
示例用法(you can experiment with these examples in repl.it):
fromdraftfastimportrulesfromdraftfast.optimizeimportrunfromdraftfast.ormimportPlayerfromdraftfast.csv_parseimportsalary_download# Create players for a classic DraftKings gameplayer_pool=[Player(name='A1',cost=5500,proj=55,pos='PG'),Player(name='A2',cost=5500,proj=55,pos='PG'),Player(name='A3',cost=5500,proj=55,pos='SG'),Player(name='A4',cost=5500,proj=55,pos='SG'),Player(name='A5',cost=5500,proj=55,pos='SF'),Player(name='A6',cost=5500,proj=55,pos='SF'),Player(name='A7',cost=5500,proj=55,pos='PF'),Player(name='A8',cost=5500,proj=55,pos='PF'),Player(name='A9',cost=5500,proj=55,pos='C'),Player(name='A10',cost=5500,proj=55,pos='C'),]roster=run(rule_set=rules.DK_NBA_RULE_SET,player_pool=player_pool,verbose=True,)# Or, alternatively, generate players from a CSVplayers=salary_download.generate_players_from_csvs(salary_file_location='./salaries.csv',game=rules.DRAFT_KINGS,)roster=run(rule_set=rules.DK_NBA_RULE_SET,player_pool=players,verbose=True,)
您可以在^{
游戏规则
为一个特定的游戏优化就像设置RuleSet
一样简单(见上面的例子)。图书馆的游戏规则如下表所示:
League | Site | Reference |
---|---|---|
NFL | DraftKings | ^{ |
NFL | FanDuel | ^{ |
NBA | DraftKings | ^{ |
NBA | FanDuel | ^{ |
MLB | DraftKings | ^{ |
MLB | FanDuel | ^{ |
WNBA | DraftKings | ^{ |
WNBA | FanDuel | ^{ |
PGA | FanDuel | ^{ |
NASCAR | FanDuel | ^{ |
SOCCER | DraftKings | ^{ |
EuroLeague | DraftKings | ^{ |
NHL | DraftKings | ^{ |
NBA Pickem | DraftKings | ^{ |
NFL Showdown | DraftKings | ^{ |
NBA Showdown | DraftKings | ^{ |
MLB Showdown | DraftKings | ^{ |
请注意,您也可以为您选择的任何游戏调整draftfast
,即使它没有在库中实现(prs welcome!)。使用RuleSet
类,您可以生成自己的游戏规则,其中包含特定数量的玩家、工资等。示例:
fromdraftfastimportrulesgolf_rules=rules.RuleSet(site=rules.DRAFT_KINGS,league='PGA',roster_size='6',position_limits=[['G',6,6]],salary_max=50_000,)
设置
用法示例:
classShowdown(Roster):POSITION_ORDER={'M':0,'F':1,'D':2,'GK':3,}showdown_limits=[['M',0,6],['F',0,6],['D',0,6],['GK',0,6],]soccer_rules=rules.RuleSet(site=rules.DRAFT_KINGS,league='SOCCER_SHOWDOWN',roster_size=6,position_limits=showdown_limits,salary_max=50_000,general_position_limits=[],)player_pool=salary_download.generate_players_from_csvs(salary_file_location=salary_file,game=rules.DRAFT_KINGS,)roster=run(rule_set=soccer_rules,player_pool=player_pool,verbose=True,roster_gen=Showdown,)
PlayerPoolSettings
min_proj
max_proj
min_salary
max_salary
min_avg
max_avg
OptimizerSettings
stacks
-对象的列表。示例:
roster=run(rule_set=rules.DK_NHL_RULE_SET,player_pool=player_pool,verbose=True,optimizer_settings=OptimizerSettings(stacks=[Stack(team='PHI',count=3),Stack(team='FLA',count=3),Stack(team='NSH',count=2),]),)
LineupConstraints
locked
-要锁定的玩家列表banned
-要禁止的玩家列表groups
-玩家组约束列表。见下文
roster=run(rule_set=rules.DK_NFL_RULE_SET,player_pool=player_pool,verbose=True,constraints=LineupConstraints(locked=['Rob Gronkowski'],banned=['Mark Ingram','Doug Martin'],groups=[[('Todd Gurley','Melvin Gordon','Christian McCaffrey'),(2,3)],[('Chris Carson','Mike Davis'),1],]))
no_offense_against_defense
-不允许进攻球员在优化的阵容中与防守球员进行匹配。目前只适用于足球,nhl和nfl——欢迎使用prs!
CSV上传
fromdraftfast.csv_parseimportuploadersuploader=uploaders.DraftKingsNBAUploader(pid_file='./pid_file.csv',)uploader.write_rosters(rosters)
支持和咨询
dfs优化只是可持续战略的一部分。长期dfs获奖者拥有最好的:
- 玩家预测
- 资金管理
- 比赛多样化
- 不同阵容的多样化(参见
draftfast.exposure
) - 研究过程
- 比赛时间阵容改变前1小时
- …还有更多
Draftfast提供支持和咨询服务,可以帮助解决所有这些问题。Let's get in touch today。
学分
特别感谢swanson,他是this repo的作者,这是本书的灵感来源。
当前项目维护人员: