Python coder for Polymarket API Trading Bot
Only freelancers located in the U.S. may apply.U.S. located freelancers only
1. Project Overview I am seeking an experienced developer to build a specialized, fully automated trading bot exclusively for Polymarket professional tennis markets. The bot will focus on a high-volume “percentage-shaving” approach: identifying clear player dominance situations and executing a large number of small-edge trades (targeting roughly 2–3% net gains per trade after fees) that compound over time. Scope is strictly limited: Polymarket only • Professional tennis only • High-volume small-percentage trades only • Python only • Must run natively on a new MacBook Pro (Apple Silicon / macOS). No other sports, no other prediction markets, and no large directional bets. 2. Core Trading Strategy The primary edge is “percentage shaving” on high-probability outcomes when one player is clearly more dominant than the other. Key Principles • High volume, small edges: Execute many trades per day/week aiming for consistent 2–3% net gains after fees and slippage. The goal is compounding through frequency rather than large single-trade returns. • Dominance filter: Only enter when one player shows clear superiority based on the data signals below. Avoid coin-flip or closely matched matches. • Percentage-shaving mechanics: Typically buy the high-probability side (e.g., 0.90–0.97 range) when the market underprices the dominant player relative to our model, or apply complementary complete-set / near-resolution logic where appropriate. Hold or exit according to predefined rules that lock small gains repeatedly. • Strict risk rules: Position sizing limits, daily loss caps, maximum exposure per match, and automatic kill switches are mandatory. 3. Data Requirements – Sofascore Integration The bot must scrape or reliably ingest live and historical data from Sofascore.com (or equivalent public tennis data sources if Sofascore becomes restricted). Priority signals: 1. UTR Disparity – Universal Tennis Rating difference between the two players. Larger gaps increase confidence in the dominant side. 2. Serve Dominance – Metrics showing one player’s superior serving performance (hold percentage, aces, first-serve points won, etc.). 3. Break-of-Serve Dominance – Ability to break the opponent’s serve (break points converted, return points won, etc.). These three signals should be combined into a clear “dominance score” or set of filters that decide whether a match qualifies for entry and which side is favored. The developer should propose a clean, tunable implementation of this logic. 4. Technical Requirements • Language: Python only (no TypeScript or other languages). • Platform Compatibility (Critical): The bot must run natively on a new MacBook Pro (Apple Silicon M-series chips + current macOS). It should work out of the box with standard Python on macOS. Avoid any Windows-only or Linux-only dependencies. • Platform: Polymarket CLOB API only (official Python client preferred – current py-clob-client / V2 equivalents). • Markets: Professional tennis match markets exclusively (ATP, WTA, and relevant Challenger/ITF events that appear on Polymarket with sufficient liquidity). • Execution: Real-time WebSocket order-book monitoring, EIP-712 order signing, limit / FOK-style orders where beneficial, fill monitoring, and automatic cancellation of unfilled orders. • Data pipeline: Robust Sofascore scraping or API ingestion (with fallback handling if the site changes), rate-limit respect, and local caching. • Risk engine: Hard-coded or config-driven position size limits, daily loss limits, max concurrent matches, and emergency kill switch. • Modes: Full paper-trading / dry-run mode that uses live market data but places no real orders. Easy switch to live. • Logging & Alerts: Detailed trade logs, decision rationale (why a match was taken or skipped), and Telegram (or Discord) notifications for entries, exits, and errors. • Deployment: Must be able to run locally on a MacBook Pro. Optionally also deployable on a standard VPS (Ubuntu). Clear setup documentation and configuration via .env or simple config file. 5. Expected Deliverables 1. Fully working Python source code with clean structure and comments that runs on macOS / MacBook Pro. 2. Paper-trading mode that can run continuously against live Polymarket tennis markets. 3. Configurable parameters for dominance thresholds, target price bands (e.g., 0.92–0.97), position sizing, and risk limits. 4. Documentation: setup guide (including macOS / MacBook Pro instructions), strategy explanation, parameter reference, and how to switch from paper to live. 5. Short video demonstrating the bot scanning markets, applying filters, and placing (or simulating) trades. 6. Important Notes for Developers • Security first: I will never share private keys. The bot must support paper mode and allow me to control the wallet / API credentials myself. • No guarantees requested: I understand markets are competitive. Focus on clean, reliable execution of the defined logic. • Start simple: Prefer a solid, well-tested core (dominance filters + percentage-shaving entries + risk controls) over overly complex AI. • Communication: Please confirm prior experience with Polymarket CLOB and with web scraping of sports data sites. Also confirm the bot will run cleanly on a new MacBook Pro (Apple Silicon). 7. Next Steps If this project interests you, please reply with: 1. A short summary of relevant experience (Polymarket / CLOB / tennis data / trading bots). 2. Proposed tech stack and rough timeline (must be Python + MacBook Pro compatible). 3. Estimated cost (fixed price preferred for the initial version). 4. Any questions about the dominance signals or percentage-shaving rules. Looking forward to working with a developer who can deliver a clean, reliable, and tightly scoped tennis percentage-shaving bot on Polymarket that runs natively on a MacBook Pro. Thank you.
$500.00
Fixed-price- ExpertExperience Level
- Remote Job
- One-time projectProject Type
Skills and Expertise
Activity on this job
- Proposals:Less than 5
- Last viewed by client:yesterday
- Interviewing:2
- Invites sent:7
- Unanswered invites:2
About the client
- United States6:44 AM
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by