Skip to content
Back to skills

Betting Strategy

ASecurity

Details the core betting strategy, including edge calculation, sport-specific thresholds, Kelly Criterion sizing, and portfolio optimization.

  • 666 stars
  • 0 votes
  • 3 copies
  • 33 views
  • Added February 8, 2026
datapython

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill betting-strategy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Betting Strategy?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Betting Strategy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-betting-strategy/badge)](https://www.skillsdirectory.com/skills/majiayu000-betting-strategy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: betting-strategy
description: Details the core betting strategy, including edge calculation, sport-specific thresholds, Kelly Criterion sizing, and portfolio optimization.
version: 1.0.0
---

# Betting Strategy

## Edge Calculation

```python
edge = elo_probability - market_probability
```

A bet is recommended when:
1. `elo_prob > threshold` (high confidence)
2. `edge > 0.05` (5%+ edge over market)

## Sport Thresholds

| Sport | Threshold | Min Edge | Notes |
|-------|-----------|----------|-------|
| NBA   | 73%       | 5%       | High-scoring, predictable |
| NHL   | 66%       | 5%       | High variance sport |
| MLB   | 67%       | 5%       | Lower home advantage |
| NFL   | 70%       | 5%       | Small sample size |

## Confidence Levels

```python
def get_confidence(elo_prob, threshold):
    if elo_prob > threshold + 0.10:
        return "HIGH"
    elif elo_prob > threshold:
        return "MEDIUM"
    return None  # Don't bet
```

## Lift/Gain Analysis

Validate model quality by decile:

```python
from lift_gain_analysis import analyze_sport

overall, current = analyze_sport('nba')

# Key metrics:
# - Lift > 1.0: Better than random
# - Top decile lift > 1.3: Strong signal
# - Gain %: Cumulative wins captured
```

**Interpretation:**
- Decile 10 (highest prob): Should have highest lift
- If lift < 1.0 in high deciles, model is miscalibrated
- Set threshold where lift starts exceeding 1.2-1.3

## Kelly Criterion

Optimal bet sizing:

```python
def kelly_fraction(win_prob, odds):
    """Calculate Kelly bet fraction."""
    # odds in decimal format (2.0 = even money)
    q = 1 - win_prob
    b = odds - 1
    return (win_prob * b - q) / b

# Use fractional Kelly (25-50%) to reduce variance
bet_fraction = kelly_fraction(prob, odds) * 0.25
```

## Portfolio Optimization

```python
from portfolio_optimizer import optimize_bets

# Optimize across all opportunities
optimized = optimize_bets(
    opportunities=bets,
    bankroll=1000,
    max_exposure=0.10,  # 10% max per bet
    correlation_penalty=0.5  # Reduce correlated bets
)
```

## Bet Tracking

All bets saved to `placed_bets` table:

```python
default_db.execute("""
    INSERT INTO placed_bets
    (bet_id, game_id, sport, ticker, side, amount, price, elo_prob, edge, placed_at)
    VALUES (...)
""")
```

## CLV (Closing Line Value)

Track if we beat the closing line:

```python
from clv_tracker import calculate_clv

clv = calculate_clv(bet_id)
# Positive CLV = consistently beating market
```

## Files to Reference

- `plugins/portfolio_optimizer.py` - Kelly and optimization
- `plugins/lift_gain_analysis.py` - Model validation
- `plugins/clv_tracker.py` - CLV tracking
- `docs/VALUE_BETTING_THRESHOLDS.md` - Threshold analysis

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.