Kurslieferant Swiss Fund Data für historische kurse von schweizer Fonds

Hallo

Ich binn ein langjähriger Nutzer von Portfolio Performance und nutze dies wöchentlich.

Ich habe festgestellt dass nun in meiner Säule 3a von Finpension in der Schweiz neue Swisscanto Fonds hinzugefügt wurden die neu aufgelegt wurden.

Dazu gibt es meines wissens nach nur Historische Kurse auf Swiss Fund Data da dies auch Institutionelle Fonds sind.

Als Beispiel CH1529090479 und CH1529059946

Die Historischen daten können als CSV im Dropdown bei Fondspreise heruntergeladen werden.

Währe es möglich diese Kurse automatisch von der Website zu holen?

Wie kann ich allenfalls die CSV manuell einlesen?

Vielen Dank und Freundliche Grüsse

Ein freundlich gemeinter Hinweis, die Suche oben rechts funktioniert und spart Zeit.

Was du suchst findest du auch im Handbuch:

1 Like

Danke für die Rückmeldung

Ich konnte ein Skript machen der mir die kurse Downloaded diese fur PP convertiert und ein output als CSV gibt. Dafür einfach diese Datein in einem Ordner speichern:

Die gewünschten downloads als “funds.txt” speichern beispiel:

Swisscanto (CH) Index Equity Fund Large Caps Switzerland NMT
CH1529090479
https://www.swissfunddata.ch/sfdpub/de/funds/excelData/194865

Swisscanto (CH) Index Equity Fund Small & Mid Caps Switzerland NMT CHF
CH1529059946
https://www.swissfunddata.ch/sfdpub/de/funds/excelData/194863

Swisscanto (CH) Index Equity Fund Emerging Markets NT CHF
CH0117044971
https://www.swissfunddata.ch/sfdpub/de/funds/excelData/35971

Dann folgenden code als “convert_pp.ps1”

param(
    [string]$ListFile = ".\funds.txt",
    [string]$OutDir = ".\output",
    [string]$PriceColumn = "Chart Price"
)

$ErrorActionPreference = "Stop"

# Ordner erstellen
$OutDir = Resolve-Path -LiteralPath (New-Item -ItemType Directory -Path $OutDir -Force)

if (!(Test-Path $ListFile)) {
    throw "Die Datei $ListFile wurde nicht gefunden."
}

$lines = Get-Content $ListFile | Where-Object { $_ -ne "" }

if ($lines.Count % 3 -ne 0) {
    throw "Die funds.txt ist fehlerhaft. Jede Fondsdefinition muss genau 3 Zeilen haben (Name, ISIN, URL)."
}

for ($i = 0; $i -lt $lines.Count; $i += 3) {

    $Name = $lines[$i].Trim()
    $ISIN = $lines[$i+1].Trim()
    $Url  = $lines[$i+2].Trim()

    Write-Host "--------------------------------------------"
    Write-Host "[i] Verarbeite Fonds:" $Name
    Write-Host "    ISIN:" $ISIN
    Write-Host "    URL :" $Url

    # Temporäre Datei
    $TmpFile = Join-Path $env:TEMP ("pp_dl_{0}.csv" -f (Get-Random))

    # Download
    Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile $TmpFile

    if (!(Test-Path $TmpFile) -or ((Get-Item $TmpFile).Length -eq 0)) {
        Write-Host "[!] Download fehlgeschlagen!" -ForegroundColor Red
        continue
    }

    $rows = Get-Content $TmpFile
    $skip = 0
    if ($rows[0] -match "^sep=") { $skip++ }
    if ($rows[$skip] -notmatch "^Date;") { $skip++ }

    $data = $rows | Select-Object -Skip $skip
    $csv = $data | ConvertFrom-Csv -Delimiter ";"

    if (-not ($csv | Get-Member -Name $PriceColumn -ErrorAction SilentlyContinue)) {
        Write-Host "[!] Spalte $PriceColumn nicht gefunden!" -ForegroundColor Red
        continue
    }

    # Dateiname erzeugen
    $cleanName = ($Name -replace '[^A-Za-z0-9]+','_')
    $OutFile = Join-Path $OutDir ("${cleanName}_${ISIN}.csv")

    # Speichern im PP‑Format
    $csv |
      Select-Object `
        @{Name="Date"; Expression={ $_.Date }},
        @{Name="Close"; Expression={ ($_.("$PriceColumn") -replace ',', '.') }} |
      Export-Csv -Delimiter ";" -NoTypeInformation -Encoding UTF8 -LiteralPath $OutFile

    Write-Host "[ok] Gespeichert unter:" $OutFile
}

Write-Host "--------------------------------------------"
Write-Host "[done] Alle Fonds verarbeitet."

Und auch die “run.bat” im selben Ordner speichern:

@echo off
setlocal

powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0convert_pp.ps1"

echo.
echo ===== FERTIG – Taste drücken =====
pause

Das Ergebnis ist ein Output ordner im selben verzeichnis der die fertigen CSV enthält welche in PP eingelesen werden können.

Könnte dieser prozess nun direkt in PP integriert werden sprich Swiss Fund Data als Kurs lieferant wo man dann disen Link angibt?

Vielen Dank

In PP hinterlegte Kursquellen verarbeiten keine csv files.
Weiterhin würde es keinen Sinn machen täglich oder wöchentlich csv‘s zu importieren.

@AndreasB

Meine frage ist, kann jemand dies in PP implementieren dass man diesen Link angibt und PP sich die Daten automatisch zieht…?

Ähnlich wie dazumals bei den CS Fonds von Viac

So was hatte ich mal kurz probiert, siehe VIAC Invest in Portfolio Performance einbinden - #10 by ProgFriese
Da ich aber zu wenig davon verstehe, mit Eclipse und git auf Kriegsfuß stehe, und ich selbst keine csv-Quelle benötige, hatte ich das einfach mal in den VIAC Invest Faden geschmissen, wurde dort aber nicht aufgegriffen.

Kann das nun jemand implementieren dass man die URL angibt und die kurse von PP gezogen werden?

Können vielleicht. Ob sich wer findet der seine Zeit investiert wird die Zeit zeigen.

Hallo Snowly

Ich stehe vor dem selben Problem mit dem “easy Invest” von Swissquote. Ich weiss nicht mal im Ansatz, wie ich das abbilden soll.

Und mit meinem Säule 3a von TrueWealth stehe ich auch vor einem Rätsel…

Weisst Du inzwischen mehr?

Grüsse zu Dir
Markus