Autor Beitrag
Daniel L.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125
Erhaltene Danke: 1

W7, W8
D7, TurboD Prof, Delphi 10.1 Starter
BeitragVerfasst: Do 02.02.17 19:14 
Hallo,

Yahoo bietet eine Finanz API an, um Aktienkurse als csv runterzuladen,
bzw. auch für Programmierer die Kurse in einer Anwendung abzurufen.

Hier hat sich jemand die Mühe gemacht und eine Anleitung mit
einem php-Beispiel ins Nezt gestellt (CC-GNU GPL)

brusdeylins.info/pro...s/yahoo-finance-api/

Ein paar Stichpunkte aus der Anleitung entnommen:

Die BasesURL:
'http://finance.yahoo.com/d/quotes.csv?'

Parameter:
s= : Yahoo-AG-Symbol, z.B. 'AAPL' für Apple oder 'MSFT' für Microsoft
f= : FormatCodes (Buchstabenfolge) für die Auswahl der Daten, die ausgegeben werden sollen, z.B.
's' : Yahoo-AG-Symbol
'n' : AG-Name
'a' : aktueller Kurs
't1' : Kurszeit

Beispiel URL:
'http://finance.yahoo.com/d/quotes.csv?s=AAPL+MSFT&f=snat1'

Gibt man diese Url in seinen Browser ein, so wird die Datei 'quotes.csv' gedownloadet mit folgender Zeichenkette als Inhalt:

"AAPL","Apple Inc.",128.23,"4:00pm""MSFT","Microsoft Corporation",63.45,"4:00pm"


Wie könnte man nun die Daten direkt in eine Anwendung einfließen lassen (ohne csv download)?

Leider hab ich mit Delphi bis jetzt nichts mit Neztwerk/Internet programmiert
und entsprechend davon keine Ahnung, ebensowenig von php.

Für ein paar Tips wäre ich dankbar...

Gruß: Daniel Lutz


Zuletzt bearbeitet von Daniel L. am Fr 03.02.17 22:37, insgesamt 2-mal bearbeitet
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2274
Erhaltene Danke: 419

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Do 02.02.17 21:27 
Guten Tag Daniel L.,

der Link ist nunmal dafür vorgesehen, eine .CSV-Datei mit den dazugehörigen Aktien-Daten zum Download anzubieten.
Mit den INDY-Komponenten könntest du den Download auch unauffällig/ohne Browser vollziehen und mit TExcelApplication (OLE-Object) die Datei auslesen.
Es gibt auch andere Anbieter, die diese (Aktien)Daten als .XML zum Download anbieten. Dafür wäre z.B. das TXMLDocument eine Hilfe zum Auslesen.

Ein Download mit Indys könnte so aussehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
uses
  IdHTTP, ...;

procedure TForm1.Button1Click(Sender: TObject);
var
  http: TIdHTTP; // Indy Komponente
  ms: TMemoryStream;
begin
  http := TIdHTTP.Create(nil);
  try
    ms := TMemoryStream.Create;
    try
      http.HandleRedirects := true; // falls eine Weiterleitung erfolgt
      http.Get('http://someUrl/someFile.csv', ms);
      MS.SaveToFile('D:\someFile.csv');
    finally
      ms.Free;
    end;
  finally
    http.Free;
  end;
end;

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)

Für diesen Beitrag haben gedankt: Daniel L.
Daniel L. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125
Erhaltene Danke: 1

W7, W8
D7, TurboD Prof, Delphi 10.1 Starter
BeitragVerfasst: Fr 03.02.17 14:10 
Mit Indy geht das schon mal gut -
sind die Daten erst im Stream, kann ich sie ja auch direkt weiterverwerten (ohne Datei-Speicherung) :)
Die anderen Techniken probier ich später mal aus...

Danke @Frühlingsrolle

Daniel
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 125
Erhaltene Danke: 23

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Fr 03.02.17 14:54 
Hi,
user profile iconDaniel L. hat folgendes geschrieben Zum zitierten Posting springen:
Die anderen Techniken probier ich später mal aus...

auf die Verwendung von TExcelApplication würde ich aber verzichten. Mal abgesehen davon, dass es ein wenig mit Kanonen auf Spatzen geschossen ist, würde es auch voraussetzen, dass die Nutzer deiner Anwendung Excel Installiert haben.

Wenn du die Daten im Stream hast, kannst du auch leicht einen String daraus machen und einen String wie "AAPL","Apple Inc.",128.23,"4:00pm""MSFT","Microsoft Corporation",63.45,"4:00pm" sollte sich auch mit Delphi Bordmitteln gut interpretieren lassen.

Für diesen Beitrag haben gedankt: Frühlingsrolle
Daniel_DT
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 16



BeitragVerfasst: Di 25.04.17 09:50 
Was ein Zufall, ich musste mal etwas sehr Ähnliches für einen Statistikkurs an der Uni schreiben. Mit der gleichen Aktie auch von Yahoo^^