Yahoo! Finance API

Moderne Broker-Portale bie­ten ei­nem Investor die Möglichkeit, Kurse sei­ner Aktien bzw. Optionen ab­zu­ru­fen. Dort fin­det er in der Regel auch Kurs-Charts und Chart-Analyse-Kurven zu den un­ter­schied­lichs­ten Zeiträumen. Dem ein oder an­de­ren pri­va­ten Investor sind die­se Analysen viel­leicht nicht aus­rei­chend ge­nug. Es mag un­ter ih­nen Informatiker und Hobby-Programmierer ge­ben, die den Wunsch äu­ßern, mit Kursdaten ma­the­ma­ti­sche Analysen durch­zu­füh­ren, um Indikatoren selbst zu be­rech­nen. Nur wie ge­langt ein Programmierer an die ak­tu­el­len und his­to­ri­schen Zahlen ein­zel­ner Aktienkurse? Dieser Beitrag soll die Möglichkeiten der Yahoo!Finance-Schnittstelle nä­her brin­gen.
Für das Ermitteln un­ter­schied­li­cher Kursdaten bie­tet Yahoo!Finance (auch für Deutschland) ver­schie­de­ne CSV-Export-Services an. CSV steht für „Comma Separated Values“ und be­deu­tet hier nichts an­de­res, als dass die gan­zen Kennzahlen (wie z.B. Schluss-Kurs oder Volumen) in rei­ner Textform mit Kommas und Zeilenumbrüchen ge­trennt aus­ge­lie­fert wer­den. Daten in solch ei­nem Format kann ein Computerprogramm für Analysezwecke leicht ver­ar­bei­ten. Im Folgenden wer­den die be­kann­ten Schnittstellen ge­nau­er er­läu­tert und da­zu pas­sen­de Beispiele und PHP-Scripte prä­sen­tiert. Da mir kei­ne of­fi­zi­el­le API von Yahoo!Finance be­kannt ist und ich die hier be­schrie­be­ne Schnittstelle durch Ausprobieren und Studium er­mit­telt ha­be, kann ich für ei­ne Vollständigkeit des auf­ge­zeig­ten Funktionsumfanges nicht ga­ran­tie­ren. Für Hinweise bin ich da­her sehr dank­bar. Verwendet ein Entwickler die Services von Yahoo!Finance, so soll­te er sich vor­her die Nutzungsbedingungen (sie­he auch) ge­nau durch­le­sen.

Aktuelle Kursdaten ermitteln

Ganz ehr­lich, „ak­tu­ell“ be­deu­tet bei der kos­ten­lo­sen Yahoo!Finance-Schnittstelle lei­der ei­ne Verzögerung von 15 Minuten für NASDAQ Werte, bis hin zu 60 Minuten für an­de­re Börsenplätze (nä­he­res auf Yahoo!Finance). Doch für die meis­ten Verwendungszwecken bzw. west­li­chen Börsenkurse dürf­te die­se Verzögerung kein Problem dar­stel­len. Yahoo! bie­tet Kurse aus den un­ter­schied­lichs­ten Börsenplätzen an. Die Selektion des ent­spre­chen­den Handelsplatzes fin­det in der URL selbst, so­wie in ei­nem Anhang (Suffix) an der Symbolangabe statt. Im Kapitel „Länderunterschiede“ wer­den die Unterschiede auf­ge­lis­tet. Zum bes­se­ren Verständnis zei­ge ich hier nur die Basis-URL, wel­che vor al­lem für die US-Börsenkurse gül­tig ist. Das Ergebnis ist ei­ne Werteliste, die durch Kommas ge­trennt prä­sen­tiert wird. Die Serviceadressen für ak­tu­el­le Kursinformationen lau­tet http://finance.yahoo.com/d/quotes.csv? (al­ter­na­tiv http://download.finance.yahoo.com/d/quotes.csv?) und nimmt die fol­gen­den drei be­kann­ten Parameter ent­ge­gen:

Parameter Beschreibung
s= Das Symbol des Wertpapiers wird mit dem Parameter „s“ an­ge­ge­ben. Z.B. lie­fert hier „s=AAPL“ die ak­tu­el­len Kursdaten von Apple Inc. Eine Kombination meh­re­re durch ein Pluszeichen ge­trenn­te Symbole ist eben­falls mög­lich (zum Beispiel „s=AAPL+MSFT“ für Apple und Microsoft). Die Werte, ge­trennt durch Kommas, kom­men dann je­weils in ei­ne se­pa­ra­ten Zeile pro Symbol zu­rück.
f= Die Format-Codes wer­den hier mit dem Parameter „f“ an­ge­ge­ben. Dabei han­delt es sich hier um ei­nen Textzug mit lau­ter an­ein­an­der­ge­reih­ten Kürzel. So gibt z.B. das Zeichen „s“ an, dass das Symbol der Aktie aus­ge­ge­ben wer­den soll. „n“ lie­fert den Namen, „a“ den ak­tu­el­len Anfrage-Kurs. Die Werte wer­den ex­akt in der Reihenfolge aus­ge­ge­ben, wie sie hier an­ge­for­dert wer­den. Eine Liste al­ler be­kann­ten Format-Codes wird wei­ter un­ten um Kapitel „Die Format-Codes“ auf­ge­lis­tet. Beispiel: f=sna
e=.csv Die Exportart wird mit dem Parameter „e“ an­ge­ge­ben. Hier soll­te im­mer „e=.csv“ für ein „Comma Separated Values“ Ergebnis über­mit­telt wer­den. Erfahrungen ha­ben ge­zeigt, dass die­ser Parameter wohl op­tio­nal ist.

Das fol­gen­de Beispiel er­mit­telt von Apple und Microsoft das Symbol, den Firmen-Namen, den ak­tu­el­len Anfrage-Kurs und die da­zu ge­hö­ri­ge Zeit ab. Dabei sind Zeit und Kurswert im­mer län­der­spe­zi­fisch zu ver­ste­hen (US-Zeit und Dollar). Wenn Sie die­se URL in den Browser ein­ge­ben, kön­nen Sie das Ergebnis ab­spei­chern. Danach kön­nen Sie die Rohdaten in ei­nem Texteditor öff­nen und be­trach­ten (nicht mit Excel öff­nen, da hier die Formatierung nicht er­sicht­lich wird).

http://finance.yahoo.com/d/quotes.csv?s=AAPL+MSFT&f=snat1
---
"AAPL","APPLE INC",151.47,"3:31pm"
"MSFT","MICROSOFT CP",29.09,"3:31pm"

Ein Programm kann nun die­se Daten in ei­nem mehr­di­men­sio­na­len Array ab­le­gen. Dabei ent­hal­ten die Spalten die Inhalte der Werte, wel­che durch die Format-Codes an­ge­for­dert wur­den. Die Zeilen bil­den je­weils das Zahlentupel ei­nes Wertpapiers ab. Eine PHP-Funktion zur Ermittlung der Kursdaten könn­te so­mit fol­gen­der­ma­ßen aus­se­hen:

<?php
    /*
     * Getting cur­rent quo­tes:
     * Reading mul­ti­ble li­nes of va­lues in­to an ar­ray de­pen­ding on the gi­ven sym­bols and func­tion tags.
     * Each li­ne holds the va­lues of one sym­bol. In the ar­gu­ment, sym­bols are se­pa­ra­ted by "+".
     *
     * (c) Matthias Brusdeylins, 2008
     * License: CC-GNU GPL (http://creativecommons.org/licenses/GPL/2.0/)
     */    
    de­fi­ne ("QUOTES_URL", "http://finance.yahoo.com/d/quotes.csv?");
    func­tion loadYa­hoo­Quo­tes ($sym­bol,
                              $tags)
    {
        $lineCount = 0;
        $stocks = ar­ray();
        // load the stock quo­tes: we are ope­ning it for rea­ding
        // http://finance.yahoo.com/d/quotes.csv?s=  STOCK SYMBOLS  &f=  FORMAT TAGS
        $URL = QUOTES_URL."s=$symbol&f=$tags&e=.csv";
        $fi­le­Hand­le = fo­pen ($URL,"r");
        if ($fi­le­Hand­le) {
            // use the fgetcsv func­tion to store quo­te va­lues in­to an ar­ray $li­neVa­lues
            // one sym­bol in one li­ne
            do {
                $stock­Va­lues = fgetcsv ($fi­le­Hand­le, 999999, ",");
                if ($stock­Va­lues) {
                    $lineCount++;
                    $stocks[$lineCount] = $stock­Va­lues;
                }
            } while ($stock­Va­lues);
        fc­lo­se ($fi­le­Hand­le);
        } el­se {
            // ERROR-Message in the ar­ray
            $stocks[0][0] = "ERROR";
            $stocks[0][1] = "No da­ta found.";
        }
        re­turn $stocks;
    }
?>

Devisen

Sie kön­nen nicht nur ein­zel­ne Aktienkurse er­fra­gen, son­dern auch Devisenkurse. Dazu müs­sen Sie an der oben vor­ge­stell­ten Adresse als Symbol-Parameter ein spe­zi­el­les Konstrukt der Form AB=X über­mit­teln. Hier steht der Buchstabe A für die ers­te zu ver­glei­chen­de Währung und der Buchstabe B dann na­tür­lich für die zwei­te Währung. X steht wohl für Exchange und wird nicht er­setzt. Wollen Sie meh­re­re Währungen ab­fra­gen, kön­nen meh­re­re Konstrukte mit­tels dem Pluszeichen „+“ an­ein­an­der ge­hängt wer­den. Folgendes Beispiel soll dies ver­deut­li­chen:

http://quote.yahoo.com/d/quotes.csv?s=USDCAD=X+JPYUSD=X&f=nl1d1t1
---
"USD to CAD",1.0088,"4/4/2008","5:02pm"
"JPY to USD",0.0098,"4/4/2008","5:26pm"

Die Kürzel der Währungen be­stehen aus drei Buchstaben und wer­den hier auf­ge­lis­tet:

Land Kürzel
Afganistan Afghani AFA
Albanian Lek ALL
Algerian Dinar DZD
Argentinian Peso ARS
Aruban Florin AWG
Australian Dollar AUD
Austrian Schilling ATS
Bahraini Dinar BHD
Bangladesh Taka BDT
Barbados Dollar BBD
Belgian Franc BEF
Belize Dollar BZD
Bermuda Dollar BMD
Bhutan Ngultrum BTN
Bolivian Boliviano BOB
Botswana Pula BWP
Brazilian Real BRL
British Pound GBP
Brunei Dollar BND
Bulgarian Lev BGN
Cambodian Riel KHR
Canadian Dollar CAD
Cape Verde Escudo CVE
Cayman Islands Dollar KYD
CFA Franc (BCEAO) XOF
CFA Franc(BEAC) XAF
CFP Franc XPF
Chilean Peso CLP
Colombian Peso COP
Comoros Franc KMF
Costa Rican Colon CRC
Croatian Kuna HRK
Cuban Peso CUP
Cypriot Pound CYP
Czech Koruna CZK
Danish Krone DKK
Djibouti Franc DJF
Dominican Peso DOP
Dutch Guilder NLG
East Caribbean Dollar XCD
Egyptian Pound EGP
El Salvador Colon SVC
Estonian Kroon EEK
Ethiopian Birr ETB
Euro EUR
Fiji Dollar FJD
Finnish Markka FIM
French Franc FRF
Gambia Dalasi GMD
German Mark DEM
Ghanaian Cedi GHC
Gibraltar Pound GIP
Greek Drachma GRD
Guatemala Quetzal GTQ
Guinea Franc GNF
Guyana Dollar GYD
Haitian Gourde HTG
Honduras Lempira HNL
Hong Kong Dollar HKD
Hungarian Forint HUF
Iceland Krona ISK
Indian Rupee INR
Indonesian Rupiah IDR
Irish Punt IEP
Israeli Shekel ILS
Italian Lira ITL
Jamaican Dollar JMD
Japanese Yen JPY
Jordanian Dinar JOD
Kenyan Shilling KES
Kuwaiti Dinar KWD
Laos Kip LAK
Latvian Lats LVL
Lebanese Pound LBP
Lesotho Loti LSL
Lithuanian Litas LTL
Malagasy Franc MGF
Malawi Kwacha MWK
Malaysian Ringgit MYR
Maldives Rufiyan MVR
Maltese Pound MTL
Mauritania Ouguiya MRO
Mauritius Rupee MUR
Mexican Peso MXN
Mongolian Tugrik MNT
Moroccan Dirham MAD
Mozambique Metical MZM
Myanmar Kyat MMK
Namibian Dollar NAD
Nepal Rupee NPR
Netherlands Antilles Guilder ANG
New Zealand Dollar NZD
Nicaraguan Cordoba NIO
Nigerian Naira NGN
Norwegian Krone NOK
Oman Rial OMR
Pakistani Rupee PKR
Papua New Guinea Kina PGK
Peruvian Sol PEN
Philippines Peso PHP
Polish Zloty PLN
Portuguese Escudo PTE
Qatari Rial QAR
Renmimbi Yuan CNY
Romanian Leu ROL
Russian Ruble RUB
Salomon Islands Dollar SBD
Sao Tome & Principe Dobra STD
Saudi Arabian Riyal SAR
Seychelles Rupee SCR
Sierra Leone Leone SLL
Singapore Dollar SGD
Slovak Koruna SKK
Slovenian Tolar SIT
South African Rand ZAR
South Korean Won KRW
Spanish Peseta ESP
Sri Lanka Rupee LKR
St. Helena Pound SHP
Sudanese Dinar SDD
Surinam Guilder SRG
Swaziland Lilangeni SZL
Swedish Krona SEK
Swiss Franc CHF
Syria Pound SYP
Taiwan New Dollar TWD
Tanzanian Shilling TZS
Thai Baht THB
Tonga Isl Pa’anga TOP
Trinidad Dollar TTD
Tunisian Dinar TND
Turkish Lira TRL
Ugandan Shilling UGX
Ukraine Hryvnia UAH
United Arab Emirates Dirham AED
US Dollar USD
Vanuatu Vatu VUV
Venezuelan Bolivar VEB
Vietnam Dong VND
Western Samoa Tala WST
Zambia Kwacha ZMK
Zimbabwean Dollar ZWD

Die Format-Codes

Für den Parameter der Formate-Codes (”f”) ste­hen ei­ne gan­ze Reihe ak­zep­tier­ter Format-Tags zur Verfügung. Viele sind da­bei wohl red­un­dant und wer­den hier ein­fach zu­sam­men­ge­fasst (z.B. “a” und “b2″ für Anfrage-Kurs). Die fol­gen­de Tabelle lis­tet al­le be­kann­ten Codes auf.
Achtung: In ei­ni­gen Fällen lie­fert Yahoo!Finance mehr­stel­li­ge Werte zu­rück, die eben­falls mit Kommas ge­trennt dar­ge­stellt wer­den. Dies ist an sich un­ge­schickt, da es für Sie als Programmierer schwie­rig wird, die Kommas zwi­schen den ein­zel­nen Werten von den Kommas in ei­nem Wert zu un­ter­schei­den. Hier emp­feh­le ich, die­se Parameter ge­trennt ab­zu­fra­gen.

Code Bedeutung
a, a0, a4 Ask
a1 – un­known –
a3, b2 Ask (Realtime) – with Pre- and Post-Market
a2 Average Daily Volume
a5 Ask Size Achtung: hier wird der Wert un­ter Umständen in Zahlengruppen, ge­trennt durch ein Komma zu­rück­ge­lie­fert! Die Anzahl der durch Komma ge­trenn­ten Gruppen va­ri­iert.
b, b0 Bid
b2, a3 Ask (Realtime) – with Pre- and Post-Market
b3, b1 Bid (Realtime) – with Pre- and Post-Market
b4 Book Value per Share
b6 Bid Size Achtung: hier wird der Wert un­ter Umständen in Zahlengruppen, ge­trennt durch ein Komma zu­rück­ge­lie­fert! Die Anzahl der durch Komma ge­trenn­ten Gruppen va­ri­iert.
c, c2, q1 Change & Percent Change
c0 Change in Percent
c1, c7 Change
c3 Commission
c4 Currency
c5 – un­known –
c6 Change (Realtime)
c8 After Hours Change (Realtime)
d, d0 Trailing Annual Dividend Yield (Dividend per Share)
d1 Last Trade Date
d2 Trade Date
d3 Last Trade Date (text)
e, e0 Earnings per Share (Diluted EPS)
e1 Error Indication (re­tur­ned for sym­bol chan­ged / in­va­lid)
e2 Verfallsdatum bei Optionsscheinen
e3 – un­known –
e4 – un­known –
e7 EPS Estimate Current Year
e8 EPS Estimate Next Year
e9 EPS Estimate Next Quarter
f, f0 Trade Links Additional
f1, f2, f3, f4, f5, g2 – HTML Fragment mit Company na­me, mar­ket place und Trade Link –
f6 Float Shares Achtung: hier wird der Wert un­ter Umständen in Zahlengruppen, ge­trennt durch ein Komma zu­rück­ge­lie­fert! Die Anzahl der durch Komma ge­trenn­ten Gruppen va­ri­iert.
f7, f8, – HTML Fragment mit Trade-Link –
g, g0 Day’s Low
g1 Holdings Gain Percent
g3 Annualized Gain
g4 Holdings Gain
g5 Holdings Gain Percent (Realtime)
g6 Holdings Gain (Realtime)
h, h0 Day’s High
h1, h2, h3, h4, h5, h6 – HTML Fragment –
i, i0 More Info
i2 – un­known –
i3 – un­known –
i4 – un­known –
i5 Order Book (Realtime)
i6 – un­known –
i7, l1, l7, l9, q2, v2, y2 Last Trade (pri­ce on­ly)
j, j0 Year Low (52-week)
j1 Market Capitalization
j2 Shares Outstanding Achtung: hier wird der Wert un­ter Umständen in Zahlengruppen, ge­trennt durch ein Komma zu­rück­ge­lie­fert! Die Anzahl der durch Komma ge­trenn­ten Gruppen va­ri­iert.
j3 Market Capitalization (Realtime)
j4 EBITDA
j5 Change From Year Low (52-week)
j6 Percent Change From Year Low (52-week)
k, k0 Year High (52-week)
k1 Last Trade With Time (Realtime)
k2 Change in Percent (Realtime)
k3 Last Trade Size Achtung: hier wird der Wert un­ter Umständen in Zahlengruppen, ge­trennt durch ein Komma zu­rück­ge­lie­fert! Die Anzahl der durch Komma ge­trenn­ten Gruppen va­ri­iert.
k4 Change From Year High (52-week)
k5 Percent Change From Year High (52-week)
l, l0, n1, n5, y1 Last Trade with Time
l1 Last Trade (Price Only)
l2 High Limit
l3 Low Limit
l4 – un­known –
l5 – un­known –
l6 – un­known –
m, m0 Day’s Range
m1 – un­known –
m2 Day’s Range (Realtime)
m3 50-day Moving Average
m4 200-day Moving Average
m5 Change From 200-day Moving Average
m6 Percent Change From 200-day Moving Average
m7 Change From 50-day Moving Average
m8 Percent Change From 50-day Moving Average
n, n0 Name
n2 – un­known –
n3 – un­known –
n4 Notes
n6 – un­known –
n7 – un­known –
n8 – un­known –
n9 – un­known –
o, o0 Open
o1, o2 Open Interest bei Optionsscheinen
o4 – un­known –
o5 – un­known –
p, p0, p8 Previous Close
p1 Price Paid
p2, p4 Change in Percent
p3 – un­known –
p5, p9 Price Sales
p6 Price Book
q, q0 Ex-Dividend Date
q3 – HTML Fragment für Zeitraumauswahl –
q4 – HTML Fragment für Auswahl des Grafentyps –
q5 – HTML Fragment für Auswahl der Skalierung –
q6 – HTML Fragment für Auswahl der Chart-Größe –
q7 – HTML Fragment für Auswahl des Moving Avg. –
q8 – HTML Fragment für Auswahl des EMA –
q9 – HTML Fragment für Vergleichs-Formular –
r, r0 P/E Ratio
r1 Dividend Pay Date
r2 P/E Ratio (Realtime)
r3 – HTML Fragment für Auswahl der Indikatoren –
r4 – HTML Fragment für Auswahl der Overlays –
r5 PEG Ratio
r6 Price EPS Estimate Current Year
r7 Price EPS Estimate Next Year
r9 – un­known –
s, s0, s2, s4 Symbol
s1 Shares Owned
s3 Bezugspreis bei Optionsscheinen
s6 Revenue
s7 Short Ratio
t, t0, t2, u, u0, u2, u3 – HTML Fragment für ein Chart-Bild –
t1 Last Trade Time
t3 – un­known –
t4 – un­known –
t5 – un­known –
t6 Trade Links (HTML)
t7 Ticker Trend
t8 1 ye­ar Target Price
v, v0, v6 Volume
v1 Holdings Value
v3 – un­known –
v4 – un­known –
v5 – un­known –
v7 Holdings Value (Realtime)
w, w0 Year Range (52-week)
w1 Day’s Value Change
w4 Day’s Value Change (Realtime)
x, x0 Stock Exchange
y, y0 Trailing Annual Dividend Yield In Percent
z2 – HTML Fragment –
z3 – lie­fert „Oops!“ –

Höhere Indexwerte füh­ren nur noch zu ei­ner Wiederholung der Inhalte. Vermutlich sol­len die Codes zwei­stel­lig sein (Buchstabe + Zahl). Fällt die Zahl weg, so wir au­to­ma­tisch der Index 0 an­ge­nom­men.

Daytrading-Daten

Leider bie­tet Yahoo!Finance nur die letz­ten 100 Tages-Kurswerte zum Ermittlungszeitpunkt an. Auch hier wirkt die Verzögerung von 15-60 Minuten, wie im Abschnitt „Aktuelle Kursdaten“ be­schrie­ben. Die Serviceadresse für die Daytrading-Daten lau­tet http://logtrade.finance.vip.ukl.yahoo.com/lastTrades? und nimmt fol­gen­de drei be­kann­te Parameter ent­ge­gen:

Parameter Beschreibung
s= Das Symbol des Wertpapiers wird mit dem Parameter „s“ an­ge­ge­ben. Z.B. lie­fert hier „s=AAPL“ die letz­ten 100 Daytrading-Daten von Apple Inc.
output=user Der Sinn die­ses Parameters ist lei­der noch nicht be­kannt. Für wei­te­re Hinweise bin ich sehr dank­bar.
i=eu Auch hier ist mir der Sinn des Parameters noch nicht be­kannt.

Das Ergebnis ei­ner sol­chen Abfrage lie­fert ei­ne Liste mit Wertegruppen – ei­ne Gruppe für je­den Trade. Ein sol­ches Tupel ent­hält den Trading-Zeitpunkt, den Kurswert und die Volumina des Trades.

Historische Kursdaten

Für ein Wertpapier ste­hen bei Yahoo eben­falls his­to­ri­sche Daten zur Verfügung. Die Service-URL hier­für lau­tet http://ichart.finance.yahoo.com/table.csv? (al­ter­na­tiv: http://real-chart.finance.yahoo.com/table.csv?) und be­sitzt Parameter für das Symbol, so­wie für das Zeitintervall, in­ner­halb ein Entwickler die täg­li­chen bzw. wö­chent­li­chen Kursdaten er­mit­teln will:

Parameter Beschreibung
a= Start-Monat -1 (Januar ist hier der Wert „0“)
b= Start-Tag
c= Start-Jahr
d= End-Monat -1 (Januar ist hier der Wert „0“)
e= End-Tag
f = End-Jahr
g= Chart-Abstufung (d=tägliche Werte, w=wöchentliche Werte, m=monatliche Werte, v=Dividendenausschüttungen)
s= Symbol des Aktienkurses
ignore=.cvs (kon­stan­ter Wert, aber op­tio­nal)
y= Verschiebung um ei­ne an­ge­ge­be­ne Anzahl an Tagen/Wochen/Monaten. Macht ei­gent­lich kei­nen Sinn, da oben be­reits ein Intervall an­ge­ge­ben wur­de. Trotzdem un­ter­schei­den sich z.B. die Volumen-Werte ei­nes Monats (g=m), wenn hier ei­ne Verschiebung Y>0 an­ge­ge­ben wird. Für wei­te­re Hinweise bin ich hier dank­bar!

Das Ergebnis be­steht aus ei­ner Liste täg­li­cher, wö­chent­li­cher oder mo­nat­li­cher Werte zu dem über­mit­tel­ten Zeitraum. Die ers­te Zeile ent­hält die Überschrift der ein­zel­nen Spaltenwerte. In al­len wei­te­ren Zeilen lie­fert Yahoo!Finance da­nach das Datum, den Eröffnungskurs, den höchs­ten und tiefs­ten Kurswert, so­wie den Tagesschlusskurs und das Handelsvolumen für je­den ein­zel­nen Tag. Da die­se Werte ge­gen­über Splits und Dividenden un­be­rei­nigt sind, lie­fert Yahoo! in der letz­ten Spalte „Adj. Close“ noch be­rei­nig­te Schlusskurse. Ein biss­chen an­ders sieht das Ergebnis aus, wenn als Chart-Abstufung der Wert „v“ für die Dividendenausschüttungen an­ge­ge­ben wird. Dann wer­den nur noch zwei Spalten mit ei­nem Datum so­wie dem Wert selbst zu­rück­ge­lie­fert. Hier noch zwei Beispiele mit den ers­ten paar Zeilen der Ergebnisse:

http://ichart.finance.yahoo.com/table.csv?s=AAPL&d=3&e=3&f=2008&g=d&a=8&b=7&c=1984&ignore=.cvs
---
Date,Open,High,Low,Close,Volume,Adj Close
2008-04-02,148.78,151.20,145.85,147.49,37253700,147.49
2008-04-01,146.30,149.66,143.61,149.53,36846400,149.53
2008-03-31,143.27,145.71,142.52,143.50,27418300,143.50
2008-03-28,141.80,144.65,141.60,143.01,25521800,143.01
...
http://itable.finance.yahoo.com/table.csv?s=AAPL&d=3&e=3&f=2008&g=v&a=8&b=7&c=1984&ignore=.cvs
---
Date,Dividends
1995-11-21,0.030000
1995-08-16,0.030000
1995-05-26,0.030000
...

Für die pro­gram­ma­ti­sche Auswertung die­ser Daten bie­tet sich auch hier das Array als Ergebnisträger an. In je­der Zeile kön­nen so die Werte ei­nes Tages (bzw. ei­ner Woche, ei­nes Monats oder der Dividenden) ab­ge­legt wer­den. Folgende PHP-Funktion soll dies ver­deut­li­chen:

<?php
    /*
     * Getting his­to­ri­cal quo­tes in a gi­ven time pe­ri­od
     * Parameters:
     * $sym­bol:                             sym­bol
     * $start­Day, $start­Month, $star­tYe­ar:  the first day for the his­to­ri­cal quo­tes
     * $end­Day, $end­Month, $en­dY­e­ar:        the last day for the his­to­ri­cal quo­tes
     * $step  (d/w/m/v):                    d=daily, w=weekly, m=monthly, v=dividends
     *
     * (c) Matthias Brusdeylins, 2008
     * License: CC-GNU GPL (http://creativecommons.org/licenses/GPL/2.0/)
     */
    de­fi­ne ("HISTORY_QUOTES_URL", "http://ichart.yahoo.com/table.csv?");
    func­tion load­His­to­ri­ca­lY­a­hoo­Quo­tes ($sym­bol,
                                        $start­Day,
                                        $start­Month,
                                        $star­tYe­ar,
                                        $end­Day,
                                        $end­Month,
                                        $en­dY­e­ar,
                                        $step)
    {
        $lineCount = 0;
        $days = ar­ray();
        // mo­di­fy pa­ra­me­ters
        $sM=$startMonth-1;
        $eM=$endMonth-1;
        // load the his­to­ri­cal stock quo­tes: we are ope­ning it for rea­ding
        // http://ichart.yahoo.com/table.csv?s=  SYMBOL.COUNTRY  &a,b,c START $d,e,f ENDE $g d=daily/w=weekly/m=monthly/v=dividends
        $URL = HISTORY_QUOTES_URL."s=$symbol&a=$sM&b=$startDay&c=$startYear&d=$eM&e=$endDay&f=$endYear&g=$step&y=0&ignore=.cvs";
        $fi­le­Hand­le = fo­pen ($URL,"r");
        if ($fi­le­Hand­le) {
            // use the fgetcsv func­tion to store quo­te va­lues in­to a ar­ray $li­neVa­lues
            // store one sym­bol in one li­ne
            do {
                $stock­Va­lues = fgetcsv ($fi­le­Hand­le, 999999, ",");
                if ($stock­Va­lues) {
                    $lineCount++;
                    $days[$lineCount] = $stock­Va­lues;
                }
            } while ($stock­Va­lues);
            // clo­se hand­le
            fc­lo­se ($fi­le­Hand­le);
        } el­se {
            $days[0][0] = "ERROR";
            $days[0][1] = "No da­ta found.";
        }        
        re­turn $days;
    }
?>

Länderunterschiede

An der Börse wer­den nicht nur Aktien in un­ter­schied­li­chen Währungen ge­han­delt, son­dern auch Nebenwerte wie bei­spiels­wei­se Optionsscheine. Der Handel sol­cher Wertpapiere ist meist auf ein Land bzw. Börsenplatz be­schränkt. Aus die­sem Grund bie­tet Yashoo!Finance auch un­ter­schied­li­che Serviceadressen an. In die­sem Artikel wur­den bis­her nur die Adressen für US-Börsendaten auf­ge­zeigt. So kann un­ter der URL http://finance.yahoo.com/d/quotes.csv? der ak­tu­el­le Kurs ei­ner Aktie in US-Dollars er­mit­telt wer­den. Wollen Sie hin­ge­gen ei­nen Kurs aus dem deut­schen Raum er­mit­teln, steht Ihnen die URL http://de.finance.yahoo.com/d/quotes.csv? zur Verfügung.
Die fol­gen­de Tabelle zeigt die Adressen (URL) zum Yahoo!Finance-Service für ak­tu­el­le Börsenkurse. In der ers­ten Spalte wer­den auch die Symbol-Suffixe auf­ge­lis­tet, wel­che für ei­ne ak­ti­ve Börsenplatz-Wahl an die Symbolangabe ge­hängt wer­den kön­nen (z.B. „AAPL.DE“ für den XETRA-Kurs des Apple-Aktie). Ein Besuch auf die Webseite von Yahoo! Finance hilft hier bei der Auswahl der rich­ti­gen Symbolbezeichnung.

Land & Suffix URLs
Argentinien
.BA (Buenos Aires)
http://finance.yahoo.com/d/quotes.csv?
http://ar.finance.yahoo.com/d/quotes.csv?
Australien
.AX (Australia)
http://au.finance.yahoo.com/d/quotes.csv?
Belgien
.BR (Brussels)
http://finance.yahoo.com/d/quotes.csv?
Brasilien
.SA (São Paulo)
http://finance.yahoo.com/d/quotes.csv?
http://br.finance.yahoo.com/d/quotes.csv?
Dänemark
.CO (Copenhagen)
http://finance.yahoo.com/d/quotes.csv?
http://dk.finance.yahoo.com/d/quotes.csv?
Deutschland
.BE (Berlin-Bremen)
.DU (Düsseldorf)
.F (Frankfurt)
.HM (Hamburg)
.HA (Hanover)
.MU (München)
.SG (Stuttgart)
.DE (XETRA)
http://de.finance.yahoo.com/d/quotes.csv?
China
.SS (Shanghai)
.SZ (Shenzhen)
http://finance.yahoo.com/d/quotes.csv?
http://cn.finance.yahoo.com/d/quotes.csv?
England
.L (London)
http://uk.finance.yahoo.com/d/quotes.csv?
Frankreich
.PA (Paris)
http://finance.yahoo.com/d/quotes.csv?
http://fr.finance.yahoo.com/d/quotes.csv?
Hong Kong
.HK (Hong Kong)
http://hk.finance.yahoo.com/d/quotes.csv?
Indien
.BO (Bombay)
.NS (Nationale Börse Indien)
http://in.finance.yahoo.com/d/quotes.csv?
Indonesien
.JK (Jakarta)
http://sg.finance.yahoo.com/d/quotes.csv?
Irland
.IR (Irish)
http://uk.finance.yahoo.com/d/quotes.csv?
Israel
.TA (Tel Aviv)
http://finance.yahoo.com/d/quotes.csv?
Italien
.MI (Milano)
http://finance.yahoo.com/d/quotes.csv?
http://it.finance.yahoo.com/d/quotes.csv?
Kanada
.TO (Toronto)
.V (TSX Venture Exchange)
http://ca.finance.yahoo.com/d/quotes.csv?
Korea (Süd)
.KS (Korea)
.KQ (KOSDAQ)
http://kr.finance.yahoo.com/d/quotes.csv?
Malaysien
.KL (Kuala Lumpur) ?
http://sg.finance.yahoo.com/d/quotes.csv?
Mexico
.MX (Mexico)
http://finance.yahoo.com/d/quotes.csv?
Neu Seeland
.NZ (New Zealand)
http://au.finance.yahoo.com/d/quotes.csv?
Niederlande
.AS (Amsterdam)
http://finance.yahoo.com/d/quotes.csv?
Norwegen
.OL (Oslo)
http://finance.yahoo.com/d/quotes.csv?
http://no.finance.yahoo.com/d/quotes.csv?
Österreich
.VI (Vienna)
http://finance.yahoo.com/d/quotes.csv?
Pakistan
.KA (Karachi) ?
http://finance.yahoo.com/d/quotes.csv?
Portugal
.LS (Lissabon)
http://finance.yahoo.com/d/quotes.csv?
Schweden
.ST (Stockholm)
http://finance.yahoo.com/d/quotes.csv?
http://se.finance.yahoo.com/d/quotes.csv?
Schweiz
.SW (Swiss)
.VX (Virt-X)
http://finance.yahoo.com/d/quotes.csv?
Singapore
.SI (Singapore)
http://sg.finance.yahoo.com/d/quotes.csv?
Spanien
.BC (Barcelona)
.BI (Bilbao)
.MF (Madrid Fixed Income Market)
.MC (Madrid SE C.A.T.S.)
.MA (Madrid)
http://es.finance.yahoo.com/d/quotes.csv?
Taiwan
.TWO (OTC Börse Taiwan)
.TW (Taiwan)
http://sg.finance.yahoo.com/d/quotes.csv?
Thailand
.BK (Bangkok)
http://sg.finance.yahoo.com/d/quotes.csv?
USA
kein Suffix für AMEX, NASDAQ und NYSE
.OB (OTC Bulletin Board Market)
.PK (Pink Sheets)
http://finance.yahoo.com/d/quotes.csv?

Download

Die Klasse Finance_API_Yahoo bie­tet ei­nen ein­fa­chen Zugriff auf die hier be­schrie­be­ne Schnittstelle. Mit ihr las­sen sich ak­tu­el­le, so­wie his­to­ri­sche Kursdaten er­mit­teln. Das Ergebnis wird in ei­nem zwei­di­men­sio­na­len Array zu­rück­ge­lie­fert (sie­he Beispiele im Text). Für die Package-Struktur dien­te das Zend-Framework als Vorlage. Somit ist ei­ne ein­fa­che Integration in die­ses ge­währ­leis­tet.
Yahoo! Finance API, Version 1.0

Change-Log

0.5 31.03.2008 – First re­lease
0.6 06.04.2008 – Function code list com­ple­ted
1.0 04.05.2008 – Zend-Framework pa­cka­ge struc­tu­re in­te­gra­ted

 
CC-GNU GPL
Diese Software und die hier ge­zeig­ten Codestücke fal­len un­ter den Lizenzvertrag CC-GNU GPL.

67

Kommentare

  1. JSTHEMASTER  Oktober 11, 2008

    Parameter für Optionsscheine:
    s3 = Strike
    e2 = Expiry
    o1 = o2 = Open Intrest
    Grüße,
    JSTHEMASTER!

    antworten
  2. Matthias Brusdeylins  Oktober 12, 2008

    Vielen Dank für die Informationen !

    antworten
  3. Blear  Juni 16, 2009

    vie­len Dank erst­mal für die tol­le Dokumentation.
    Und wie ma­che ich das mit den Rohstoffpreisen?
    Beispiel: Ölpreisentwicklung der letz­ten Jahre?
    kennt da je­mand die Parameter? Danke.

    antworten
  4. Matthias Brusdeylins  Juni 17, 2009

    Ist das nicht ein­fach ein an­de­res Symbol?
    Z.B. „OIL“ oder „USO“ oder „DTO“…
    http://download.finance.yahoo.com/d/quotes.csv?s=DTO&f=sl1d1t1c1ohgv&e=.csv

    antworten
  5. paul  Juli 8, 2009

    Ich möch­te täg­lich nur die 30 DAX-Aktien ab­fra­gen. Die DAX-Zusammensetzung än­dert sich aber im­mer wie­der. Gäbe es hier ei­ne Möglichkeit an­statt die 30 ein­zel­nen Titel an­zu­ge­ben und sie stän­dig an­zu­pas­sen, ei­ne Liste ak­tu­el­ler DAX-Aktien aus­le­sen? Hat je­mand ei­ne Idee wie man das an­stel­len kann?

    antworten
  6. tunix  Juli 30, 2009

    @ Paul
    hier der Link für Daxwerte/Liste
    http://de.old.finance.yahoo.com/d/quotes.csv?s=@%5EGDAXI&f=sl1d1t1c1ohgv&e=.csv

    antworten
  7. Sven  August 31, 2009

    Wie fra­ge ich denn die ak­tu­el­le Kupferpreise nach? Bzw. was ist das Symbol

    antworten
  8. ibuddy  August 31, 2009

    Hallo Matthias Brusdeylins!
    ich möch­te mich sehr bei dir be­dan­ken, du hast hier ei­ne sehr schö­ne samm­lung zu­sam­men­ge­tra­gen und das hilft mir un­ge­mein!
    Vielleicht hät­te man et­was spe­zi­el­ler auf das „@“ für Indizes ein­ge­hen kön­nen. Z.B. lie­fert
    http://de.old.finance.yahoo.com/d/quotes.csv?s=@^TECDAX&f=sn&e=.csv
    die Symbole+Namen des TecDAX und man könn­te leicht sei­ne Datenbank au­to­ma­tisch fül­len…. aber nur am Rande.
    Weißt du viel­leicht, wo man ei­ne Liste al­ler do­tier­ten Aktien als CSV mit symbol+name her­be­kommt? Dann könn­te man sich die Sucherei bei Yahoo spa­ren!
    Ich zie­he mein Hut, sehr schön! Hab vie­len Dank!
    Viele Grüße, ibud­dy

    antworten
  9. Alexx  September 1, 2009

    Sehr in­ter­es­san­ter Artikel, Danke!
    Worüber ich mir schon lan­ge den Kopf zer­bre­che: Wie kann ich an­hand der Parameter und der zu­rück­ge­lie­fer­ten Werten er­ru­ie­ren, ob die Börse noch of­fen ist, an der die Aktie ge­han­delt wird? Sprich, ob der Abruf der Kurse be­reits nach Close ge­schieht.
    Hintergrund ist, ich weiss lei­der nicht al­le Öffnungszeiten al­ler Börsen aus­wen­dig…
    Tausend Dank.

    antworten
  10. Me.MyBase  Oktober 2, 2009

    Hallo,
    gibt es die­se DAX-Übersicht auch für an­de­re Indices? Also für MDAX, SDAX und TechDax oder so­gar für die in­ter­na­tio­na­len Indices?

    antworten
  11. Me.MyBase  Oktober 2, 2009

    oh, hat sich er­le­digt. Refresh hilft manch­mal… 😉

    antworten
  12. chris  November 13, 2009

    Hi,
    Bei den Devisen wer­den kei­ne ab­so­lu­te und pro­zen­tua­le Änderungen
    an­ge­zeigt, hab schon ver­schie­de­ne Sachen aus­pro­biert.
    Weis je­mand wei­ter?
    http://download.finance.yahoo.com/d/quotes.csv?s=EURUSD=X&f=l&f=c

    antworten
  13. bartmann_61  Dezember 8, 2009

    Hallo Matthias,
    sehr schö­ne Zusammenstellung; bes­ten Dank.
    @Alexx
    Die Handelszeiten und vor al­lem Handelstage soll­te man im vor­aus wis­sen. Ich hat­te mal ei­nen chi­ne­si­schen Feiertag über­se­hen; das gab rich­tig Ärger. Die Infos be­kommt man am bes­ten über die Websites der je­wei­li­gen Banken.
    Eine sehr gu­te Zusammenstellung wich­ti­ger Börsen fin­det sich auf
    http://www.six-swiss-exchange.com/trading/information/calendar/2009/grid_de.html
    Die Handelszeiten für z.B. SIX Zürich fin­dest Du auf
    http://www.six-swiss-exchange.com/trading/information/trade/on_order_book/trading_hours_order_de.html
    Ähnliche Infos gibt es für al­le an­de­ren Börsen auf de­ren Sites.

    antworten
  14. Godot  Dezember 22, 2009

    Schöne Seite!
    y2, v2, q2, l7, l9, l1 schei­nen den ak­tu­el­len Kurs von Fonds aus­zu­ge­ben.
    Danke,
    Godot

    antworten
  15. Warren Buffett  Januar 22, 2010

    Sehr gu­te Aufstellen, jetzt al­ler­dings mei­ne Frage: Bekomme ich auch ir­gend­wie über die API die Bilanzdaten? Die wer­den auch auf der Seite von Yahoo dar­ge­stellt.
    Mario

    antworten
  16. Weiterentwickler  Januar 22, 2010

    Hallo an Euch,
    die Seite ist sehr schön zu­sam­men ge­stellt, Kompliment!
    Ich su­che al­ler­dings noch ganz „ver­zwei­felt“ nach ei­ner Möglichkeit, Fondkusrs ab­zu­fra­gen. Irgendwie soll’s ge­hen (sie­he Godot), aber wie ge­nau? Z.B. in­ter­es­siert mich der Berenberg Globalway (ISIN: LU0123053893, WKZ: 603545). Wie fra­ge ich das ab? Kann jmand wei­ter hel­fen?
    Viele Grüße,
    F.

    antworten
  17. deridex  April 16, 2010

    Fondsabfrage scheint mit der nor­ma­len ab­fra­ge zu funk­tio­nie­ren, wenn man die Börse voll qua­li­fi­ziert, an der ge­han­delt wird:
    http://de.finance.yahoo.com/d?s=618486.SG

    antworten
  18. Vondor  Juli 12, 2010

    Immer wie­der schön wenn sich je­mand für sol­che tol­len Anleitungen Zeit nimmt.
    Ich hof­fe ir­gend­wann sel­ber mei­nen Beitrag leis­ten zu kön­nen.

    antworten
  19. Max  August 17, 2010

    Danke für die­sen Beitrag, er hat mir schon sehr wei­ter­ge­hol­fen!
    f=n gibt den Namen aus und f=s das Zeichen, gibt es denn auch ei­nen Weg um die ISIN aus­zu­ge­ben? (wenn ich mir zB. die Tabelle vom TecDAX an­schaue)
    Gruß und ein gro­ßes Dankeschön

    antworten
  20. Jan  Oktober 7, 2010

    Hallo,
    ich schlie­ße mich Mario ali­as Warren Buffet an, sehr schö­ne Seite, aber gibt es ei­ne Möglichkeit, sich die Bilanzdaten auch an­zei­gen zu las­sen oder kom­men die aus ir­gend­wel­chen li­zenz­recht­li­chen Gründen von Reuters und dür­fen nicht run­ter­ge­la­den wer­den ?
    Gruß,
    J

    antworten
  21. Matthias Brusdeylins  Oktober 7, 2010

    Falls hier je­mand ei­ne Lösung hat, wä­re ich sehr dank­bar.

    antworten
  22. Jan  Oktober 11, 2010

    Es bleibt wohl nur HTML-Parsing üb­rig…

    antworten
  23. Max  Oktober 27, 2010

    ehm …
    … ma­che ich et­was falsch oder ist es nicht mehr mög­lich, sich den 50 bzw. 200-Tages-Durchschnitt aus­ge­ben zu las­sen?
    Beispiel:
    http://de.old.finance.yahoo.com/d/quotes.csv?s=@%5ETECDAX&f=sl1d1t1c1ohgvm3&e=.csv
    Wenn ich das „old“ weg­las­se, be­komm ich zwar ei­nen Durchschnitt – die an­de­ren Werte schei­nen aber al­le nicht mehr kor­rekt zu sein.
    Gruß

    antworten
  24. Jochen  Oktober 28, 2010

    Hallo zu­sam­men,
    wie wür­de ich denn den Kurs bzw. die Metallnotierung für Silber in ei­ner CSV be­kom­men?
    Wenn ich „AG“ (für Silber) als Parameter über­ge­be, be­kom­me ich den Kurs vom 1.5.2009 aber kei­nen ak­tu­el­len.
    http://de.old.finance.yahoo.com/d/quotes.csv?s=AG&f=sl1d1t1c1ohgv&e=.csv
    Was ma­che ich falsch?
    Grüße
    Jochen

    antworten
  25. fred  November 3, 2010

    ge­ni­al!

    antworten
  26. Kevin R.  November 6, 2010

    THANKS!!!! That’s all what I need!!!

    antworten
  27. Mark  Dezember 9, 2010

    @Jochen
    Ist zwar jetzt ein we­nig spät, aber bes­ser spät als nie.
    Die URL für Silber ist fol­gen­de:
    http://de.old.finance.yahoo.com/d/quotes.csv?s=SLV&f=snat1&e=.csv
    Du musst dir auf der Yahoo Seite die , ich nen­ne sie mal ID´s, ho­len. Hatte es am Anfang auch mit AG für Silber und AU für Gold ver­sucht, funk­tio­niert lei­der so nicht.
    Gruß

    antworten
  28. Rene  Juli 8, 2011

    Erstmal dan­ke für den Beitrag..
    wie sieht es ei­gent­lich we­gen der ISIN aus.. griegt man die auch ir­gend­wie raus??

    antworten
  29. Michael  August 12, 2011

    Super Beschreibung! Danke. Habe aber auch noch ei­ne Frage: Warum lie­fert die API kei­ne Werte für den Dow Jones?
    http://finance.yahoo.com/d/quotes.csv?s=^ixic+^gdaxi+^dji&f=l1np2
    Momentan ver­zwei­fel ich dar­an…
    Viele Grüße

    antworten
  30. Matthias Brusdeylins  August 23, 2011

    Hi,
    al­so die his­to­ri­schen Kursdaten des Dow Jones be­kom­me ich:
    http://ichart.finance.yahoo.com/table.csv?s=^DJI&f=snat1
    –>
    Date,Open,High,Low,Close,Volume,Adj Close
    2011-08-19,10989.60,11099.26,10749.83,10817.65,5167560000,10817.65
    2011-08-18,11406.27,11406.27,10830.59,10990.58,3234810000,10990.58
    2011-08-17,11392.01,11550.37,11306.18,11410.21,4388340000,11410.21
    die ak­tu­el­len Kursdaten sind lei­der leer:
    http://finance.yahoo.com/d/quotes.csv?s=^DJI&f=snat1
    –> Missing Symbols List.
    Wenn ich bei Yahoo! Finance auf fol­gen­de Webseite ge­he:
    http://finance.yahoo.com/echarts?s=^DJI+Interactive#symbol=^DJI;range=1d
    fin­de ich un­ten im grau­en Kasten fol­gen­den Hinweis:
    „Quotes are up­dated au­to­ma­ti­cal­ly, but will be tur­ned off af­ter 25 mi­nu­tes of in­ac­tivi­ty.“
    Vermutung: Hier musst du wohl nach der Handelszeit auf die his­to­ri­schen Daten zu­grei­fen…

    antworten
  31. johannes  November 17, 2011

    Danke für die aus­führ­li­che Dokumentation der Yahoo Finance csv-Downloadlinks.
    Die URL „http://logtrade.finance.vip.ukl.yahoo.com/lastTrades?“ zum Abruf der Daytrading-Daten funk­tio­niert bei mir nicht. Kann es sein, dass Yahoo die­sen Abruf ab­ge­schal­tet hat? Hast du ein funk­tio­nie­ren­des Beispiel für den Abruf der Daytrading-Daten?

    antworten
  32. Tobias  November 17, 2011

    Halo.
    Wir ent­wi­ckeln ein App für Börsendaten.
    Wo aber be­kom­me ich die Daten für Rohstoffe wie Aluminium, Stahl, Kupfer usw her?
    Danke!

    antworten
  33. Christian Herold  Dezember 5, 2011

    Hallo,
    ak­tu­el­le Werte für Dow Jones gibt es un­ter INDU oh­ne ^.
    http://de.finance.yahoo.com/d/quotes.csv?s=INDU&f=l1d1t1&e=.csv
    Viele Grüße
    Christian

    antworten
  34. Ante  Januar 8, 2012

    Kompliment. Sehr aus­führ­li­che Anleitung. Danke!
    Ich ha­be ei­ne all­ge­mei­ne Frage.
    Kennt je­mand den Grund, war­um Yahoo Finance und z.B. Finanzen.net
    un­ter­schied­li­che Daten lie­fern. Z.b. Buchwert Allianz. (96,46 vs. 93,78).
    Beide Werte schei­nen in € zu sein.
    Danke vor­ab.
    Grüße
    Ante

    antworten
  35. Tim  Februar 5, 2012

    Hi, ich fin­de die­se func­tion sehr schön. Nur lei­der ha­be ich ein gro­ßes Problem. Ich kann nicht mit p2 die Prozent aus­le­sen. Meine Rückgabe ist dann im­mer N/A. Hängt das mit dem Zeichsatz zu­sam­men? Hoffe Ihr könnt mir hel­fen. Ich be­kom­me im­mer N/A wenn ich p2 und/oder t1 auf­ru­fe.

    antworten
  36. Bobfi  Februar 28, 2012

    Ganz fan­tas­ti­scher Beitrag, auch wenn die­ser schon ein paar Tage auf dem Buckel hat. Leider kann ich nicht her­aus­fin­den, wie ich mir den Rohölpreis (WTI und/oder Baret) in Dollar aus­ge­ben las­sen kann. Hat da je­mand ei­ne Idee?

    antworten
  37. Thomas  Februar 29, 2012

    Sehr gu­ter Beitrag! Hat mir sehr ge­hol­fen. Lediglich die Informationen zum Daytrading sind nicht mehr ganz auf dem neus­ten Stand. Die fol­gen­de Website zeigt wie man jetzt über Yahoo auf ak­tu­el­len Intraday-Kurse bzw. auf die Intrady-Kurse der letz­ten 5 Tage zu­grei­fen kann:
    http://www.marketcalls.in/amibroker/exploring-yahoo-realtime-data-feed.html

    antworten
  38. Ingo  August 5, 2014

    Bei mir funk­tio­nie­ren die deut­schen Abdragen nicht? Woran kann das lie­gen? Ist hier noch je­mand ak­tiv und kann mir hel­fen?
    LG
    Ingo

    antworten
  39. Dolin  November 27, 2014

    Von der gan­zen Darstellung bin ich sehr an­ge­tan und mit dem Herunterladen über­aus zu­frie­den. Für ei­ni­ge Symbole wie z,B. NVDA oder den thai­län­di­schen Aktienindex scheint es kei­ne his­to­ri­schen Kursdaten zu­ge­ben. Für
    die ja­pa­ni­schen Aktien konn­te ich lei­der nur Kursdaten aus den USA oder den deut­schen Börsenplätzen, aber nicht von ja­pa­ni­schen Börsen er­hal­ten. Vielen Dank für die ge­sam­te Anleitung!

    antworten
  40. Dolin  November 27, 2014

    Vielen Dank für die ge­sam­te wirk­lich her­vor­ra­gen­de Anleitung! Leider ist es mir bis jetzt nicht ge­lun­gen, für die ja­pa­ni­schen Aktien die Kursdaten von ei­ner ja­pa­ni­schen Börse, son­dern nur die von deut­schen oder ame­ri­ka­ni­schen Börsenplätzen zu er­hal­ten.

    antworten
  41. Autonomer  Dezember 20, 2014

    ^IBEX und ^DJI hat ya­hoo ver­ges­sen… bei http://finance.yahoo.com/d/quotes.csv?s=

    antworten
  42. Robert  August 14, 2015

    Klasse Beschreibung, ha­be ich schon lan­ge ge­sucht!
    Es gibt üb­ri­gens auch his­to­ri­sche Devisenkurse, funk­tio­nie­ren aber nur aus Sicht des US-Dollars.
    Parameter s==X
    Beispiel: http://ichart.finance.yahoo.com/table.csv?s=CNY=X&a=0&b=1&c=2015&d=7&e=1&f=2015&g=d&y=0&ignore=.csv
    lie­fert die Kurse von Jan-Jul 2015 für USD -> CNY

    antworten
  43. Philipp  März 9, 2016

    Danke für die Info wel­ches Börsenkürzel, wel­che Börse dar­stellt. Genau da­nach ha­be ich ge­sucht. Echt Super API.

    Jetzt kann ich end­lich mei­nen Aktien Screener di­rekt mit Yahoo Zahlen (Bilanz/Guv/Kennzahlen) ver­knüp­fen und mir nur noch Ergebnisse an­zei­gen las­sen, die mei­nen ge­wünsch­ten Kriterien er­fül­len.

    antworten
  44. robser  April 15, 2016

    Hallo,

    wer kann mir ze­gen, wie man his­to­ri­sches Daten der Devisen her­un­ter­la­den kann? Im Artikel (sehr schön) deu­tet sich an, damm man kei­ne his­to­ri­schen Daten aus dem Forex her­un­ter­la­den kann.

    Beste Grüße

    antworten
  45. tk  Juni 8, 2016

    Hallo,

    danke für die Infos.

    Ich habe das PHP Skript mal etwas angepasst, da es so noch nicht ganz funktionsfähig war.
    Für jeden der es ausprobieren möchte:

    de­fine („QUOTES_URL“, „http://finance.yahoo.com/d/quotes.csv?“);

    $sym­bol = „AAPL“;
    $tags = „snat1″;

    func­tion loadYahooQuotes($symbol,$tags)
    {
    $line­Count = 0;
    $stocks = ar­ray();

    $URL = QUOTES_URL.“s=$symbol&f=$tags&e=.csv“;

    $file­Handle = fo­pen ($URL,“r“);

    if ($file­Handle) {
    // use the fgetcsv func­tion to store quote va­lues into an ar­ray $li­ne­Va­lues
    // one sym­bol in one line

    do {
    $stock­Va­lues = fgetcsv ($file­Handle, 999999, „,“);

    if ($stock­Va­lues) {
    $line­Count++;
    $stocks[$lineCount] = $stock­Va­lues;
    }

    } while ($stock­Va­lues);
    fclose ($file­Handle);
    } else {
    // ERROR-Message in the ar­ray
    $stocks[0][0] = „ERROR“;
    $stocks[0][1] = „No data found.“;
    }
    re­turn $stocks;
    }

    loadYahooQuotes($symbol, $tags);

    antworten
  46. Daniel  Oktober 6, 2016

    Hallo, weiß je­mand, wie man ein­fach die his­to­ri­sche Dividendenrendite noch als Ausgabe be­kommt?
    Danke und vie­le Grüße
    Daniel

    antworten
  47. Matthias  November 28, 2016

    Hi,

    ich fin­de auf der Yahoo Seite die Symbole für ei­ni­ge Optionsscheine nicht -> z.B. DE000DT5MP92 PUT/DAX PERFORMANCE INDEX

    Ohne Symbole kann ich auch nicht ab­fra­gen. Wie oder auch wo fin­de ich Optionsscheindaten ?

    antworten
  48. Tim McTiger  Dezember 10, 2016

    Hi,

    coo­les Tutorial, hat mir sehr ge­hol­fen.
    Ich ar­bei­te ge­ra­de an ei­ner, in der ich die his­to­ri­schen wer­te von Rohstoffen be­nö­ti­ge.
    Kann ich die­se auch über die API von Yahoo be­zie­hen?

    Danke und lie­be Grüsse
    Tim

    antworten
  49. Joscha  Januar 5, 2017

    Hallo,

    Bei mir schei­tert die fo­pen Funktion an die­ser URL:

    http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=1&b=1&c=2000&g=d&y=0&ignore=.cvs

    Obwohl die­se url die Daten im Browser kor­rekt an­zeigt wird gibt fo­pen im­mer nur fal­se zu­rück.
    kennt je­mand die­ses Problem??

    Mit freund­li­chen Grüßen,
    Joscha

    antworten
  50. Klaus Müller  Januar 28, 2017

    Hallo,

    Dankes für das tol­le Tutorial. Ist echt schön, wie sich noch Leute wie du die Mühe ma­chen, um wis­sen wei­ter­zu­ge­ben.
    Ich ar­bei­te ge­ra­de an ei­nem Projekt, wo ich his­to­ri­sche Daten von Rohstoffen (Eisenerz, Nickel, Kupfer) be­nö­ti­ge.
    Weiß je­mand, ob man die­se auch über die Finance API von Yahoo be­zie­hen kann.

    Danke im Vorhinein
    Klaus

    antworten
  51. trys  Mai 9, 2017

    Herzlichen Dank.

    Das hab ich schon lan­ge ge­sucht –
    und mich bis­lang mit den Teillösungen zu­frie­den ge­ge­ben, die ich sel­ber raus­ge­fun­den hab.
    Das ist jetzt ein Ansporn, mehr zu pro­bie­ren.
    Dank auch den Kommentatoren.

    Bleiben nur noch die Lücken & Fehler bei ya­hoo – die lei­der eher zu­neh­men.

    antworten
  52. maiermuc  Juni 6, 2017

    Vielen Dank für den aus­führ­li­chen Artikel.

    Leider hat sich die API für Historische Daten en­de Mai 2017 bei Yahoo ge­än­dert.
    Somit funk­tio­niert z.B: der fol­gen­de Link aus dem Artikel nicht mehr.
    https://ichart.finance.yahoo.com/table.csv?s=AAPL&d=3&e=3&f=2008&g=d&a=8&b=7&c=1984&ignore=.cvs

    antworten
  53. Josef  Juli 1, 2017

    Mir scheint, daß man nun von finance.yahoo.com kei­ne his­to­ri­schen Daten mehr mit­tels ei­nes PHP-Programmes her­un­ter­la­den kann.

    antworten
  54. Josef  Juli 1, 2017

    Mir scheint, daß man nun von finance.yahoo.com kei­ne his­to­ri­schen Daten mehr im csv-Format mit­tels ei­nes php-Programmes er­hält.

    antworten
  55. Harry Espino  Juli 9, 2017

    Yahoo fi­nan­ce API is not avail­ab­le any­mo­re. I have mo­ved to MarketXLS af­ter this chan­ge, much mo­re re­lia­ble da­ta.

    antworten
    • Angerer  Oktober 7, 2017

      Is the­re a pos­si­bi­li­ty to down­load by a php-program the his­to­ri­cal stock da­ta from mar­ke­txls in rhe csv-format or is it ne­cessa­ry to use Excel?

      antworten

Schreibe einen Kommentar