Welcome Features News Download Registration Support FAQ Wish list Links
Advanced stock charting and analysis program
 

DDE DATA PLUGIN - BETA TEST PHASE

AmiBroker unterstützt jetzt auch Real-Time streaming quotes von DDE-fähigen Datenquellen

WAS IST DDE

DDE (Dynamic Data Exchange) ist ein Windows Protokoll, dass es verschiedenen Anwendungen erlaubt, Daten miteinander auszutauschen. Wenn Sie beispielsweise eine Form in Ihrem Datenbankprogramm oder eine Zelle in Ihrem Spreadsheet Programm ändern, dann können die Programme so eingestellt sein, dass beide Merkmale auch in anderen Programmen geändert werden, in denen sie auftauchen. DDE nutzt ein Client/Server Modell, in dem die Anwendung, die Daten anfordert, als sogenannter Client und die Anwendung, die die Daten sendet, als Server bezeichnet wird.

Mehr Informationen zu dem Thema DDE bekommen Sie, wenn Sie folgendem Link folgen:


http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/DataExchange/DynamicDataExchange/AboutDynamicDataExchange.asp

DDE für Trader

Welchen Nutzen können Trader aus DDE ziehen? In der Hauptsache können Echtzeitkurse über DDE bezogen werden. Allerdings gibt es keine historischen Daten via DDE. Verschiedene Real-Time Datenanbieter und Broker bieten Ihren Kunden für den Bezug von Echtzeitdaten DDE-Schnittstellen an. Fragen Sie Ihren Broker oder Datenanbieter, ob er eine DDE-Schnittstelle anbietet. Das mit der neuesten Version von Amibroker mitgelieferte DDE plugin erlaubt jetzt eine Verbindung zu (fast) jeder DDE Quelle (Server), die Real-Time Daten liefern kann. Diese Möglichkeiten machen DDE zu einer sinnvollen Option für alle Datenanbieter, für die es derzeit noch kein designiertes Plugin innerhalb Amibrokers gibt.

WANN SOLLTE DAS DDE PLUGIN NICHT VERWENDET WERDEN

Wenn Sie Benutzer von eSignal, IQFeed, Quote.com, MarketCast, oder irgendeiner anderen Quelle sind, für die Amibroker schon ein fertiges Plugin anbietet, dann sollten Sie statt DDE das Plugin nutzen. Der Grund ist, dass die Plugins IMMER die bessere Alternative darstellen, weil sie mehr Möglichkeiten bieten und in der Regel auch schneller sind als das generic DDE Protokoll.

ZUSAMMENFASSUNG DER DDE PLUGIN FEATURES

  • durch den Benutzer definierbare DDE server/topic/item für jedes Feld (open, high, low, close, volume, trade size, total volume, bid, bid size, ask, ask size, time)
  • unterstützt bis zu 40 streaming Symbole in Echtzeit
  • unterstützt unterschiedliche Zeitintervalle: daily, hourly, 15-,5-,1-Minute, 15-, 5-Sekunden, Tick
  • KEIN BACKFILL (der Grund ist, dass die meisten DDE-Quellen keinen Backfill erlauben)

HISTORY

  • 1.0.0 - initial release (BETA)

INSTALLATIONSHINWEISE

Um das DDE Daten plugin mit AmiBroker zu nutzen, müssen Sie folgende Schritte beachten:
  1. Laden Sie das DDE plugin von http://www.amibroker.com/bin/DDE.dll herunter und kopieren Sie es in den Unterordner PLUGINS des AmiBroker Verzeichnisses. Die aktuelle Version der Datei DDE.DLL ist: 1.0.0 (7. Juni 2004)
  2. Aktivieren Sie die Funktion DDE in der Software, die als DDE Server dienen soll (beachten Sie hierzu bitte die Hinweise des jeweiligen Softwareherstellers).
  3. Starten Sie AmiBroker und erstellen Sie eine neue Datenbank mit der "DDE universal data plugin" als Datenquelle unter Beachtung der folgenden Schritte:

    Starten Sie AmiBroker

  • Wählen Sie File->New database

  • Geben Sie dem Ordner einen neuen Namen (als Beispiel: C:\Programme\AmiBroker\DDE ) und klicken Sie auf "Create" wie im Bild unten zu sehen:
     


  • Wählen Sie DDE universal data plugin aus dem "Data source" Listenfeld und wählen Sie "Enable" im Bereich von "Local data storage"

  • Geben Sie 10000 oder mehr ein im Feld "Number of bars to load"

  • Wählen Sie jetzt noch das "Base time interval". Unterstützte Intervalle sind: EOD, hourly, 15-Minuten, 5-Minuten, 1-Minute. Die Professional Edition von AmiBroker erlaubt es Ihnen außerdem Tick, 5-Sekunden, oder 15-Sekunden Intervalle zu nutzen.

  • Klicken Sie auf den "CONFIGURE" button - WICHTIG: In dem "CONFIGURE" Dialog müssen Sie alle Felder exakt nach den Angaben Ihres Datenproviders einrichten. Lesen Sie dazu bitte auch den Absatz weiter unten ("KONFIGURATION DES DDE PLUGIN MIT IHREM DATENANBIETER") für eine detaillierte Beschreibung. ACHTUNG: Sie können diesen Teil nicht überspringen, da DDE nicht funktionieren wird, wenn nicht alle Felder an ihren spezifischen Datenanbieter angepasst sind.


  • Click OK.

Der Plugin Status Indikator sollte innerhalb von ein paar Sekunden von Gelb "WAIT" auf Grün "OK" springen.

Wenn er auch nach ein paar Sekunden nicht den Status "OK" zeigt, dann sind entweder:

a) Der Server Name und/oder ein oder mehrere Felder nicht korrekt eingetragen

oder

b) Der DDE Server (3rd Party Programm) ist nicht gestartet

Zeigt der Indikator hingegen "OK" dann wird AmiBroker mit Realtime Daten versorgt. Die korrekte Datenversorgung kann unter View->Real time quote überprüft werden. Hinweis: Da es keine Kursrückversorgung gibt, müssen die ersten 3 bars abgewartet werden, bevor die Daten angezeigt werden.

KONFIGURIERUNG DES DDE PLUGINS MIT IHREM DATENANBIETER

Bei den verschiedenen Datenanbietern werden unterschiedliche DDE Verbindungsstrings eingesetzt, nachfolgend einige typische Beispiele.

Die meisten Dokumentationen nutzen die Excel DDE SyntaxM, die nachfolgend aufgeführt ist:

=SERVER|TOPIC!ITEM

Als Server wird der DDE Server bezeichnet, wie z.B. WINROS, IQLINK, REUTER, CQGPC, MT, MTLink, etc.
Topic bezeichnet den Header der DDE Verbindung. Je nach Datenquelle kann es sich beim Topic aber auch einfach nur um das Ticker Symbol handeln (wie z.B. in IQFeed), oder es kann der Feldname sein wie bei der Winros von eSignal.

DDE Verbindungsstrings der beiden am häufigsten genutzten Standards sehen wie folgt aus:

=WINROS|LAST!MSFT

=IQLINK|MSFT!LAST

Der DDE plugin Konfigurationsscreen sieht also wie folgt aus:



Im oberen Bereich des Dialogs befindet sich das "DDE Server" Feld. In diesem Feld muss der SERVER Name des DDE Verbindungsstrings eingetragen werden (=SERVER|TOPIC!ITEM) und zwar ohne Ausrufungszeichen und ohne das "|" Zeichen.

Darunter sehen Sie 12 Textboxen, in denen die DDE Topic und Item Einträge für jedes Datenfeld gemacht werden können, die der Datenprovider zur Verfügung stellt. Hier müssen die TOPIC!ITEM Paare des DDE Verbindungsstrings eingegeben werden (=SERVER|TOPIC!ITEM) mit Ausrufungszeichen zwischen DDE Topic und DDE Item.

Das Bild oben zeigt deutlich, dass das DDE Plugin die Nutzung spezieller Strings erlaubt, wie z.B. {Ticker}, {Field}, {FieldSp}, {Server}, {Id} , die während der Programmlaufzeit für jedes Symbol separat überprüft werden, um den Aufbau dynamischer DDE Strings zu erlauben (z.B. abhängig vom gewählten Ticker Symbol) , die von den meisten Datenquellen benötigt werden

{Ticker} - überprüft das Ticker Symbol des gewählten Wertpapieres
{Field} - überprüft den zugehörigen Feldnamen (ohne Leerzeichen), also beispielsweise. Open, High, Low, Last, LastSize, Volume, Ask, AskSize, Bid, BidSize, Time, Req
{FieldSp} - ähnlich wie {field} aber 2-Wort Feldnamen können auch Leerzeichen haben wie beispielsweise: "Last Size", "Ask Size", "Bid Size"
{Server} - überprüft den Servernamen
{Id} - überprüft eine eigenständige ID (hierbei läuft ein Zähler mit, der bei jedem neuen Symbol um 1 erhöht wird)

Der restliche Text wird kopiert, schreiben Sie also beispielsweise:
PREFIX_{Ticker }_SUFFIX!MYTEXT

wird es eingesetzt als =SERVER|PREFIX_MSFT_SUFFIX!MYTEXT (in diesem Beispiel unter der Voraussetzung, dass das Symbol tatsächlich MSFT ist)

Neben den Feldnamen können Sie sehen, in was die eingetragene Definition umgesetzt wird (hier in der Excel Notation). So ist es relativ einfach zu überprüfen, ob die eingetragene Definition auch die Richtige ist. Im Beispiel wird immer "MSFT" als {Ticker} genutzt, und 34 als {id}.

Wenn ihr Datenanbieter nicht alle Felder liefert, dann können Sie diese auch freilassen. Beachten Sie bitte, dass für die korrekte Funktion der "Last" Kurs unbedingt erforderlich ist. Wenn ihr Datenanbieter den "Last" Kurs nicht anbietet (die meisten Forex Quellen fallen unter diese Kategorie), dann können Sie das DDE Plugin auch veranlassen, stattdessen das Feld "Bid" zu nutzen. Lassen Sie dazu das "Last" Feld leer und tragen Sie stattdessen das DDE topic!item Paar in das "Bid" Feld ein. Beachten Sie bitte auch, dass Topic!Item Paare jeweils eindeutige Werte generieren sollten.

Im oberen Bereich des Dialogs finden Sie die "Preset" combo-box. Derzeit erlaubt diese Box einen Preset aller Felder nach zwei vorgegebenen Templates:

a) {Field}!{Ticker} - "last price" wird zu =SERVER|Last!MSFT
b) {Ticker}!{Field} - "last price" wird zu =SERVER|MSFT!Last

In der Zukunft enthält die "Preset" box jedoch mehrere Presets für verschiedene Datenanbieter.

HIER EINIGE BEISPIELE:

1. Metaquotes/Metatrader, DDE docs: http://www.metaquotes.net/metatrader/ug_dde.htm

Entsprechend den Unterlagen des Anbieters sieht das Format wie folgt aus: DDE request sollte sein MT|{Field}!{Ticker}, wo {Field} entweder Bid, Ask, High, Low, oder Time ist.

Hier handelt es sich übrigens um eine Forex Quelle ohne den Last Kurs.

Hier funktioniert das AmiBroker DDE Plugin Setup also wie folgt:

Metatrader DDE setup
DDE SERVER: MT
  Definition: Evaluates to:
Open:    
High: {Field}!{Ticker} =MT|High!EURUSD
Low: {Field}!{Ticker} =MT|Low!EURUSD
Last:    
Last Size:    
Volume:    
Ask: {Field}!{Ticker} =MT|Ask!EURUSD
Ask Size:    
Bid: {Field}!{Ticker} =MT|Bid!EURUSD
Bid Size:    
Time: {Field}!{Ticker} =MT|Time!EURUSD
Req:    

2. IQLink

IQLink DDE setup
DDE SERVER: IQLink
  Definition: Evaluates to:
Open: {Field}!{Ticker} =IQLink|Open!MSFT
High: {Field}!{Ticker} =IQLink|High!MSFT
Low: {Field}!{Ticker} =IQLink|Low!MSFT
Last: {Field}!{Ticker} =IQLink|Last!MSFT
Last Size:    
Volume: Volume!{Ticker} =IQLink|Volume!MSFT
Ask: {Field}!{Ticker} =IQLink|Ask!MSFT
Ask Size: {Field}!{Ticker} =IQLink|AskSize!MSFT
Bid: {Field}!{Ticker} =IQLink|Bid!MSFT
Bid Size: {Field}!{Ticker} =IQLink|BidSize!MSFT
Time: {Field}!{Ticker} =IQLink|Time!MSFT
Req:    

3. Dubus TradeXpert (www.dubus.fr)

(screenshot desDDE setup fuer Tradexpert courtesy of Jean-Guilhem Cailton)

4. FXCM.COM / FXTrek.com - Forex

(screenshot des DDE setup fuer FXCM courtesy of Byron Porter)

TEST PLATTFORMEN

Das DDE Plugin wurde getestet und läuft derzeit fehlerfrei unter folgenden Betriebssystemumgebungen: Windows XP (32 bit DDE) und Windows 9x (16 bit DDE).

Die folgenden DDE Servers wurden von uns getestet und laufen ohne Beanstandung:

  • IQLINK (DTN)
  • WINROS (eSignal)
  • MT (Metaquote)

Das DDE Plugin funktioniert NICHT mit dem folgenden DDE Server:

  • VTSPOT (Visual Trader) - der Grund ist eine inkompatible Umsetzung innerhalb des VisualTrader, dass die Microsoft DDEML Library DdeConnect Function beim ersten Anwählversuch zum Absturz bringt


Alle anderen DDE Server sollten ohne Probleme arbeiten. Kontaktieren Sie uns unter amibroker.de falls Sie andere Probleme erkennen.

HELFEN SIE UNS, UM ALLEN ZU HELFEN:

Um allen Amibroker Nutzern zu helfen, die DDE Schnittstelle für den jeweiligen Datenanbieter korrekt zu konfigurieren, würden wir es begrüssen, wenn Sie uns nach erfolgreichem Link mit Ihrem Datenanbieter eine kurze e-mail mit einem Screenshot des Konfigurationsdialogs und den Namen des Datenanbieters schicken würden. Wir werden dann die verschiedenen Konfigurationen hier einstellen, um einen Überblick über den Umgang mit verschiedenen Datenanbietern zu geben.

Für eine einfache One-Click Konfiguration werden die verschiedenen Datenanbieter mit den nächsten Programmupdates auch in die Preset Combo Box eingearbeitet.

HINWEISE ZUM DDE PLUGIN:

1. Das DDE Plugin hat keinen Kursspeicher. Sie können aber ASCII Importdateien nutzen (das beinhaltet auch AmiQuote) um historische Daten in die gleiche Datenbank zu importieren, die Sie zu einem späteren Zeitpunkt mit dem DDE Plugin in Echtzeit aktualisieren möchten.

2. Change, % change Felder sind (noch) nicht verfügbar

3. Time und Req Felder werden derzeit nicht berücksichtigt (das wird in einer zukünftigen Version möglicherweise geändert)

4. Um jedem Tick einen aktuellen Zeitstempel zu geben wird momentan die aktuelle Systemzeit genutzt

5. Wenn ihre Datenquelle keinen "LAST" Kurs anbietet (so wie die meisten Forex Quellen), dann sollten Sie das "Last" Feld im Konfigurationsdialog leer lassen. Das Plugin nutzt dann das "BID" Feld.

6. Der Plugin Status (connected/disconnected) erscheint beim Start immer als "Wait" Status (Gelbes Signal). In diesem Zustand findet zunächst keine DDE Kommunikation statt. Wenn jedoch mindestens eine DDE Verbindung erfolgreich gestartet wird, wechselt die Farbe auf grün, "OK" Status. Wenn der DDE Server beim ersten Versuch noch nicht gestartet war, dann erfolgt keine weitere automatische Verbindungsaufnahme. In diesem Fall sollten Sie eine manuelle Verbindungsaufnahme einleiten (Punkt 7). Das Signal geht nur in zwei Fällen auf "Disconnected" (roter Indikator) :

 a) es bestand eine funktionierende Verbindung, aber der entfernte DDE Server ( 3rd party application) wurde geschlossen

 b) Sie haben "shutdown" vom Plugin Status Menü gewählt

7. Sie können jedoch zu jedem Zeitpunkt neu verbinden, indem Sie "reconnect" aus dem Plugin Status Menü wählen

 

 

About | Privacy | Terms of Use | Contact information
Copyright © 2004 AMIBROKER.DE