This repository contains a tool designed to identify and exploit arbitrage opportunities across various sportsbooks.
- Scans multiple sportsbooks for potential arbitrage opportunities
- Supports the following sportsbooks:
- DraftKings
- FanDuel
- BetRivers
- Utilizes a separately parsed aggregator for overall arbitrage analysis
- Implements recurring jobs using node-cron for reliable scheduling
Currently, the tool supports the following sportsbooks:
- DraftKings
- FanDuel
- BetRivers
Additionally, it uses a separate aggregator to provide an overall view of arbitrage opportunities across all supported platforms.
The project uses node-cron for scheduling and executing recurring jobs. This decision was made after encountering issues with the desired behavior when using BullMQ.
We poll for arbitrage opportunities every 5 minutes. Our current threshold for arbitrage is a hold of 3% or more. Upon finding arbitrage opportunities, we send an email to all contacts in our database.
You need a bunch of env variables. Namely: DATABASE_URL SCRAPINGBEE_USERNAME SCRAPINGBEE_PASSWORD EMAIL_USER EMAIL_PASS REDIS_HOST REDIS_PORT
Ask for access to the scrapingbee account and email.
cd app/prisma && yarn prisma generate
yarn dev and navigate to http://localhost:3000/
There is a separate repo, arb-backend, that contains the backend for the arbitrage finder. This is where the arbitrage opportunities are actually calculated.
We use a FastAPI server to perform computations and optimizations, bc why not Must run this concurrently: https://github.com/adb262/arb-backend