Split-bereinigte Kurse (Adjusted Close) von AlphaVantage

Hi Ihr,

ich versuche gerade in PP split-bereinigte Daten von AlphaVantage einzupflegen, was aber nicht so recht klappen will. Ich bekomme in PP immer nur die unbereinigten Daten.

Beispiel Apple (Lieferant: AlphaVantage, Symbol APC.DEX):

Per API bekomme ich aber von AlphaVantage auch die AdjustedClose-Daten:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=APC.DEX&apikey=APIKEY&outputsize=full

Gibt es da einen Weg, PP dazu zu bringen den AdjustedClose zu holen und zu nutzen? Mache ich etwas falsch?

Danke!

EDIT:
Ich sehe gerade: PP nutzt offenbar die API TIME_SERIES_DAILY. Bekommt daher auch keine adjustedClose. Könnte PP auch TIME_SERIES_DAILY_ADJUSTED nutzen?

Ich vermute Du benutzt AlphaVantage so?
Bildschirmfoto_2021-01-24_13-42-23

Wenn Du es so benutzt
Bildschirmfoto_2021-01-24_13-42-53
und als Link https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=IBM&apikey=demo nutzt, gibt es bestimmt die Möglichkeit Pfad zu Datum bzw. Kurs sinnvoll zu befüllen, so das es funktioniert. Gibts hier im Forum einige Beispiele, zwar nicht zu AlphaVantage - aber hilfreich.

1 Like

Ok, danke dir, werde ich mir ansehen und versuchen, diese beiden Pfadangaben auszutüfteln.

Wenn das der AlphaVantage-Downloader von Haus aus können würde, wäre das natürlich auch klasse :slight_smile:

Also meiner bescheidenen Meinung nach, ist das momentan nicht möglich mit der Methode, weil man nicht an die Datumsangaben kommt.

PP nutzt wohl GitHub - json-path/JsonPath: Java JsonPath implementation für die JSON-Pfadangaben. Aber auch die neueste Version 2.5.0 von der Library unterstützt noch nicht die Funktion keys(), die wohl notwendig wäre, um an die Datumsangaben zu kommen, da die Datumsangabe nur als Schlüssel eines JSON-Objekts vorliegen.

Beispiel:

{
    "Meta Data": {
        "1. Information": "Daily Time Series with Splits and Dividend Events",
        "2. Symbol": "APC.DEX",
        "3. Last Refreshed": "2021-01-22",
        "4. Output Size": "Full size",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2021-01-22": {
            "1. open": "111.2",
            "2. high": "113.0",
            "3. low": "111.1",
            "4. close": "112.52",
            "5. adjusted close": "112.52",
            "6. volume": "139404",
            "7. dividend amount": "0.0000",
            "8. split coefficient": "1.0"
        },
        "2021-01-21": {
            "1. open": "109.9",
            "2. high": "112.22",
            "3. low": "109.5",
            "4. close": "111.96",
            "5. adjusted close": "111.96",
            "6. volume": "159139",
            "7. dividend amount": "0.0000",
            "8. split coefficient": "1.0"
        },
        "2021-01-20": {
            "1. open": "105.66",
            "2. high": "109.0",
            "3. low": "105.52",
            "4. close": "108.84",
            "5. adjusted close": "108.84",
            "6. volume": "82524",
            "7. dividend amount": "0.0000",
            "8. split coefficient": "1.0"
        }

   }
}

Geht dann meiner Meinung erst mit einer neuen Version der JsonPath-Lib (die dann hoffentlich keys()mitbringt), die dann auch in PP integriert werden müsste.

Übersehe ich was bzw. jemand noch eine Idee?

Sorry, ich bin davon ausgegangen, das das „eingebaute“ AlphaVantage auch mit JSON arbeitet, aber da wird wohl der Umweg über csv genutzt.

WebAccess webaccess = new WebAccess("www.alphavantage.co", "/query") //
                            .addParameter("function", "TIME_SERIES_DAILY") //
                            .addParameter("symbol", security.getTickerSymbol()) //
                            .addParameter("apikey", apiKey) //
                            .addParameter("datatype", "csv") //
                            .addParameter("outputsize", outputSize.name().toLowerCase(Locale.US));

Wenn man den Umweg über Lieferant JSON nutzt, dann ist es ja eigentlich egal, was PP intern für Lieferant AlphaVantage nutzt, da man ja sowieso eine eigene URL angibt und dann datatype=csv weglassen könnte.

Wer sich daran versuchen will, aus der AlphaVantage JSON-Antwort die entsprechenden Daten per JsonPath raus zu parsen, kann das hier im Browser tun:
https://jsonpath.herokuapp.com/

Vielleicht liegt’s auch an mir, aber ich ich fürchte, der aktuelle Stand der Lib, gibt es nicht her.