Page tree
Skip to end of metadata
Go to start of metadata

Grundverfahren

Bei der Internetaktualisierung werden frei konfigurierbare Zieladressen in Gruppen zusammengefasst für den gruppierten Abruf der Tagesdaten und historischen Kursdaten. Die Zieladressen sind dabei HTTP(S) Adressen von Zielportalen oder auch API-Datenprovidern. Beim Abruf werden dabei CSV/JSON und HTML-Formate genutzt. Um an die notwendigen Zieladressen pro Titel zu kommen, werden dabei ebenfalls konfigurierbare Internet-Variablen genutzt. Diese werden automatisch aufgelöst bzw. gesucht in angegebenen Suchadressen. 

Eine Nutzung von Proxy-Adressen ist dabei möglich, um insb. in Firmennetzwerk-Umfeldern zu funktionieren oder auch um VPN-Proxies nutzen zu können.

Nachfolgend werden die für dieses Grundprinzip notwendigen Einzelkonfigurationen im Detail erklärt:

  • Internetadressen für die Zieladressen 
  • Internetvariablen für die Auflösung der Zieladressen z.B. die auf ARIVA notwendige ARIVA-ID, die über eine automatische Suche mittels der ISIN eines Titels aufgelöst werden kann 
  • Importformate um die zurückgegebenen Daten interpretieren zu können z.B. das CSV oder JSON-Format

Konfigurationsparameter

Aktualisierungsgruppen


Wenn innerhalb des Programms die Kursdaten aktualisiert werden, werden alle Aktualisierungsinformationen aus der Aktualisierungsgruppe ausgelesen. Diese Gruppen bilden eine eindeutige Zuordnung zu den für eine Aktualisierung notwendigen Abfragen ab wie z.B. Abfrageadresse (URL) für die Tagesdaten, Historischen Datenadresse und Formate.

Um die Bedeutung der Aktualisierungsgruppen kurz zu umreißen (hier die Einstellungsmaske zu den Gruppen), vorhergehend ein Sceenshot der Einstellungsmaske. Zu sehen sind rechts die aktuellen möglichen Gruppen und links für die Alphavantage-Stuttgart-Aktualisierungsgruppe die zugehörigen Einstellungen.

Erst die Aktualisierungsgruppen stellen die klare Verbindung zu den Abfrageadressen, Börse und Währung her. Da die Zuordnung von Titel/Aktie und Aktualisierungsgruppe immer 1:1 ist, muss immer nur eine passende Gruppe gefunden werden und kein Einzeltest auf Adressebene. Hierzu steht in den Titelstammdaten (siehe oben) neben der Auswahlbox ein entsprechende Testformular zur Verfügung.

Eine Aktualisierungsgruppe nutzt daher folgende Einzel-Einstellungen:

KonfigurationsparameterHinweise zur Nutzung
WährungAbgerufene Zieladressen haben im Normalfall eine Standardwährung, die über diese Einstellung festgelegt wird. Diese Währung wird nach dem Datenabruf auch als Zielwährung gespeichert.
Bevorzugte BörseIm Idealfall zeigt die bevorzugte Börse auf die korrespondierende Börse. Aktuell ist dies eine reine kosmetische Einstellung.
Börsenabkürzung

Abgerufene Zieladressen für Kursdaten können sich manchmal nur in der Börsen-Kürzung unterscheiden. Um hier nicht jeweils eigene Internetadressen definieren zu müssen, kann in einem eigenen Feld die Kurzbezeichnung festgelegt werden. Dieses Feld kann dann dynamisch in der Internetadresse als {BOERSE} eingebunden werden. Damit kann die die notwendige Ausmultiplikation über die Aktualisierungsgruppen erfolgen z.B. als

  • Alphavantage.Stocks[ric][Frankfurt] mit dem Börsenkürzel "FRK"
  • Alphavantage.Stocks[ric][München] mit dem Börsenkürzel "MUN"

Börse bzw. das spezifische Börsenkürzel für die Abfrageadresse, da Yahoo z.B. andere Börsen-Kürzel als Consors verwendet. Die Kürzel müssen auf der jeweiligen Plattform manuell ermittelt werden und sind weitgehend spezifisch in der Abbildung. Es wird damit eine sehr genaue Festlegung der Zieladressen erreicht.

Tages-Kursdaten

Auswahl der zu nutzenden Internetadresse für die Aktualisierung von Tagesdaten:

Historische Kursdaten Voll

Auswahl der zu nutzenden Internetadresse für die Aktualisierung von historischen Kursdaten. Im Normalfall wird versucht die "Quick"-Variante zu nutzen, wenn die Mindestanzahl an Tagen bereits vorliegt bzw. der Abstand zwischen Heute und dem letzten Kursstempel ist.

Historische Kursdaten QuickAuswahl der zu nutzenden Internetadresse für die Aktualisierung von historischen Kursdaten. Siehe auch "Historische Kursdaten-Voll"
Fundamentaldaten-Default

Zusammen mit der Konfiguration der Internetadressen wird auch die zugeordnete Adresse für die Aktualisierung von Fundamentaldaten in den Aktualisierungsgruppen eingestellt. Die Auswahl basiert auf die konfigurierbare Liste der Fundamentaldaten.

Internetadressen

Über die Internetadressen werden die Zieladressen und die für den Import zu nutzenden Importformate festgelegt.

Konfigurations-FeldHinweise
Antwort-Typ

Der Datentyp legt fest, wie die Rückgabe interpretiert werden muss unterschieden nach:

    1. CSV: Reines Textformat ohne HTML-Steueranweisungen.
    2. HTML: Textformat mit HTML-Steueranweisungen, die zunächst geparst werden müssen. Die Steueranweisungen sind dabei immer in < > eingeschlossen. Die für den Import notwendigen Tests können unter "Einstellungen.HTML-Parsing" durchgeführt werden.
    3. Profil: Zurückgegebene Daten werden direkt als Text komprimiert und in eine Profildatei gespeichert. Kursdaten können hier nicht gewonnen werden.
Request-TypAbfragen im Web werden immer unterschieden nach GET und POST-Requests. 
Importformat

Wie kann das zurückgegebene Ergebnis der Zieladresse ausgewertet werden. Dabei wurde eine Auswahl des zu verwendenden Formats verwendet.

Zieladresse (URL)

Wie ermittle ich die Zieladresse (URL) für ein Titel, welches über diese Adresse aktualisiert werden kann. Adresse mit Nutzung von Freien und Festen Variablen

Um eine Zieladresse zu bilden, werden eine Reihe von statischen und dynamischen Variablen angeboten. Diese Statischen stellen einen Zugriff auf die Stammdaten einer Aktie und den aktuellen Einstellungen für die Kursaktualisierung dar. Die dynamischen basieren selbst auf frei konfigurierbare Internetvariablen.

Variablen werden immer in { } eingeschlossen, um diese von anderen Teilen der URL-Zeichenkette unterscheiden zu können. Freie Variablen sind Platzhalter für Werte, die selbst über statische Variablen oder dynamische Variablen aufgelöst werden müssen. 

Hier einmal als Beispiel:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={RIC[isin]}{BOERSE}&apikey={Alphavantage.APIKEY}&datatype=csv&outputsize=compact

Dabei werden mehrere dynamische Variablen verwendet:

  • {RIC[isin]} - Frei konfigurierte Internetvariable die das Börsensymbol des Titels enthält
  • {BOERSE} - Aus der Aktualisierungsgruppe "übernommene" Abkürzung
  • {Alphavantage.APIKEY} - Aus der konfigurierbaren API-Key-Definition für Alphavantage gebildet


Internetvariablen

Internetvariablen werden für die Zielauflösung von URL-Adressen benötigt und werden pro Titel optional gespeichert, so dass eine automatische Auflösung/Abruf von Variablen nur einmalig erfolgen muss.
Es gibt hier mindestens folgende Anwendungsfälle:

  1. Sammelabfragen d.h. der gleichzeitige Abruf von mehreren Kursdaten die miteinander beim Abruf verkettet werden z.B. als "APL+DEP+AAZ"
  2. Sich verändernden Adressteilen (je Abruf) auf der Website z.B. Chart.ID bzw. auch Adressteilen die anbieterspezifisch sind und einmalig ermittelt werden müssen. Ein Beispiel ist die CompanyID der gespeicherten Profile auf dem Comdirect-Server. Diese IDs sind weitestgehend spezifisch für den Anbieter, bleiben aber konstant.

Nachträgliche Umbenennung von Internet-Variablen

Da Variablen Bestandteil anderer Variablen sein können als auch Bestandteil von verschiedenen Internetadressen ist die Umbenennung von Variablen nicht unproblematisch. Um den Vorgang aber nicht unnötig kompliziert zu halten, werden automatisch nach einer Umbenennung alle abhängigen Teile aktualisiert.
Dies verhindert Inkonsistenzen.

Nutzung von Sammelabfragen

Konfigurationsbeispiel für eine Sammelabfrage. 

KonfigurationseintragHinweise
Daten aus Sammelanfragen liegen in Reihenfolge des Abrufs vorDiese Einstellung ist unbedingt zu prüfen für den Anbieter. Wird ein Datenabruf vorgenommen und z.B. APL, DEP und AAZ abgefragt, sollte die Rückmeldung mit Aktivierung dieser Checkbox in gleicher Reihenfolge vorliegen. Ist dies nicht der Fall muss das Importformat in der Position Suchkennung explizit eine saubere Zuordnung enthalten, da sonst eine zufällige Kursdatenzuordnung erfolgen würde.
Maixmale Anzaghl der gleichzeitigen AbrufeErst durch diese Konfiguration wird der Eintrag überhaupt zu einer Sammelabfrage. Definiert wird eine solche Abfrage durch die Eingabe von "Maximale Anzahl von gleichzeitigen Abrufen" >1
Trennzeichen

Geachtet werden sollte auf das Trennzeichen zwischen den Werten für die Abfrage. Werden somit 3 Aktien ausgewählt und verwenden das selbe Aktualisierungstemplate ergibt sich für die Variable (Wir nehmen an alle Werte verwenden die XETRA-Börse):

APL,DEP,AAZ


Dynamische Variablen

KonfigurationseinstellungHinweise
Name Wird rechts in der Listendarstellung festgelegt und über "Edit" verändert. Die Nutzung erfolgt dann in anderen Internetadressen als auch in anderen Internetvariablen mit geschweiften Klammern. Hier im Beispiel also: {arivaSecuID[isin]}
Quelldatenadresse
Prinzipiell könnten alle Variablen direkt im Stammdaten-Dialog des Titels (Doppelklick, Reiter Internetvariablen) manuell festgelegt werden. Um dies jedoch auf ein Minimum zu reduzieren, kann eine automatische Auflösung erfolgen.

Nachfolgend als Beispiel: 
Hierbei wird als ein Zielseite zunächst abgerufen und intern nach der Zeichenkette

https://www.ariva.de/search/search.m?searchname={ISIN}
Suchstring

Nachfolgend als Beispiel:

aic={suchstring}&
Der {Suchstring} wird dabei nicht gesucht, sondern kennzeichnet einfach nur den Teilbereich, der als Rückgabewert für die Variable gelten soll auf Basis der Quelldatenadresse.
Dabei wird der Teil vor und nach dem Suchstring in der Rückgabe der Quelldatenadressen (Normalfall HTML-Text) gesucht und so der Suchstring als Variable interpretiert.


Importformate


Die Formateinstellungen entscheiden maßgeblich über den Erfolg oder Misserfolg einer Kursaktualisierung. Festgelegt werden können für die Kursdatenaktualisierung zwei unterschiedliche Importformattypen: Für Aktienkursdaten und Für Aktienstammdaten z.B. KGV, DivR usw.

Weitere Details finden Sie speziell unter:

Aktualisierungen von HTML-Seiten


HTML Dateien können in CSV Dateien übersetzt werden insb. durch die Transformation von Tabellen. In HTML werden Tabellen mit

<table>
  <tr>
      <td>1.Zeile / 1.Spalte</td>
      <td>1.Zeile / 2.Spalte</td>
      <td>1.Zeile / 3.Spalte</td>
  </tr>
</table>
<table>
  <tr>
      <td>2.Zeile / 1.Spalte</td>
      <td>2.Zeile / 2.Spalte</td>
      <td>2.Zeile / 3.Spalte</td>
  </tr>
</table>

dargestellt.

Diese Struktur wird in:

___________:TABLE:_________
1.Zeile / 1.Spalte°1.Zeile / 2.Spalte°1.Zeile / 3.Spalte°
___________:TABLE:_________
2.Zeile / 1.Spalte°2.Zeile / 2.Spalte°2.Zeile / 3.Spalte°

transformiert. Diese kann dann normal durch die Importformatbeschreibungen ausgelesen werden.


Konfigurations-FeldHinweise
SuchschlüsselDa die Infotabellen nicht zwingend allein auf einer HTML Seite stehen müssen, kann ein Suchschlüssel für eine Tabelle angegeben werden, um anderen davor liegende Tabellen zu überspringen z.B. für Werbeblöcke. Nachfolgende werden ohnehin ignoriert. Mit Suchschlüssel können Sie gezielt ein Suchwert festlegen, der an irgend einer Stelle innerhalb der gesuchten Tabelle vorhanden ist. Im obrigen Beispiel würden Sie gezielt die 1.Tabelle mit "Kursdaten" filtern, die 2. entsprechend mit Copyright. Alle anderen Tabellen die den Suchbegriff nicht enthalten würde herausgefiltert werden.
<TR>=ZeilenvorschubInformationen werden normalerweise zeilenweise gespeichert. Dies macht eine Transformation von Tabellenzeilen in Informationseinheiten notwendig. Mit "TR=Zeilenvorschub" aktivieren Sie diese Funktionalität. 

Um effektiv zu arbeiten, sollte zunächst im Browser die gewünschte Seite angesurft werden, hier dann der Quelltext (Kontextmenü Quelltext anzeigen) in die Zwischenablage kopiert werden.

Dann öffnen Sie im Hauptmenü den Menüpunkt "Einstellungen / Test-HTML-Parsing" und übernehmen mit dem Button "HTML aus Zwischenablage einfügen" im Formular den HTML-Quelltext und parsen diesen automatisch. Das Parsingergebnis wird mit Zusatzinformationen im unteren Ergebnisfenster gezeigt. Über den Button "Importformat" kann bereits von hier aus direkt dieses festgelegt oder geändert werden.

Protokoll und Fehlersuche

siehe Protokolle und Fehlersuche