WordPress.org

Make WordPress Core

Ticket #8553: example-post.txt

File example-post.txt, 39.4 KB (added by Brusdeylins, 10 years ago)

a long article from brusdeylins.info for fix in 8553.3.diff

Line 
1[singlepic id=39 w=150 h=240 float=right]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.<!--more-->
2
3Für das Ermitteln unterschiedlicher Kursdaten bietet <a href="http://finance.yahoo.com/" target="_blank">Yahoo!Finance</a> (<a href="http://de.finance.yahoo.com/" target="_blank">auch für Deutschland</a>) 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 <a href="http://developer.yahoo.com/usagePolicy/" target="_blank">Nutzungsbedingungen</a> (<a href="http://info.yahoo.com/guidelines/us/yahoo/ydn/ydn-3955.html" target="_blank">siehe auch</a>) genau durchlesen.
4<h2>Aktuelle Kursdaten ermitteln</h2>
5Ganz 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 (<a href="http://de.biz.yahoo.com/sd/index.html" target="_blank">näheres auf Yahoo!Finance</a>). 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 <code>http://finance.yahoo.com/d/quotes.csv?</code> und nimmt die folgenden drei bekannten Parameter entgegen:
6<table class="full" border="0">
7<tbody>
8<tr>
9<th>Parameter</th>
10<th>Beschreibung</th>
11</tr>
12<tr>
13<td>s=</td>
14<td>Das <strong>Symbol</strong> des Wertpapiers wird mit dem Parameter "s" angegeben. Z.B. liefert hier "<code>s=AAPL</code>" die aktuellen Kursdaten von Apple Inc. Eine Kombination mehrere durch ein Pluszeichen getrennte Symbole ist ebenfalls möglich (zum Beispiel "<code>s=AAPL+MSFT</code>" für Apple und Microsoft). Die Werte, getrennt durch Kommas, kommen dann jeweils in eine separaten Zeile pro Symbol zurück.</td>
15</tr>
16<tr>
17<td>f=</td>
18<td><strong>Die Format-Codes</strong> 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: <code>f=sna</code></td>
19</tr>
20<tr>
21<td>e=.cvs</td>
22<td>Die <strong>Exportart</strong> wird mit dem Parameter "e" angegeben. Hier sollte immer "<code>e=.csv</code>" für ein "Comma Separated Values" Ergebnis übermittelt werden. Erfahrungen haben gezeigt, dass dieser Parameter wohl optional ist.</td>
23</tr>
24</tbody></table>
25Das 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).
26<pre>http://finance.yahoo.com/d/quotes.csv?s=AAPL+MSFT&amp;f=snat1
27---
28"AAPL","APPLE INC",151.47,"3:31pm"
29"MSFT","MICROSOFT CP",29.09,"3:31pm"</pre>
30Ein 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:
31<pre>&lt;?php
32    /*
33     * Getting current quotes:
34     * Reading multible lines of values into an array depending on the given symbols and function tags.
35     * Each line holds the values of one symbol. In the argument, symbols are separated by "+".
36     *
37     * (c) Matthias Brusdeylins, 2008
38     * License: CC-GNU GPL (http://creativecommons.org/licenses/GPL/2.0/)
39     */   
40
41    define ("QUOTES_URL", "http://finance.yahoo.com/d/quotes.csv?");
42    function loadYahooQuotes ($symbol,
43                              $tags)
44    {
45        $lineCount = 0;
46        $stocks = array();
47
48        // load the stock quotes: we are opening it for reading
49        // http://finance.yahoo.com/d/quotes.csv?s=  STOCK SYMBOLS  &amp;f=  FORMAT TAGS
50        $URL = QUOTES_URL."s=$symbol&amp;f=$tags&amp;e=.csv";
51        $fileHandle = fopen ($URL,"r");
52
53        if ($fileHandle) {
54            // use the fgetcsv function to store quote values into an array $lineValues
55            // one symbol in one line
56            do {
57                $stockValues = fgetcsv ($fileHandle, 999999, ",");
58                if ($stockValues) {
59                    $lineCount++;
60                    $stocks[$lineCount] = $stockValues;
61                }
62            } while ($stockValues);
63
64        fclose ($fileHandle);
65        } else {
66            // ERROR-Message in the array
67            $stocks[0][0] = "ERROR";
68            $stocks[0][1] = "No data found.";
69        }
70
71        return $stocks;
72    }
73?&gt;</pre>
74<h2>Devisen</h2>
75Sie 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 <code>AB=X</code> übermitteln. Hier steht der Buchstabe <code>A</code> für die erste zu vergleichende Währung und der Buchstabe <code>B</code> dann natürlich für die zweite Währung.  <code>X</code> steht wohl für Exchange und wird nicht ersetzt. Wollen Sie mehrere Währungen abfragen, können mehrere Konstrukte mittels dem Pluszeichen "<code>+</code>" aneinander gehängt werden. Folgendes Beispiel soll dies verdeutlichen:
76<pre>http://quote.yahoo.com/d/quotes.csv?s=USDCAD=X+JPYUSD=X&amp;f=nl1d1t1
77---
78"USD to CAD",1.0088,"4/4/2008","5:02pm"
79"JPY to USD",0.0098,"4/4/2008","5:26pm"</pre>
80Die Kürzel der Währungen bestehen aus drei Buchstaben und werden hier aufgelistet:
81<table class="full" border="0">
82<tbody>
83<tr>
84<th>Land</th>
85<th width="20%">Kürzel</th>
86</tr>
87<tr>
88<td>Afganistan Afghani</td>
89<td>AFA</td>
90</tr>
91<tr>
92<td>Albanian Lek</td>
93<td>ALL</td>
94</tr>
95<tr>
96<td>Algerian Dinar</td>
97<td>DZD</td>
98</tr>
99<tr>
100<td>Argentinian Peso</td>
101<td>ARS</td>
102</tr>
103<tr>
104<td>Aruban Florin</td>
105<td>AWG</td>
106</tr>
107<tr>
108<td>Australian Dollar</td>
109<td>AUD</td>
110</tr>
111<tr>
112<td>Austrian Schilling</td>
113<td>ATS</td>
114</tr>
115<tr>
116<td>Bahraini Dinar</td>
117<td>BHD</td>
118</tr>
119<tr>
120<td>Bangladesh Taka</td>
121<td>BDT</td>
122</tr>
123<tr>
124<td>Barbados Dollar</td>
125<td>BBD</td>
126</tr>
127<tr>
128<td>Belgian Franc</td>
129<td>BEF</td>
130</tr>
131<tr>
132<td>Belize Dollar</td>
133<td>BZD</td>
134</tr>
135<tr>
136<td>Bermuda Dollar</td>
137<td>BMD</td>
138</tr>
139<tr>
140<td>Bhutan Ngultrum</td>
141<td>BTN</td>
142</tr>
143<tr>
144<td>Bolivian Boliviano</td>
145<td>BOB</td>
146</tr>
147<tr>
148<td>Botswana Pula</td>
149<td>BWP</td>
150</tr>
151<tr>
152<td>Brazilian Real</td>
153<td>BRL</td>
154</tr>
155<tr>
156<td>British Pound</td>
157<td>GBP</td>
158</tr>
159<tr>
160<td>Brunei Dollar</td>
161<td>BND</td>
162</tr>
163<tr>
164<td>Bulgarian Lev</td>
165<td>BGN</td>
166</tr>
167<tr>
168<td>Cambodian Riel</td>
169<td>KHR</td>
170</tr>
171<tr>
172<td>Canadian Dollar</td>
173<td>CAD</td>
174</tr>
175<tr>
176<td>Cape Verde Escudo</td>
177<td>CVE</td>
178</tr>
179<tr>
180<td>Cayman Islands Dollar</td>
181<td>KYD</td>
182</tr>
183<tr>
184<td>CFA Franc (BCEAO)</td>
185<td>XOF</td>
186</tr>
187<tr>
188<td>CFA Franc(BEAC)</td>
189<td>XAF</td>
190</tr>
191<tr>
192<td>CFP Franc</td>
193<td>XPF</td>
194</tr>
195<tr>
196<td>Chilean Peso</td>
197<td>CLP</td>
198</tr>
199<tr>
200<td>Colombian Peso</td>
201<td>COP</td>
202</tr>
203<tr>
204<td>Comoros Franc</td>
205<td>KMF</td>
206</tr>
207<tr>
208<td>Costa Rican Colon</td>
209<td>CRC</td>
210</tr>
211<tr>
212<td>Croatian Kuna</td>
213<td>HRK</td>
214</tr>
215<tr>
216<td>Cuban Peso</td>
217<td>CUP</td>
218</tr>
219<tr>
220<td>Cypriot Pound</td>
221<td>CYP</td>
222</tr>
223<tr>
224<td>Czech Koruna</td>
225<td>CZK</td>
226</tr>
227<tr>
228<td>Danish Krone</td>
229<td>DKK</td>
230</tr>
231<tr>
232<td>Djibouti Franc</td>
233<td>DJF</td>
234</tr>
235<tr>
236<td>Dominican Peso</td>
237<td>DOP</td>
238</tr>
239<tr>
240<td>Dutch Guilder</td>
241<td>NLG</td>
242</tr>
243<tr>
244<td>East Caribbean Dollar</td>
245<td>XCD</td>
246</tr>
247<tr>
248<td>Egyptian Pound</td>
249<td>EGP</td>
250</tr>
251<tr>
252<td>El Salvador Colon</td>
253<td>SVC</td>
254</tr>
255<tr>
256<td>Estonian Kroon</td>
257<td>EEK</td>
258</tr>
259<tr>
260<td>Ethiopian Birr</td>
261<td>ETB</td>
262</tr>
263<tr>
264<td>Euro</td>
265<td>EUR</td>
266</tr>
267<tr>
268<td>Fiji Dollar</td>
269<td>FJD</td>
270</tr>
271<tr>
272<td>Finnish Markka</td>
273<td>FIM</td>
274</tr>
275<tr>
276<td>French Franc</td>
277<td>FRF</td>
278</tr>
279<tr>
280<td>Gambia Dalasi</td>
281<td>GMD</td>
282</tr>
283<tr>
284<td>German Mark</td>
285<td>DEM</td>
286</tr>
287<tr>
288<td>Ghanaian Cedi</td>
289<td>GHC</td>
290</tr>
291<tr>
292<td>Gibraltar Pound</td>
293<td>GIP</td>
294</tr>
295<tr>
296<td>Greek Drachma</td>
297<td>GRD</td>
298</tr>
299<tr>
300<td>Guatemala Quetzal</td>
301<td>GTQ</td>
302</tr>
303<tr>
304<td>Guinea Franc</td>
305<td>GNF</td>
306</tr>
307<tr>
308<td>Guyana Dollar</td>
309<td>GYD</td>
310</tr>
311<tr>
312<td>Haitian Gourde</td>
313<td>HTG</td>
314</tr>
315<tr>
316<td>Honduras Lempira</td>
317<td>HNL</td>
318</tr>
319<tr>
320<td>Hong Kong Dollar</td>
321<td>HKD</td>
322</tr>
323<tr>
324<td>Hungarian Forint</td>
325<td>HUF</td>
326</tr>
327<tr>
328<td>Iceland Krona</td>
329<td>ISK</td>
330</tr>
331<tr>
332<td>Indian Rupee</td>
333<td>INR</td>
334</tr>
335<tr>
336<td>Indonesian Rupiah</td>
337<td>IDR</td>
338</tr>
339<tr>
340<td>Irish Punt</td>
341<td>IEP</td>
342</tr>
343<tr>
344<td>Israeli Shekel</td>
345<td>ILS</td>
346</tr>
347<tr>
348<td>Italian Lira</td>
349<td>ITL</td>
350</tr>
351<tr>
352<td>Jamaican Dollar</td>
353<td>JMD</td>
354</tr>
355<tr>
356<td>Japanese Yen</td>
357<td>JPY</td>
358</tr>
359<tr>
360<td>Jordanian Dinar</td>
361<td>JOD</td>
362</tr>
363<tr>
364<td>Kenyan Shilling</td>
365<td>KES</td>
366</tr>
367<tr>
368<td>Kuwaiti Dinar</td>
369<td>KWD</td>
370</tr>
371<tr>
372<td>Laos Kip</td>
373<td>LAK</td>
374</tr>
375<tr>
376<td>Latvian Lats</td>
377<td>LVL</td>
378</tr>
379<tr>
380<td>Lebanese Pound</td>
381<td>LBP</td>
382</tr>
383<tr>
384<td>Lesotho Loti</td>
385<td>LSL</td>
386</tr>
387<tr>
388<td>Lithuanian Litas</td>
389<td>LTL</td>
390</tr>
391<tr>
392<td>Malagasy Franc</td>
393<td>MGF</td>
394</tr>
395<tr>
396<td>Malawi Kwacha</td>
397<td>MWK</td>
398</tr>
399<tr>
400<td>Malaysian Ringgit</td>
401<td>MYR</td>
402</tr>
403<tr>
404<td>Maldives Rufiyan</td>
405<td>MVR</td>
406</tr>
407<tr>
408<td>Maltese Pound</td>
409<td>MTL</td>
410</tr>
411<tr>
412<td>Mauritania Ouguiya</td>
413<td>MRO</td>
414</tr>
415<tr>
416<td>Mauritius Rupee</td>
417<td>MUR</td>
418</tr>
419<tr>
420<td>Mexican Peso</td>
421<td>MXN</td>
422</tr>
423<tr>
424<td>Mongolian Tugrik</td>
425<td>MNT</td>
426</tr>
427<tr>
428<td>Moroccan Dirham</td>
429<td>MAD</td>
430</tr>
431<tr>
432<td>Mozambique Metical</td>
433<td>MZM</td>
434</tr>
435<tr>
436<td>Myanmar Kyat</td>
437<td>MMK</td>
438</tr>
439<tr>
440<td>Namibian Dollar</td>
441<td>NAD</td>
442</tr>
443<tr>
444<td>Nepal Rupee</td>
445<td>NPR</td>
446</tr>
447<tr>
448<td>Netherlands Antilles Guilder</td>
449<td>ANG</td>
450</tr>
451<tr>
452<td>New Zealand Dollar</td>
453<td>NZD</td>
454</tr>
455<tr>
456<td>Nicaraguan Cordoba</td>
457<td>NIO</td>
458</tr>
459<tr>
460<td>Nigerian Naira</td>
461<td>NGN</td>
462</tr>
463<tr>
464<td>Norwegian Krone</td>
465<td>NOK</td>
466</tr>
467<tr>
468<td>Oman Rial</td>
469<td>OMR</td>
470</tr>
471<tr>
472<td>Pakistani Rupee</td>
473<td>PKR</td>
474</tr>
475<tr>
476<td>Papua New Guinea Kina</td>
477<td>PGK</td>
478</tr>
479<tr>
480<td>Peruvian Sol</td>
481<td>PEN</td>
482</tr>
483<tr>
484<td>Philippines Peso</td>
485<td>PHP</td>
486</tr>
487<tr>
488<td>Polish Zloty</td>
489<td>PLN</td>
490</tr>
491<tr>
492<td>Portuguese Escudo</td>
493<td>PTE</td>
494</tr>
495<tr>
496<td>Qatari Rial</td>
497<td>QAR</td>
498</tr>
499<tr>
500<td>Renmimbi Yuan</td>
501<td>CNY</td>
502</tr>
503<tr>
504<td>Romanian Leu</td>
505<td>ROL</td>
506</tr>
507<tr>
508<td>Russian Ruble</td>
509<td>RUB</td>
510</tr>
511<tr>
512<td>Salomon Islands Dollar</td>
513<td>SBD</td>
514</tr>
515<tr>
516<td>Sao Tome &amp; Principe Dobra</td>
517<td>STD</td>
518</tr>
519<tr>
520<td>Saudi Arabian Riyal</td>
521<td>SAR</td>
522</tr>
523<tr>
524<td>Seychelles Rupee</td>
525<td>SCR</td>
526</tr>
527<tr>
528<td>Sierra Leone Leone</td>
529<td>SLL</td>
530</tr>
531<tr>
532<td>Singapore Dollar</td>
533<td>SGD</td>
534</tr>
535<tr>
536<td>Slovak Koruna</td>
537<td>SKK</td>
538</tr>
539<tr>
540<td>Slovenian Tolar</td>
541<td>SIT</td>
542</tr>
543<tr>
544<td>South African Rand</td>
545<td>ZAR</td>
546</tr>
547<tr>
548<td>South Korean Won</td>
549<td>KRW</td>
550</tr>
551<tr>
552<td>Spanish Peseta</td>
553<td>ESP</td>
554</tr>
555<tr>
556<td>Sri Lanka Rupee</td>
557<td>LKR</td>
558</tr>
559<tr>
560<td>St. Helena Pound</td>
561<td>SHP</td>
562</tr>
563<tr>
564<td>Sudanese Dinar</td>
565<td>SDD</td>
566</tr>
567<tr>
568<td>Surinam Guilder</td>
569<td>SRG</td>
570</tr>
571<tr>
572<td>Swaziland Lilangeni</td>
573<td>SZL</td>
574</tr>
575<tr>
576<td>Swedish Krona</td>
577<td>SEK</td>
578</tr>
579<tr>
580<td>Swiss Franc</td>
581<td>CHF</td>
582</tr>
583<tr>
584<td>Syria Pound</td>
585<td>SYP</td>
586</tr>
587<tr>
588<td>Taiwan New Dollar</td>
589<td>TWD</td>
590</tr>
591<tr>
592<td>Tanzanian Shilling</td>
593<td>TZS</td>
594</tr>
595<tr>
596<td>Thai Baht</td>
597<td>THB</td>
598</tr>
599<tr>
600<td>Tonga Isl Pa’anga</td>
601<td>TOP</td>
602</tr>
603<tr>
604<td>Trinidad Dollar</td>
605<td>TTD</td>
606</tr>
607<tr>
608<td>Tunisian Dinar</td>
609<td>TND</td>
610</tr>
611<tr>
612<td>Turkish Lira</td>
613<td>TRL</td>
614</tr>
615<tr>
616<td>Ugandan Shilling</td>
617<td>UGX</td>
618</tr>
619<tr>
620<td>Ukraine Hryvnia</td>
621<td>UAH</td>
622</tr>
623<tr>
624<td>United Arab Emirates Dirham</td>
625<td>AED</td>
626</tr>
627<tr>
628<td>US Dollar</td>
629<td>USD</td>
630</tr>
631<tr>
632<td>Vanuatu Vatu</td>
633<td>VUV</td>
634</tr>
635<tr>
636<td>Venezuelan Bolivar</td>
637<td>VEB</td>
638</tr>
639<tr>
640<td>Vietnam Dong</td>
641<td>VND</td>
642</tr>
643<tr>
644<td>Western Samoa Tala</td>
645<td>WST</td>
646</tr>
647<tr>
648<td>Zambia Kwacha</td>
649<td>ZMK</td>
650</tr>
651<tr>
652<td>Zimbabwean Dollar</td>
653<td>ZWD</td>
654</tr>
655</tbody></table>
656<h2>Die Format-Codes</h2>
657Fü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.
658
659<strong>Achtung: </strong>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.
660<table class="full" border="0">
661<tbody>
662<tr>
663<th width="20%">Code</th>
664<th>Bedeutung</th>
665</tr>
666<tr>
667<td>a, a0, a4</td>
668<td>Ask (sometimes) - Nicht alle Kursanfragen liefern hier einen Wert.</td>
669</tr>
670<tr>
671<td>a3, b2</td>
672<td>Ask - incl. Pre- und Post-Market Werte</td>
673</tr>
674<tr>
675<td>a1</td>
676<td>- unknown -</td>
677</tr>
678<tr>
679<td>a2</td>
680<td>Average Daily Volume</td>
681</tr>
682<tr>
683<td valign="top">a5</td>
684<td valign="top">Ask Size
685
686<strong>Achtung:</strong> hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.</td>
687</tr>
688<tr>
689<td>b, b0</td>
690<td>Bid (sometimes) - Nicht alle Kursanfragen liefern hier einen Wert.</td>
691</tr>
692<tr>
693<td>b1, b3</td>
694<td>Bid - incl. Pre- und Post-Market Werte</td>
695</tr>
696<tr>
697<td>b4</td>
698<td>Book Value</td>
699</tr>
700<tr>
701<td valign="top">b6</td>
702<td valign="top">Bid Size
703
704<strong>Achtung:</strong> hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.</td>
705</tr>
706<tr>
707<td>c, c2, q1</td>
708<td>Change &amp; Percent Change</td>
709</tr>
710<tr>
711<td>c1, c0, c6, c7</td>
712<td>Change</td>
713</tr>
714<tr>
715<td>c3</td>
716<td>Commission</td>
717</tr>
718<tr>
719<td>c4</td>
720<td>Currency</td>
721</tr>
722<tr>
723<td>c5</td>
724<td>- unknown -</td>
725</tr>
726<tr>
727<td valign="top">c8</td>
728<td valign="top">After Hours Change</td>
729</tr>
730<tr>
731<td valign="top">d, d0</td>
732<td valign="top">Dividend/Share</td>
733</tr>
734<tr>
735<td valign="top">d1</td>
736<td valign="top">Last Trade Date</td>
737</tr>
738<tr>
739<td valign="top">d2</td>
740<td valign="top">Trade Date</td>
741</tr>
742<tr>
743<td>d3</td>
744<td>Last Trade Date (text)</td>
745</tr>
746<tr>
747<td valign="top">e, e0</td>
748<td valign="top">Earnings/Share</td>
749</tr>
750<tr>
751<td valign="top">e1</td>
752<td valign="top">Error Indication (returned for symbol changed / invalid)</td>
753</tr>
754<tr>
755<td>e2</td>
756<td>Verfallsdatum bei Optionsscheinen</td>
757</tr>
758<tr>
759<td>e3</td>
760<td>- unknown -</td>
761</tr>
762<tr>
763<td>e4</td>
764<td>- unknown -</td>
765</tr>
766<tr>
767<td valign="top">e7</td>
768<td valign="top">EPS Estimate Current Year</td>
769</tr>
770<tr>
771<td valign="top">e8</td>
772<td valign="top">EPS Estimate Next Year</td>
773</tr>
774<tr>
775<td valign="top">e9</td>
776<td valign="top">EPS Estimate Next Quarter</td>
777</tr>
778<tr>
779<td>f, f0, f1, f2, f3, f4, f5, g2</td>
780<td><em>- HTML Fragment mit Company name, market place und Trade Link -</em></td>
781</tr>
782<tr>
783<td valign="top">f6</td>
784<td valign="top">Float Shares
785
786<strong>Achtung:</strong> hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.</td>
787</tr>
788<tr>
789<td valign="top">f7, f8,</td>
790<td valign="top"><em>- HTML Fragment mit Trade-Link -</em></td>
791</tr>
792<tr>
793<td valign="top">g, g0</td>
794<td valign="top">Day's Low</td>
795</tr>
796<tr>
797<td valign="top">g1</td>
798<td valign="top">Holdings Gain Percent</td>
799</tr>
800<tr>
801<td valign="top">g3</td>
802<td valign="top">Annualized Gain</td>
803</tr>
804<tr>
805<td valign="top">g4, g6</td>
806<td valign="top">Holdings Gain</td>
807</tr>
808<tr>
809<td valign="top">g5</td>
810<td valign="top">Holdings Gain Percent</td>
811</tr>
812<tr>
813<td valign="top">h, h0</td>
814<td valign="top">Day's High</td>
815</tr>
816<tr>
817<td valign="top">h1, h2, h3, h4, h5, h6</td>
818<td valign="top"><em>- HTML Fragment -</em></td>
819</tr>
820<tr>
821<td valign="top">i, i0</td>
822<td valign="top">More Info</td>
823</tr>
824<tr>
825<td>i2</td>
826<td>- unknown -</td>
827</tr>
828<tr>
829<td>i3</td>
830<td>- unknown -</td>
831</tr>
832<tr>
833<td>i4</td>
834<td>- unknown -</td>
835</tr>
836<tr>
837<td valign="top">i5</td>
838<td valign="top">Order Book</td>
839</tr>
840<tr>
841<td>i6</td>
842<td>- unknown -</td>
843</tr>
844<tr>
845<td valign="top">i7, l1, l7, l9, q2, v2, y2</td>
846<td valign="top">Last Trade (price only)</td>
847</tr>
848<tr>
849<td valign="top">j, j0</td>
850<td valign="top">52-week Low</td>
851</tr>
852<tr>
853<td valign="top">j1</td>
854<td valign="top">Market Capitalization</td>
855</tr>
856<tr>
857<td valign="top">j2</td>
858<td valign="top">Shares Outstanding
859
860<strong>Achtung:</strong> hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.</td>
861</tr>
862<tr>
863<td valign="top">j3</td>
864<td valign="top">- unknown -</td>
865</tr>
866<tr>
867<td valign="top">j4</td>
868<td valign="top">EBITDA</td>
869</tr>
870<tr>
871<td valign="top">j5</td>
872<td valign="top">Change From 52-week Low</td>
873</tr>
874<tr>
875<td valign="top">j6</td>
876<td valign="top">Percent Change From 52-week Low</td>
877</tr>
878<tr>
879<td valign="top">k, k0</td>
880<td valign="top">52-week High</td>
881</tr>
882<tr>
883<td valign="top">k1</td>
884<td valign="top">Last Trade (with -unknown-)</td>
885</tr>
886<tr>
887<td valign="top">k2</td>
888<td valign="top">Change Percent (with -unknown-)</td>
889</tr>
890<tr>
891<td valign="top">k3</td>
892<td valign="top">Last Trade Size
893
894<strong>Achtung:</strong> hier wird der Wert unter Umständen in Zahlengruppen, getrennt durch ein Komma zurückgeliefert! Die Anzahl der durch Komma getrennten Gruppen variiert.</td>
895</tr>
896<tr>
897<td valign="top">k4</td>
898<td valign="top">Change From 52-week High</td>
899</tr>
900<tr>
901<td valign="top">k5</td>
902<td valign="top">Percebt Change From 52-week High</td>
903</tr>
904<tr>
905<td valign="top">l, l0, n1, n5, y1</td>
906<td valign="top">Last Trade (with Date)</td>
907</tr>
908<tr>
909<td valign="top">l2</td>
910<td valign="top">High Limit</td>
911</tr>
912<tr>
913<td valign="top">l3</td>
914<td valign="top">Low Limit</td>
915</tr>
916<tr>
917<td valign="top">l4</td>
918<td valign="top">- unknown -</td>
919</tr>
920<tr>
921<td valign="top">l5</td>
922<td valign="top">- unknown -</td>
923</tr>
924<tr>
925<td valign="top">l6</td>
926<td valign="top">- unknown -</td>
927</tr>
928<tr>
929<td valign="top">m, m0</td>
930<td valign="top">Day's Range</td>
931</tr>
932<tr>
933<td valign="top">m1</td>
934<td valign="top">- unknown -</td>
935</tr>
936<tr>
937<td valign="top">m2</td>
938<td valign="top">- unknown - (Day?) Range</td>
939</tr>
940<tr>
941<td valign="top">m3</td>
942<td valign="top">50-day Moving Average</td>
943</tr>
944<tr>
945<td valign="top">m4</td>
946<td valign="top">200-day Moving Average</td>
947</tr>
948<tr>
949<td valign="top">m5</td>
950<td valign="top">Change From 200-day Moving Average</td>
951</tr>
952<tr>
953<td valign="top">m6</td>
954<td valign="top">Percent Change From 200-day Moving Average</td>
955</tr>
956<tr>
957<td valign="top">m7</td>
958<td valign="top">Change From 50-day Moving Average</td>
959</tr>
960<tr>
961<td valign="top">m8</td>
962<td valign="top">Percent Change From 50-day Moving Average</td>
963</tr>
964<tr>
965<td valign="top">n, n0</td>
966<td valign="top">Name</td>
967</tr>
968<tr>
969<td valign="top">n2</td>
970<td valign="top">- unknown -</td>
971</tr>
972<tr>
973<td valign="top">n3</td>
974<td valign="top">- unknown -</td>
975</tr>
976<tr>
977<td valign="top">n4</td>
978<td valign="top">Notes</td>
979</tr>
980<tr>
981<td valign="top">n6</td>
982<td valign="top">- unknown -</td>
983</tr>
984<tr>
985<td valign="top">n7</td>
986<td valign="top">- unknown -</td>
987</tr>
988<tr>
989<td valign="top">n8</td>
990<td valign="top">- unknown -</td>
991</tr>
992<tr>
993<td valign="top">n9</td>
994<td valign="top">- unknown -</td>
995</tr>
996<tr>
997<td valign="top">o, o0</td>
998<td valign="top">Open</td>
999</tr>
1000<tr>
1001<td valign="top">o1, o2</td>
1002<td valign="top">Open Interest bei Optionsscheinen</td>
1003</tr>
1004<tr>
1005<td valign="top">o4</td>
1006<td valign="top">- unknown -</td>
1007</tr>
1008<tr>
1009<td valign="top">o5</td>
1010<td valign="top">- unknown -</td>
1011</tr>
1012<tr>
1013<td valign="top">p, p0, p8</td>
1014<td valign="top">Previous Close</td>
1015</tr>
1016<tr>
1017<td valign="top">p1</td>
1018<td valign="top">Price Paid</td>
1019</tr>
1020<tr>
1021<td valign="top">p2,  p4</td>
1022<td valign="top">Change in Percent</td>
1023</tr>
1024<tr>
1025<td valign="top">p3</td>
1026<td valign="top">- unknown -</td>
1027</tr>
1028<tr>
1029<td valign="top">p5, p9</td>
1030<td valign="top">Price/Sales</td>
1031</tr>
1032<tr>
1033<td valign="top">p6</td>
1034<td valign="top">Price/Book</td>
1035</tr>
1036<tr>
1037<td valign="top">q, q0</td>
1038<td valign="top">Ex-Dividend Date</td>
1039</tr>
1040<tr>
1041<td valign="top">q3</td>
1042<td valign="top"><em>- HTML Fragment für Zeitraumauswahl -</em></td>
1043</tr>
1044<tr>
1045<td valign="top">q4</td>
1046<td valign="top"><em>- HTML Fragment für Auswahl des Grafentyps -</em></td>
1047</tr>
1048<tr>
1049<td valign="top">q5</td>
1050<td valign="top"><em>- HTML Fragment für Auswahl der Skalierung -</em></td>
1051</tr>
1052<tr>
1053<td valign="top">q6</td>
1054<td valign="top"><em>- HTML Fragment für Auswahl der Chart-Größe -</em></td>
1055</tr>
1056<tr>
1057<td valign="top">q7</td>
1058<td valign="top"><em>- HTML Fragment für Auswahl des Moving Avg. -</em></td>
1059</tr>
1060<tr>
1061<td valign="top">q8</td>
1062<td valign="top"><em>- HTML Fragment für Auswahl des EMA -</em></td>
1063</tr>
1064<tr>
1065<td valign="top">q9</td>
1066<td valign="top"><em>- HTML Fragment für Vergleichs-Formular -</em></td>
1067</tr>
1068<tr>
1069<td valign="top">r, r0</td>
1070<td valign="top">P/E Ratio</td>
1071</tr>
1072<tr>
1073<td valign="top">r1</td>
1074<td valign="top">Dividend Pay Date</td>
1075</tr>
1076<tr>
1077<td valign="top">r2</td>
1078<td valign="top">- unknown -</td>
1079</tr>
1080<tr>
1081<td valign="top">r3</td>
1082<td valign="top"><em>- HTML Fragment für Auswahl der Indikatoren -</em></td>
1083</tr>
1084<tr>
1085<td valign="top">r4</td>
1086<td valign="top"><em>- HTML Fragment für Auswahl der Overlays -</em></td>
1087</tr>
1088<tr>
1089<td valign="top">r5</td>
1090<td valign="top">PEG Ratio</td>
1091</tr>
1092<tr>
1093<td valign="top">r6</td>
1094<td valign="top">Price/EPS Estimate Current Year</td>
1095</tr>
1096<tr>
1097<td valign="top">r7</td>
1098<td valign="top">Price/EPS Estimate Next Year</td>
1099</tr>
1100<tr>
1101<td valign="top">r9</td>
1102<td valign="top">- unknown -</td>
1103</tr>
1104<tr>
1105<td valign="top">s, s0, s2, s4</td>
1106<td valign="top">Symbol</td>
1107</tr>
1108<tr>
1109<td valign="top">s1</td>
1110<td valign="top">Shares Owned</td>
1111</tr>
1112<tr>
1113<td valign="top">s3</td>
1114<td valign="top">Bezugspreis bei Optionsscheinen</td>
1115</tr>
1116<tr>
1117<td valign="top">s6</td>
1118<td valign="top">Revenue ?</td>
1119</tr>
1120<tr>
1121<td valign="top">s7</td>
1122<td valign="top">Short Ratio</td>
1123</tr>
1124<tr>
1125<td valign="top">t, t0, t2, u, u0, u2, u3</td>
1126<td valign="top"><em>- HTML Fragment für ein Chart-Bild -</em></td>
1127</tr>
1128<tr>
1129<td valign="top">t1</td>
1130<td valign="top">Last Trade Time</td>
1131</tr>
1132<tr>
1133<td valign="top">t3</td>
1134<td valign="top">- unknown -</td>
1135</tr>
1136<tr>
1137<td valign="top">t4</td>
1138<td valign="top">- unknown -</td>
1139</tr>
1140<tr>
1141<td valign="top">t5</td>
1142<td valign="top">- unknown -</td>
1143</tr>
1144<tr>
1145<td valign="top">t6</td>
1146<td valign="top"><em>- HTML Fragment mit Trade-Link -</em></td>
1147</tr>
1148<tr>
1149<td valign="top">t7</td>
1150<td valign="top">Ticker Trend</td>
1151</tr>
1152<tr>
1153<td valign="top">t8</td>
1154<td valign="top">1 yr Target Price</td>
1155</tr>
1156<tr>
1157<td valign="top">v, v0, v6</td>
1158<td valign="top">Volume</td>
1159</tr>
1160<tr>
1161<td valign="top">v3</td>
1162<td valign="top">- unknown -</td>
1163</tr>
1164<tr>
1165<td valign="top">v4</td>
1166<td valign="top">- unknown -</td>
1167</tr>
1168<tr>
1169<td valign="top">v5</td>
1170<td valign="top">- unknown -</td>
1171</tr>
1172<tr>
1173<td valign="top">v1</td>
1174<td valign="top">Holdings Value</td>
1175</tr>
1176<tr>
1177<td valign="top">v7</td>
1178<td valign="top">- unknown -</td>
1179</tr>
1180<tr>
1181<td valign="top">w, w0</td>
1182<td valign="top">52-week Range</td>
1183</tr>
1184<tr>
1185<td valign="top">w1</td>
1186<td valign="top">Day's Value Change</td>
1187</tr>
1188<tr>
1189<td valign="top">w4</td>
1190<td valign="top">- unknown -</td>
1191</tr>
1192<tr>
1193<td valign="top">x, x0</td>
1194<td valign="top">Stock Exchange</td>
1195</tr>
1196<tr>
1197<td valign="top">y, y0</td>
1198<td valign="top">Dividend Yield</td>
1199</tr>
1200<tr>
1201<td valign="top">z2</td>
1202<td valign="top"><em>- HTML Fragment -</em></td>
1203</tr>
1204<tr>
1205<td valign="top">z3</td>
1206<td valign="top"><em>- liefert "Oops!" -</em></td>
1207</tr>
1208</tbody></table>
1209Hö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.
1210<h2>Daytrading-Daten</h2>
1211Leider 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 <code>http://logtrade.finance.vip.ukl.yahoo.com/lastTrades?</code> und nimmt folgende drei bekannte Parameter entgegen:
1212<table class="full" border="0">
1213<tbody>
1214<tr>
1215<th>Parameter</th>
1216<th>Beschreibung</th>
1217</tr>
1218<tr>
1219<td>s=</td>
1220<td>Das <strong>Symbol</strong> des Wertpapiers wird mit dem Parameter "s" angegeben. Z.B. liefert hier "<code>s=AAPL</code>" die letzten 100 Daytrading-Daten von Apple Inc.</td>
1221</tr>
1222<tr>
1223<td>output=user</td>
1224<td>Der Sinn dieses Parameters ist leider noch nicht bekannt. Für weitere Hinweise bin ich sehr dankbar.</td>
1225</tr>
1226<tr>
1227<td>i=eu</td>
1228<td>Auch hier ist mir der Sinn des Parameters noch nicht bekannt.</td>
1229</tr>
1230</tbody></table>
1231Das 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.
1232<h2>Historische Kursdaten</h2>
1233Für ein Wertpapier stehen bei Yahoo ebenfalls historische Daten zur Verfügung. Die Service-URL hierfür lautet <code>http://ichart.finance.yahoo.com/table.csv?</code> und besitzt Parameter für das Symbol, sowie für das Zeitintervall, innerhalb ein Entwickler die täglichen bzw. wöchentlichen Kursdaten ermitteln will:
1234<table class="full" border="0">
1235<tbody>
1236<tr>
1237<th>Parameter</th>
1238<th>Beschreibung</th>
1239</tr>
1240<tr>
1241<td>a=</td>
1242<td>Start-Monat -1 (Januar ist hier der Wert "0")</td>
1243</tr>
1244<tr>
1245<td>b=</td>
1246<td>Start-Tag</td>
1247</tr>
1248<tr>
1249<td>c=</td>
1250<td>Start-Jahr</td>
1251</tr>
1252<tr>
1253<td>d=</td>
1254<td>End-Monat -1 (Januar ist hier der Wert "0")</td>
1255</tr>
1256<tr>
1257<td>e=</td>
1258<td>End-Tag</td>
1259</tr>
1260<tr>
1261<td>f =</td>
1262<td>End-Jahr</td>
1263</tr>
1264<tr>
1265<td>g=</td>
1266<td>Chart-Abstufung (d=tägliche Werte, w=wöchentliche Werte, m=monatliche Werte, v=Dividendenausschüttungen)</td>
1267</tr>
1268<tr>
1269<td>s=</td>
1270<td>Symbol des Aktienkurses</td>
1271</tr>
1272<tr>
1273<td>ignore=.cvs</td>
1274<td>(konstanter Wert, aber optional)</td>
1275</tr>
1276<tr>
1277<td valign="top">y=</td>
1278<td valign="top">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&gt;0 angegeben wird. Für weitere Hinweise bin ich hier dankbar!</td>
1279</tr>
1280</tbody></table>
1281Das 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:
1282<pre>http://ichart.finance.yahoo.com/table.csv?s=AAPL&amp;d=3&amp;e=3&amp;f=2008&amp;g=d&amp;a=8&amp;b=7&amp;c=1984&amp;ignore=.cvs
1283---
1284Date,Open,High,Low,Close,Volume,Adj Close
12852008-04-02,148.78,151.20,145.85,147.49,37253700,147.49
12862008-04-01,146.30,149.66,143.61,149.53,36846400,149.53
12872008-03-31,143.27,145.71,142.52,143.50,27418300,143.50
12882008-03-28,141.80,144.65,141.60,143.01,25521800,143.01
1289...</pre>
1290<pre>http://itable.finance.yahoo.com/table.csv?s=AAPL&amp;d=3&amp;e=3&amp;f=2008&amp;g=v&amp;a=8&amp;b=7&amp;c=1984&amp;ignore=.cvs
1291---
1292Date,Dividends
12931995-11-21,0.030000
12941995-08-16,0.030000
12951995-05-26,0.030000
1296...</pre>
1297Fü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:
1298<pre>&lt;?php
1299    /*
1300     * Getting historical quotes in a given time period
1301     * Parameters:
1302     * $symbol:                             symbol
1303     * $startDay, $startMonth, $startYear:  the first day for the historical quotes
1304     * $endDay, $endMonth, $endYear:        the last day for the historical quotes
1305     * $step  (d/w/m/v):                    d=daily, w=weekly, m=monthly, v=dividends
1306     *
1307     * (c) Matthias Brusdeylins, 2008
1308     * License: CC-GNU GPL (http://creativecommons.org/licenses/GPL/2.0/)
1309     */
1310    define ("HISTORY_QUOTES_URL", "http://ichart.yahoo.com/table.csv?");
1311    function loadHistoricalYahooQuotes ($symbol,
1312                                        $startDay,
1313                                        $startMonth,
1314                                        $startYear,
1315                                        $endDay,
1316                                        $endMonth,
1317                                        $endYear,
1318                                        $step)
1319    {
1320        $lineCount = 0;
1321        $days = array();
1322
1323        // modify parameters
1324        $sM=$startMonth-1;
1325        $eM=$endMonth-1;
1326
1327        // load the historical stock quotes: we are opening it for reading
1328        // http://ichart.yahoo.com/table.csv?s=  SYMBOL.COUNTRY  &amp;a,b,c START $d,e,f ENDE $g d=daily/w=weekly/m=monthly/v=dividends
1329        $URL = HISTORY_QUOTES_URL."s=$symbol&amp;a=$sM&amp;b=$startDay&amp;c=$startYear&amp;d=$eM&amp;e=$endDay&amp;f=$endYear&amp;g=$step&amp;y=0&amp;ignore=.cvs";
1330        $fileHandle = fopen ($URL,"r");
1331
1332        if ($fileHandle) {
1333            // use the fgetcsv function to store quote values into a array $lineValues
1334            // store one symbol in one line
1335            do {
1336                $stockValues = fgetcsv ($fileHandle, 999999, ",");
1337                if ($stockValues) {
1338                    $lineCount++;
1339                    $days[$lineCount] = $stockValues;
1340                }
1341            } while ($stockValues);
1342
1343            // close handle
1344            fclose ($fileHandle);
1345        } else {
1346            $days[0][0] = "ERROR";
1347            $days[0][1] = "No data found.";
1348        }       
1349
1350        return $days;
1351    }
1352?&gt;</pre>
1353<h2>Länderunterschiede</h2>
1354An 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 <code>http://finance.yahoo.com/d/quotes.csv?</code> der aktuelle Kurs einer Aktie in US-Dollars ermittelt werden. Wollen Sie hingegen einen Kurs aus dem deutschen Raum ermitteln, steht Ihnen die URL <code>http://<strong>de</strong>.finance.yahoo.com/d/quotes.csv?</code> zur Verfügung.
1355
1356Die 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. "<code>AAPL.DE</code>" für den XETRA-Kurs des Apple-Aktie). Ein Besuch auf die Webseite von Yahoo! Finance hilft hier bei der Auswahl der richtigen Symbolbezeichnung.
1357<table class="full" border="0">
1358<tbody>
1359<tr>
1360<th>Land &amp; Suffix</th>
1361<th>URLs</th>
1362</tr>
1363<tr>
1364<td class="left">Argentinien
1365
1366.BA (Buenos Aires)</td>
1367<td><code>http://finance.yahoo.com/d/quotes.csv?
1368
1369http://ar.finance.yahoo.com/d/quotes.csv?</code></td>
1370</tr>
1371<tr>
1372<td>Australien
1373
1374.AX (Australia)</td>
1375<td><code>http://au.finance.yahoo.com/d/quotes.csv?</code></td>
1376</tr>
1377<tr>
1378<td>Belgien
1379
1380.BR (Brussels)</td>
1381<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1382</tr>
1383<tr>
1384<td>Brasilien
1385
1386.SA (São Paulo)</td>
1387<td><code>http://finance.yahoo.com/d/quotes.csv?
1388
1389</code><code>http://br.finance.yahoo.com/d/quotes.csv?</code></td>
1390</tr>
1391<tr>
1392<td>Dänemark
1393
1394.CO (Copenhagen)</td>
1395<td><code>http://finance.yahoo.com/d/quotes.csv?
1396
1397http://dk.finance.yahoo.com/d/quotes.csv?</code></td>
1398</tr>
1399<tr>
1400<td>Deutschland
1401
1402.BE (Berlin-Bremen)
1403
1404.DU (Düsseldorf)
1405
1406.F (Frankfurt)
1407
1408.HM (Hamburg)
1409
1410.HA (Hanover)
1411
1412.MU (München)
1413
1414.SG (Stuttgart)
1415
1416.DE (XETRA)</td>
1417<td><code>http://de.finance.yahoo.com/d/quotes.csv?</code></td>
1418</tr>
1419<tr>
1420<td>China
1421
1422.SS (Shanghai)
1423
1424.SZ (Shenzhen)</td>
1425<td><code>http://finance.yahoo.com/d/quotes.csv?
1426
1427http://cn.finance.yahoo.com/d/quotes.csv?</code></td>
1428</tr>
1429<tr>
1430<td>England
1431
1432.L (London)</td>
1433<td><code>http://uk.finance.yahoo.com/d/quotes.csv?</code></td>
1434</tr>
1435<tr>
1436<td>Frankreich
1437
1438.PA (Paris)</td>
1439<td><code>http://finance.yahoo.com/d/quotes.csv?
1440
1441http://fr.finance.yahoo.com/d/quotes.csv?</code></td>
1442</tr>
1443<tr>
1444<td>Hong Kong
1445
1446.HK (Hong Kong)</td>
1447<td><code>http://hk.finance.yahoo.com/d/quotes.csv?</code></td>
1448</tr>
1449<tr>
1450<td>Indien
1451
1452.BO (Bombay)
1453
1454.NS (Nationale Börse Indien)</td>
1455<td><code>http://in.finance.yahoo.com/d/quotes.csv?</code></td>
1456</tr>
1457<tr>
1458<td>Indonesien
1459
1460.JK (Jakarta)</td>
1461<td><code>http://sg.finance.yahoo.com/d/quotes.csv?</code></td>
1462</tr>
1463<tr>
1464<td>Irland
1465
1466.IR (Irish)</td>
1467<td><code>http://uk.finance.yahoo.com/d/quotes.csv?</code></td>
1468</tr>
1469<tr>
1470<td>Israel
1471
1472.TA (Tel Aviv)</td>
1473<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1474</tr>
1475<tr>
1476<td>Italien
1477
1478.MI (Milano)</td>
1479<td><code>http://finance.yahoo.com/d/quotes.csv?
1480
1481http://it.finance.yahoo.com/d/quotes.csv?</code></td>
1482</tr>
1483<tr>
1484<td class="left">Kanada
1485
1486.TO (Toronto)
1487
1488.V (TSX Venture Exchange)</td>
1489<td><code>http://ca.finance.yahoo.com/d/quotes.csv?</code></td>
1490</tr>
1491<tr>
1492<td>Korea (Süd)
1493
1494.KS (Korea)
1495
1496.KQ (KOSDAQ)</td>
1497<td><code>http://kr.finance.yahoo.com/d/quotes.csv?</code></td>
1498</tr>
1499<tr>
1500<td class="left">Malaysien
1501
1502.KL (Kuala Lumpur) ?</td>
1503<td><code>http://sg.finance.yahoo.com/d/quotes.csv?</code></td>
1504</tr>
1505<tr>
1506<td>Mexico
1507
1508.MX (Mexico)</td>
1509<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1510</tr>
1511<tr>
1512<td>Neu Seeland
1513
1514.NZ (New Zealand)</td>
1515<td><code>http://au.finance.yahoo.com/d/quotes.csv?</code></td>
1516</tr>
1517<tr>
1518<td>Niederlande
1519
1520.AS (Amsterdam)</td>
1521<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1522</tr>
1523<tr>
1524<td>Norwegen
1525
1526.OL (Oslo)</td>
1527<td><code>http://finance.yahoo.com/d/quotes.csv?
1528
1529http://no.finance.yahoo.com/d/quotes.csv?</code></td>
1530</tr>
1531<tr>
1532<td>Österreich
1533
1534.VI (Vienna)</td>
1535<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1536</tr>
1537<tr>
1538<td>Pakistan
1539
1540.KA (Karachi) ?</td>
1541<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1542</tr>
1543<tr>
1544<td>Portugal
1545
1546.LS (Lissabon)</td>
1547<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1548</tr>
1549<tr>
1550<td>Schweden
1551
1552.ST (Stockholm)</td>
1553<td><code>http://finance.yahoo.com/d/quotes.csv?
1554
1555http://se.finance.yahoo.com/d/quotes.csv?</code></td>
1556</tr>
1557<tr>
1558<td>Schweiz
1559
1560.SW (Swiss)
1561
1562.VX (Virt-X)</td>
1563<td><code>http://finance.yahoo.com/d/quotes.csv?</code></td>
1564</tr>
1565<tr>
1566<td>Singapore
1567
1568.SI (Singapore)</td>
1569<td><code>http://sg.finance.yahoo.com/d/quotes.csv?</code></td>
1570</tr>
1571<tr>
1572<td class="left">Spanien
1573
1574.BC (Barcelona)
1575
1576.BI (Bilbao)
1577
1578.MF (Madrid Fixed Income Market)
1579
1580.MC (Madrid SE C.A.T.S.)
1581
1582.MA (Madrid)</td>
1583<td><code>http://es.finance.yahoo.com/d/quotes.csv?</code></td>
1584</tr>
1585<tr>
1586<td>Taiwan
1587
1588.TWO (OTC Börse Taiwan)
1589
1590.TW (Taiwan)</td>
1591<td><code>http://sg.finance.yahoo.com/d/quotes.csv?</code></td>
1592</tr>
1593<tr>
1594<td>Thailand
1595
1596.BK (Bangkok)</td>
1597<td><code>http://sg.finance.yahoo.com/d/quotes.csv?</code></td>
1598</tr>
1599<tr>
1600<td class="left">USA
1601
1602kein Suffix für AMEX, NASDAQ und NYSE
1603
1604.OB (OTC Bulletin Board Market)
1605
1606.PK (Pink Sheets)</td>
1607<td><code>http://finance.yahoo.com/d/quotes.csv?
1608
1609</code></td>
1610</tr>
1611</tbody></table>
1612<h2>Download</h2>
1613Die Klasse <code>Finance_API_Yahoo</code> 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 <a href="http://framework.zend.com/" target="_blank">Zend-Framework</a> als Vorlage. Somit ist eine einfache Integration in dieses gewährleistet.
1614
1615<a href="http://www.brusdeylins.info/content/projects/yahoo/YahooFinanceAPI_1.0.zip" target="_blank">Yahoo! Finance API, Version 1.0</a>
1616<h3>Change-Log</h3>
1617<table class="changelog" border="0">
1618<tbody>
1619<tr>
1620<td class="left">0.5</td>
1621<td>31.03.2008 - First release</td>
1622</tr>
1623<tr>
1624<td class="left">0.6</td>
1625<td>06.04.2008 - Function code list completed</td>
1626</tr>
1627<tr>
1628<td valign="top">1.0</td>
1629<td valign="top">04.05.2008 - Zend-Framework package structure integrated</td>
1630</tr>
1631</tbody></table>
1632<a href="http://creativecommons.org/licenses/GPL/2.0/deed.de" target="_blank">
1633
1634<img src="http://creativecommons.org/images/public/cc-GPL-a.png" border="0" alt="CC-GNU GPL" /></a>
1635
1636Diese Software und die hier gezeigten Codestücke fallen unter den Lizenzvertrag <a href="http://creativecommons.org/licenses/GPL/2.0/deed.de" target="_blank">CC-GNU GPL</a>.