Yahoo! Finance API

Moder­ne Broker-Portale bie­ten einem Inves­tor die Mög­lich­keit, Kur­se sei­ner Akti­en bzw. Optio­nen abzu­ru­fen. Dort fin­det er in der Regel auch Kurs-Charts und Chart-Analyse-Kurven zu den unter­schied­lichs­ten Zeit­räu­men. Dem ein oder ande­ren pri­va­ten Inves­tor sind die­se Ana­ly­sen viel­leicht nicht aus­rei­chend genug. Es mag unter ihnen Infor­ma­ti­ker und Hobby-Programmierer geben, die den Wunsch äußern, mit Kurs­da­ten mathe­ma­ti­sche Ana­ly­sen durch­zu­füh­ren, um Indi­ka­to­ren selbst zu berech­nen. Nur wie gelangt ein Pro­gram­mie­rer an die aktu­el­len und his­to­ri­schen Zah­len ein­zel­ner Akti­en­kur­se? Die­ser Bei­trag soll die Mög­lich­kei­ten der Yahoo!Finance-Schnittstelle näher bringen.
Für das Ermit­teln unter­schied­li­cher Kurs­da­ten bie­tet Yahoo!Finance (auch für Deutsch­land) ver­schie­de­ne CSV-Export-Services an. CSV steht für “Com­ma Sepa­ra­ted Values” und bedeu­tet hier nichts ande­res, als dass die gan­zen Kenn­zah­len (wie z.B. Schluss-Kurs oder Volu­men) in rei­ner Text­form mit Kom­mas und Zei­len­um­brü­chen getrennt aus­ge­lie­fert wer­den. Daten in solch einem For­mat kann ein Com­pu­ter­pro­gramm für Ana­ly­se­zwe­cke leicht ver­ar­bei­ten. Im Fol­gen­den wer­den die bekann­ten Schnitt­stel­len genau­er erläu­tert und dazu pas­sen­de Bei­spie­le und PHP-Scripte prä­sen­tiert. Da mir kei­ne offi­zi­el­le API von Yahoo!Finance bekannt ist und ich die hier beschrie­be­ne Schnitt­stel­le durch Aus­pro­bie­ren und Stu­di­um ermit­telt habe, kann ich für eine Voll­stän­dig­keit des auf­ge­zeig­ten Funk­ti­ons­um­fan­ges nicht garan­tie­ren. Für Hin­wei­se bin ich daher sehr dank­bar. Ver­wen­det ein Ent­wick­ler die Ser­vices von Yahoo!Finance, so soll­te er sich vor­her die Nut­zungs­be­din­gun­gen (sie­he auch) genau durchlesen.

Aktuelle Kursdaten ermitteln

Ganz ehr­lich, “aktu­ell” bedeu­tet bei der kos­ten­lo­sen Yahoo!Finance-Schnittstelle lei­der eine Ver­zö­ge­rung von 15 Minu­ten für NASDAQ Wer­te, bis hin zu 60 Minu­ten für ande­re Bör­sen­plät­ze (nähe­res auf Yahoo!Finance). Doch für die meis­ten Ver­wen­dungs­zwe­cken bzw. west­li­chen Bör­sen­kur­se dürf­te die­se Ver­zö­ge­rung kein Pro­blem dar­stel­len. Yahoo! bie­tet Kur­se aus den unter­schied­lichs­ten Bör­sen­plät­zen an. Die Selek­ti­on des ent­spre­chen­den Han­dels­plat­zes fin­det in der URL selbst, sowie in einem Anhang (Suf­fix) an der Sym­bol­an­ga­be statt. Im Kapi­tel “Län­der­un­ter­schie­de” wer­den die Unter­schie­de auf­ge­lis­tet. Zum bes­se­ren Ver­ständ­nis zei­ge ich hier nur die Basis-URL, wel­che vor allem für die US-Börsenkurse gül­tig ist. Das Ergeb­nis ist eine Wer­te­lis­te, die durch Kom­mas getrennt prä­sen­tiert wird. Die Ser­vice­adres­sen für aktu­el­le Kurs­in­for­ma­tio­nen lau­tet http://finance.yahoo.com/d/quotes.csv? (alter­na­tiv http://download.finance.yahoo.com/d/quotes.csv?) und nimmt die fol­gen­den drei bekann­ten Para­me­ter entgegen:

Para­me­ter Beschrei­bung
s= Das Sym­bol des Wert­pa­piers wird mit dem Para­me­ter “s” ange­ge­ben. Z.B. lie­fert hier “s=AAPL” die aktu­el­len Kurs­da­ten von Apple Inc. Eine Kom­bi­na­ti­on meh­re­re durch ein Plus­zei­chen getrenn­te Sym­bo­le ist eben­falls mög­lich (zum Bei­spiel “s=AAPL+MSFT” für Apple und Micro­soft). Die Wer­te, getrennt durch Kom­mas, kom­men dann jeweils in eine sepa­ra­ten Zei­le pro Sym­bol zurück.
f= Die Format-Codes wer­den hier mit dem Para­me­ter “f” ange­ge­ben. Dabei han­delt es sich hier um einen Text­zug mit lau­ter anein­an­der­ge­reih­ten Kür­zel. So gibt z.B. das Zei­chen “s” an, dass das Sym­bol der Aktie aus­ge­ge­ben wer­den soll. “n” lie­fert den Namen, “a” den aktu­el­len Anfrage-Kurs. Die Wer­te wer­den exakt in der Rei­hen­fol­ge aus­ge­ge­ben, wie sie hier ange­for­dert wer­den. Eine Lis­te aller bekann­ten Format-Codes wird wei­ter unten um Kapi­tel “Die Format-Codes” auf­ge­lis­tet. Bei­spiel: f=sna
e=.csv Die Export­art wird mit dem Para­me­ter “e” ange­ge­ben. Hier soll­te immer “e=.csv” für ein “Com­ma Sepa­ra­ted Values” Ergeb­nis über­mit­telt wer­den. Erfah­run­gen haben gezeigt, dass die­ser Para­me­ter wohl optio­nal ist.

Das fol­gen­de Bei­spiel ermit­telt von Apple und Micro­soft das Sym­bol, den Firmen-Namen, den aktu­el­len Anfrage-Kurs und die dazu gehö­ri­ge Zeit ab. Dabei sind Zeit und Kurs­wert immer län­der­spe­zi­fisch zu ver­ste­hen (US-Zeit und Dol­lar). Wenn Sie die­se URL in den Brow­ser ein­ge­ben, kön­nen Sie das Ergeb­nis abspei­chern. Danach kön­nen Sie die Roh­da­ten in einem Text­edi­tor öff­nen und betrach­ten (nicht mit Excel öff­nen, da hier die For­ma­tie­rung nicht ersicht­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 Pro­gramm kann nun die­se Daten in einem mehr­di­men­sio­na­len Array able­gen. Dabei ent­hal­ten die Spal­ten die Inhal­te der Wer­te, wel­che durch die Format-Codes ange­for­dert wur­den. Die Zei­len bil­den jeweils das Zah­len­tu­pel eines Wert­pa­piers ab. Eine PHP-Funktion zur Ermitt­lung der Kurs­da­ten könn­te somit fol­gen­der­ma­ßen aussehen:

<?php
    /*
     * Getting current quotes:
     * Reading multible lines of values into an array depending on the given symbols and function tags.
     * Each line holds the values of one symbol. In the argument, symbols are separated by "+".
     *
     * (c) Matthias Brusdeylins, 2008
     * License: CC-GNU GPL (http://creativecommons.org/licenses/GPL/2.0/)
     */    
    define ("QUOTES_URL", "http://finance.yahoo.com/d/quotes.csv?");
    function loadYahooQuotes ($symbol,
                              $tags)
    {
        $lineCount = 0;
        $stocks = array();
        // load the stock quotes: we are opening it for reading
        // http://finance.yahoo.com/d/quotes.csv?s=  STOCK SYMBOLS  &f=  FORMAT TAGS
        $URL = QUOTES_URL."s=$symbol&f=$tags&e=.csv";
        $fileHandle = fopen ($URL,"r");
        if ($fileHandle) {
            // use the fgetcsv function to store quote values into an array $lineValues
            // one symbol in one line
            do {
                $stockValues = fgetcsv ($fileHandle, 999999, ",");
                if ($stockValues) {
                    $lineCount++;
                    $stocks[$lineCount] = $stockValues;
                }
            } while ($stockValues);
        fclose ($fileHandle);
        } else {
            // ERROR-Message in the array
            $stocks[0][0] = "ERROR";
            $stocks[0][1] = "No data found.";
        }
        return $stocks;
    }
?>

Devisen

Sie kön­nen nicht nur ein­zel­ne Akti­en­kur­se erfra­gen, son­dern auch Devi­sen­kur­se. Dazu müs­sen Sie an der oben vor­ge­stell­ten Adres­se als Symbol-Parameter ein spe­zi­el­les Kon­strukt der Form AB=X über­mit­teln. Hier steht der Buch­sta­be A für die ers­te zu ver­glei­chen­de Wäh­rung und der Buch­sta­be B dann natür­lich für die zwei­te Wäh­rung. X steht wohl für Exchan­ge und wird nicht ersetzt. Wol­len Sie meh­re­re Wäh­run­gen abfra­gen, kön­nen meh­re­re Kon­struk­te mit­tels dem Plus­zei­chen “+” anein­an­der gehängt wer­den. Fol­gen­des Bei­spiel soll dies verdeutlichen:

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ür­zel der Wäh­run­gen bestehen aus drei Buch­sta­ben und wer­den hier aufgelistet:

Land Kür­zel
Afga­ni­stan Afghani AFA
Alba­ni­an Lek ALL
Alge­ri­an Dinar DZD
Argen­ti­ni­an Peso ARS
Aru­ban Florin AWG
Aus­tra­li­an Dollar AUD
Aus­tri­an Schilling ATS
Bah­rai­ni Dinar BHD
Ban­gla­desh Taka BDT
Bar­ba­dos Dollar BBD
Bel­gi­an Franc BEF
Beli­ze Dollar BZD
Ber­mu­da Dollar BMD
Bhu­tan Ngultrum BTN
Boli­vi­an Boliviano BOB
Bots­wa­na Pula BWP
Bra­zi­li­an Real BRL
Bri­tish Pound GBP
Bru­nei Dollar BND
Bul­ga­ri­an Lev BGN
Cam­bo­di­an Riel KHR
Cana­di­an Dollar CAD
Cape Ver­de Escudo CVE
Cay­man Islands Dollar KYD
CFA Franc (BCEAO) XOF
CFA Franc(BEAC) XAF
CFP Franc XPF
Chi­lean Peso CLP
Colom­bi­an Peso COP
Como­ros Franc KMF
Cos­ta Rican Colon CRC
Croa­ti­an Kuna HRK
Cuban Peso CUP
Cypri­ot Pound CYP
Czech Kor­u­na CZK
Danish Kro­ne DKK
Dji­bou­ti Franc DJF
Domi­ni­can Peso DOP
Dut­ch Guilder NLG
East Carib­be­an Dollar XCD
Egyp­ti­an Pound EGP
El Sal­va­dor Colon SVC
Esto­ni­an Kroon EEK
Ethio­pian Birr ETB
Euro EUR
Fiji Dol­lar FJD
Fin­nish Markka FIM
French Franc FRF
Gam­bia Dalasi GMD
Ger­man Mark DEM
Gha­nai­an Cedi GHC
Gibral­tar Pound GIP
Greek Drach­ma GRD
Gua­te­ma­la Quetzal GTQ
Gui­nea Franc GNF
Guya­na Dollar GYD
Hai­ti­an Gourde HTG
Hon­du­ras Lempira HNL
Hong Kong Dollar HKD
Hun­ga­ri­an Forint HUF
Ice­land Krona ISK
Indian Rupee INR
Indo­ne­si­an Rupiah IDR
Irish Punt IEP
Israe­li Shekel ILS
Ita­li­an Lira ITL
Jamai­can Dollar JMD
Japa­ne­se Yen JPY
Jor­da­ni­an Dinar JOD
Ken­y­an Shilling KES
Kuwai­ti Dinar KWD
Laos Kip LAK
Lat­vi­an Lats LVL
Leba­ne­se Pound LBP
Leso­tho Loti LSL
Lit­hua­ni­an Litas LTL
Malag­a­sy Franc MGF
Mala­wi Kwacha MWK
Malay­si­an Ringgit MYR
Mal­di­ves Rufiyan MVR
Mal­te­se Pound MTL
Mau­ri­ta­nia Ouguiya MRO
Mau­ri­ti­us Rupee MUR
Mexi­can Peso MXN
Mon­go­li­an Tugrik MNT
Moroccan Dir­ham MAD
Mozam­bi­que Metical MZM
Myan­mar Kyat MMK
Nami­bi­an Dollar NAD
Nepal Rupee NPR
Nether­lands Antil­les Guilder ANG
New Zea­land Dollar NZD
Nica­ra­gu­an Cordoba NIO
Nige­ri­an Naira NGN
Nor­we­gi­an Krone NOK
Oman Rial OMR
Paki­sta­ni Rupee PKR
Papua New Gui­nea Kina PGK
Peruvi­an Sol PEN
Phil­ip­pi­nes Peso PHP
Polish Zlo­ty PLN
Por­tu­gue­se Escudo PTE
Qata­ri Rial QAR
Ren­mim­bi Yuan CNY
Roma­ni­an Leu ROL
Rus­si­an Ruble RUB
Salo­mon Islands Dollar SBD
Sao Tome & Princi­pe Dobra STD
Sau­di Ara­bi­an Riyal SAR
Sey­chel­les Rupee SCR
Sier­ra Leo­ne Leone SLL
Sin­g­a­po­re Dollar SGD
Slo­vak Koruna SKK
Slo­ve­ni­an Tolar SIT
South Afri­can Rand ZAR
South Kore­an Won KRW
Spa­nish Peseta ESP
Sri Lan­ka Rupee LKR
St. Hele­na Pound SHP
Suda­ne­se Dinar SDD
Suri­nam Guilder SRG
Swa­zi­land Lilangeni SZL
Swe­dish Krona SEK
Swiss Franc CHF
Syria Pound SYP
Tai­wan New Dollar TWD
Tan­za­ni­an Shilling TZS
Thai Baht THB
Ton­ga Isl Pa’anga TOP
Tri­ni­dad Dollar TTD
Tuni­sian Dinar TND
Tur­kish Lira TRL
Ugan­dan Shilling UGX
Ukrai­ne Hryvnia UAH
United Arab Emi­ra­tes Dirham AED
US Dol­lar USD
Vanua­tu Vatu VUV
Vene­zue­lan Bolivar VEB
Viet­nam Dong VND
Wes­tern Samoa Tala WST
Zam­bia Kwacha ZMK
Zim­bab­wean Dollar ZWD

Die Format-Codes

Für den Para­me­ter der Formate-Codes (”f”) ste­hen eine gan­ze Rei­he akzep­tier­ter Format-Tags zur Ver­fü­gung. Vie­le sind dabei wohl red­un­dant und wer­den hier ein­fach zusam­men­ge­fasst (z.B. “a” und “b2″ für Anfrage-Kurs). Die fol­gen­de Tabel­le lis­tet alle bekann­ten Codes auf.
Ach­tung: In eini­gen Fäl­len lie­fert Yahoo!Finance mehr­stel­li­ge Wer­te zurück, die eben­falls mit Kom­mas getrennt dar­ge­stellt wer­den. Dies ist an sich unge­schickt, da es für Sie als Pro­gram­mie­rer schwie­rig wird, die Kom­mas zwi­schen den ein­zel­nen Wer­ten von den Kom­mas in einem Wert zu unter­schei­den. Hier emp­feh­le ich, die­se Para­me­ter getrennt abzufragen.

Code Bedeu­tung
a, a0, a4 Ask
a1 - unknown -
a3, b2 Ask (Real­time) — with Pre- and Post-Market
a2 Average Dai­ly Volume
a5 Ask Size Ach­tung: hier wird der Wert unter Umstän­den in Zah­len­grup­pen, getrennt durch ein Kom­ma zurück­ge­lie­fert! Die Anzahl der durch Kom­ma getrenn­ten Grup­pen variiert.
b, b0 Bid
b2, a3 Ask (Real­time) — with Pre- and Post-Market
b3, b1 Bid (Real­time) — with Pre- and Post-Market
b4 Book Value per Share
b6 Bid Size Ach­tung: hier wird der Wert unter Umstän­den in Zah­len­grup­pen, getrennt durch ein Kom­ma zurück­ge­lie­fert! Die Anzahl der durch Kom­ma getrenn­ten Grup­pen variiert.
c, c2, q1 Chan­ge & Per­cent Change
c0 Chan­ge in Percent
c1, c7 Chan­ge
c3 Com­mis­si­on
c4 Cur­ren­cy
c5 - unknown -
c6 Chan­ge (Real­time)
c8 After Hours Chan­ge (Real­time)
d, d0 Trai­ling Annu­al Divi­dend Yield (Divi­dend per Share)
d1 Last Tra­de Date
d2 Tra­de Date
d3 Last Tra­de Date (text)
e, e0 Ear­nings per Share (Dilu­t­ed EPS)
e1 Error Indi­ca­ti­on (retur­ned for sym­bol chan­ged / invalid)
e2 Ver­falls­da­tum bei Optionsscheinen
e3 - unknown -
e4 - unknown -
e7 EPS Esti­ma­te Cur­rent Year
e8 EPS Esti­ma­te Next Year
e9 EPS Esti­ma­te Next Quarter
f, f0 Tra­de Links Additional
f1, f2, f3, f4, f5, g2 - HTML Frag­ment mit Com­pa­ny name, mar­ket place und Tra­de Link -
f6 Float Shares Ach­tung: hier wird der Wert unter Umstän­den in Zah­len­grup­pen, getrennt durch ein Kom­ma zurück­ge­lie­fert! Die Anzahl der durch Kom­ma getrenn­ten Grup­pen variiert.
f7, f8, - HTML Frag­ment mit Trade-Link -
g, g0 Day’s Low
g1 Hol­dings Gain Percent
g3 Annua­li­zed Gain
g4 Hol­dings Gain
g5 Hol­dings Gain Per­cent (Real­time)
g6 Hol­dings Gain (Real­time)
h, h0 Day’s High
h1, h2, h3, h4, h5, h6 - HTML Fragment -
i, i0 More Info
i2 - unknown -
i3 - unknown -
i4 - unknown -
i5 Order Book (Real­time)
i6 - unknown -
i7, l1, l7, l9, q2, v2, y2 Last Tra­de (pri­ce only)
j, j0 Year Low (52-week)
j1 Mar­ket Capitalization
j2 Shares Out­stan­ding Ach­tung: hier wird der Wert unter Umstän­den in Zah­len­grup­pen, getrennt durch ein Kom­ma zurück­ge­lie­fert! Die Anzahl der durch Kom­ma getrenn­ten Grup­pen variiert.
j3 Mar­ket Capi­ta­liz­a­ti­on (Real­time)
j4 EBITDA
j5 Chan­ge From Year Low (52-week)
j6 Per­cent Chan­ge From Year Low (52-week)
k, k0 Year High (52-week)
k1 Last Tra­de With Time (Real­time)
k2 Chan­ge in Per­cent (Real­time)
k3 Last Tra­de Size Ach­tung: hier wird der Wert unter Umstän­den in Zah­len­grup­pen, getrennt durch ein Kom­ma zurück­ge­lie­fert! Die Anzahl der durch Kom­ma getrenn­ten Grup­pen variiert.
k4 Chan­ge From Year High (52-week)
k5 Per­cent Chan­ge From Year High (52-week)
l, l0, n1, n5, y1 Last Tra­de with Time
l1 Last Tra­de (Pri­ce Only)
l2 High Limit
l3 Low Limit
l4 - unknown -
l5 - unknown -
l6 - unknown -
m, m0 Day’s Ran­ge
m1 - unknown -
m2 Day’s Ran­ge (Real­time)
m3 50-day Moving Average
m4 200-day Moving Average
m5 Chan­ge From 200-day Moving Average
m6 Per­cent Chan­ge From 200-day Moving Average
m7 Chan­ge From 50-day Moving Average
m8 Per­cent Chan­ge From 50-day Moving Average
n, n0 Name
n2 - unknown -
n3 - unknown -
n4 Notes
n6 - unknown -
n7 - unknown -
n8 - unknown -
n9 - unknown -
o, o0 Open
o1, o2 Open Inte­rest bei Optionsscheinen
o4 - unknown -
o5 - unknown -
p, p0, p8 Pre­vious Close
p1 Pri­ce Paid
p2, p4 Chan­ge in Percent
p3 - unknown -
p5, p9 Pri­ce Sales
p6 Pri­ce Book
q, q0 Ex-Dividend Date
q3 - HTML Frag­ment für Zeitraumauswahl -
q4 - HTML Frag­ment für Aus­wahl des Grafentyps -
q5 - HTML Frag­ment für Aus­wahl der Skalierung -
q6 - HTML Frag­ment für Aus­wahl der Chart-Größe -
q7 - HTML Frag­ment für Aus­wahl des Moving Avg. -
q8 - HTML Frag­ment für Aus­wahl des EMA -
q9 - HTML Frag­ment für Vergleichs-Formular -
r, r0 P/E Ratio
r1 Divi­dend Pay Date
r2 P/E Ratio (Real­time)
r3 - HTML Frag­ment für Aus­wahl der Indikatoren -
r4 - HTML Frag­ment für Aus­wahl der Overlays -
r5 PEG Ratio
r6 Pri­ce EPS Esti­ma­te Cur­rent Year
r7 Pri­ce EPS Esti­ma­te Next Year
r9 - unknown -
s, s0, s2, s4 Sym­bol
s1 Shares Owned
s3 Bezugs­preis bei Optionsscheinen
s6 Reve­nue
s7 Short Ratio
t, t0, t2, u, u0, u2, u3 - HTML Frag­ment für ein Chart-Bild -
t1 Last Tra­de Time
t3 - unknown -
t4 - unknown -
t5 - unknown -
t6 Tra­de Links (HTML)
t7 Ticker Trend
t8 1 year Tar­get Price
v, v0, v6 Volu­me
v1 Hol­dings Value
v3 - unknown -
v4 - unknown -
v5 - unknown -
v7 Hol­dings Value (Real­time)
w, w0 Year Ran­ge (52-week)
w1 Day’s Value Change
w4 Day’s Value Chan­ge (Real­time)
x, x0 Stock Exchan­ge
y, y0 Trai­ling Annu­al Divi­dend Yield In Percent 
z2 - HTML Fragment -
z3 - lie­fert “Oops!” -

Höhe­re Index­wer­te füh­ren nur noch zu einer Wie­der­ho­lung der Inhal­te. Ver­mut­lich sol­len die Codes zwei­stel­lig sein (Buch­sta­be + Zahl). Fällt die Zahl weg, so wir auto­ma­tisch der Index 0 angenommen.

Daytrading-Daten

Lei­der bie­tet Yahoo!Finance nur die letz­ten 100 Tages-Kurswerte zum Ermitt­lungs­zeit­punkt an. Auch hier wirkt die Ver­zö­ge­rung von 15–60 Minu­ten, wie im Abschnitt “Aktu­el­le Kurs­da­ten” beschrie­ben. Die Ser­vice­adres­se für die Daytrading-Daten lau­tet http://logtrade.finance.vip.ukl.yahoo.com/lastTrades? und nimmt fol­gen­de drei bekann­te Para­me­ter entgegen:

Para­me­ter Beschrei­bung
s= Das Sym­bol des Wert­pa­piers wird mit dem Para­me­ter “s” ange­ge­ben. Z.B. lie­fert hier “s=AAPL” die letz­ten 100 Daytrading-Daten von Apple Inc.
output=user Der Sinn die­ses Para­me­ters ist lei­der noch nicht bekannt. Für wei­te­re Hin­wei­se bin ich sehr dankbar.
i=eu Auch hier ist mir der Sinn des Para­me­ters noch nicht bekannt.

Das Ergeb­nis einer sol­chen Abfra­ge lie­fert eine Lis­te mit Wer­te­grup­pen — eine Grup­pe für jeden Tra­de. Ein sol­ches Tupel ent­hält den Trading-Zeitpunkt, den Kurs­wert und die Volu­mi­na des Trades.

Historische Kursdaten

Für ein Wert­pa­pier ste­hen bei Yahoo eben­falls his­to­ri­sche Daten zur Ver­fü­gung. Die Service-URL hier­für lau­tet http://ichart.finance.yahoo.com/table.csv? (alter­na­tiv: http://real-chart.finance.yahoo.com/table.csv?) und besitzt Para­me­ter für das Sym­bol, sowie für das Zeit­in­ter­vall, inner­halb ein Ent­wick­ler die täg­li­chen bzw. wöchent­li­chen Kurs­da­ten ermit­teln will:

Para­me­ter Beschrei­bung
a= Start-Monat ‑1 (Janu­ar ist hier der Wert “0”)
b= Start-Tag
c= Start-Jahr
d= End-Monat ‑1 (Janu­ar ist hier der Wert “0”)
e= End-Tag
f = End-Jahr
g= Chart-Abstufung (d=tägliche Wer­te, w=wöchentliche Wer­te, m=monatliche Wer­te, v=Dividendenausschüttungen)
s= Sym­bol des Aktienkurses
ignore=.cvs (kon­stan­ter Wert, aber optional)
y= Ver­schie­bung um eine ange­ge­be­ne Anzahl an Tagen/Wochen/Monaten. Macht eigent­lich kei­nen Sinn, da oben bereits ein Inter­vall ange­ge­ben wur­de. Trotz­dem unter­schei­den sich z.B. die Volumen-Werte eines Monats (g=m), wenn hier eine Ver­schie­bung Y>0 ange­ge­ben wird. Für wei­te­re Hin­wei­se bin ich hier dankbar!

Das Ergeb­nis besteht aus einer Lis­te täg­li­cher, wöchent­li­cher oder monat­li­cher Wer­te zu dem über­mit­tel­ten Zeit­raum. Die ers­te Zei­le ent­hält die Über­schrift der ein­zel­nen Spal­ten­wer­te. In allen wei­te­ren Zei­len lie­fert Yahoo!Finance danach das Datum, den Eröff­nungs­kurs, den höchs­ten und tiefs­ten Kurs­wert, sowie den Tages­schluss­kurs und das Han­dels­vo­lu­men für jeden ein­zel­nen Tag. Da die­se Wer­te gegen­über Splits und Divi­den­den unbe­rei­nigt sind, lie­fert Yahoo! in der letz­ten Spal­te “Adj. Clo­se” noch berei­nig­te Schluss­kur­se. Ein biss­chen anders sieht das Ergeb­nis aus, wenn als Chart-Abstufung der Wert “v” für die Divi­den­den­aus­schüt­tun­gen ange­ge­ben wird. Dann wer­den nur noch zwei Spal­ten mit einem Datum sowie dem Wert selbst zurück­ge­lie­fert. Hier noch zwei Bei­spie­le mit den ers­ten paar Zei­len 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 Aus­wer­tung die­ser Daten bie­tet sich auch hier das Array als Ergeb­nis­trä­ger an. In jeder Zei­le kön­nen so die Wer­te eines Tages (bzw. einer Woche, eines Monats oder der Divi­den­den) abge­legt wer­den. Fol­gen­de PHP-Funktion soll dies verdeutlichen:

<?php
    /*
     * Getting historical quotes in a given time period
     * Parameters:
     * $symbol:                             symbol
     * $startDay, $startMonth, $startYear:  the first day for the historical quotes
     * $endDay, $endMonth, $endYear:        the last day for the historical quotes
     * $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/)
     */
    define ("HISTORY_QUOTES_URL", "http://ichart.yahoo.com/table.csv?");
    function loadHistoricalYahooQuotes ($symbol,
                                        $startDay,
                                        $startMonth,
                                        $startYear,
                                        $endDay,
                                        $endMonth,
                                        $endYear,
                                        $step)
    {
        $lineCount = 0;
        $days = array();
        // modify parameters
        $sM=$startMonth-1;
        $eM=$endMonth-1;
        // load the historical stock quotes: we are opening it for reading
        // 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";
        $fileHandle = fopen ($URL,"r");
        if ($fileHandle) {
            // use the fgetcsv function to store quote values into a array $lineValues
            // store one symbol in one line
            do {
                $stockValues = fgetcsv ($fileHandle, 999999, ",");
                if ($stockValues) {
                    $lineCount++;
                    $days[$lineCount] = $stockValues;
                }
            } while ($stockValues);
            // close handle
            fclose ($fileHandle);
        } else {
            $days[0][0] = "ERROR";
            $days[0][1] = "No data found.";
        }        
        return $days;
    }
?>

Länderunterschiede

An der Bör­se wer­den nicht nur Akti­en in unter­schied­li­chen Wäh­run­gen gehan­delt, son­dern auch Neben­wer­te wie bei­spiels­wei­se Opti­ons­schei­ne. Der Han­del sol­cher Wert­pa­pie­re ist meist auf ein Land bzw. Bör­sen­platz beschränkt. Aus die­sem Grund bie­tet Yashoo!Finance auch unter­schied­li­che Ser­vice­adres­sen an. In die­sem Arti­kel wur­den bis­her nur die Adres­sen für US-Börsendaten auf­ge­zeigt. So kann unter der URL http://finance.yahoo.com/d/quotes.csv? der aktu­el­le Kurs einer Aktie in US-Dollars ermit­telt wer­den. Wol­len Sie hin­ge­gen einen Kurs aus dem deut­schen Raum ermit­teln, steht Ihnen die URL http://de.finance.yahoo.com/d/quotes.csv? zur Verfügung.
Die fol­gen­de Tabel­le zeigt die Adres­sen (URL) zum Yahoo!Finance-Service für aktu­el­le Bör­sen­kur­se. In der ers­ten Spal­te wer­den auch die Symbol-Suffixe auf­ge­lis­tet, wel­che für eine akti­ve Börsenplatz-Wahl an die Sym­bol­an­ga­be gehängt wer­den kön­nen (z.B. “AAPL.DE” für den XETRA-Kurs des Apple-Aktie). Ein Besuch auf die Web­sei­te von Yahoo! Finan­ce hilft hier bei der Aus­wahl der rich­ti­gen Symbolbezeichnung.

Land & Suffix URLs
Argen­ti­ni­en
.BA (Bue­nos Aires)
http://finance.yahoo.com/d/quotes.csv?
http://ar.finance.yahoo.com/d/quotes.csv?
Aus­tra­li­en
.AX (Aus­tra­lia)
http://au.finance.yahoo.com/d/quotes.csv?
Bel­gi­en
.BR (Brussels)
http://finance.yahoo.com/d/quotes.csv?
Bra­si­li­en
.SA (São Paulo)
http://finance.yahoo.com/d/quotes.csv?
http://br.finance.yahoo.com/d/quotes.csv?
Däne­mark
.CO (Copen­ha­gen)
http://finance.yahoo.com/d/quotes.csv?
http://dk.finance.yahoo.com/d/quotes.csv?
Deutsch­land
.BE (Berlin-Bremen)
.DU (Düs­sel­dorf)
.F (Frank­furt)
.HM (Ham­burg)
.HA (Hano­ver)
.MU (Mün­chen)
.SG (Stutt­gart)
.DE (XETRA)
http://de.finance.yahoo.com/d/quotes.csv?
Chi­na
.SS (Shang­hai)
.SZ (Shen­zhen)
http://finance.yahoo.com/d/quotes.csv?
http://cn.finance.yahoo.com/d/quotes.csv?
Eng­land
.L (Lon­don)
http://uk.finance.yahoo.com/d/quotes.csv?
Frank­reich
.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?
Indi­en
.BO (Bom­bay)
.NS (Natio­na­le Bör­se Indien)
http://in.finance.yahoo.com/d/quotes.csv?
Indo­ne­si­en
.JK (Jakar­ta)
http://sg.finance.yahoo.com/d/quotes.csv?
Irland
.IR (Irish)
http://uk.finance.yahoo.com/d/quotes.csv?
Isra­el
.TA (Tel Aviv)
http://finance.yahoo.com/d/quotes.csv?
Ita­li­en
.MI (Mila­no)
http://finance.yahoo.com/d/quotes.csv?
http://it.finance.yahoo.com/d/quotes.csv?
Kana­da
.TO (Toron­to)
.V (TSX Ven­ture Exchange)
http://ca.finance.yahoo.com/d/quotes.csv?
Korea (Süd)
.KS (Korea)
.KQ (KOSDAQ)
http://kr.finance.yahoo.com/d/quotes.csv?
Malay­si­en
.KL (Kua­la Lumpur) ?
http://sg.finance.yahoo.com/d/quotes.csv?
Mexi­co
.MX (Mexi­co)
http://finance.yahoo.com/d/quotes.csv?
Neu See­land
.NZ (New Zealand)
http://au.finance.yahoo.com/d/quotes.csv?
Nie­der­lan­de
.AS (Ams­ter­dam)
http://finance.yahoo.com/d/quotes.csv?
Nor­we­gen
.OL (Oslo)
http://finance.yahoo.com/d/quotes.csv?
http://no.finance.yahoo.com/d/quotes.csv?
Öster­reich
.VI (Vien­na)
http://finance.yahoo.com/d/quotes.csv?
Paki­stan
.KA (Kara­chi) ?
http://finance.yahoo.com/d/quotes.csv?
Por­tu­gal
.LS (Lis­sa­bon)
http://finance.yahoo.com/d/quotes.csv?
Schwe­den
.ST (Stock­holm)
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?
Sin­g­a­po­re
.SI (Sin­g­a­po­re)
http://sg.finance.yahoo.com/d/quotes.csv?
Spa­ni­en
.BC (Bar­ce­lo­na)
.BI (Bil­bao)
.MF (Madrid Fixed Inco­me Market)
.MC (Madrid SE C.A.T.S.)
.MA (Madrid)
http://es.finance.yahoo.com/d/quotes.csv?
Tai­wan
.TWO (OTC Bör­se Taiwan)
.TW (Tai­wan)
http://sg.finance.yahoo.com/d/quotes.csv?
Thai­land
.BK (Bang­kok)
http://sg.finance.yahoo.com/d/quotes.csv?
USA
kein Suf­fix für AMEX, NASDAQ und NYSE
.OB (OTC Bul­le­tin Board Market)
.PK (Pink Sheets)
http://finance.yahoo.com/d/quotes.csv?

Download

Die Klas­se Finance_API_Yahoo bie­tet einen ein­fa­chen Zugriff auf die hier beschrie­be­ne Schnitt­stel­le. Mit ihr las­sen sich aktu­el­le, sowie his­to­ri­sche Kurs­da­ten ermit­teln. Das Ergeb­nis wird in einem zwei­di­men­sio­na­len Array zurück­ge­lie­fert (sie­he Bei­spie­le im Text). Für die Package-Struktur dien­te das Zend-Framework als Vor­la­ge. Somit ist eine ein­fa­che Inte­gra­ti­on in die­ses gewährleistet.
Yahoo! Finan­ce API, Ver­si­on 1.0

Change-Log

0.5 31.03.2008 — First release
0.6 06.04.2008 — Func­tion code list completed
1.0 04.05.2008 — Zend-Framework packa­ge struc­tu­re integrated

 
CC-GNU GPL
Die­se Soft­ware und die hier gezeig­ten Code­stü­cke fal­len unter den Lizenz­ver­trag CC-GNU GPL.

67

Kommentare

  1. JSTHEMASTER  Oktober 11, 2008

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

    antworten
  2. Matthias Brusdeylins  Oktober 12, 2008

    Vie­len Dank für die Informationen !

    antworten
  3. Blear  Juni 16, 2009

    vie­len Dank erst­mal für die tol­le Dokumentation.
    Und wie mache ich das mit den Rohstoffpreisen?
    Bei­spiel: Ölpreis­ent­wick­lung der letz­ten Jahre?
    kennt da jemand die Para­me­ter? Danke.

    antworten
  4. Matthias Brusdeylins  Juni 17, 2009

    Ist das nicht ein­fach ein ande­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 abfra­gen. Die DAX-Zusammensetzung ändert sich aber immer wie­der. Gäbe es hier eine Mög­lich­keit anstatt die 30 ein­zel­nen Titel anzu­ge­ben und sie stän­dig anzu­pas­sen, eine Lis­te aktu­el­ler DAX-Aktien aus­le­sen? Hat jemand eine Idee wie man das anstel­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 aktu­el­le Kup­fer­prei­se nach? Bzw. was ist das Symbol

    antworten
  8. ibuddy  August 31, 2009

    Hal­lo Mat­thi­as Brusdeylins!
    ich möch­te mich sehr bei dir bedan­ken, du hast hier eine sehr schö­ne samm­lung zusam­men­ge­tra­gen und das hilft mir ungemein!
    Viel­leicht hät­te man etwas spe­zi­el­ler auf das “@” für Indi­zes ein­ge­hen kön­nen. Z.B. liefert
    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 Daten­bank auto­ma­tisch fül­len.… aber nur am Rande.
    Weißt du viel­leicht, wo man eine Lis­te aller dotier­ten Akti­en als CSV mit symbol+name her­be­kommt? Dann könn­te man sich die Suche­rei bei Yahoo sparen!
    Ich zie­he mein Hut, sehr schön! Hab vie­len Dank!
    Vie­le Grü­ße, ibuddy

    antworten
  9. Alexx  September 1, 2009

    Sehr inter­es­san­ter Arti­kel, Danke!
    Wor­über ich mir schon lan­ge den Kopf zer­bre­che: Wie kann ich anhand der Para­me­ter und der zurück­ge­lie­fer­ten Wer­ten erru­ie­ren, ob die Bör­se noch offen ist, an der die Aktie gehan­delt wird? Sprich, ob der Abruf der Kur­se bereits nach Clo­se geschieht.
    Hin­ter­grund ist, ich weiss lei­der nicht alle Öff­nungs­zei­ten aller Bör­sen auswendig…
    Tau­send Dank.

    antworten
  10. Me.MyBase  Oktober 2, 2009

    Hal­lo,
    gibt es die­se DAX-Übersicht auch für ande­re Indi­ces? Also für MDAX, SDAX und Tech­Dax oder sogar für die inter­na­tio­na­len Indices?

    antworten
  11. Me.MyBase  Oktober 2, 2009

    oh, hat sich erle­digt. Refresh hilft manchmal… 😉

    antworten
  12. chris  November 13, 2009

    Hi,
    Bei den Devi­sen wer­den kei­ne abso­lu­te und pro­zen­tua­le Änderungen
    ange­zeigt, hab schon ver­schie­de­ne Sachen ausprobiert.
    Weis jemand weiter?
    http://download.finance.yahoo.com/d/quotes.csv?s=EURUSD=X&f=l&f=c

    antworten
  13. bartmann_61  Dezember 8, 2009

    Hal­lo Matthias,
    sehr schö­ne Zusam­men­stel­lung; bes­ten Dank.
    @Alexx
    Die Han­dels­zei­ten und vor allem Han­dels­ta­ge soll­te man im vor­aus wis­sen. Ich hat­te mal einen chi­ne­si­schen Fei­er­tag über­se­hen; das gab rich­tig Ärger. Die Infos bekommt man am bes­ten über die Web­sites der jewei­li­gen Banken.
    Eine sehr gute Zusam­men­stel­lung wich­ti­ger Bör­sen fin­det sich auf
    http://www.six-swiss-exchange.com/trading/information/calendar/2009/grid_de.html
    Die Han­dels­zei­ten 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
    Ähn­li­che Infos gibt es für alle ande­ren Bör­sen auf deren Sites.

    antworten
  14. Godot  Dezember 22, 2009

    Schö­ne Seite!
    y2, v2, q2, l7, l9, l1 schei­nen den aktu­el­len Kurs von Fonds auszugeben.
    Danke,
    Godot

    antworten
  15. Warren Buffett  Januar 22, 2010

    Sehr gute Auf­stel­len, jetzt aller­dings mei­ne Fra­ge: Bekom­me ich auch irgend­wie über die API die Bilanz­da­ten? Die wer­den auch auf der Sei­te von Yahoo dargestellt.
    Mario

    antworten
  16. Weiterentwickler  Januar 22, 2010

    Hal­lo an Euch,
    die Sei­te ist sehr schön zusam­men gestellt, Kompliment!
    Ich suche aller­dings noch ganz “ver­zwei­felt” nach einer Mög­lich­keit, Fond­kusrs abzu­fra­gen. Irgend­wie soll’s gehen (sie­he Godot), aber wie genau? Z.B. inter­es­siert mich der Beren­berg Glo­bal­way (ISIN: LU0123053893, WKZ: 603545). Wie fra­ge ich das ab? Kann jmand wei­ter helfen?
    Vie­le Grüße,
    F.

    antworten
  17. deridex  April 16, 2010

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

    antworten
  18. Vondor  Juli 12, 2010

    Immer wie­der schön wenn sich jemand für sol­che tol­len Anlei­tun­gen Zeit nimmt.
    Ich hof­fe irgend­wann sel­ber mei­nen Bei­trag leis­ten zu können.

    antworten
  19. Max  August 17, 2010

    Dan­ke für die­sen Bei­trag, er hat mir schon sehr weitergeholfen!
    f=n gibt den Namen aus und f=s das Zei­chen, gibt es denn auch einen Weg um die ISIN aus­zu­ge­ben? (wenn ich mir zB. die Tabel­le vom TecDAX anschaue)
    Gruß und ein gro­ßes Dankeschön

    antworten
  20. Jan  Oktober 7, 2010

    Hal­lo,
    ich schlie­ße mich Mario ali­as War­ren Buf­fet an, sehr schö­ne Sei­te, aber gibt es eine Mög­lich­keit, sich die Bilanz­da­ten auch anzei­gen zu las­sen oder kom­men die aus irgend­wel­chen lizenz­recht­li­chen Grün­den von Reu­ters und dür­fen nicht run­ter­ge­la­den werden ?
    Gruß,
    J

    antworten
  21. Matthias Brusdeylins  Oktober 7, 2010

    Falls hier jemand eine Lösung hat, wäre ich sehr dankbar.

    antworten
  22. Jan  Oktober 11, 2010

    Es bleibt wohl nur HTML-Parsing übrig…

    antworten
  23. Max  Oktober 27, 2010

    ehm …
    … mache ich etwas falsch oder ist es nicht mehr mög­lich, sich den 50 bzw. 200-Tages-Durchschnitt aus­ge­ben zu lassen?
    Beispiel:
    http://de.old.finance.yahoo.com/d/quotes.csv?s=@%5ETECDAX&f=sl1d1t1c1ohgvm3&e=.csv
    Wenn ich das “old” weg­las­se, bekomm ich zwar einen Durch­schnitt — die ande­ren Wer­te schei­nen aber alle nicht mehr kor­rekt zu sein.
    Gruß

    antworten
  24. Jochen  Oktober 28, 2010

    Hal­lo zusammen,
    wie wür­de ich denn den Kurs bzw. die Metall­no­tie­rung für Sil­ber in einer CSV bekommen?
    Wenn ich “AG” (für Sil­ber) als Para­me­ter über­ge­be, bekom­me ich den Kurs vom 1.5.2009 aber kei­nen aktuellen.
    http://de.old.finance.yahoo.com/d/quotes.csv?s=AG&f=sl1d1t1c1ohgv&e=.csv
    Was mache ich falsch?
    Grüße
    Jochen

    antworten
  25. fred  November 3, 2010

    geni­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 wenig spät, aber bes­ser spät als nie.
    Die URL für Sil­ber ist folgende:
    http://de.old.finance.yahoo.com/d/quotes.csv?s=SLV&f=snat1&e=.csv
    Du musst dir auf der Yahoo Sei­te die , ich nen­ne sie mal ID´s, holen. Hat­te es am Anfang auch mit AG für Sil­ber und AU für Gold ver­sucht, funk­tio­niert lei­der so nicht.
    Gruß

    antworten
  28. Rene  Juli 8, 2011

    Erst­mal dan­ke für den Beitrag..
    wie sieht es eigent­lich wegen der ISIN aus.. griegt man die auch irgend­wie raus??

    antworten
  29. Michael  August 12, 2011

    Super Beschrei­bung! Dan­ke. Habe aber auch noch eine Fra­ge: War­um lie­fert die API kei­ne Wer­te für den Dow Jones?
    http://finance.yahoo.com/d/quotes.csv?s=^ixic+^gdaxi+^dji&f=l1np2
    Momen­tan ver­zwei­fel ich daran…
    Vie­le Grüße

    antworten
  30. Matthias Brusdeylins  August 23, 2011

    Hi,
    also die his­to­ri­schen Kurs­da­ten des Dow Jones bekom­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 aktu­el­len Kurs­da­ten sind lei­der leer:
    http://finance.yahoo.com/d/quotes.csv?s=^DJI&f=snat1
    –> Mis­sing Sym­bols List.
    Wenn ich bei Yahoo! Finan­ce auf fol­gen­de Web­sei­te gehe:
    http://finance.yahoo.com/echarts?s=^DJI+Interactive#symbol=^DJI;range=1d
    fin­de ich unten im grau­en Kas­ten fol­gen­den Hinweis:
    “Quo­tes are updated auto­ma­ti­cal­ly, but will be tur­ned off after 25 minu­tes of inactivity.”
    Ver­mu­tung: Hier musst du wohl nach der Han­dels­zeit auf die his­to­ri­schen Daten zugreifen…

    antworten
  31. johannes  November 17, 2011

    Dan­ke für die aus­führ­li­che Doku­men­ta­ti­on der Yahoo Finan­ce 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 abge­schal­tet hat? Hast du ein funk­tio­nie­ren­des Bei­spiel 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 bekom­me ich die Daten für Roh­stof­fe wie Alu­mi­ni­um, Stahl, Kup­fer usw her?
    Danke!

    antworten
  33. Christian Herold  Dezember 5, 2011

    Hal­lo,
    aktu­el­le Wer­te für Dow Jones gibt es unter INDU ohne ^.
    http://de.finance.yahoo.com/d/quotes.csv?s=INDU&f=l1d1t1&e=.csv
    Vie­le Grüße
    Christian

    antworten
  34. Ante  Januar 8, 2012

    Kom­pli­ment. Sehr aus­führ­li­che Anlei­tung. Danke!
    Ich habe eine all­ge­mei­ne Frage.
    Kennt jemand den Grund, war­um Yahoo Finan­ce und z.B. Finanzen.net
    unter­schied­li­che Daten lie­fern. Z.b. Buch­wert Alli­anz. (96,46 vs. 93,78).
    Bei­de Wer­te schei­nen in € zu sein.
    Dan­ke vorab.
    Grüße
    Ante

    antworten
  35. Tim  Februar 5, 2012

    Hi, ich fin­de die­se func­tion sehr schön. Nur lei­der habe ich ein gro­ßes Pro­blem. Ich kann nicht mit p2 die Pro­zent aus­le­sen. Mei­ne Rück­ga­be ist dann immer N/A. Hängt das mit dem Zeichsatz zusam­men? Hof­fe Ihr könnt mir hel­fen. Ich bekom­me immer N/A wenn ich p2 und/oder t1 aufrufe.

    antworten
  36. Bobfi  Februar 28, 2012

    Ganz fan­tas­ti­scher Bei­trag, auch wenn die­ser schon ein paar Tage auf dem Buckel hat. Lei­der kann ich nicht her­aus­fin­den, wie ich mir den Roh­öl­preis (WTI und/oder Baret) in Dol­lar aus­ge­ben las­sen kann. Hat da jemand eine Idee?

    antworten
  37. Thomas  Februar 29, 2012

    Sehr guter Bei­trag! Hat mir sehr gehol­fen. Ledig­lich die Infor­ma­tio­nen zum Dayt­ra­ding sind nicht mehr ganz auf dem neus­ten Stand. Die fol­gen­de Web­site zeigt wie man jetzt über Yahoo auf aktu­el­len Intraday-Kurse bzw. auf die Intrady-Kurse der letz­ten 5 Tage zugrei­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 Abdra­gen nicht? Wor­an kann das lie­gen? Ist hier noch jemand aktiv und kann mir helfen?
    LG
    Ingo

    antworten
  39. Dolin  November 27, 2014

    Von der gan­zen Dar­stel­lung bin ich sehr ange­tan und mit dem Her­un­ter­la­den über­aus zufrie­den. Für eini­ge Sym­bo­le wie z,B. NVDA oder den thai­län­di­schen Akti­en­in­dex scheint es kei­ne his­to­ri­schen Kurs­da­ten zuge­ben. Für
    die japa­ni­schen Akti­en konn­te ich lei­der nur Kurs­da­ten aus den USA oder den deut­schen Bör­sen­plät­zen, aber nicht von japa­ni­schen Bör­sen erhal­ten. Vie­len Dank für die gesam­te Anleitung!

    antworten
  40. Dolin  November 27, 2014

    Vie­len Dank für die gesam­te wirk­lich her­vor­ra­gen­de Anlei­tung! Lei­der ist es mir bis jetzt nicht gelun­gen, für die japa­ni­schen Akti­en die Kurs­da­ten von einer japa­ni­schen Bör­se, son­dern nur die von deut­schen oder ame­ri­ka­ni­schen Bör­sen­plät­zen zu erhalten.

    antworten
  41. Autonomer  Dezember 20, 2014

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

    antworten
  42. Robert  August 14, 2015

    Klas­se Beschrei­bung, habe ich schon lan­ge gesucht!
    Es gibt übri­gens auch his­to­ri­sche Devi­sen­kur­se, funk­tio­nie­ren aber nur aus Sicht des US-Dollars.
    Para­me­ter s==X
    Bei­spiel: 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 Kur­se von Jan-Jul 2015 für USD -> CNY

    antworten
  43. Philipp  März 9, 2016

    Dan­ke für die Info wel­ches Bör­sen­kür­zel, wel­che Bör­se dar­stellt. Genau danach habe ich gesucht. Echt Super API.

    Jetzt kann ich end­lich mei­nen Akti­en Scree­ner direkt mit Yahoo Zah­len (Bilanz/Guv/Kennzahlen) ver­knüp­fen und mir nur noch Ergeb­nis­se anzei­gen las­sen, die mei­nen gewünsch­ten Kri­te­ri­en erfüllen.

    antworten
  44. robser  April 15, 2016

    Hal­lo,

    wer kann mir zegen, wie man his­to­ri­sches Daten der Devi­sen her­un­ter­la­den kann? Im Arti­kel (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.

    Bes­te Grüße

    antworten
  45. tk  Juni 8, 2016

    Hal­lo,

    dan­ke für die Infos.

    Ich habe das PHP Skript mal etwas ange­passt, da es so noch nicht ganz funk­ti­ons­fä­hig war.
    Für jeden der es aus­pro­bie­ren 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 = array();

    $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 quo­te 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);
    fclo­se ($file­Handle);
    } else {
    // ERROR-Message in the array
    $stocks[0][0] = „ERROR“;
    $stocks[0][1] = „No data found.“;
    }
    re­turn $stocks;
    }

    loadYahooQuotes($symbol, $tags);

    antworten
  46. Daniel  Oktober 6, 2016

    Hal­lo, weiß jemand, wie man ein­fach die his­to­ri­sche Divi­den­den­ren­di­te noch als Aus­ga­be bekommt?
    Dan­ke und vie­le Grüße
    Daniel

    antworten
  47. Matthias  November 28, 2016

    Hi,

    ich fin­de auf der Yahoo Sei­te die Sym­bo­le für eini­ge Opti­ons­schei­ne nicht -> z.B. DE000DT5MP92 PUT/DAX PERFORMANCE INDEX

    Ohne Sym­bo­le kann ich auch nicht abfra­gen. Wie oder auch wo fin­de ich Optionsscheindaten ?

    antworten
  48. Tim McTiger  Dezember 10, 2016

    Hi,

    coo­les Tuto­ri­al, hat mir sehr geholfen.
    Ich arbei­te gera­de an einer, in der ich die his­to­ri­schen wer­te von Roh­stof­fen benötige.
    Kann ich die­se auch über die API von Yahoo beziehen?

    Dan­ke und lie­be Grüsse
    Tim

    antworten
  49. Joscha  Januar 5, 2017

    Hal­lo,

    Bei mir schei­tert die fopen Funk­ti­on 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 Brow­ser kor­rekt anzeigt wird gibt fopen immer nur fal­se zurück.
    kennt jemand die­ses Problem??

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

    antworten
  50. Klaus Müller  Januar 28, 2017

    Hal­lo,

    Dan­kes für das tol­le Tuto­ri­al. Ist echt schön, wie sich noch Leu­te wie du die Mühe machen, um wis­sen weiterzugeben.
    Ich arbei­te gera­de an einem Pro­jekt, wo ich his­to­ri­sche Daten von Roh­stof­fen (Eisen­erz, Nickel, Kup­fer) benötige.
    Weiß jemand, ob man die­se auch über die Finan­ce API von Yahoo bezie­hen kann.

    Dan­ke im Vorhinein
    Klaus

    antworten
  51. trys  Mai 9, 2017

    Herz­li­chen Dank. 

    Das hab ich schon lan­ge gesucht -
    und mich bis­lang mit den Teil­lö­sun­gen zufrie­den gege­ben, die ich sel­ber raus­ge­fun­den hab.
    Das ist jetzt ein Ansporn, mehr zu probieren.
    Dank auch den Kommentatoren.

    Blei­ben nur noch die Lücken & Feh­ler bei yahoo — die lei­der eher zunehmen.

    antworten
  52. maiermuc  Juni 6, 2017

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

    Lei­der hat sich die API für His­to­ri­sche Daten ende Mai 2017 bei Yahoo geändert.
    Somit funk­tio­niert z.B: der fol­gen­de Link aus dem Arti­kel 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 eines 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 eines php-Programmes erhält.

    antworten
  55. Harry Espino  Juli 9, 2017

    Yahoo finan­ce API is not avail­ab­le any­mo­re. I have moved to Mar­ke­tXLS after this chan­ge, much more reli­able data.

    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 data from mar­ke­txls in rhe csv-format or is it necessa­ry to use Excel?

      antworten

Lassen Sie eine Antwort, um Bobfi
Klicken Sie hier, um die Antwort abzubrechen


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.