Arbitrage Strategies
This guide covers arbitrage opportunities in Seesaw prediction markets and how to profit from price inefficiencies.
What is Arbitrage?
Arbitrage exploits price discrepancies to generate risk-free (or low-risk) profits.
YES + NO Arbitrage
The most fundamental arbitrage opportunity in binary markets.
The Core Relationship
In a binary market:
YES share + NO share = 1 USDC (guaranteed)
If market prices deviate from this relationship, arbitrage exists.
Identifying Opportunities
| Condition | Opportunity | Action |
|---|---|---|
| YES + NO < 10000 bps | Buy both (risk-free) | Buy YES + Buy NO |
| YES + NO > 10000 bps | Sell both (if you own) | Sell YES + Sell NO |
| YES + NO = 10000 bps | No arbitrage | Market is efficient |
Example: Underpriced Market
Market prices:
YES @ 0.48 (4800 bps)
NO @ 0.48 (4800 bps)
Total: 0.96 (9600 bps)
Arbitrage:
├── Buy 100 YES @ 0.48 = 48 USDC
├── Buy 100 NO @ 0.48 = 48 USDC
├── Total cost: 96 USDC
└── Guaranteed payout: 100 USDC
Profit: 4 USDC (4.17% risk-free)
Example: Overpriced Market
Market prices:
YES @ 0.55 (5500 bps)
NO @ 0.50 (5000 bps)
Total: 1.05 (10500 bps)
If you own shares:
├── Sell 100 YES @ 0.55 = 55 USDC
├── Sell 100 NO @ 0.50 = 50 USDC
├── Total received: 105 USDC
└── Liability: 100 USDC (either YES or NO pays out)
Profit: 5 USDC
Price Convergence Near Market Close
As markets approach resolution, prices converge toward true probabilities.
Trading Convergence
| Time Remaining | Behavior | Strategy |
|---|---|---|
| > 10 minutes | High uncertainty, wide spreads | Speculative trading |
| 5-10 minutes | Prices start trending | Follow momentum |
| 2-5 minutes | Strong directional moves | Trade with conviction |
| < 2 minutes | Near-certain outcome visible | Arbitrage mispriced positions |
Last-Minute Arbitrage
When the oracle price clearly indicates the outcome:
Scenario: 30 seconds left, price clearly UP
Market prices (stale):
YES @ 0.80
NO @ 0.25
Actual probabilities:
YES should be ~0.99 (price clearly above start)
NO should be ~0.01
Opportunity:
└── Buy YES @ 0.80, expect 1.00 payout
Profit: 0.20 per share (25% return)
Cross-Market Arbitrage
When multiple markets exist for related assets.
Correlated Asset Arbitrage
If SOL and BTC markets show inconsistent pricing relative to their typical correlation:
Temporal Arbitrage
Across consecutive 15-minute markets:
| Condition | Opportunity |
|---|---|
| Market N ending UP | Market N+1 may start with bias |
| Strong momentum in Market N | Continue direction in N+1 |
| Mean reversion after big move | Fade the direction in N+1 |
Risk Considerations
Fee Impact
Arbitrage profits must exceed transaction costs.
Gross arbitrage: 100 bps (1%)
Costs:
├── Taker fee: 30 bps per trade
├── Two trades minimum: 60 bps
└── Net profit: 40 bps
Minimum viable arbitrage: ~60 bps to break even
Fee-Adjusted Analysis
| Gross Spread | Taker Fees | Net Profit | Viable? |
|---|---|---|---|
| 50 bps | 60 bps | -10 bps | No |
| 100 bps | 60 bps | 40 bps | Marginal |
| 200 bps | 60 bps | 140 bps | Yes |
| 400 bps | 60 bps | 340 bps | Strong |
Execution Risk
Liquidity Risk
| Risk | Impact | Mitigation |
|---|---|---|
| Thin order book | Large slippage | Check depth before trade |
| One-sided liquidity | Cannot complete both legs | Only trade liquid markets |
| Flash liquidity | Depth disappears mid-execution | Use limit orders |
Practical Implementation
Scanning for Opportunities
Monitor continuously:
Every tick:
1. Fetch best bid/ask for YES
2. Fetch best bid/ask for NO
3. Calculate YES_ask + NO_ask
4. If < 10000 - fees: Alert opportunity
5. Calculate YES_bid + NO_bid
6. If > 10000 + fees: Alert opportunity
Execution Strategy
Order Sizing
Calculate maximum profitable size:
Available at price:
YES ask @ 4800: 200 shares
NO ask @ 4900: 150 shares
Maximum size: min(200, 150) = 150 shares
Gross profit: (10000 - 4800 - 4900) × 150 / 10000 = 4.5 USDC
Fees: 60 bps × 150 / 10000 × 2 = ~1.8 USDC
Net profit: 2.7 USDC
Arbitrage Checklist
Before Trading
- Calculate gross spread (YES + NO vs 10000)
- Subtract expected fees (60 bps minimum)
- Verify liquidity on both sides
- Check time remaining (need enough for execution)
- Confirm no pending transactions
During Execution
- Execute both legs as close together as possible
- Use limit orders to control slippage
- Monitor for partial fills
- Have cancellation ready if one leg fails
After Trading
- Verify both positions filled
- Calculate actual vs expected profit
- Log trade for performance tracking
- Prepare for settlement
Common Mistakes
| Mistake | Consequence | Prevention |
|---|---|---|
| Ignoring fees | Negative arbitrage | Always include fees |
| Slow execution | Price moves away | Automated execution |
| Single leg fills | Directional exposure | Use IOC or cancel both |
| Oversizing | Market impact | Trade available depth |
| Ignoring time | Trapped before close | Set time limits |
Automation
Successful arbitrage requires speed. Manual trading rarely captures opportunities.
Requirements
| Component | Purpose |
|---|---|
| Price Monitor | Real-time YES/NO price tracking |
| Spread Calculator | Continuous arbitrage detection |
| Execution Engine | Sub-second order submission |
| Risk Manager | Position and exposure limits |
See Automation for implementation details.
Expected Returns
Realistic expectations for arbitrage:
| Market Efficiency | Opportunity Frequency | Typical Spread | Competition |
|---|---|---|---|
| Low (early markets) | Frequent | 100-500 bps | Low |
| Medium | Occasional | 50-150 bps | Moderate |
| High (mature) | Rare | < 50 bps | High |
As markets mature, arbitrage opportunities decrease due to:
- More sophisticated participants
- Automated arbitrageurs
- Better price discovery
Next Steps
- Review Market Making for related strategies
- Study Automation for implementation
- Understand Risks for comprehensive risk management