如何使用 Yahoo! Finance stock API 获取股票数据

      本站曾介绍过,通过代码添加雅虎财经的股票走势图到自己网站的方法(添加美国股市添加沪深股市 ),调用的是一张图片。今天在德馨 网站,看到了从雅虎财经频道获取股票数据的API(Yahoo! Finance stock API),觉得 API 使用更广泛,作个转引。

1、通过API获取实时数据

请求地址

http://finance.yahoo.com/d/quotes.csv?s=<股票名称>&f=<数据列选项>

参数

  • s – 表示股票名称,多个股票之间使用英文加号分隔,如”XOM+BBDb.TO+JNJ+MSFT”,罗列了四个公司的股票:XOM, BBDb.TO, JNJ, MSFT。
  • f – 表示返回数据列,如”snd1l1yr”。更详细的参见雅虎股票 API f 参数对照表

2、通过API获取历史数据

请求地址

http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

参数

  • s – 股票名称
  • a – 起始时间,月
  • b – 起始时间,日
  • c – 起始时间,年
  • d – 结束时间,月
  • e – 结束时间,日
  • f – 结束时间,年
  • g – 时间周期。Example: g=w, 表示周期是’周’。d->’日’(day), w->’周’(week),m->’月’(mouth),v->’dividends only’

一定注意月份参数,其值比真实数据-1。如需要9月数据,则写为08。

3、通过API获取深沪股票数据

雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.ss,深圳市场末尾加.sz。

 

Yahoo! Finance API

Yahoo-Finance API Moderne Broker-Portale bieten einem Investor die Möglichkeit, Kurse seiner Aktien bzw. Optionen abzurufen. Dort findet er in der Regel auch Kurs-Charts und Chart-Analyse-Kurven zu den unterschiedlichsten Zeiträumen. Dem ein oder anderen privaten Investor sind diese Analysen vielleicht nicht ausreichend genug. Es mag unter ihnen Informatiker und Hobby-Programmierer geben, die den Wunsch äußern, mit Kursdaten mathematische Analysen durchzuführen, um Indikatoren selbst zu berechnen. Nur wie gelangt ein Programmierer an die aktuellen und historischen Zahlen einzelner Aktienkurse? Dieser Beitrag soll die Möglichkeiten der Yahoo!Finance-Schnittstelle näher bringen.

Für das Ermitteln unterschiedlicher Kursdaten bietet Yahoo!Finance (auch für Deutschland ) verschiedene CSV-Export-Services an. CSV steht für “Comma Separated Values” und bedeutet hier nichts anderes, als dass die ganzen Kennzahlen (wie z.B. Schluss-Kurs oder Volumen) in reiner Textform mit Kommas und Zeilenumbrüchen getrennt ausgeliefert werden. Daten in solch einem Format kann ein Computerprogramm für Analysezwecke leicht verarbeiten. Im Folgenden werden die bekannten Schnittstellen genauer erläutert und dazu passende Beispiele und PHP-Scripte präsentiert. Da mir keine offizielle API von Yahoo!Finance bekannt ist und ich die hier beschriebene Schnittstelle durch Ausprobieren und Studium ermittelt habe, kann ich für eine Vollständigkeit des aufgezeigten Funktionsumfanges nicht garantieren. Für Hinweise bin ich daher sehr dankbar. Verwendet ein Entwickler die Services von Yahoo!Finance, so sollte er sich vorher die Nutzungsbedingungen (siehe auch ) genau durchlesen.

Aktuelle Kursdaten ermitteln

Ganz ehrlich, “aktuell” bedeutet bei der kostenlosen Yahoo!Finance-Schnittstelle leider eine Verzögerung von 15 Minuten für NASDAQ Werte, bis hin zu 60 Minuten für andere Börsenplätze (näheres auf Yahoo!Finance ). Doch für die meisten Verwendungszwecken bzw. westlichen Börsenkurse dürfte diese Verzögerung kein Problem darstellen. Yahoo! bietet Kurse aus den unterschiedlichsten Börsenplätzen an. Die Selektion des entsprechenden Handelsplatzes findet in der URL selbst, sowie in einem Anhang (Suffix) an der Symbolangabe statt. Im Kapitel “Länderunterschiede” werden die Unterschiede aufgelistet. Zum besseren Verständnis zeige ich hier nur die Basis-URL, welche vor allem für die US-Börsenkurse gültig ist. Das Ergebnis ist eine Werteliste, die durch Kommas getrennt präsentiert wird. Die Serviceadressen für aktuelle Kursinformationen lautet http://finance.yahoo.com/d/quotes.csv? und nimmt die folgenden drei bekannten Parameter entgegen:

ParameterBeschreibung
s=Das Symbol des Wertpapiers wird mit dem Parameter “s” angegeben. Z.B. liefert hier “s=AAPL ” die aktuellen Kursdaten von Apple Inc. Eine Kombination mehrere durch ein Pluszeichen getrennte Symbole ist ebenfalls möglich (zum Beispiel “s=AAPL+MSFT ” für Apple und Microsoft). Die Werte, getrennt durch Kommas, kommen dann jeweils in eine separaten Zeile pro Symbol zurück.
f=Die Format-Codes werden hier mit dem Parameter “f” angegeben. Dabei handelt es sich hier um einen Textzug mit lauter aneinandergereihten Kürzel. So gibt z.B. das Zeichen “s” an, dass das Symbol der Aktie ausgegeben werden soll. “n” liefert den Namen, “a” den aktuellen Anfrage-Kurs. Die Werte werden exakt in der Reihenfolge ausgegeben, wie sie hier angefordert werden. Eine Liste aller bekannten Format-Codes wird weiter unten um Kapitel “Die Format-Codes” aufgelistet. Beispiel: f=sna
e=.csvDie Exportart wird mit dem Parameter “e” angegeben. Hier sollte immer “e=.csv ” für ein “Comma Separated Values” Ergebnis übermittelt werden. Erfahrungen haben gezeigt, dass dieser Parameter wohl optional ist.

Das folgende Beispiel ermittelt von Apple und Microsoft das Symbol, den Firmen-Namen, den aktuellen Anfrage-Kurs und die dazu gehörige Zeit ab. Dabei sind Zeit und Kurswert immer länderspezifisch zu verstehen (US-Zeit und Dollar). Wenn Sie diese URL in den Browser eingeben, können Sie das Ergebnis abspeichern. Danach können Sie die Rohdaten in einem Texteditor öffnen und betrachten (nicht mit Excel öffnen, da hier die Formatierung nicht ersichtlich 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 diese Daten in einem mehrdimensionalen Array ablegen. Dabei enthalten die Spalten die Inhalte der Werte, welche durch die Format-Codes angefordert wurden. Die Zeilen bilden jeweils das Zahlentupel eines Wertpapiers ab. Eine PHP-Funktion zur Ermittlung der Kursdaten könnte somit folgendermaß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önnen nicht nur einzelne Aktienkurse erfragen, sondern auch Devisenkurse. Dazu müssen Sie an der oben vorgestellten Adresse als Symbol-Parameter ein spezielles Konstrukt der Form AB=X übermitteln. Hier steht der Buchstabe A für die erste zu vergleichende Währung und der Buchstabe B dann natürlich für die zweite Währung. X steht wohl für Exchange und wird nicht ersetzt. Wollen Sie mehrere Währungen abfragen, können mehrere Konstrukte mittels dem Pluszeichen “+ ” aneinander gehängt werden. Folgendes Beispiel 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ürzel der Währungen bestehen aus drei Buchstaben und werden hier aufgelistet:

LandKürzel
Afganistan AfghaniAFA
Albanian LekALL
Algerian DinarDZD
Argentinian PesoARS
Aruban FlorinAWG
Australian DollarAUD
Austrian SchillingATS
Bahraini DinarBHD
Bangladesh TakaBDT
Barbados DollarBBD
Belgian FrancBEF
Belize DollarBZD
Bermuda DollarBMD
Bhutan NgultrumBTN
Bolivian BolivianoBOB
Botswana PulaBWP
Brazilian RealBRL
British PoundGBP
Brunei DollarBND
Bulgarian LevBGN
Cambodian RielKHR
Canadian DollarCAD
Cape Verde EscudoCVE
Cayman Islands DollarKYD
CFA Franc (BCEAO)XOF
CFA Franc(BEAC)XAF
CFP FrancXPF
Chilean PesoCLP
Colombian PesoCOP
Comoros FrancKMF
Costa Rican ColonCRC
Croatian KunaHRK
Cuban PesoCUP
Cypriot PoundCYP
Czech KorunaCZK
Danish KroneDKK
Djibouti FrancDJF
Dominican PesoDOP
Dutch GuilderNLG
East Caribbean DollarXCD
Egyptian PoundEGP
El Salvador ColonSVC
Estonian KroonEEK
Ethiopian BirrETB
EuroEUR
Fiji DollarFJD
Finnish MarkkaFIM
French FrancFRF
Gambia DalasiGMD
German MarkDEM
Ghanaian CediGHC
Gibraltar PoundGIP
Greek DrachmaGRD
Guatemala QuetzalGTQ
Guinea FrancGNF
Guyana DollarGYD
Haitian GourdeHTG
Honduras LempiraHNL
Hong Kong DollarHKD
Hungarian ForintHUF
Iceland KronaISK
Indian RupeeINR
Indonesian RupiahIDR
Irish PuntIEP
Israeli ShekelILS
Italian LiraITL
Jamaican DollarJMD
Japanese YenJPY
Jordanian DinarJOD
Kenyan ShillingKES
Kuwaiti DinarKWD
Laos KipLAK
Latvian LatsLVL
Lebanese PoundLBP
Lesotho LotiLSL
Lithuanian LitasLTL
Malagasy FrancMGF
Malawi KwachaMWK
Malaysian RinggitMYR
Maldives RufiyanMVR
Maltese PoundMTL
Mauritania OuguiyaMRO
Mauritius RupeeMUR
Mexican PesoMXN
Mongolian TugrikMNT
Moroccan DirhamMAD
Mozambique MeticalMZM
Myanmar KyatMMK
Namibian DollarNAD
Nepal RupeeNPR
Netherlands Antilles GuilderANG
New Zealand DollarNZD
Nicaraguan CordobaNIO
Nigerian NairaNGN
Norwegian KroneNOK
Oman RialOMR
Pakistani RupeePKR
Papua New Guinea KinaPGK
Peruvian SolPEN
Philippines PesoPHP
Polish ZlotyPLN
Portuguese EscudoPTE
Qatari RialQAR
Renmimbi YuanCNY
Romanian LeuROL
Russian RubleRUB
Salomon Islands DollarSBD
Sao Tome & Principe DobraSTD
Saudi Arabian RiyalSAR
Seychelles RupeeSCR
Sierra Leone LeoneSLL
Singapore DollarSGD
Slovak KorunaSKK
Slovenian TolarSIT
South African RandZAR
South Korean WonKRW
Spanish PesetaESP
Sri Lanka RupeeLKR
St. Helena PoundSHP
Sudanese DinarSDD
Surinam GuilderSRG
Swaziland LilangeniSZL
Swedish KronaSEK
Swiss FrancCHF
Syria PoundSYP
Taiwan New DollarTWD
Tanzanian ShillingTZS
Thai BahtTHB
Tonga Isl Pa’angaTOP
Trinidad DollarTTD
Tunisian DinarTND
Turkish LiraTRL
Ugandan ShillingUGX
Ukraine HryvniaUAH
United Arab Emirates DirhamAED
US DollarUSD
Vanuatu VatuVUV
Venezuelan BolivarVEB
Vietnam DongVND
Western Samoa TalaWST
Zambia KwachaZMK
Zimbabwean DollarZWD

Die Format-Codes

Für den Parameter der Formate-Codes (”f”) stehen eine ganze Reihe akzeptierter Format-Tags zur Verfügung. Viele sind dabei wohl redundant und werden hier einfach zusammengefasst (z.B. “a” und “b2″ für Anfrage-Kurs). Die folgende Tabelle listet alle bekannten Codes auf.

Achtung: In einigen Fällen liefert Yahoo!Finance mehrstellige Werte zurück, die ebenfalls mit Kommas getrennt dargestellt werden. Dies ist an sich ungeschickt, da es für Sie als Programmierer schwierig wird, die Kommas zwischen den einzelnen Werten von den Kommas in einem Wert zu unterscheiden. Hier empfehle ich, diese Parameter getrennt abzufragen.

CodeBedeutung
a, a0, a4Ask (sometimes) – Nicht alle Kursanfragen liefern hier einen Wert.
a3, b2Ask – incl. Pre- und Post-Market Werte
a1- unknown -
a2Average Daily Volume
a5Ask Size

Achtung: hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.

b, b0Bid (sometimes) – Nicht alle Kursanfragen liefern hier einen Wert.
b1, b3Bid – incl. Pre- und Post-Market Werte
b4Book Value
b6Bid Size

Achtung: hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.

c, c2, q1Change & Percent Change
c1, c0, c6, c7Change
c3Commission
c4Currency
c5- unknown -
c8After Hours Change
d, d0Dividend/Share
d1Last Trade Date
d2Trade Date
d3Last Trade Date (text)
e, e0Earnings/Share
e1Error Indication (returned for symbol changed / invalid)
e2Verfallsdatum bei Optionsscheinen
e3- unknown -
e4- unknown -
e7EPS Estimate Current Year
e8EPS Estimate Next Year
e9EPS Estimate Next Quarter
f, f0, f1, f2, f3, f4, f5, g2- HTML Fragment mit Company name, market place und Trade Link -
f6Float Shares

Achtung: hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.

f7, f8,- HTML Fragment mit Trade-Link -
g, g0Day’s Low
g1Holdings Gain Percent
g3Annualized Gain
g4, g6Holdings Gain
g5Holdings Gain Percent
h, h0Day’s High
h1, h2, h3, h4, h5, h6- HTML Fragment -
i, i0More Info
i2- unknown -
i3- unknown -
i4- unknown -
i5Order Book
i6- unknown -
i7, l1, l7, l9, q2, v2, y2Last Trade (price only)
j, j052-week Low
j1Market Capitalization
j2Shares Outstanding

Achtung: hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.

j3- unknown -
j4EBITDA
j5Change From 52-week Low
j6Percent Change From 52-week Low
k, k052-week High
k1Last Trade (with -unknown-)
k2Change Percent (with -unknown-)
k3Last Trade Size

Achtung: hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.

k4Change From 52-week High
k5Percebt Change From 52-week High
l, l0, n1, n5, y1Last Trade (with Date)
l2High Limit
l3Low Limit
l4- unknown -
l5- unknown -
l6- unknown -
m, m0Day’s Range
m1- unknown -
m2- unknown – (Day?) Range
m350-day Moving Average
m4200-day Moving Average
m5Change From 200-day Moving Average
m6Percent Change From 200-day Moving Average
m7Change From 50-day Moving Average
m8Percent Change From 50-day Moving Average
n, n0Name
n2- unknown -
n3- unknown -
n4Notes
n6- unknown -
n7- unknown -
n8- unknown -
n9- unknown -
o, o0Open
o1, o2Open Interest bei Optionsscheinen
o4- unknown -
o5- unknown -
p, p0, p8Previous Close
p1Price Paid
p2, p4Change in Percent
p3- unknown -
p5, p9Price/Sales
p6Price/Book
q, q0Ex-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, r0P/E Ratio
r1Dividend Pay Date
r2- unknown -
r3- HTML Fragment für Auswahl der Indikatoren -
r4- HTML Fragment für Auswahl der Overlays -
r5PEG Ratio
r6Price/EPS Estimate Current Year
r7Price/EPS Estimate Next Year
r9- unknown -
s, s0, s2, s4Symbol
s1Shares Owned
s3Bezugspreis bei Optionsscheinen
s6Revenue ?
s7Short Ratio
t, t0, t2, u, u0, u2, u3- HTML Fragment für ein Chart-Bild -
t1Last Trade Time
t3- unknown -
t4- unknown -
t5- unknown -
t6- HTML Fragment mit Trade-Link -
t7Ticker Trend
t81 yr Target Price
v, v0, v6Volume
v3- unknown -
v4- unknown -
v5- unknown -
v1Holdings Value
v7- unknown -
w, w052-week Range
w1Day’s Value Change
w4- unknown -
x, x0Stock Exchange
y, y0Dividend Yield
z2- HTML Fragment -
z3- liefert “Oops!” -

Höhere Indexwerte führen nur noch zu einer Wiederholung der Inhalte. Vermutlich sollen die Codes zweistellig sein (Buchstabe + Zahl). Fällt die Zahl weg, so wir automatisch der Index 0 angenommen.

Daytrading-Daten

Leider bietet Yahoo!Finance nur die letzten 100 Tages-Kurswerte zum Ermittlungszeitpunkt an. Auch hier wirkt die Verzögerung von 15-60 Minuten, wie im Abschnitt “Aktuelle Kursdaten” beschrieben. Die Serviceadresse für die Daytrading-Daten lautet http://logtrade.finance.vip.ukl.yahoo.com/lastTrades? und nimmt folgende drei bekannte Parameter entgegen:

ParameterBeschreibung
s=Das Symbol des Wertpapiers wird mit dem Parameter “s” angegeben. Z.B. liefert hier “s=AAPL ” die letzten 100 Daytrading-Daten von Apple Inc.
output=userDer Sinn dieses Parameters ist leider noch nicht bekannt. Für weitere Hinweise bin ich sehr dankbar.
i=euAuch hier ist mir der Sinn des Parameters noch nicht bekannt.

Das Ergebnis einer solchen Abfrage liefert eine Liste mit Wertegruppen – eine Gruppe für jeden Trade. Ein solches Tupel enthält den Trading-Zeitpunkt, den Kurswert und die Volumina des Trades.

Historische Kursdaten

Für ein Wertpapier stehen bei Yahoo ebenfalls historische Daten zur Verfügung. Die Service-URL hierfür lautet http://ichart.finance.yahoo.com/table.csv? und besitzt Parameter für das Symbol, sowie für das Zeitintervall, innerhalb ein Entwickler die täglichen bzw. wöchentlichen Kursdaten ermitteln will:

ParameterBeschreibung
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(konstanter Wert, aber optional)
y=Verschiebung um eine angegebene Anzahl an Tagen/Wochen/Monaten. Macht eigentlich keinen Sinn, da oben bereits ein Intervall angegeben wurde. Trotzdem unterscheiden sich z.B. die Volumen-Werte eines Monats (g=m), wenn hier eine Verschiebung Y>0 angegeben wird. Für weitere Hinweise bin ich hier dankbar!

Das Ergebnis besteht aus einer Liste täglicher, wöchentlicher oder monatlicher Werte zu dem übermittelten Zeitraum. Die erste Zeile enthält die Überschrift der einzelnen Spaltenwerte. In allen weiteren Zeilen liefert Yahoo!Finance danach das Datum, den Eröffnungskurs, den höchsten und tiefsten Kurswert, sowie den Tagesschlusskurs und das Handelsvolumen für jeden einzelnen Tag. Da diese Werte gegenüber Splits und Dividenden unbereinigt sind, liefert Yahoo! in der letzten Spalte “Adj. Close” noch bereinigte Schlusskurse. Ein bisschen anders sieht das Ergebnis aus, wenn als Chart-Abstufung der Wert “v” für die Dividendenausschüttungen angegeben wird. Dann werden nur noch zwei Spalten mit einem Datum sowie dem Wert selbst zurückgeliefert. Hier noch zwei Beispiele mit den ersten 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 programmatische Auswertung dieser Daten bietet sich auch hier das Array als Ergebnisträger an. In jeder Zeile können so die Werte eines Tages (bzw. einer Woche, eines Monats oder der Dividenden) abgelegt werden. Folgende 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örse werden nicht nur Aktien in unterschiedlichen Währungen gehandelt, sondern auch Nebenwerte wie beispielsweise Optionsscheine. Der Handel solcher Wertpapiere ist meist auf ein Land bzw. Börsenplatz beschränkt. Aus diesem Grund bietet Yashoo!Finance auch unterschiedliche Serviceadressen an. In diesem Artikel wurden bisher nur die Adressen für US-Börsendaten aufgezeigt. So kann unter der URL http://finance.yahoo.com/d/quotes.csv? der aktuelle Kurs einer Aktie in US-Dollars ermittelt werden. Wollen Sie hingegen einen Kurs aus dem deutschen Raum ermitteln, steht Ihnen die URL http://de .finance.yahoo.com/d/quotes.csv? zur Verfügung.

Die folgende Tabelle zeigt die Adressen (URL) zum Yahoo!Finance-Service für aktuelle Börsenkurse. In der ersten Spalte werden auch die Symbol-Suffixe aufgelistet, welche für eine aktive Börsenplatz-Wahl an die Symbolangabe gehängt werden können (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 richtigen Symbolbezeichnung.

Land & SuffixURLs
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 bietet einen einfachen Zugriff auf die hier beschriebene Schnittstelle. Mit ihr lassen sich aktuelle, sowie historische Kursdaten ermitteln. Das Ergebnis wird in einem zweidimensionalen Array zurückgeliefert (siehe Beispiele im Text). Für die Package-Struktur diente das Zend-Framework als Vorlage. Somit ist eine einfache Integration in dieses gewährleistet.

Yahoo! Finance API, Version 1.0

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值