Przejdź do treści
Biblioteka skilli
Finanse i księgowość · Analiza

fund-comparison

/fund-comparison

Porównuje pozycje funduszy hedgingowych między dwoma kwartałami na podstawie 13F, wskazując największe zwiększenia i redukcje oraz aktywność wybranego funduszu.

Licencja
MIT
Ostatnia zmiana repozytorium
02.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 02.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Porównuje pozycje funduszy hedgingowych między dwoma kwartałami na podstawie 13F, wskazując największe zwiększenia i redukcje oraz aktywność wybranego funduszu.

Wyzwalacze z opisu

change from Q2 to Q3increased investmenttop buys/sells
Oryginalny opis (EN)

Compare hedge fund holdings between two quarters to identify changes in investment positions. Use this skill when analyzing Q-over-Q changes in fund portfolios, finding top increased/decreased positions, or tracking specific fund activity across reporting periods. Triggers on questions about "change from Q2 to Q3", "increased investment", "top buys/sells", or any cross-quarter 13F comparison.

Jak działa

  1. Overview
  2. Step-by-Step Workflow
  3. Notes
Sekcje z nagłówków SKILL.md, w oryginale · 88 linii, 325 słów
Podgląd SKILL.md
---
name: fund-comparison
description: Compare hedge fund holdings between two quarters to identify changes in investment positions. Use this skill when analyzing Q-over-Q changes in fund portfolios, finding top increased/decreased positions, or tracking specific fund activity across reporting periods. Triggers on questions about "change from Q2 to Q3", "increased investment", "top buys/sells", or any cross-quarter 13F comparison.
---

# Fund Quarter-over-Quarter Comparison Skill

## Overview

Compare a fund's holdings between two quarters to find the biggest changes in investment positions by dollar value or share count.

## Step-by-Step Workflow

### Step 1: Get Accession Numbers for Both Quarters

```python
import pandas as pd

def find_fund_accession(quarter_dir, search_term):
    cover = pd.read_csv(f'{quarter_dir}/COVERPAGE.tsv', sep='\t', dtype=str)
    mask = cover['FILINGMANAGER_NAME'].str.contains(search_term, case=False, na=False)
    results = cover[mask][['ACCESSION_NUMBER', 'FILINGMANAGER_NAME', 'ISAMENDMENT']]
    # Prefer non-amended filing, or latest amendment
    return results

q2_acc = find_fund_accession('/root/2025-q2', 'berkshire')
q3_acc = find_fund_accession('/root/2025-q3', 'berkshire')
print("Q2:", q2_acc)
print("Q3:", q3_acc)
```

### Step 2: Load Holdings for Both Quarters

```python
q2_info = pd.read_csv('/root/2025-q2/INFOTABLE.tsv', sep='\t', dtype=str)
q3_info = pd.read_csv('/root/2025-q3/INFOTABLE.tsv', sep='\t', dtype=str)

q2_holdings = q2_info[q2_info['ACCESSION_NUMBER'] == q2_accession][['CUSIP', 'NAMEOFISSUER', 'VALUE', 'SSHPRNAMT']].copy()
q3_holdings = q3_info[q3_info['ACCESSION_NUMBER'] == q3_accession][['CUSIP', 'NAMEOFISSUER', 'VALUE', 'SSHPRNAMT']].copy()
```

### Step 3: Convert Numeric Columns

```python
q2_holdings['VALUE'] = pd.to_numeric(q2_holdings['VALUE'], errors='coerce').fillna(0)
q3_holdings['VALUE'] = pd.to_numeric(q3_holdings['VALUE'], errors='coerce').fillna(0)
q2_holdings['SSHPRNAMT'] = pd.to_numeric(q2_holdings['SSHPRNAMT'], errors='coerce').fillna(0)
q3_holdings['SSHPRNAMT'] = pd.to_numeric(q3_holdings['SSHPRNAMT'], errors='coerce').fillna(0)
```

### Step 4: Aggregate by CUSIP (handle duplicate rows per CUSIP)

```python
q2_agg = q2_holdings.groupby('CUSIP').agg({'VALUE': 'sum', 'SSHPRNAMT': 'sum', 'NAMEOFISSUER': 'first'}).reset_index()
q3_agg = q3_holdings.groupby('CUSIP').agg({'VALUE': 'sum', 'SSHPRNAMT': 'sum', 'NAMEOFISSUER': 'first'}).reset_index()
```

### Step 5: Merge and Calculate Changes

```python
merged = pd.merge(
    q3_agg.rename(columns={'VALUE': 'v_q3', 'SSHPRNAMT': 's_q3'}),
    q2_agg.rename(columns={'VALUE': 'v_q2', 'SSHPRNAMT': 's_q2', 'NAMEOFISSUER': 'name_q2'}),
    on='CUSIP', how='outer'
).fillna(0)

# Use Q3 name where available, else Q2
merged['NAME'] = merged['NAMEOFISSUER'].where(merged['NAMEOFISSUER'] != 0, merged['name_q2'])
merged['value_change'] = merged['v_q3'] - merged['v_q2']
merged['share_change'] = merged['s_q3'] - merged['s_q2']
```

### Step 6: Get Top 5 Increases

```python
# By dollar value increase
top5 = merged.nlargest(5, 'value_change')[['CUSIP', 'NAME', 'v_q2', 'v_q3', 'value_change']]
print(top5)

# Answer: list of CUSIPs
cusips = top5['CUSIP'].tolist()
print("Top 5 CUSIPs:", cusips)
```

## Notes

- VALUE is in thousands of USD in INFOTABLE
- Some holdings may appear in only one quarter (new buys or complete sells)
- `outer` join ensures stocks held in only one quarter are included (value=0 for missing quarter)
- When a fund has amendments, typically use the most recent (highest amendment number)
- Berkshire Hathaway files under "BERKSHIRE HATHAWAY INC" — search for "berkshire"

Wersje

RepozytoriumWynikLicencja
Ta strona · cxcscmu/SkillLearnBench100MIT
kael-odin/codex-plugins-zh86MIT

Migawka bazy z 28.10.2026 · wersja paczki 6103ed9478db (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 9013f-analyzer
    Analizuje zbiory danych SEC 13-F w formacie TSV: liczbę pozycji, AUM i zmiany portfeli funduszy między dwoma kwartałami.
  • 100sec-13f-analysis
    Analizuje dane SEC 13F z plików TSV: pozycje funduszy hedgingowych, AUM, portfele zarządzających i porównania kwartalne.
  • 100china-roll-forward
    Przesuwa zapisy księgowe funduszy na nowe okresy sprawozdawcze według chińskich wymogów administracji funduszy.
  • 100china-break-trace
    Prowadzi analizę śledczą pozycji funduszy A-share i spółek portfelowych w kontekście administracji funduszy i chińskich standardów rynkowych.
  • 95fund-portfolio-single-fund-paginated
    Pobiera szczegółowe pozycje funduszu po kodzie: akcje, obligacje zamienne, z ilością, wartością i udziałem w aktywach.
  • 100investment-fund-manager
    Wspiera zarządzającego funduszem inwestycyjnym: decyzje o alokacji portfela, ocena ekspozycji na ryzyko, wybór kupna, sprzedaży lub trzymania oraz komunikacja wyników i strategii do inwestorów.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.