如何使用 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

Trackback URL

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28762.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python教程:如何设置画布大小?

Python教程&#xff1a;如何设置画布大小&#xff1f; 在Python中&#xff0c;我们可以使用各种图形库来创建各种类型的图。有时&#xff0c;我们需要调整图像的大小以适应我们的需求。所以&#xff0c;在这篇文章中&#xff0c;我将介绍如何使用Python来设置画布大小。 什么…

chatgpt赋能python:Python创建画布的教程

Python 创建画布的教程 Python是一个功能强大的编程语言&#xff0c;其中一个重要的应用是数据可视化。在数据科学、机器学习、图像处理和软件开发中&#xff0c;Python的可视化功能非常实用。本教程将介绍Python创建画布的步骤&#xff0c;以及如何使用Matplotlib创建简单的图…

基于微信功能社群助手

随着信息时代的到来&#xff0c;个人微信用户越来越意识到微信营销软件的重要性&#xff0c;纷纷利用信息化的手段对客户进行管理&#xff0c;微信营销软件也成为大家追求的目标。 但是一个普遍的问题是&#xff1a;市场上有那么多的微信营销软件软件…究竟哪个更好?我们到底…

Google 宣布推出隐私计算核心服务;Amazon Managed Grafana正式可用……

NEWS 本周新闻回顾 Google 宣布推出隐私计算核心服务 今年 5 月 Google I/O 开发者大会发布 Android 12 的同时&#xff0c;宣布了隐私计算核心&#xff08;Private Compute Core&#xff09;。这是一项开源计划&#xff0c;提供了一个沙盒式的安全环境&#xff0c;将智能回复、…

Google Gmail Oauth Client ID 认证指南

官方文档&#xff1a;https://developers.google.com/workspace/guides/configure-oauth-consent https://developers.google.com/workspace/guides/create-credentials 参考视频&#xff1a;https://www.youtube.com/watch?vtGDn3V-mIOM https://www.youtube.com/watch?v…

第三方登陆--接入谷歌和FaceBook

一、第三方登陆流程 一、用户点击登录&#xff0c;前端会调用第三方的SDK&#xff0c;获取到对应的数据&#xff0c;一般会有token、userId。 二、前端拿到这些信息之后&#xff0c;回调自己后端服务端的接口&#xff0c;进行token校验。主要目的是后端得防止他人使用恶意手段&…

chatgpt赋能python:Python如何删除空白

Python 如何删除空白 在SEO优化过程中&#xff0c;我们需要保证我们的网页内容的质量和可读性。其中&#xff0c;一个重要的因素是删除空白。在Python中&#xff0c;我们可以使用多种方法来删除空白&#xff0c;下面我们将介绍一些方法并讨论它们的优缺点。 方法一&#xff1…

chatgpt赋能python:如何使用Python创建空白图?

如何使用Python创建空白图&#xff1f; 对于数据分析师、图像处理专家或任何对Python编程语言感兴趣的人来说&#xff0c;创建空白图可能是一个常见的任务。这是非常合理的&#xff0c;因为Python是一种非常通用的编程语言&#xff0c;提供了很多模块和库&#xff0c;可用于处…

数字水印(DWT算法Python实现)

全部代码&#xff1a; """------------------------- Project: DWT数字水印嵌入、提取 Author: Tysay Environment: Python3.8 VsCode History: 2022/12/01 -------------------------""" import cv2 import pywt import numpy a…

水印,数字水印,频域水印(隐形水印)很麻烦!用这个分分钟搞定!

水印&#xff0c;你在很多公司图片都会看到&#xff0c;里面都会加入图片都会有显式水印&#xff0c;或者半隐形水印。平常加水印&#xff0c;只要将两张图片色值混合就没问题了 import cv2 import numpy as np import matplotlib import matplotlib.pyplot as plt img cv2.…

什么是数字水印

经常有文章把数字签名和数字水印“傻傻分不清”&#xff0c;那今天就介绍一下数字水印。 一、数字水印技术原理 数字水印是一种信息隐藏技术&#xff0c;它利用人体感官的限制&#xff0c;将数字信号&#xff0c;如图像、文字、符号、数字等一切可以作为标记、标识的信息与原…

数字图像水印处理

数字图像水印处理 一个处理数字图像水印的系统&#xff0c;该系统可以实现添加可见水印&#xff0c;添加不可见水印&#xff0c;识别水印&#xff0c;提取可见水印&#xff0c;提取不可见水印&#xff0c;打开、保存图片等功能。(这里的水印识别指的是识别自己添加的水印) 添…

文心大模型3.5勇夺三个冠军领跑,中文完爆GPT-4!国际权威报告7项满分「全班第一」...

新智元报道 编辑&#xff1a;编辑部 【新智元导读】这场百模大战&#xff0c;究竟是谁胜出&#xff1f;国际权威IDC发布大模型技术报告中&#xff0c;文心大模型3.5拿下7个满分&#xff0c;三个绝对第一。 一觉醒来&#xff0c;好不热闹&#xff0c;Meta深夜投出重磅炸弹&…

文心一言APP来了

金磊 丰色 发自 凹非寺量子位 | 公众号 QbitAI 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0c;还起诉过苹果公司及相关开发团队。&#xff09; 这般“新鲜出炉”的工具&#xff0c;我们当然要率先体…

文心一言APP国区可下载!免费体验120+玩法,PPT大纲Excel公式一键生成

点击关注公众号&#xff1a;互联网架构师&#xff0c;后台回复 2T获取2TB学习资源&#xff01; 上一篇&#xff1a;Alibaba开源内网高并发编程手册.pdf 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0…

文心一言APP国区可下载,免费体验120+玩法,PPT大纲Excel公式一键生成

来源&#xff1a;量子位 | 公众号 QbitAI 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0c;还起诉过苹果公司及相关开发团队。&#xff09; 这般“新鲜出炉”的工具&#xff0c;我们当然要率先体验一把…

chatgpt赋能python:Python给电影打分-如何使用Python评估您最喜爱的电影

Python给电影打分 - 如何使用Python评估您最喜爱的电影 Python是一种流行的编程语言&#xff0c;广泛用于数据科学和机器学习。但是&#xff0c;您是否知道您可以使用Python为您最喜爱的电影打分并评估其受欢迎程度&#xff1f;在这篇文章中&#xff0c;我们将介绍如何使用Pyt…

文心千帆大模型平台,一站式企业级大模型平台

文心千帆大模型平台&#xff0c;一站式企业级大模型平台 0. 前言1. 人工智能发展历程1.1 传统机器学习1.2 深度学习1.3 大模型时代 2. 文心千帆2.1 文心千帆介绍2.2 文心千帆应用场景2.3 文心千帆平台优势 3. 文心千帆初体验3.1 注册流程3.2 创建应用3.3 在线测试3.4 数据服务3…

【自我升级链】所谓的傅盛认知升级

所有学习上的成功&#xff0c;都只依靠两件事 – 策略和坚持&#xff0c;而坚持本身就是最重要的策略&#xff01; 前段时间读的书&#xff0c;看的一些文章里面&#xff0c;全都在提"认知"这个词。 但是&#xff0c;“认知”这个词&#xff0c;我是在2016年的时候就…

傅盛:AI是企业弯道超车的机会,大家在同一起跑线上

2019-10-20 11:58:08 第六届世界互联网大会于10月20日-22日在浙江乌镇召开。 猎豹移动CEO傅盛表示&#xff0c;从收入的相对值增长来看&#xff0c;猎豹的AI业务的增长还是挺快&#xff0c;“但是要短期内达到猎豹50亿级的盘子是不太可能的”。 傅盛认为&#xff0c;AI是企业弯…