# Sf Market Fit

> Find StrategyFactory strategies that are winning RIGHT NOW in the current market regime — accelerating 7-day returns, strong 30-day, with edge still intact. Use when the user asks "what's working this week / which strategies fit the current market / find strategies that match BTC's regime / show me what's hot the last 7 days". Read-only.

- Skill: `daviddme/sf-market-fit` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add daviddme/sf-market-fit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/daviddme/sf-market-fit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: daviddme (https://skillmd.com/u/daviddme)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/daviddme/sf-market-fit

---


# sf-market-fit

"Best strategy of the year" and "best strategy this week" are not the same
thing. This skill picks strategies that are *winning in the current
market*, not strategies with a fat 90-day backtest that has since gone
cold.

## Signal

For every candidate, compute annualized returns over three windows:

```
ann_7  = pct7Days  × (365/7)
ann_30 = pct30Days × (365/30)
ann_90 = pct90Days × (365/90)
```

Then label:

- `accelerating` — `ann_7 > ann_30 > ann_90` and 7d positive (best fit)
- `steady` — recent windows positive and not collapsing
- `fading` — 7d down sharply vs 30d (recent regime hostile)
- `stale` — 30d non-positive or PF below 1.1 (not a current edge)

Only `accelerating` and `steady` make the cut. `fading` is rejected here
but surfaced by [`sf-edge-watch`](../sf-edge-watch/SKILL.md).

## When to use

- "What strategies are working this week?"
- "Find me strategies that fit the current market"
- "Which edges are accelerating?"

## How to run

```
python sf-market-fit/fit.py \
  [--top N]                # default 10
  [--prescreen N]          # default 150
  [--min-pf X]             # default 1.2
  [--min-trades N]         # default 30
  [--pair CSV] [--timeframe CSV]
  [--include-fading]       # surface fading/stale too, with labels
  [--json]
```

## Output

Ranked table with score, label (accelerating/steady/fading/stale), and the
3 recency windows so the user can see what changed.

