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 brin­gen.
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 durch­le­sen.

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 ent­ge­gen:

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 aus­se­hen:

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

Land Kür­zel
Afga­ni­stan Afgha­ni AFA
Alba­ni­an Lek ALL
Alge­ri­an Dinar DZD
Argen­ti­ni­an Peso ARS
Aru­ban Flo­rin AWG
Aus­tra­li­an Dol­lar AUD
Aus­tri­an Schil­ling ATS
Bah­rai­ni Dinar BHD
Ban­gla­desh Taka BDT
Bar­ba­dos Dol­lar BBD
Bel­gi­an Franc BEF
Beli­ze Dol­lar BZD
Ber­mu­da Dol­lar BMD
Bhu­tan Ngul­trum BTN
Boli­vi­an Boli­via­no BOB
Bots­wa­na Pula BWP
Bra­zi­li­an Real BRL
Bri­tish Pound GBP
Bru­nei Dol­lar BND
Bul­ga­ri­an Lev BGN
Cam­bo­di­an Riel KHR
Cana­di­an Dol­lar CAD
Cape Ver­de Escu­do CVE
Cayman Islands Dol­lar KYD
CFA Franc (BCEAO) XOF
CFA Franc(BEAC) XAF
CFP Franc XPF
Chi­le­an 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
Dutch Guil­der NLG
East Carib­be­an Dol­lar XCD
Egyp­ti­an Pound EGP
El Sal­va­dor Colon SVC
Esto­ni­an Kroon EEK
Ethio­pi­an Birr ETB
Euro EUR
Fiji Dol­lar FJD
Fin­nish Mark­ka 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 Quetz­al GTQ
Gui­nea Franc GNF
Guya­na Dol­lar GYD
Hai­ti­an Gour­de HTG
Hon­du­ras Lem­pi­ra HNL
Hong Kong Dol­lar HKD
Hun­ga­ri­an Forint HUF
Ice­land Kro­na ISK
Indi­an Rupee INR
Indo­ne­si­an Rupiah IDR
Irish Punt IEP
Israe­li She­kel ILS
Ita­li­an Lira ITL
Jamai­can Dol­lar JMD
Japa­ne­se Yen JPY
Jor­da­ni­an Dinar JOD
Kenyan Shil­ling 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
Malagasy Franc MGF
Mala­wi Kwacha MWK
Malay­si­an Ring­git 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 Meti­cal MZM
Myan­mar Kyat MMK
Nami­bi­an Dol­lar NAD
Nepal Rupee NPR
Nether­lands Antil­les Guil­der ANG
New Zea­land Dol­lar NZD
Nica­ra­gu­an Cor­do­ba NIO
Nige­ri­an Nai­ra NGN
Nor­we­gi­an Kro­ne 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 Escu­do PTE
Qata­ri Rial QAR
Ren­mim­bi Yuan CNY
Roma­ni­an Leu ROL
Rus­si­an Ruble RUB
Salo­mon Islands Dol­lar SBD
Sao Tome & Princi­pe Dobra STD
Sau­di Ara­bi­an Riy­al SAR
Sey­chel­les Rupee SCR
Sier­ra Leo­ne Leo­ne SLL
Sin­g­a­po­re Dol­lar SGD
Slo­vak Kor­u­na SKK
Slo­ve­ni­an Tolar SIT
South Afri­can Rand ZAR
South Korean Won KRW
Spa­nish Pese­ta ESP
Sri Lan­ka Rupee LKR
St. Hele­na Pound SHP
Suda­ne­se Dinar SDD
Suri­nam Guil­der SRG
Swa­zi­land Lilan­ge­ni SZL
Swe­dish Kro­na SEK
Swiss Franc CHF
Syria Pound SYP
Tai­wan New Dol­lar TWD
Tan­za­ni­an Shil­ling TZS
Thai Baht THB
Ton­ga Isl Pa’anga TOP
Tri­ni­dad Dol­lar TTD
Tuni­si­an Dinar TND
Tur­kish Lira TRL
Ugan­dan Shil­ling UGX
Ukrai­ne Hryv­nia UAH
United Arab Emi­ra­tes Dir­ham AED
US Dol­lar USD
Vanua­tu Vatu VUV
Vene­zue­lan Boli­var VEB
Viet­nam Dong VND
Wes­tern Samoa Tala WST
Zam­bia Kwacha ZMK
Zim­bab­wean Dol­lar 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 abzu­fra­gen.

Code Bedeu­tung
a, a0, a4 Ask
a1 - unknown -
a3, b2 Ask (Real­time) — with Pre- and Post-Market
a2 Average Dai­ly Volu­me
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 vari­iert.
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 Sha­re
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 vari­iert.
c, c2, q1 Chan­ge & Per­cent Chan­ge
c0 Chan­ge in Per­cent
c1, c7 Chan­ge
c3 Com­mis­si­on
c4 Cur­r­en­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 Sha­re)
d1 Last Tra­de Date
d2 Tra­de Date
d3 Last Tra­de Date (text)
e, e0 Earnings per Sha­re (Dilu­t­ed EPS)
e1 Error Indi­ca­ti­on (retur­ned for sym­bol chan­ged / inva­lid)
e2 Ver­falls­da­tum bei Opti­ons­schei­nen
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 Quar­ter
f, f0 Tra­de Links Addi­tio­nal
f1, f2, f3, f4, f5, g2 - HTML Frag­ment mit Com­pa­ny name, mar­ket place und Tra­de Link -
f6 Float Sha­res 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 vari­iert.
f7, f8, - HTML Frag­ment mit Trade-Link -
g, g0 Day’s Low
g1 Hol­dings Gain Per­cent
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 Frag­ment -
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 Capi­ta­li­za­ti­on
j2 Sha­res 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 vari­iert.
j3 Mar­ket Capi­ta­li­za­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 vari­iert.
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 Opti­ons­schei­nen
o4 - unknown -
o5 - unknown -
p, p0, p8 Pre­vious Clo­se
p1 Pri­ce Paid
p2, p4 Chan­ge in Per­cent
p3 - unknown -
p5, p9 Pri­ce Sales
p6 Pri­ce Book
q, q0 Ex-Dividend Date
q3 - HTML Frag­ment für Zeit­raum­aus­wahl -
q4 - HTML Frag­ment für Aus­wahl des Gra­f­en­typs -
q5 - HTML Frag­ment für Aus­wahl der Ska­lie­rung -
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 Indi­ka­to­ren -
r4 - HTML Frag­ment für Aus­wahl der Over­lays -
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 Sha­res Owned
s3 Bezugs­preis bei Opti­ons­schei­nen
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 Pri­ce
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 Chan­ge
w4 Day’s Value Chan­ge (Real­time)
x, x0 Stock Exchan­ge
y, y0 Trai­ling Annu­al Divi­dend Yield In Per­cent
z2 - HTML Frag­ment -
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 ange­nom­men.

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 ent­ge­gen:

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 dank­bar.
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 Tra­des.

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 Akti­en­kur­ses
ignore=.cvs (kon­stan­ter Wert, aber optio­nal)
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 dank­bar!

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 Ergeb­nis­se:

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 ver­deut­li­chen:

<?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 Ver­fü­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 Sym­bol­be­zeich­nung.

Land & Suf­fix 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 Pau­lo)
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 Indi­en)
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 Exchan­ge)
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 Lum­pur) ?
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 Zea­land)
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 Mar­ket)
.MC (Madrid SE C.A.T.S.)
.MA (Madrid)
http://es.finance.yahoo.com/d/quotes.csv?
Tai­wan
.TWO (OTC Bör­se Tai­wan)
.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 Mar­ket)
.PK (Pink She­ets)
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ähr­leis­tet.
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 com­ple­ted
1.0 04.05.2008 — Zend-Framework packa­ge struc­tu­re inte­gra­ted

 
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 Opti­ons­schei­ne:
    s3 = Strike
    e2 = Expi­ry
    o1 = o2 = Open Intrest
    Grü­ße,
    JSTHEMASTER!

    antworten
  2. Matthias Brusdeylins  Oktober 12, 2008

    Vie­len Dank für die Infor­ma­tio­nen !

    antworten
  3. Blear  Juni 16, 2009

    vie­len Dank erst­mal für die tol­le Doku­men­ta­ti­on.
    Und wie mache ich das mit den Roh­stoff­prei­sen?
    Bei­spiel: Ölpreis­ent­wick­lung der letz­ten Jah­re?
    kennt da jemand die Para­me­ter? Dan­ke.

    antworten
  4. Matthias Brusdeylins  Juni 17, 2009

    Ist das nicht ein­fach ein ande­res Sym­bol?
    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 Sym­bol

    antworten
  8. ibuddy  August 31, 2009

    Hal­lo Mat­thi­as Brusdey­lins!
    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 unge­mein!
    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. 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 Daten­bank auto­ma­tisch fül­len.… aber nur am Ran­de.
    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 spa­ren!
    Ich zie­he mein Hut, sehr schön! Hab vie­len Dank!
    Vie­le Grü­ße, ibud­dy

    antworten
  9. Alexx  September 1, 2009

    Sehr inter­es­san­ter Arti­kel, Dan­ke!
    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 aus­wen­dig…
    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 Indi­ces?

    antworten
  11. Me.MyBase  Oktober 2, 2009

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

    antworten
  12. chris  November 13, 2009

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

    antworten
  13. bartmann_61  Dezember 8, 2009

    Hal­lo Mat­thi­as,
    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 Ban­ken.
    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 Sei­te!
    y2, v2, q2, l7, l9, l1 schei­nen den aktu­el­len Kurs von Fonds aus­zu­ge­ben.
    Dan­ke,
    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 dar­ge­stellt.
    Mario

    antworten
  16. Weiterentwickler  Januar 22, 2010

    Hal­lo an Euch,
    die Sei­te ist sehr schön zusam­men gestellt, Kom­pli­ment!
    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 hel­fen?
    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ön­nen.

    antworten
  19. Max  August 17, 2010

    Dan­ke für die­sen Bei­trag, er hat mir schon sehr wei­ter­ge­hol­fen!
    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 Dan­ke­schö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 wer­den ?
    Gruß,
    J

    antworten
  21. Matthias Brusdeylins  Oktober 7, 2010

    Falls hier jemand eine Lösung hat, wäre ich sehr dank­bar.

    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 las­sen?
    Bei­spiel:
    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 zusam­men,
    wie wür­de ich denn den Kurs bzw. die Metall­no­tie­rung für Sil­ber in einer CSV bekom­men?
    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 aktu­el­len.
    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 fol­gen­de:
    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 Bei­trag..
    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 dar­an…
    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 Clo­se
    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 Hin­weis:
    “Quo­tes are updated auto­ma­ti­cal­ly, but will be tur­ned off after 25 minu­tes of inac­tivi­ty.”
    Ver­mu­tung: Hier musst du wohl nach der Han­dels­zeit auf die his­to­ri­schen Daten zugrei­fen…

    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ör­sen­da­ten.
    Wo aber bekom­me ich die Daten für Roh­stof­fe wie Alu­mi­ni­um, Stahl, Kup­fer usw her?
    Dan­ke!

    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
    Chris­ti­an

    antworten
  34. Ante  Januar 8, 2012

    Kom­pli­ment. Sehr aus­führ­li­che Anlei­tung. Dan­ke!
    Ich habe eine all­ge­mei­ne Fra­ge.
    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 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 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 Zeich­satz zusam­men? Hof­fe Ihr könnt mir hel­fen. Ich bekom­me immer N/A wenn ich p2 und/oder t1 auf­ru­fe.

    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 hel­fen?
    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 Anlei­tung!

    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 erhal­ten.

    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ül­len.

    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öch­te:

    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 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 ar­ray
    $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
    Dani­el

    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 Opti­ons­schein­da­ten ?

    antworten
  48. Tim McTiger  Dezember 10, 2016

    Hi,

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

    Dan­ke und lie­be Grüs­se
    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 Pro­blem??

    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 wei­ter­zu­ge­ben.
    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ö­ti­ge.
    Weiß jemand, ob man die­se auch über die Finan­ce API von Yahoo bezie­hen kann.

    Dan­ke im Vor­hin­ein
    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 pro­bie­ren.
    Dank auch den Kom­men­ta­to­ren.

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

    antworten
  52. maiermuc  Juni 6, 2017

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

    Lei­der hat sich die API für His­to­ri­sche Daten ende Mai 2017 bei Yahoo geän­dert.
    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 relia­ble 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

Schreibe einen Kommentar