Trading Tools - Visual Chart
Transcription
Trading Tools - Visual Chart
INHALT Einführung o Was sind die Trading Tools? o Excel Einstellung vor der Programmierung Sperre wegen Benutzerkontrolle vermeiden Konflikte mit vorigen Office Versionen vermeiden Makros aktivieren Visual Chart Libraries hinzufügen COM Servers o VCRealTime Einführung Objekte Ereignisse Methoden Praktisches Beispiel o VCDataSource Einführung Objekte Ereignisse Methoden Sammlungen Praktisches Beispiel o COMTraderInterfaces Einführung Objekte Ereignisse Methoden Sammlungen Praktisches Beispiel o VCContributor Einführung Objekte Ereignisse Methoden Praktisches Beispiel Anhang. Aufzählungen der verschiedenen Libraries TRADING TOOLS | VISUALCHART 2 Einführung Was sind die Trading Tools? Die Trading Tools von Visual Chart V sind leistungsfähige Werkzeuge, die auf die COM (Component Object Model) Technologie basieren, und den Zugang zu der Information des Programms durch jede mit dieser Technologie kompatibler Entwicklungsumgebung erlauben. Das COM Tool agiert als Zwischenstelle zwischen Visual Chart und der Benutzer Anwendung, zum Beispiel, Microsoft Excel. Dieses Bild zeigt wie die Verbindung zwischen Visual Chart und der Benutzer Anwendung erstellt wird, sodass die Benutzer Anwendung alle Anfragen auf dem COM Tool ausführt, und dieses die Ergebnisse durch Ereignisse meldet. Die verschiedenen Libraries der Trading Tools verfügen über mehrere Objekte, welche die verschiedenen Modalitäten der Datenverarbeitung in Visual Chart erben, wie zum Beispiel: Zugang zu der Information von Titeln in Realtime Zugang zu der historischen Datenquelle jedes Titels Technische Daten wie Volumen, Indikatoren oder Positionen der Systeme erhalten Zugang zu der Information der Beiträge Reale Operationen am Markt ausführen Bei der Interaktion mit den Daten- und Brokerageservern muss Visual Chart mit dem Realserver und dem Brokerageserver (im Simulation-Modus oder im Modus Realer Markt) verbunden sein. Um das Funktionieren dieser Tools zu verstehen, muss man folgende Konzepte begreifen: OBJEKT ist eine miteinander verbundene Informations- und Funktioneneinheit. Es stellt ein Konzept dar und verfügt über die gesamte notwendige Information, um ihn abzusehen: Daten, die seine Attribute und Operationen beschreiben Operationen, die auf denselben ausgeführt werden können EREIGNIS ist die Kommunikationsart eines Objektes. METHODE ist eine Funktion, die auf ein Objekt einwirken kann. In diesem Handbuch werden wir Microsoft Excel verwenden, um einige Beispiele für die Anwendung der Trading Tools zu erklären. Die Trading Tools können trotzdem mit anderen Benutzer Anwendungen, die mit der COM Technologie kompatibel sind, wie o.g. verwendet werden. Excel Einstellung vor der Programmierung Ein Excel Buch für die Implementierung unserer Tools soll erstellt werden. Da Makros in Excel zu entwickeln sind, die die COM Server benutzen, muss die Funktion Makros aktivieren in Excel freigeschaltet und die Benutzerkontrolle (Windows Vista oder neue Versionen) deaktiviert sein. SPERRE WEGEN BENUTZERKONTROLLE VERMEIDEN Öffnen Sie Excel als Administrator, damit keine Sperre wegen der Benutzerkontrolle verursacht wird. Folgen Sie hierzu die nächsten Schritte: 1. Zugang zu Excel über den Pfad: C:\Programme\Microsoft Office\Office12 Es könnte den Ordner Office11 anstatt den Ordner Office12 vorhanden sein. In diesem Fall sind die gleichen Schritte zu folgen. 2. Im Ordner suchen Sie die Ikone EXCEL als Anwendung und führen Sie diese als Administrator aus. Klicken Sie hierfür mit der rechten Maustaste darauf und wählen Sie die Option Als Administrator ausführen des Kontextmenüs aus. Hiermit erhalten Sie die Windows Rechte für die Benutzung der Anwendung. TRADING TOOLS | VISUALCHART 4 KONFLIKTE MIT VORIGEN OFFICE VERSIONEN VERMEIDEN Wir empfehlen, ein neues Buch zu öffnen und unter Excel 97-2003-Arbeitsmappe zu speichern. Damit werden mögliche Inkompatibilitätsprobleme mit vorigen Office Versionen verhindert. Für unser Beispiel speichern wir das Buch unter dem Namen TradingTools.xls. MAKROS AKTIVIEREN Folgen Sie die nächsten Schritte für die Aktivierung der Makros: 1. Klicken Sie auf den Button Optionen unter Datei. 2. Im Auswahldialog wählen Sie den Abschnitt Sicherheitscenter und hier klicken Sie auf den Button Einstellungen für das Sicherheitscenter… TRADING TOOLS | VISUALCHART 6 3. Wählen Sie die Option Einstellungen für Makros und aktivieren Sie die Checkbox Alle Makros aktivieren. 4. Zuletzt klicken Sie auf den Button OK. VISUAL CHART LIBRARIES HINZUFÜGEN Für die Anwendung der Trading Tools in Excel müssen die anzuwendenden Libraries registriert werden. Gehen Sie bitte hierzu wie folgt vor: 1. Klicken Sie auf den Befehl Visual Basic unter dem Menü Entwicklertools. Sollte in der Menüleiste das Entwicklertools Menü nicht vorhanden sein, können Sie es unter dem Menü Datei und Optionen einfügen. Klicken Sie unter Optionen auf Menüband anpassen und nachfolgend auf Entwicklertools. 2. Wählen Sie im Menü Extras des Visual Basic Editor die Option Verweise… (der Download der Libraries kann einige Sekunden dauern). In der Liste der verfügbaren Referenzen müssen Sie die 4 COM Libraries suchen und aktivieren. Hiermit werden die verschiedenen Ereignisse, Objekte und Methoden verwendet werden. TRADING TOOLS | VISUALCHART 8 Zuletzt klicken Sie auf den Button OK. Ab sofort sind hiermit die Libraries in Excel zur Verfügung. Falls eine andere Anwendung benutzt wird, müssen Sie genauso die Option Referenzen suchen, um die COM Libraries zu aktivieren. 3. Visual Chart V (falls geschlossen) öffnen und sicherstellen, dass die gewünschte Information zur Verfügung steht. Sie müssen berücksichtigen, dass Sie in der Benutzer Anwendung nur über die Information verfügen werden, die in Ihrer Visual Chart Lizenz freigeschaltet ist. COM SERVER VCRealTime EINFÜHRUNG VCRealTime erlaubt den Zugang zu den Realtime Daten der in VisualChart verfügbaren Märkte. Damit es funktioniert, muss das Programm gestartet und mit dem Daten-Server (RealServer) verbunden sein. Der Server VCRealTime kann über 2 Methoden dem Kunden die Information liefern: A. Meldung durch den Empfang von Ereignissen. Jedes Mal einen neuen Wert generiert wird, erhält der Kunde die entsprechende Information. B. Anfrage des Kunden auf den letzten vom Server gespeicherten Wert durch Methoden. In beiden Fällen muss der Kunde zuerst Anfragen an VCRealTime für die Realtime Information über den gewünschten Werten erstellen. Der Kunde kann folgende Information anfragen: - Realtime Felder Kauf-/Verkaufspositionen Berechnete grundlegende Daten Technische Analyse Titelinformation Usw. Der Server VCRealTime liefert jede Datenangabe, die in den Visual Chart Kurslisten auch erhältlich ist. Um diesen Server zu verwenden, soll die Benutzer Anwendung in ihrer Referenzliste die Library VisualChart Real Time Library.dll eingefügt sein. Diese Library schließt die nachfolgend detaillierten Objekte, Ereignisse und Methoden ein. OBJEKTE Die Objekte der Library VCRealTime sind die Folgende: VCRT_ Tick VCRT_Limit VCRT_RealTime VCRT_Tick. Dieses Objekts enthält die Information des für einen bestimmten Titel geänderten Feldes. TRADING TOOLS | VISUALCHART 10 Eigenschaft Beschreibung SymbolCode As String Verknüpfter Titel (Code des Titels) Date As Date Änderungsdatum Field As enumVCRTField Geändertes Feld Text As String Aktueller Wert des Feldes Value As Double Aktueller Wert des Feldes TickIndex As Long Index des Ticks 1 FieldEx As Long Erweitertes Feld 2 Um diese Information zu erhalten, muss zuerst eine der folgenden Methoden abgerufen werden. - RequestSymbolFeed/RequestSymbolsFeed für die enumVCRTField Felder. RequestFieldEx/RequestFieldsEx für die erweiterten Felder. Wenn sie erhalten sind, können diese Werte jederzeit durch die GetFieldText/GetFieldValue oder GetFieldExText/ GetFieldExValue Methoden nachgeschlagen werden. Andererseits liefert das OnNewTicks Ereignis das VCRT_Tick Objekt mit den letzten gemeldeten Werten zurück. 1. Die Ticks mit gleichem Datum (sie sind in der gleichen Sekunde erstellt) unterscheiden sich in einem autonumerischen Wert, der sich im TickIndex Feld darstellt. 2. Ein erweitertes Feld umfasst eine beachtliche Anzahl an möglichen Werten, die jederzeit vergrößert werden kann. Dieses Feld macht Sinn, wenn das Feld Field den Wert VCRT_Field_Ex hat. VCRT_Limit. Dieses Objekt beinhaltet Information für ein bestimmtes Level der Positionen. Eigenschaft Beschreibung SymbolCode As String Verknüpfter Titel (Code des Titels) LimitIndex As Integer Level der Position (1. Position, 2. …) AskPrice As Double Verkaufspreis der Position des LimitIndex Levels AskVolume As Double Verkaufsvolumen der Position des LimitIndex Levels AskOrders As Double Anzahl der Verkaufsorders in der Position des LimitIndex Levels BidPrice As Double Kaufpreis der Position des LimitIndex Levels BidVolume As Double Kaufvolumen der Position des LimitIndex Levels BidOrders As Double Anzahl der Kauforders in der Position des LimitIndex Levels Um diese Information zu erhalten, muss zuerst die RequestSymbolFeed Methode mit dem Parameter Limits a True abgerufen werden. Wenn die Positionen erhalten sind, können diese Werte jederzeit mit den GetLimit/GetLimits Methoden nachgeschlagen werden. VCRT_RealTime. Dieses Objekt ist die Hauptschnittstelle der Library. Hier wird sie konfiguriert und die Anfragen ausgeführt, um Information in Realtime zu erhalten. Die Benutzer Anwendung erstellt generell ein Objekt dieses Typs und definiert die gewünschten anzuwendenden Ereignisse. Eigenschaft Beschreibung TimerFrecuency As LongAs Long Maximal Wartezeit (Millisekunde), um die erhaltenen Ticks zu senden 1. TicksBufferSize As Long Maximalgröße des Buffers. Es zeigt die maximale Tickanzahl, die kumuliert werden kann. Wenn die Anzahl überschritten wird, werden die erhaltenen Ticks 1 gesendet. Wenn VCRT_RealTime Ticks erhält, anstatt diese direkt an den Kunden zu senden, werden sie kumuliert und ihre Sendung aufgeschoben. Dies bedeutet eine bessere Leistung der Anwendung, da die Übermittlung zwischen dem COM Server und der Anwendung des Kunden reduziert wird. VCRT_RealTime verfügt über zwei Mechanismen, die die Sendung der kumulierten Information zwingen: TimerFrecuency: Wenn die festgelegte Zeit in dieser Eigenschaft überschritten ist, werden alle kumulierten Ticks gesendet, auch wenn der Buffer (dessen Größe unter TicksBufferSize angegeben ist) nicht voll ist. TicksBufferSize: Definiert die Tickanzahl, die maximal kumuliert werden. Ist die Tickanzahl überschritten, auch wenn die unter TimerFrecuency festgelegte Zeit nicht vergangen ist, werden die Ticks dem Kunden gesendet. Generell werden diese Parameter nicht modifiziert. Wenn sie aber modifiziert werden, wird hierzu ihr Wert erhöht. Die Anwendungen, die keine sofortige Datenaktualisierung benötigen, können diese Werte erhöhen, um die Anwendungsleistung zu verbessern. Wichtig. Sind diese Werte reduziert, um die Information mit weniger Verzögerung zu erhalten, muss man in Betracht ziehen, dass die Sendung der Ticks zwischen dem COM Server und der Anwendung des Kunden Zeit in Anspruch nimmt. Hier gibt es ein Punkt, in dem die Reduzierung dieser Eigenschaften eine größere Verzögerung bedeutet. Genau das Gegenteil als das Gewünschte bei der Reduzierung der genannten Eigenschaften. EREIGNISSE Nachfolgend sind die verschiedenen Ereignisse erklärt, die zustande kommen können. OnNewTicks (ArrayTicks() As VCRT_Tick). Beschafft Zugang zu den Änderungen eines bestimmten Titels. Jeder Wert von ArrayTicks ist ein VCRT_Tick Element mit der Information einer Änderung in einem Feld, das im eigenen VCRT_Tick angegeben ist. Um Information zu erhalten, muss zuerst diese Information mit einer der folgenden Methoden angefragt werden: RequestSymbolFeed, RequestSymbolsFeed, RequestFieldEx oder RequestFieldsEx. OnNewLimits (LimitsInfo() As VCRT_Limit). Verschafft Zugang zu den Änderungen, die in den Positionen eines gegebenen Titels stattgefunden haben. Jeder Wert des LimitsInfos ist ein VCRT_Limit Element mit der Information der geänderten Position. Um Information über die Positionen zu erhalten, muss zuerst diese Information mit der Methode RequestSymbolFeed oder RequestSymbolsFeed mit dem Limits a True Parameter abgefragt werden. Dieses Ereignis findet nach dem OnLimitsChanged Ereignis statt. OnLimitsChanged (SymbolsChanged() As String). Meldet, dass Änderungen in den Positionen der in SymbolsChanged erhaltenen Titel stattgefunden haben. Die Werte der Positionen können mit den GetLimit und GetLimits Methoden nachgesehen werden. Um Information über die Positionen zu erhalten, muss sie zuerst mit der Methode RequestSymbolFeed oder RequestSymbolsFeed mit dem Parameter Limits a True angefragt werden. Dieses Ereignis findet vor dem Ereignis OnNewLimits statt. OnServerShutDown(). Dieses Ereignis wird genau ausgeführt, bevor der Server nicht mehr zur Verfügung steht. Es ist nützlich, um andere Anwendungen zu informieren, dass der Server nicht mehr zur Verfügung steht oder um Vorgänge durchzuführen, die mit dem Abschließen der Anwendung zu tun haben. TRADING TOOLS | VISUALCHART 12 METHODEN Nachfolgend sind die Methoden erklärt, die mit den verschiedenen Objekten der VCRealTime Library verwendet werden können. RequestSymbolFeed (SymbolCode As String, Limits As Bool). Fordert den Empfang in Realtime der Änderungen im Titel, dessen Code im SymbolCode angegeben ist. Wenn Limits den Wert True haben, wird die Information über die Änderungen in den Positionen (Ereignisse OnLimitsChanged und OnNewLimits) erhalten. Die Information wird im OnNewTicks Ereignis erhalten und kann jederzeit mit den GetFieldText und GetFieldValue Methoden abgefragt werden. Für jede Anfrage und wenn es nicht mehr nötig ist, weitere Information eines bestimmten Titels zu erhalten, muss CancelSymbolFeed abgerufen werden. RequestSymbolsFeed (Symbols() As String, Limits As Bool). Fordert den Empfang in Realtime der Änderungen in den Titeln, deren Codes unter Symbols spezifiziert sind. Die Information wird genauso wie in RequestSymbolFeed erhalten. CancelSymbolFeed (SymbolCode As String, Limits As Bool). Reduziert die Anzahl der Anfragen in Realtime für den angegebenen Titel. Wenn null erreicht ist, wird keine zusätzliche Information über diesen Titel in Realtime erhalten. Es ist wichtig, diese Methode abzurufen, sobald die Information des angegebenen Titels nicht mehr nötig ist, da die Anzahl der Meldungen, die der COM Server verarbeitet muss, verkleinert wird. RequestSymbolFeed (SymbolCode As String, Limits As Bool). Fordert den Empfang in Realtime der Änderungen in den Titeln, deren Codes unter Symbols spezifiziert sind. Die Information wird genauso wie in RequestSymbolFeed erhalten. GetFieldText (SymbolCode As String, FieldType As enumVCRTField) As String. Gibt den Titelwert SymbolCode für den im enumVCRTField bestimmten Feld zurück. Es ist nötig, die Information für diesen Titel (siehe RequestSymbolFeed oder RequestSymbolsFeed) anzufragen und dass die Information in dem OnNewTicks Ereignis angekommen sei. GetFieldValue (SymbolCode As String, FieldType As enumVCRTField) As Double. Gibt den numerischen Wert des Titels SymbolCode für den im enumVCRTField bestimmten Feld zurück. Hinweis: Für die erweiterten Felder soll die GetFieldExValue Methode angewandt werden. GetLimit (SymbolCode As String, IdxLimit As Long) As VCRT_Limit. Gibt einen VCRT_Limit mit der Information über die n IdxLimit Position des Titels SymbolCode zurück. Es ist nötig, die Information für diesen Titel mit dem Limits a True Parameter (siehe RequestSymbolFeed oder RequestSymbolsFeed) anzufragen und dass die Information in dem OnNewTicks Ereignis angekommen sei. GetLimits (SymbolCode As String, LimitsInfo() As VCRT_Limit) As Long. Gibt in LimitsInfo dieselbe Information als GetLimit zurück, aber für alle Positionen anstatt nur für eine bestimmte Position. Gibt die Anzahl der Positionen des Titels zurück. FindSymbols (TextQuery As String, ArraySymbols() As String). Führt eine Titelanfrage aus und gibt in ArraySymbols die Codes von allen zurück, die mit dem in TextQuery bestimmten Muster übereinstimmen. RequestFieldEx (SymbolCode As String, FieldEx As Long). Fordert den Empfang in Realtime der Änderungen im erweiterten Feld FieldEx (siehe enumVCRTExtField) des Titels an, dessen Code in SymbolCode angegeben ist. Die Information wird im OnNewTicks Ereignis erhalten und kann zu jeder Zeit durch die GetFieldExText und GetFieldExValue Methoden abgefragt werden. RequestFieldsEx (SymbolCode As String, ArrayFields() As Long). Fordert den Empfang in Realtime der Änderungen in den erweiterten Feldern, die in ArrayFields (siehe enumVCRTExtField) spezifiziert sind, des Titels an, dessen Code in SymbolCode angegeben ist. Die Information wird genauso wie in RequestFieldEx erhalten. GetFieldExText (SymbolCode As String, FieldEx As Long) As String. Gibt den Titelwert SymbolCode für den erweiterten und im bestimmten FieldEx Feld zurück. Es ist nötig, die Information für diesen Titel (siehe RequestFieldEx oder RequestFieldsEx) anzufragen und dass die Information in dem OnNewTicks Ereignis angekommen sei. GetFieldExValue (SymbolCode As String, FieldEx As Long) As Double. Gibt den numerischen Wert des Titels SymbolCode für den im erweiterten und bestimmten FieldEx Feld zurück. Es ist nötig, die Information für diesen Titel (siehe RequestFieldEx oder RequestFieldsEx) anzufragen und dass die Information in dem Ereignis OnNewTicks angekommen sei. PRAKTISCHES BEISPIEL FÜR DIE ANWENDUNG DES VCREALTIME SERVERS Im folgenden Beispiel zeigen wir wie Sie das VCRT_Tick Objekt verwenden können. Hier werden wir das OnNewTicks Ereignis benutzen, das ein Array mit den letzten erhaltenen VCRT_Tick Elementen liefert. Ist ein Ereignis erhalten, wird sich jedes angekommene VCRT_Tick Objekt die eigenen Datenangaben eines Ticks (Uhrzeit, RT-Kurs, Kauf1, Verkauf1, usw.) beziehen. Das Beispiel besteht aus einer Excel-Seite, um die Datenangaben Uhrzeit, RT-Kurs, Kauf1, Verkauf1 und Volumen eines bestimmten auswählbaren Titels zu empfangen und zusätzlich diese Datenangaben mit jedem neuen erhaltenen Tick zu aktualisieren. Nächste Schritte sind zu folgen: 1. 2. 3. 4. 5. Umgebung vorbereiten Ereignis für den Download der Information generieren Programmierung der Prozesse Ereignis generieren, um den Informationsdownload anzuhalten Information visualisieren 1. Umgebung vorbereiten. Definieren Sie in einer Excel-Seite die Schnittstelle, über die der Titelcode eingegeben und die angefragte Information visualisiert wird: In der Titelcode Zelle wird jederzeit der gewünschte Titel spezifiziert. Diese ist eine Eingangszelle. Die restlichen beschriebenen Zellen sind Ausgangszellen und werden die von Visual Chart V erhaltenen Datenangaben zeigen. 2. Ereignis für den Download der Information generieren. Ein Ereignis für den Datendownload muss generiert werden. Nachfolgend sind die Schritte für die Erstellung eines Befehlsbuttons erklärt, der diesem Zweck dient. Gehen Sie bitte wie folgt vor: TRADING TOOLS | VISUALCHART 14 1. Aktivieren Sie den Entwurfsmodus innerhalb des Menüs Entwicklertools. 2. Klicken Sie auf das Menü Einfügen. 3. Klicken Sie auf den Befehlsschaltfläche (Active X-Steuerelement). 4. Gehen Sie auf die Stelle des Fensters, auf der dieses Kontrolle-Objekt erscheinen soll, und klicken Sie mit der Maustaste für seine Anzeige. Um die Ansicht zu verbessern, klicken Sie darauf mit der rechten Maustaste und wählen Sie die Option Eigenschaften aus. Über das Eigenschaften Fenster werden die Parameter des Namens modifiziert: Name OKBtn Caption OK 5. Zuletzt klicken Sie auf den gerade erstellten Befehlsbutton. Wie in der vorigen Abbildung zu sehen ist, wird das Click Ereignis unseres Buttons im Visual Basic Editor automatisch generiert. Hiermit werden bei jedem Klick auf den OK Button die Funktionen ausgeführt, die in diesem Ereignis angegeben wurden. An dieser Stelle werden Sie deshalb den Code des Programms starten. HINWEIS: Vor dem Start der Programmierung müssen Sie das Einfügen der Referenz der VCRealTimeLib Klasse bestätigen. Andernfalls können Sie ihre Objekte und Eigenschaften nicht verwenden. 3. Programmierung der Prozesse Da in diesem Fall die VCRealTimeLib Klasse verwendet wird, definieren wir eine Variable dieser Art mit dem Namen RTKlasse. Public WithEvents RTKlasse As VCRealTimeLib.VCRT_RealTime Ein Objekt, das Ereignisse verursacht, wird als Ereignisquelle bekannt. Um die Ereignisse aufgrund einer Ereignisquelle zu kontrollieren, können Sie eine Variable der Objektart mit dem Stichwort WithEvents erstellen. Dieses Stichwort spezifiziert, dass die RTKlasse Variable für die Kontrolle der Ereignisse eines Objektes vom VCRT_RealTime Typ verwendet wird. TRADING TOOLS | VISUALCHART 16 Wenn diese Variable erstellt ist, muss im VisualBasic Editor das OnNewTicks Ereignis wie folgt generiert werden: Wählen Sie im Reiter der Objekte Auswahl das RTKlasse Objekt. Im Reiter der Prozesse werden automatisch die entsprechenden Prozesse dieses Objekts angezeigt. Wählen Sie aus der Liste das OnNewTicks Ereignis. Hiermit wird in Ihrem Code das OnewTIcks Ereignis des RTKlasse Objekts generiert. Private Sub RTKlasse_OnNewTicks(ArrayTicks() As VCRealTimeLib.VCRT_Tick) End Sub Dieses Ereignis bedeutet, dass jedes Mal ein neuer vom Benutzer abgefragten Tick generiert ist, werden die in diesem Prozess angegebenen Funktionen ausgeführt. Hier wird der Inhalt der Zellen aktualisiert, die in der Umgebung vorbereiten erstellt wurden. Hiermit verfügen Sie bereits über zwei Prozesse: Das Programm starten Die Schritte für jede Phase definieren, die vom Empfang neuer Ticks abhängig ist. 4. Ereignis generieren, um den Informationsdownload anzuhalten An dieser Stelle fehlt es nur noch, die Funktion für das Beenden des Programms zu erstellen. Der einfachste Weg ist, einen ähnlichen Befehlsbutton zu dem OKBtn zu erstellen. In diesem Fall wird aber der Button den Datendownload anhalten. Folgen Sie hierzu dieselbe Schritte als im 2. Schritt, wobei hier in den Eigenschaften des Objektes Folgendes einzugeben ist: Name StopBtn Caption STOP Die Excel-Seite wird deshalb wie folgt aussehen: Wie bei dem OK Button klicken Sie zwei Mal auf den neuen Button und das Click Ereignis wird automatisch generiert: Private Sub StopBtn_Click() End Sub Um den Datendownload anzuhalten, brauchen Sie nur die RTKlasse Variable freizustellen. An dieser Stelle wird auch die Umgebung initialisiert. All diese Schritte werden aus einem neuen Prozess heraus ausgeführt, der aus dem Ereignis StopBtn_Click abgerufen wird. Diesem neuen Prozess werden wir SystemStop benennen und sein Inhalt ist der Folgende: Public Sub SystemStop() Set RTKlasse = Nothing Range("D7:D11").ClearContents OKBtn.Enabled = True StopBtn.Enabled = False End Sub Damit wir unterscheiden können, wann das System aktiviert und deaktiviert ist, müssen wir wie folgt vorgehen: STOP Button. Wir deaktivieren diesen Button, wenn wir keine Daten herunterladen, und aktivieren ihn beim Download der Daten. OK Button. Wir deaktivieren diesen Button beim Download der Daten und aktivieren ihn, wenn wir keine Daten herunterladen. Als Nächstes werden die Schritte definiert, um den Download-Prozess zu starten, der über dem Verfahren OKBtn_Click geleitet wird. Der Code wird der Folgende: Private Sub OKBtn_Click() Dim Titel As String SystemStop Set RTKlasse = New VCRealTimeLib.VCRT_RealTime Titel = Range("D4") OKBtn.Enabled = False StopBtn.Enabled = True RTKlasse.TicksBufferSize = 20 RTKlasse.RequestSymbolFeed Titel, False End Sub Folgende Schritte wurden ausgeführt: 1. Zuerst die Umgebung beim Abruf des Prozesses SystemStop initialisieren. TRADING TOOLS | VISUALCHART 18 2. Ein Objekt VCRT_RealTime erstellen und seine Ereignisse mit den Ereignisprozessen verbinden, die mit RTKlasse über “Set-New” verknüpft sind. 3. Der in D4 Zelle definierte Titelcode der Variable Titel zuweisen. 4. Den Button STOP aktivieren und den Button OK deaktivieren. 5. Die Tickanzahl definieren, die maximal kumuliert werden, um der Abruf des OnNewTicks Ereignis anzufordern. Ist diese Tickanzahl überschritten, auch wenn die unter TimerFrecuency bestimmte Zeit nicht vergangen ist, werden die Ticks dem Kunden zugeschickt. 6. Den Empfang in Realtime der Änderungen in dem Titel anfordern, dessen Code in der Variable Titel spezifiziert ist. Da der Parameter Limits falsch ist, empfangen wir keine Information über Änderungen in den Positionen, denn diese für unser Beispiel nicht nötig sind. Ab diesem Punkt wird bei jedem Klick auf den OK Button ein VCRT_RealTime Objekt erstellt, bei dem die Information über den in der Zelle D4 definierten Titel abgerufen wird. Die heruntergeladenen Daten können im OnNewTicks Ereignis wie folgt manipuliert werden: Private Sub RTKlasse_OnNewTicks(ArrayTicks() As VCRealTimeLib.VCRT_Tick) Dim i As Integer For i = 0 To UBound(ArrayTicks) Range("D7") = ArrayTicks(i).Date If ArrayTicks(i).Field = VCRT_Field_Last Then Range("D8") = ArrayTicks(i).Value Else If ArrayTicks(i).Field = VCRT_Field_Buy1 Then Range("D9") = ArrayTicks(i).Value Else If ArrayTicks(i).Field = VCRT_Field_Sale1 Then Range("D10") = ArrayTicks(i).Value Else If ArrayTicks(i).Field = VCRT_Field_Last_Vol Then Range("D11") = ArrayTicks(i).Value End If Next i End Sub Folgende Schritte wurden ausgeführt: 1. Da wir ein Array-Ticks erhalten, gehen wir von der Position 0 bis zum Ende des Array (UBOUND(ArrayTicks) durch. 2. Da sich in jeder Position des Arrays ein VCRT_Tick Objekt befindet, fragen wir das Objekt den Feldtyp (RT-Kurs, Volumen, Kauf1, usw.) an, und je nach dem Typ werden wir seinen Wert (arrayticks(i).value) in der entsprechenden Zelle speichern. Für das Feld Uhrzeit brauchen wir nicht nach dem Feldtyp zu fragen, da die Eigenschaft Datum generell zu allen Feldtypen ist. Deshalb werden wir in diesem Fall direkt in der Zelle Uhrzeit den Wert der Eigenschaft Datum des letzten erhaltenen Ticks (arrayticks(i).Date) schreiben. Da wir nur die Uhrzeit des letzten Ticks wissen möchten, und das Format der Eigenschaft Date vom Typ “dd/mm/yyyy hh:mm:ss” ist, werden wir das Zeitformat für die Uhrzeit Zelle spezifizieren. Hierzu klicken wir mit der rechten Maustaste auf die D7 Zelle und wählen die Option Zellenformat… aus. Im folgenden Auswahldialog wählen wir die Uhrzeit Kategorie, übernehmen den standardmäßigen Typ und klicken auf den OK Button. Zuletzt muss man berücksichtigen, dass beim Klicken auf den STOP Button der SystemStop Prozess abgerufen wird. Private Sub BtnStop_Click() SystemStop End Sub Hiermit ist das Projekt beendet und wir können den VisualBasic Editor schließen. Zum Schluss deaktivieren wir den Entwurfmodus unter dem Menü Entwicklertools in Excel. TRADING TOOLS | VISUALCHART 20 5. Information visualisieren Als Erstes muss die Verbindung in Visual Chart V mit dem Daten-Server bestehen und außerdem, müssen die entsprechenden Märkte in Realtime in der Visual Chart Lizenz freigeschaltet sein. Als Beispiel möchten wir Information in Realtime vom Titel BASF erhalten. Der komplette Code in Visual Chart für diesen Titel lautet 01005BAS. Man muss in Betracht ziehen, dass der komplette Code von jedem gewünschten Produkt eingegeben werden soll. Standardmäßig folgt der Code jedes Produktes diese Nomenklatur: 010 + Code des Marktes + Titel Ist der komplette Code nicht eingegeben, kann dann Visual Chart den Wert nicht finden und deshalb keine Daten an Excel senden wird. Nach der Eingabe des Codes in der D4 Zelle, klicken wir auf OK, und ab sofort werden Daten in Realtime des Titels empfangen. Um den Empfang der Information anzuhalten, klicken wir auf STOP. Damit wird die Verknüpfung zwischen Visual Chart und Excel unterbrochen, sodass wir die Excel-Seite ohne Probleme schließen können. VCDataSource EINFÜHRUNG Die VCDataSource Library erlaubt Zugang zu der Datenquelle: Kurshistorien Indikatoren Systeme Statistische Werte Die Handelszeiten jedes Titels sowie die Information über einen bestimmten Wert, z.B. die Mindestbewegung, Zeitunterschied, Wert per Punkt, oder den Wert eines Indikators zu einem bestimmten Zeitpunkt der Historie, die Kauf- und Verkaufspositionen, die Zuverlässigkeit eines Systems, usw. können abgefragt werden. Wie hier zu sehen ist, funktioniert der Server als Vermittler zwischen VisualChart und die BenutzerAnwendung (zum Beispiel Microsoft Excel). Das Hauptobjekt ist VCDS_DataSourceManager. Mit diesem Objekt können Datenserien, Indikatoren und Systeme erstellt werden und Ereignisse erhalten, wenn diese sich ändern. Um diesen Server verwenden zu können, muss die Benutzer-Anwendung in ihrer Referenzliste die Library VisualChart Source Library.dll zur Verfügung haben. Ähnlich der Library in Realtime, verfügt diese Library über diverse Objekte, Ereignisse und Methoden, die für die Datenverarbeitung verwendet werden können. OBJEKTE Die Objekte der VCDataSource Library sind die Folgenden: VCDS_BarValue VCDS_TradeSession VCDS_SymbolInfo VCDS_Parameter VCDS_CatalogItem VCDS_SystemOrder VCDS_Trade VCDS_DataSource VCDS_DataSerie VCDS_System VCDS_Indicator VCDS_Context VCDS_DataSourceManager VCDS_BarValue. Enthält die Werte eines Balkens bei einem VCDS_DataSerie Objekt. Eigenschaft Beschreibung High As Double Balkenhoch. Low As Double Balkentief. Close As Double Schluss. Open As Double Eröffnung. Date As Date Datum. Volume As Double Volumen des Balkens. OpenInterest As Double OpenInterest. VCDS_TradeSession. Definiert eine Sitzungsperiode (siehe VCDS_SymbolInfo). Eigenschaft Beschreibung OpenTime As Date Startdatum der Periode. CloseTime As Date Endedatum der Periode. DayOfWeek As Long Wochentag (Sonntag = 1… Samstag = 7). VCDS_SymbolInfo. Enthält Information über einen Titel (siehe GetSymbolInfo von VCDS_DataSource). Eigenschaft Beschreibung Type As enumVCDSInstrumentType Instrumententyp. TradingSessions As VCDS_TradeSessions Sammlungen der Sitzungen, in denen der Titel notiert. Description As String Titelbeschreibung. Decimals As Long Anzahl der Kommastellen. TimeOffset As Long GMT-Differenz. TRADING TOOLS | VISUALCHART 22 PointValue As Double Wert pro Punkt. MinMovement As Double Min. Movement. VCDS_Parameter. Enthält Information über einen Parameter eines Indikators oder Systems. Eigenschaft Beschreibung Name As String Name des Parameters. Description As String Beschreibung. CurrentValue As Object Aktueller Wert des Parameters. DefaultValue As Object Standardmäßiger Wert für den Parameter. HighestLimit As Double Höchster Wert, den der Parameter übernehmen kann. LowestLimit As Double Tiefster Wert, den der Parameter übernehmen kann. ReadOnly As Bool Zeigt, ob der Parameter schreibgeschützt ist. VCDS_CatalogItem. Enthält Information über einen gegebenen Indikator oder System. Eigenschaft Beschreibung Code As String Code des Indikators/Systems. Name As String Name des Indikators/Systems. Description As String Beschreibung. ParamsCount As Long Parameteranzahl des Indikators/Systems. VCDS_SystemOrder. Enthält Information über eine Systemorder (siehe OnFilledOrders Ereignis). Eigenschaft Beschreibung OrderType As enumVCDSOrderType Ordertyp (siehe enumVCDSOrderType). Bar As Long Balken der Order. Volume As Long Volumen der Order. CummVolume As Long Kumuliertes Volumen. IsLiquidate As Bool Zeigt, ob es sich um eine Gleichstellung handelt. Price As Double Orderpreis. Label As String Etikett. Commission As Double Provision. PointValue As Double Wert pro Punkt. SymbolCode As String Titelcode. Date As Date Datum der Order. Guarantee As Double Garantie. Balance As Double Saldo. VCDS_Trade. Enthält Information über einen Trade des Systems. Eigenschaft EntryPrice As Double Beschreibung Einstiegspreis des Trades. ExitPrice As Double Ausstiegspreis des Trades. EntryDate As Date Einstiegsdatum des Trades. ExitDate As Date Ausstiegsdatum des Trades. Side As enumVCDSOrderSide Zeigt, ob der Trade ein Kauf oder Verkauf ist. OrderType As enumVCDSOrderType Ordertyp des Trades. PercentNetProfit As Double Tradegewinn in Prozent. NetProfit As Double Tradegewinn. EntryCommission As Double Einstiegsprovision. ExitCommission As Double Ausstiegsprovision. InitContracts As Object Kontraktenanzahl des Trades. RemainContracts As Object Gesamte Anzahl der gekauften oder verkauften Kontrakte im System, wenn der Trade ausgeführt ist. Label As String Etikett. IsCurrentOpenPosition As Bool Zeigt, ob es sich um einen im System ausgeführten Trade (False) oder den entstehenden Trade handelt, falls die aktuelle offene Position geschlossen ist (True). VCDS_DataSource. VCDS_DataSource ist eine Schnittstelle, die sämtliche Datenserien implementiert und grundlegende Information über diese Serien anbietet. Eigenschaft Beschreibung Id As Long Identifier der Serie. Jede Serie verfügt über einen verknüpften numerischen Wert für ihre eindeutige Identifizierung. Code As String Seriencode. Name As String Serienname. Compression As Long Komprimierung (Einheiten). CompressionType As enumVCDSCompressionType Komprimierungstyp. ActiveEvents As Bool Zeigt, ob Ereignisse der Serie 1 empfangen werden möchten. Size As Long Elementeanzahl der Serie. Type As enumVCDSDataSourceType Serientyp (Indikator, System…). InitDate As Date Startdatum der Serie. EndDate As Date Endedatum der Serie. Sollen die Ereignisse nicht empfangen werden, empfehlen wir dann ihre Deaktivierung, um die Anwendungsleistung zu verbessern. Der Startwert dieser Eigenschaft bei der Erstellung der Serie ist derselbe der ActiveEvents Eigenschaft des VCDS_DataSourceManager Objektes. VCDS_DataSerie. Definiert eine Datenserie und bietet Zugang zu den diversen Preisen des Titelbalkens (Eröffnung, Tief, Volumen…). Die Schnittstelle IVCDS_DataSource wird auch hiermit implementiert. Die Serien werden mit der NewDataSerie Methode von VCDS_DataSourceManager erstellt. Jedes Mal ein neuer Balken in der Serie generiert ist, wird das OnNewDataSerieBar Ereignis von VCDS_DataSourceManager ausgelöst. VCDS_System. Stellt ein System dar und bietet Zugang zu seinen Trades und seinen statistischen Werten. TRADING TOOLS | VISUALCHART 24 Während der Systemberechnung melden die OnSystemEvent und OnFilledOrders Ereignisse die Positionsänderung, die Orderausführungen und die Trade-Generierung. Die Systeme werden mit der NewSystem Methode von VCDS_DataSourceManager erstellt. Eigenschaft Beschreibung ParentSource As VCDS_DataSource Zeigt die Vaterserie des Systems. StartBar As Long Zeigt den Balken, wo die Systemberechnung startet. MarketPosition([Index As Object]) As numVCDSMarketPosition Zeigt die Systemposition im n Index Trade. Ohne Parameter wird die aktuelle Systemposition wieder gegeben. VCDS_Indicator. Stellt einen Indikator dar und bietet Zugang zu den diversen Linienwerten. Das OnNewIndicatorBar Ereignis wird ausgelöst, jedes Mal ein neuer Balken im Indikator erstellt ist. Die Indikatoren werden mit der NewIndicator Methode von VCDS_DataSourceManager erstellt. Eigenschaft Beschreibung ParentSource As VCDS_DataSource Zeigt die Vaterserie des Indikators. StartBar As Long Zeigt den Balken, wo die Indikatorberechnung startet. NumberOfLines As Long Linienanzahl des Indikators. Dieser Wert kann null sein, wenn der Indikator noch nicht berechnet wurde. VCDS_Context. Die Kontexte agieren als einen Serienkontainer (Objekte, die die Schnittstelle VCDS_DataSource implementieren), welche die Zeitskala miteinander teilen. Die Serien müssen unbedingt in einem Kontext enthalten werden. Ist ein Kontext nicht definiert, wird der Serien ein Kontext automatisch zugeteilt. Wenn ein Kontext ohne Serien bleibt, wird er automatisch gelöscht. Die Kontexte mit Ticks-Serien dürfen nur eine einzige DataSerie enthalten. Die Ticks-Serien können den Kontext nicht miteinander teilen. Beschränkungen mit den restlichen Serientypen, Indikatoren und Systemen, die immer den Kontext mit ihrer Vaterserie miteinander teilen, existieren nicht. Bei der Erstellung einer Serie (siehe NewDataSerie von VCDS_DataSourceManager) kann der Kontext für die neue Serie ausgewählt werden. Dieser Kontext kann aus der Context Eigenschaft einer zuerst erstellten VCDS_DataSource erhalten werden. Die Eigenschaft ContextWorkMode von VCDS_DataSourceManager bestimmt das Verhalten, falls kein Kontext bei der Serienerstellung angegeben wurde: VCDS_CWM_Multiple: Die Serie wird in einem neuen Kontext erstellt. VCDS_CWM_Shared: Die Serie wird innerhalb des Kontexts standardmäßig erstellt (siehe enumVCDSContextWorkMode). Eigenschaft Beschreibung Id Kontextidentifier. Sämtliche Ereignisse verfügen über einen verknüpften numerischen Wert für ihre eindeutige Identifizierung. Name Kontextname. VCDS_DataSourceManager. Dieses Objekt stellt die Hauptschnittstelle des COM Servers dar und generiert die Ereignisse der verschiedenen Serien, die erstellt werden können. Eigenschaft Beschreibung ContextWorkMode Kontextarbeitsweise. Sie definiert das Verhalten bei der Serienerstellung, wenn der Kontext für die Serien nicht angegeben wurde (siehe enumVCDSContextWorkMode). StoreHistoricSystemOrder Der Benutzer kann die Speicherung oder nicht Speicherung der Historie der vom System gesendeten Orders entscheiden. EREIGNISSE Der VCDataSource Server bietet umfassende Information über die resultierenden Datenangaben in der Historie der Datenquelle. Da diese Datenquellen auch dynamische Tabellen sind, können die Realtime Daten ebenfalls erhalten werden. Deshalb existiert eine Meldungsoption von neuen Daten durch den Empfang der Ereignisse. Jedes Mal ein neuer Wert generiert wird, erhält der Benutzer ein Ereignis mit der Information. Es gibt Ereignisse für alle verfügbaren Objektarten. Nachfolgend werden die verschiedenen möglichen Ereignisse detailliert. OnNewDataSerieBar (DataSerie As VCDS_DataSerie). Dieses Ereignis findet statt, wenn ein neuer Balken in der Serie generiert ist. OnNewIndicatorBar (Indicator As VCDS_Indicator). Dieses Ereignis findet statt, wenn ein neuer Balken im Indikator generiert ist. OnSystemEvent (System As VCDS_System, EventType As enumVCDSSystemEvent). Dieses Ereignis findet statt, wenn eine neue Order bzw. Trade existiert und wenn die Position geändert wird. EventType zeigt das generierte Ereignis. OnFilledOrders (System As VCDS_System, Orders As VCDS_SystemOrders). Dieses Ereignis findet statt, wenn eine neue Order im System System ausgeführt ist. Orders enthält eine Liste mit den ausgeführten Orders. Diese Funktion wird sofort nach Ausführung einer Order ausgelöst. OnServerShutDown (). Dieses Ereignis wird ausgeführt, genau bevor der Server aufhört, zur Verfügung zu stehen. Es ist nützlich, um andere Anwendungen zu verständigen, dass sie den Server nicht mehr verwenden können, oder um Aufgaben für die Schließung der Anwendung auszuführen. METHODEN Wenn Sie Daten aus jedem Objekttyp des VCDataSource Servers entnehmen möchten, müssen Sie die mit jedem Objekt verknüpften Methoden anwenden. Im Folgenden sind die Methoden aufgeführt, die mit den diversen Objekten der VCDataSource Library verwendet werden können. VCDS_CatalogItem GetParam(Index As Object) As VCDS_Parameter. Liefert den vom Index angegebenen Parameter zurück. Index kann sich auf die Position des Parameters (bei numerischem Wert) beziehen oder den Namen des Parameters (bei einem String) enthalten. GetParameters() As VCDS_Parameters. Liefert eine Sammlung mit allen Parametern des Indikators/Systems zurück. VCDS_DataSource Context() As VCDS_Context. Liefert den Kontext der Serie (siehe VCDS_Context) zurück. GetSymbolInfo () As VCDS_SymbolInfo. Liefert Information über den Titel der Serie zurück. Indicators() As VCDS_Indicators. Liefert eine Sammlung mit den Indikatoren der Serie zurück. TRADING TOOLS | VISUALCHART 26 VCDS_DataSerie GetBarValues(Index As Object) As VCDS_BarValue. Liefert den n Index Balken der Serie zurück. GetBarsValues(InitIndex As Object, EndIndex As Object) As VCDS_BarValue(). Liefert einen Array mit den Balken zwischen InitIndex und EndIndex. Beide Parameter können ein Datum der Serie oder eine Position zwischen 1 und Size darstellen. Systems() As VCDS_Systems. Liefert eine Sammlung der Serie zurück. VCDS_System GetCalculateOptions(Unit As enumVCDSStatisticMeasurementUnit, CompType As enumVCDSStatisticCompression, Compression As Long, BeginDate As Date, EndDate As Date). Liefert die aktuelle Konfiguration der Statistik des Systems 1 zurück. SetCalculateOptions(Unit As enumVCDSStatisticMeasurementUnit, CompType As enumVCDSStatisticCompression, Compression As Long, BeginDate As Date, EndDate As Date). Weist die Werte zu, mit denen die Berechnungen der Statistik 1 ausgeführt werden. GetStatisticVariableSize(Variable As enumVCDSStatisticVariable) As Long. Zeigt die Elementeanzahl der angegebenen statistischen Variable. GetStatisticVariableDate(Variable As enumVCDSStatisticVariable, pVal As Long) As Date. Zeigt das Datum, das mit dem n pVal der angegebenen statistischen Variable verbunden ist. GetStatisticVariableValue(Variable As enumVCDSStatisticVariable, Index As Long) As Object. Liefert den n Index Wert der angegebenen statistischen Variable zurück. GetStatisticVariableValues(Variable As enumVCDSStatisticVariable) As Object(). Liefert einen Array mit sämtlichen Werten der angegebenen statistischen Variable zurück. GetTrade([Index As Object]) As VCDS_Trade. Liefert den n Index Trade des Systems zurück. GetTradeRange( [InitIndex As Objetc], [EndIndex As Objetc]) As VCDS_Trades. Liefert eine Sammlung mit allen Systemtrades zwischen InitIndex und EndIndex. Beide Parameter können sich auf eine Position oder ein Tradedatum beziehen. Falls InitIndex ignoriert ist, wird es mit dem ersten Trade angefangen. Ist EndIndex ignoriert, wird es mit dem letzten Trade beendet. GetParameters() As VCDS_Parameters. Liefert eine Sammlung mit den Systemparametern zurück. Die Statistik wird mit den angegebenen Parametern konfiguriert und sämtliche in den restlichen Methoden zurückgelieferten Parameter haben diese Konfiguration. VCDS_Indikator Value(Index As Object, [Line As Object]) As Double. Liefert den n Index Wert des Indikators für die Line Linie zurück. Falls der Line Parameter ignoriert ist, wird die erste Linie verwendet. Index kann eine Position oder ein Datum sein. Values(BeginIndex As Object, EndIndex As Object, [Line As Object]) As Object(). Liefert einen Array mit den Werten des Indikators zwischen BeginIndex und EndIndex für die angegebene Linie (die erste, wenn der Line Parameter ignoriert ist) zurück. Die Indices können eine Position oder ein Datum sein. GetPosition([Index As Object], [Line As Object]) As enumVCDSMarketPosition. Liefert die bullische/bärische/neutrale Position des Indikators für die Position und die angegebenen Linien zurück. Die erste Linie wird verwendet, wenn der Line Parameter ignoriert ist. Falls der Parameter Index ignoriert ist, wird die aktuelle Position des Indikators zurückgeliefert. GetLineName(Line As Long) As String. Liefert den Name der Line Linie des Indikators zurück. GetParameters() As VCDS_Parameters. Liefert eine Sammlung mit den Parametern des Indikators zurück. VCDS_Context DataSeries() As VCDS_DataSeries. Liefert eine Sammlung mit allen Serien des Kontexts zurück. Systems() As VCDS_Systems. Liefert eine Sammlung mit allen Systemen des Kontexts zurück. Indicators() as VCDS_Indicators. Liefert eine Sammlung mit allen Indikatoren des Kontexts zurück. VCDS_DataSourceManager Contexts() As VCDS_Contexts. Liefert eine Sammlung mit allen vorhandenen Kontexten zurück. DataSeries() As VCDS_DataSeries. Liefert eine Sammlung mit allen vorhandenen Serien zurück. Systems() As VCDS_Systems. Liefert eine Sammlung mit allen vorhandenen Systemen zurück. Indicators() As VCDS_Indicators. Liefert eine Sammlung mit allen vorhandenen Indikatoren zurück. NewDataSerie (SymbolCode As String, CompType As enumVCDSCompressionType, CompressionUnits As Long, [InitDate As Object], [EndDate As Object], [Context As Object]) As VCDS_DataSerie. Erstellt eine neue Datenserie für den Titel, dessen Code unter SymbolCode spezifiziert ist. CompType und CompressionUnits spezifizieren den Typ und die Komprimierungseinheiten, mit denen die Datenserie erstellt wird. Die Datenangaben ermöglichen, den gewünschten Serienrang zu spezifizieren (falls sie ignoriert sind, werden die von Visual Chart standardmäßig verwendeten Werte übernommen). Der Kontext ermöglicht, eine Serie zu erstellen, damit sie denselben Kontext einer bereits erstellten Serie benutzen kann. NewIndicator (Name As String, DataSource As VCDS_DataSource, Parameters As Object()) As VCDS_Indicator. Erstellt den unter Name spezifizierten Indikator über die DataSource Serie mit den angegebenen Parametern. NewSystem (Name As String, DataSource As VCDS_DataSource, Parameters As Object()) As VCDS_System. Erstellt das unter Name spezifizierte System über die DataSource Serie mit den angegebenen Parametern. DeleteDataSource(DataSource As VCDS_DataSource). Löscht die angegebene Serie. DeleteAll(). Löscht alle Serien und Kontexte. GetIndicatorInfo(Name As Object) As VCDS_CatalogItem. Liefert die mit dem Name Indikator verknüpfte Information zurück (siehe VCDS_CatalogItem). GetSystemInfo(Name As Object) As VCDS_CatalogItem. Liefert die mit dem Name System verknüpfte Information zurück (siehe VCDS_CatalogItem). GetIndicatorCatalog() As VCDS_CatalogItems. Liefert eine Sammlung mit der zu allen Indikatoren verknüpften Information zurück (siehe VCDS_CatalogItem). GetSystemCatalog() As VCDS_CatalogItems. Liefert eine Sammlung mit der zu allen Systemen verknüpften Information zurück (siehe VCDS_CatalogItem). GetDataSource(Id As Long) As VCDS_DataSource. Liefert ein Serie Objekt (VCDS_DataSerie, VCDS_Indicator oder VCDS_System), Id gegeben, zurück. SAMMLUNGEN Alle Sammlungen verfügen über die gleiche Schnittstelle und Funktionsweise. Sie werden verwendet, um eine Datengruppe desselben Typs zurückzuliefern. Die folgende Kursliste zeigt die vorhandenen Sammlungen und den enthaltene Objekttyp: Sammlung TRADING TOOLS | VISUALCHART Objekttyp VCDS_TradeSessions VCDS_TradeSession VCDS_Parameters VCDS_Parameter VCDS_CatalogItems VCDS_CatalogItem VCDS_SystemOrders VCDS_SystemOrder 28 VCDS_Trades VCDS_Trade VCDS_DataSources VCDS_DataSource VCDS_DataSeries VCDS_DataSerie VCDS_Systems VCDS_System VCDS_Indicators VCDS_Indicator VCDS_Contexts VCDS_Context Eigenschaft Beschreibung Count As Long Liefert die Elementeanzahl der Sammlung zurück. Item(index As Object) As XXX Liefert ein Item der Sammlung zurück (XXX bezieht sich auf den Sammlungstyp, der in der zweiten Spalte der vorigen Tabelle angezeigt ist). _NewEnum Alle Sammlungen implementieren diese versteckte Methode, um den Durchlauf über die verschiedenen Items der Sammlung bei der Anwendung von foreach zu ermöglichen. PRAKTISCHES BEISPIEL FÜR DIE ANWENDUNG DES VCDATASOURCE SERVERS Im folgenden Beispiel werden wir die Differenz in Prozent zwischen der Eröffnung und dem Schluss der Balken einer bestimmten Historie für einen konkreten Wert suchen. Zusätzlich zu dieser Datenangabe möchten wir auch den Trend des RSI jederzeit gemäß folgender Regel wissen: Wenn der RSI überverkauft ist (und von unten die 30 kreuzt), wird er einen bullischen Trend anzeigen. Wenn der RSI übergekauft ist (und von oben die 70 kreuzt), wird er einen bärischen Trend anzeigen. Noch einmal werden wir als Benutzer Anwendung Microsoft Excel verwenden. Wir übernehmen das Trading Tools Buch, das im vorigen Beispiel erstellt wurde, und arbeiten in seiner Seite 2, da wir in der Seite 1 das vorige Beispiel in Realtime haben. Es muss berücksichtigt werden, dass bei der Anwendung des VCDS_DataSourceManager Objektes die VisualChart Source Library 1.0 zu der Referenzliste hinzugefügt werden muss. Gehen Sie bitte hierzu wie folgt vor: 1. 2. 3. 4. Umgebung vorbereiten Ereignis für den Download der Information generieren Programmierung der Prozesse Information visualisieren 1. Umgebung vorbereiten Zuerst wird die visuelle Schnittstelle für die Eingabe und Anzeige der Information entworfen. Die Seite 2 des Excel Buches soll wie folgt aussehen: 2. Ereignis für den Download der Information generieren Der Button DOWNLOAD ist ein Befehlsbutton ähnlich den OK und STOP Buttons der Beispielseite in Realtime. Für die Stellung der Kontrollen in einer Excel Seite müssen Sie das Menü Entwicklertools auswählen, die Option Design Modus aktivieren und nachfolgend die Option Einfügen Befehlsbutton (active X) auswählen. Wie bei den anderen Buttons des vorigen Beispiels gehen Sie auf das Eigenschaften Fenster des Objekts und hier können Sie die Parameter für den Name modifizieren: Name DownloadBtn Caption DOWNLOAD Im Folgenden klicken Sie auf den Button, damit das Click Ereignis im Visual Basic Editor generiert wird. Dieses Ereignis zeigt, dass jedes Mal Sie den Button DOWNLOAD klicken, die im Ereignis eingegebenen Funktionen ausgeführt werden. 3. Programmierung der Prozesse. Wie vorher erwähnt, ist die Hauptklasse des VCDataSource Servers die VCDS_DataSourceManager Klasse. Deshalb werden wir ein sogenanntes DSKlasse Objekt des folgenden Typs erstellen: Public WithEvents DSKlasse As VDS_DataSourceManager Zusätzlich zu diesem Objekt werden wir zwei weitere Objekte erstellen. Eins vom Typ Datenquelle und das andere vom Typ Indikator, da wir diese zwei Typen benötigen. Dim Quelle As VCDS_DataSource Dim RSIData As VCDS_Indicator Das RSIData Objekt wurde so genannt, weil wir uns immer auf den RSI Indikator für diese bestimmte Objektklasse beziehen werden. Da wir den Trendwert immer speichern werden, werden wir die TrendRSI globale Variable erstellen, die bei bullischem Trend den Wert 1 oder bei bärischem Trend -1 haben kann. TRADING TOOLS | VISUALCHART 30 Dim RSITrend As Integer Die Programmstruktur wird über drei Teile verfügen: Startmethode und Objekterstellung Das Ereignis DownloadBtn_Click wird verwendet. Methode für den Datendownload Ein neuer Prozess DownloadStart wird verwendet. Methode für das Beenden des Programms Ein neuer Prozess DownloadStop wird verwendet. Der Prozess SystemStop dient der Umgebung neu zu starten, und den verschiedenen während des Prozesses erstellten Objekten zu befreien. Der Code wird dann wie folgt aussehen: Public Sub SystemStop() Set Quelle = Nothing Set RSIData = Nothing If Not DSKlasse Is Nothing Then DSKlasse.DeleteAll Set DSKlasse = Nothing End If OKBtn.Enabled = True StopBtn.Enabled = False End Sub Wir haben Folgendes ausgeführt: 1. Die verwendeten Objekte befreien. 2. Mit der DeleteAll Methode müssen wir alle Quelleverknüpfungen löschen, die die Benutzer Anwendung mit Visual Chart haben könnte. 3. Den Button DOWNLOAD aktivieren. Bezüglich dem Startcode und der Objekterstellung wird es wie folgt aussehen: Private Sub DownloadBtn_Click() Dim Titel As String Dim MyComp As enumVCDSCompressionType Dim MyCompUni As Integer Dim RSIPeriode As Integer On Error GoTo Fehler Range("A8:F8000").ClearContents Range("A8:F8000").ClearFormats SystemStop '.. Set DSKlasse = New VCDS_DataSourceManager DownloadBtn.Enabled = False Titel = Range("B4") 'Quelle erstellen If Titel <> "" Then MyCompUni = CInt(Range("E5")) If Range("E4") = "Minuten" Then MyComp = VCDS_CT_Minutes If Range("E4") = "Tage" Then MyComp = VCDS_CT_Days Set Quelle = DSKlasse.NewDataSerie(Titel, MyComp, MyCompUni) 'Erstellungsbestätigung If Quelle.Size > 0 Then RSIPeriode = Range("B5") RSITrend = 0 'RSI Indikator erstellen Set RSIData = DSKlasse.NewIndicator("RSI", Quelle, RSIPeriode, 70, 30) 'RSI Erstellung bestätigen If RSIData.Size > 0 Then DownloadStart Else SystemStop End If Else SystemStop End If End If Fehler: If Err.Number <> 0 Then SystemStop End Sub In diesem Prozess haben wir diverse lokalen Variablen angemeldet: Titel: Hier wird der Titelcode des analysierenden Titels gespeichert. MyComp: Diese Variable ist vom Typ enumVCDSCompressionType. Dieser Aufzählungstyp gehört der VCDataSource Library und dient den diversen möglichen Komprimierungstypen (Minuten, Tage, Wochen, usw.) zu definieren. Für unser Beispiel erlauben wir, dass sowohl Minuten als auch Tage je nach der BALKENTYP Zelle möglich werden. Ist der Typ “Tage” in der Zelle eingegeben, dann wird MyComp vom Typ VCDS_CT_Days sein und bei “Minuten” wird dann MyComp vom Typ VCDS_CT_Minutes sein. Möchten wir mehr Qualität unserer Schnittstelle geben, können wir sogar festlegen, dass nur diese zwei Werte in der Zelle spezifiziert werden. Hierzu gehen wir wie folgt vor: 1. Wir schrieben in den F4 und F5 Zellen die “Minuten” und “Tage” Texten jeweils. 2. Wir ändern die Quellefarbe dieser zwei Zellen, damit sie dieselbe Hintergrundfarbe haben (hiermit werden sie nicht gesehen). 3. Wir wählen die E4 Zelle und die Option Datenüberprüfung des Menüs Daten aus: 4. Im Dialogfenster wählen wir unter den Optionen Erlauben, die Liste Option, und bei Quelle schreiben wir “=$F$4:$F$5”. 5. Zuletzt klicken wir auf OK. MyCompUni: Hier speichern wir die Einheitenanzahl der Balkenkomprimierung, das heißt, den Inhalt der E5 Zelle. PeriodeRSI: Hier wird die Periode des Indikators, d.h., der Inhalt der B5 Zelle gespeichert. TRADING TOOLS | VISUALCHART 32 Hier sind wir wie folgt vorgegangen: 1. Die Umgebung beim Löschen der Zelleninhalt starten. Hierzu verwenden wir die Eigenschaften der Zellenkategorie ClearFormats und ClearContents. 2. Die SystemStop Methode rufen, um alle zu verwendeten Objekte zuerst zu befreien. 3. Das KlassDS Objekt erstellen. 4. Den Button DOWNLOAD aktivieren, damit wir daran denken, dass solange die Daten heruntergeladen werden, können wir nicht den Button nochmals betätigen. 5. Sobald wir den Titel mit Informationsinhalt bestätigen, erstellen wir das Quelle Objekt bei der Anwendung der Methode der KlassDS NewDataSerie. Diese Methode fordert den Titelcode und die Balkenkomprimierung. 6. Nach der Festlegung der NewDataSerie kann Folgendes passieren: a. Ein Fehler kann entstehen, weil der Titel nicht existiert oder nicht gefunden wird. In diesem Fall, um die Fehlermeldung zu vermeiden, müssen wir OnError GoTo festlegen, sodass sie bei einem Fehler, direkt zu dem Abschnitt Fehler überspringt und die SystemStop Methode gerufen und beendet wird. b. Keine Fehler entstanden sind, aber die Quelle leer ist. In diesem Fall rufen wir auch SystemStop und beenden. c. Keine Fehler entstanden sind und die Quelle verfügt über Daten. In diesem Fall gehen wir mit dem Prozess fort. 7. Wird der Prozess fortgesetzt, können wir dann das Indikator Objekt erstellen, da wir bereits über eine Grundquelle verfügen. Die Indikatoren werden über die Methode der DSKlasse NewIndicator Klasse generiert. Diese Methode fordert immer eine Grundquelle, sodass jedes Mal wir mit Indikatoren arbeiten möchten, müssen wir zuerst die entsprechende Quelle erstellen. Die NewIndicator Methode verlangt den Indikatorcode (den “RSI” in unserem Beispiel), das Quelle Objekt und die Parameter des Indikators. Da wir weder das untere noch das obere Band des RSI ändern werden, definieren wir sie sofort. 8. Verfügt der Indikator über Daten, dann werden wir die Daten herunterladen. Andernfalls rufen wir SystemStop und beenden. Jetzt brauchen wir nur noch den entsprechenden Teil für den Datendownload zu definieren. In diesem Prozess werden wir auch lokale Variablen verwenden, die uns die Prozessauffassung vereinfachen. Die verwendenden Variablen sind die Folgende: Bar: Diese Variable wird als Balkenzähler verwendet. Da wir über die gesamte Historie der Quelle durchgehen werden, speichern wir die Position des n Balkens unter Bar. RSI: In dieser Variable speichern wir den vom Indikator zurückgegebenen Wert für die unter Bar eingegebene Position. RSIVor: Da wir den vom RSI gegebenen Trend berechnet werden, brauchen wir den vorigen Wert des RSI, um die Trendrichtung zu beobachten. Unter RSIAnt werden wir den letzten Wert des RSI speichern, den wir gerade berechnet haben. PreisDiff: In dieser Variable speichern wir die Differenz zwischen Eröffnung und Schluss. Zeile: In dieser Variable speichern wir die entsprechende Zeilennummer für das Schreiben in Excel. Mit der Fortsetzung des Schreibens werden wir die Zeilennummer erhöhen, die zuerst den Wert 8 hat, denn diese die erste leere Zeile ist. x: Die Variable x werden wir als einen lediglich informativen Wert verwendet. Da der Download-Prozess einige Sekunden dauern kann, geben wir jederzeit ein, wie viel uns noch für das Beenden fehlt, in dem die Differenz in Prozent zwischen Bar und der gesamten Balkenanzahl berechnet wird. Das Ergebnis wird unter x gespeichert und dieser Wert auf dem Bildschirm durch die Application.StatusBar Excel Methode angezeigt. Der Prozesscode DownloadStart bleibt wie folgt: Public Sub DownloadStart() Dim Bar As Long Dim RSI As Double Dim RSIVor As Double Dim PreisDiff As Double Dim Zeile As Long Dim x As Double On Error GoTo Fehler Zeile = 8 RSIVor = 2147483647 'Nullwert For Bar = 1 To Quelle.Size 'DownloadInfo x = Int((Bar / Quelle.Size) * 100) Application.StatusBar = x & "% loading" 'Datum Range("A" & Zeile) = Quelle.GetBarValues(Bar).Date 'Eröffnung Range("B" & Zeile) = Round(Quelle.GetBarValues(Bar).Open, 4) 'Schluss Range("C" & Zeile) = Round(Quelle.GetBarValues(Bar).Close, 4) 'Differenz % PreisDiff = Round((Range("C" & Zeile) - Range("B" & Zeile)) / Range("B" & Zeile), 3) Range("D" & Zeile) = PreisDiff Range("D" & Zeile).NumberFormat = "0.00%" If PreisDiff > 0 Then Range("D" & Zeile).Font.Color = RGB(0, 255, 0) If PreisDiff < 0 Then Range("D" & Zeile).Font.Color = RGB(255, 0, 0) 'Balken, ab denen RSI exist If Bar >= Range("B5").Value Then 'Wert RSI RSI = Round(RSIData.Value(Bar, 1), 2) If RSI <> 2147483647 Then Range("E" & Zeile) = RSI 'Trendkontrolle If RSIVor <> 2147483647 Then If RSIVor <= 30 And RSI > 30 Then RSITrend = 1 If RSIVor >= 70 And RSI < 70 Then RSITrend = -1 If RSITrend = 1 Then Range("F" & Zeile) = "Bullisch" Range("F" & Zeile).Font.Color = RGB(0, 255, 0) ElseIf RSITrend = -1 Then Range("F" & Zeile) = "Bärisch" Range("F" & Zeile).Font.Color = RGB(255, 0, 0) End If End If RSIAnt = Range("E" & Zeile).Value End If End If Zeile = Zeile + 1 Next Bar '--SystemStop Fehler: If Err.Number <> 0 Then SystemStop End Sub Im Prozess wurde Folgendes unternommen: 1. RSIVor wird mit Nullwert gestartet, damit das erste Mal wir eine RSI Wert erhalten, der Trend nicht berechnet wird, da wir noch keine zwei Werte zum Vergleichen haben. TRADING TOOLS | VISUALCHART 34 2. Wir gehen durch die Historie der Quelle dank der For To… Next Erklärung. Die Bar Variable wird jederzeit die n Position markieren. Der Startwert ist 1 und den letzte Wert, das heißt, den letzte geladene Balken des Charts erhält man durch die Size Eigenschaft des Quelle Objektes. 3. Für jede Position schreiben wir in der entsprechenden Zelle das Datum, die Eröffnung und den Schluss des Balkens. Hierzu wird die GetBarValues Methode des Quelle Objektes verwendet. 4. Wir berechnen ebenfalls die Differenz zwischen Eröffnung und Schluss. Um der Datenangabe einen Mehrwert zuzugeben, werden wir das Prozentformat mit der Anwendung der NumberFormat Eigenschaft benutzen und zusätzlich den Wert rot oder blau mit der Font.Color Eigenschaft zeichnen, je nach einer positiven oder negativen Differenz. 5. Die ersten Balken des Charts werden keine RSI-Werte haben. Deshalb müssen wir warten, bis der Bar Wert gleich oder höher als die Indikator Periode ist. Nachfolgend schreiben wir den RSI-Wert. 6. Zuletzt berechnen wir den Trend, in dem der RSI-Wert mit dem des RSIVor und die Position dieser zwei Werte bezüglich des unteren und oberen Bands verglichen werden. Im Folgenden werden die oben erklärten Trendregeln angewandt und je nach dem Fall speichern wir den entsprechenden Wert in der RSITrend Variable. 7. Wenn das Ende der Historie erreicht ist, kommt das Programm aus dem For Schleife raus. Als Letztes wird die SystemStop Methode gerufen, um die Objekte zu befreien und zu beenden. Hiermit ist das Projekt beendet und der VisualBasic Editor kann geschlossen werden. Zum Schluss deaktivieren wir den Entwurfsmodus unter dem Menü Entwicklertools von Excel. 4. Die Information visualisieren Zuerst müssen wir sicher gehen, dass Visual Chart V mit dem Daten-Server verbunden ist und außerdem der erprobende Titel oder der entsprechende Markt in unserer Lizenz in Realtime aktiviert ist. Als Beispiel werden wir die Daten des BMW Titels downloaden. Der komplette Code in Visual Chart für diesen Wert ist 010005BMW. Es muss berücksichtigt werden, dass der komplette Code jedes gewünschten Produktes eingegeben werden muss. Im Allgemeinen wird der Code jedes Produktes folgende Nomenklatur haben: 010 + Code des Marktes + Titel Ist der komplette Code nicht eingegeben, kann Visual Chart den Wert nicht finden und deshalb werden keine Daten an Excel gesendet. Wenn der Code in der B4 Zelle eingegeben ist, füllen wir die anderen Einstiegsparameter aus oder behalten die standardmäßigen Parameter. Zuletzt drucken wir DOWNLOAD und der Daten-Download wird gestartet. Ist der Download beendet, wird das Programm die Verknüpfung zwischen Visual Chart und Excel automatisch löschen (da die Methode SystemStop gerufen wurde) und wir unsere Excel Seite problemlos schließen können. COMTraderInterfaces EINFÜHRUNG Der COMTraderInterfaces Server stellt das Brokerage für Visual Chart V zur Verfügung. Damit es funktioniert, muss das Programm ausgeführt und mit den Daten- und Brokerage-Servern verbunden sein. Wie in der Abbildung zu sehen ist, funktioniert dieser Server als Vermittler zwischen VisualChart und der Anwendung des Benutzers (z.B. Microsoft Excel). Der Benutzer sendet die Anfragen an COMTraderInterfaces und dieser meldet die Ergebnisse über die Ereignisse. Ebenfalls können Sie jederzeit einige Daten anfordern, die vorher über die Methodeanwendung erhalten wurden. Für die Benutzung des COMTraderInterfaces Servers muss die Anwendung des Benutzers in ihrer Referenzliste die VisualChart Trader Library 1.0 Klasse eingeschlossen haben. Diese Library schließt eine Serie von Objekten, Ereignissen und Methoden ein, die in den folgenden Seiten detailliert werden. OBJEKTE Die Objekte der COMTraderInterfaces Library sind die folgenden: VCT_Order VCT_QueryFilter VCT_OpenPosition VCT_CloseOperation VCT_Balance VCT_Account VCT_MarketOrdersInfo VCT_Trader VCT_Order. Dieses Objekt verkapselt die wichtige Information einer Order für ihre Sendung an Markt und für den Erhalt der aktualisierten Order in den verschiedenen Ereignissen des Servers. Die wichtigsten Eigenschaften für die Aufgaben des Benutzers (z.B. für die Ordersendung) sind die folgenden: Account. Zeigt das Konto, mit dem gehandelt wird (ein Benutzer kann über mehrere Konten verfügen). SymbolCode. Titel auf den die Order gesendet wird (z.B. 010005ADS für ADIDAS). OrderType. Ordertyp, der gesendet werden möchte. OrderSide. Gibt an, ob ein Kauf oder Verkauf ist. Volume. Volumen, das in der Order gehandelt wird. Price und StopPrice. Sie müssen eine oder die zwei Optionen je nach dem Ordertyp ausfüllen. VolumeRestriction. Hier wird die auf die Order gewünschte Volumenbeschränkung angewandt. Ist die VCT_VR_Hide Beschränkung (verstecktes Volumen) beinhaltet, muss die HideVolume Angabe mit dem gewünschten versteckten Volumen angegeben werden. Ist die VCT_VR_MinVolume Beschränkung (minimal Volumen) beinhaltet, muss die MinVolume Angabe mit dem gewünschten Minimalvolumen angegeben werden. TimeRestriction. Hier wird die auf die Order gewünschte Zeitbeschränkung angewandt. Ist die VCT_TR_Date Beschränkung (bis zu einem Datum) beinhaltet, muss die ValidDate Angabe mit dem gewünschten Gültigkeitsdatum angegeben werden. TRADING TOOLS | VISUALCHART 36 OrderID (Orderidentifier). Eine andere interessante Eigenschaft, die nach der Ordersendung nachgeschlagen werden kann. Der Identifier soll zum Beispiel bei den Änderungen und Stornierungen einer bereits gesendeten Order benutzt werden. Einige Ordertypen, wie OCO, OSO und Bracket, generieren mehrere miteinander verknüpften Orders. Die RelatedId und RelatedType Eigenschaften ermöglichen, das Verhältnis zwischen diesen Eigenschaften festzustellen: Bei OSO und Bracket Orders, in denen eine Hauptorder vorliegt, hat die Order als RelatedId ihren eigenen Identifier. Bei den restlichen Fällen ist RelatedId der Identifier der Order, mit der er das Verhältnis unter RelatedType eingegeben ist. Eigenschaft Beschreibung Account As String Kontoname. SymbolCode As String Titelcode. OrderType As enumVCTOrderType Ordertyp. OrderSide As enumVCTOrderSide Zeigt, ob es ein Kauf oder Verkauf ist. Volume As Double Volumen der Order. Price As Double Preis der Order. StopPrice As Double Auslösepreis der Order. ValidDate As Date Gültigkeitsdatum. UserOrderID As String Identifier des Benutzers. Er wird intern nicht benutzt (aber der Benutzer kann einen eigenen Identifier mit der Order verknüpfen). OrderID As String Orderidentifier. UserName As String Benutzer. Date As Date Datum. RemainVolume As Double Noch nicht ausgeführtes Volumen. Error As String Letzter Fehler (wenn vorhanden). Status As enumVCTOrderStatus Orderzustand. Location As enumVCTOrderLocation Orderlokalisierung. Source As enumVCTSource Quelle, aus der die Order abgeschickt wurde. Currency As String Währung. AvgPrice As Double Durchschnittspreis der Orderausführung. VolumeRestriction As enumVCTVolumeRestriction Volumenbeschränkung der Order. TimeRestriction As enumVCTTimeRestriction Zeitbeschränkung der Order. HideVolume As Long Verstecktes Volumen. MinVolume As Long Minimal Volumen. RelatedId As String Identifier der verknüpften Order. RelatedType As enumVCTRelatedType Verhältnistyp der Order mit ihrer verknüpften Order (wenn vorhanden). VCT_QueryFilter. Beinhaltet die Filterinformation, die zu der Orderabfrage anzuwenden ist (siehe GetOrders von VCT_Order). Eigenschaft Beschreibung RowQueryLimit As Long Begrenzt die Ergebnisanzahl der Abfrage. Filter As enumVCTOrderFilter Ordertypen, die nachgeschlagen werden möchten. Account As String Kontoname. StartDate As Date Startdatum der Abfrage. EndDate As Date Endedatum der Abfrage. VCT_OpenPosition. Beinhaltet Information über die offene Position. Eigenschaft Beschreibung Account As String Kontoname. SymbolCode As String Titelcode. Description As String Beschreibung. Side As enumVCTOrderSide Ordertyp (Kauf oder Verkauf). Volume As Double Volumen der offenen Position. Currency As String Währung. Price As Double Preis. Profit As Double Gewinn. Date As Date Datum. PositionStatus As enumVCTOpenPositionStatus Orderzustand. VCT_ClosedOperation. Beinhaltet Information über die geschlossenen Operationen. Eigenschaft Beschreibung Account As String Kontoname. SymbolCode As String Titelcode. Volume As Double Volumen. Currency As String Währung. BoughtPrice As Double Kaufpreis. SoldPrice As Double Verkaufspreis. Profit As Double Gewinn. BoughtDate As Date Kaufdatum. SoldDate As Date Verkaufsdatum. VCT_Balance. Beinhaltet Information über den Saldo und das verfügbare Kapital für das Trading. Eigenschaft Beschreibung PortfolioValue As Double Portfolio. NetWorth As Double Vermögen. Margins As Double Garantien. OutstandingBalance As Double Kaufkraft. Cash As Double Bargeld. MarginCash As Double Zurückbehaltenes Bargeld. CashByLeverage As Double Verfügbar wegen Hebel. TRADING TOOLS | VISUALCHART 38 VCT_Account. Beinhaltet Information über das Konto, mit dem gehandelt wird. Eigenschaft Beschreibung Account As String Kontoname. Description As String Kontobeschreibung. Balance As VCT_Balance Bilanz (siehe VCT_Balance). VCT_MarketOrdersInfo. Beinhaltet Information über einen Markt. Eigenschaft MarketCode As String Beschreibung Marktcode. VCT_Trader. Dieses Objekt stellt die Hauptschnittstelle des COM Servers dar und fungiert als den Ausgangspunkt für die Ordersendung und den Erhalt der Ereignisse, die mit den Orders verbunden sind. Eigenschaft Beschreibung Accounts As VCT_Accounts Liefert eine Sammlung mit sämtlichen Benutzerkonten zurück. MarketOrdersInfos As VCT_MarketOrdersInfos Liefert eine Sammlung von VCT_MarketOrdersInfo mit Information über die Ordertypen und die von den verschiedenen Märkten unterstützten Beschränkungen zurück. ClosedOperations As VCT_ClosedOperations Liefert eine Sammlung mit den geschlossenen Operationen zurück. OpenPositions As VCT_OpenPositions Liefert eine Sammlung mit den offenen Positionen zurück. Orders As VCT_Orders Liefert eine Sammlung mit den zurzeit in Visual Chart vorhandenen Orders (Alle, Offene …) zurück. EREIGNISSE OnOrderInMarket(Order As VCT_Order). Zeigt, dass die Order am Markt ist. OnModifiedOrder(Order As VCT_Order). Die Order wurde modifiziert. OnCancelledOrder(Order As VCT_Order). Die Order wurde storniert. OnTotalExecutedOrder(Order As VCT_Order). Die Order wurde vollständig ausgeführt. OnError(Order As VCT_Order). Ein Fehler mit der angegebenen Order wurde aufgetreten. (Die Eigenschaft Error von VCT_Order nachschlagen). OnPartialExecutedOrder(Order As VCT_Order). Die Order wurde teilweise ausgeführt. OnNewOrderLocation(Order As VCT_Order). Die Orderlokalisierung wurde geändert. (Siehe enumVCTOrderLocation). OnChangedOpenPositions(Account As String). Die offenen Positionen des angegebenen Kontos wurden geändert. OnNewClosedOperations(Account As String). Neue geschlossene Operationen des angegebenen Kontos sind vorhanden. OnChangedBalance(Account As String). Die Bilanz des angegebenen Kontos wurde geändert. OnServerShutDown(). Dieses Ereignis wird ausgeführt, genau bevor der Server aufhört, zur Verfügung zu stehen. Es ist nützlich, um andere Anwendungen zu verständigen, dass sie den Server nicht mehr verwenden können, oder um Aufgaben für die Schließung der Anwendung auszuführen. METHODEN Die Methoden, die mit den Objekten der ComTraderInterfaces Library verwendet werden können, sind nachfolgend detailliert. VCT_MarketOrdersInfo GetSupportedOrders(OrderType() As enumVCTOrderType). Liefert einen Array mit allen vom Markt unterstützten Ordertypen zurück. GetVolumeRestriction(VolumeRestriction() As enumVCTVolumeRestriction). Liefert einen Array mit allen vom Markt unterstützten Volumenbeschränkungen zurück. GetTimeRestriction(TimeRestriction() As enumVCTTimeRestriction). Liefert einen Array mit allen vom Markt unterstützten Zeitbeschränkungen zurück. VCT_Trader SendOrder(Account As String, SymbolCode As String, OrderType As enumVCTOrderType, OrderSide As enumVCTOrderSide, Volume As Double, Price As Double, StopPrice As Double, VolumeRestriction As enumVCTVolumeRestriction, TimeRestriction As enumVCTTimeRestriction,[HideVolume As Object], [MinVolume As Object], [ValidDate As Object]) As String. Führt eine neue Order mit den in den Parametern angegebenen Werten aus. Liefert den Identifier der generierten Order zurück. SendOrderEx(Order As VCT_Order). Führt eine neue Order mit den im Parameter angegebenen Werten aus. ModifyOrder(OrderId As String, Volume As Double, Price As Double, StopPrice As Double, [HideVolume As Object], [ValidDate As Object]). Modifiziert die Order, deren Identifier OrderId ist, in dem die in den Parametern angegebenen Werte zugewiesen werden. CancelOrder(OrderId As String). Storniert die angegebene Order. SendOCOOrder(Order1 As VCT_Order, Order2 As VCT_Order) As String(). Sendet zwei verknüpfte Order mittels eines OCO Verhältnisses. Liefert die Identifier der zwei Orders zurück. SendOSOOrder(MainOrder As VCT_Order, OrderToSend As VCT_Order) As String(). Sendet zwei verknüpfte Orders mittels eines OSO Verhältnisses und liefert den Identifier der zwei generierten Orders zurück. Main Order ist die Order, die sofort gesendet wird, während OrderToSend die Order ist, die nach der Ausführung von MainOrder gesendet wird. SendBracketOrder(MainOrder As VCT_Order, LimitOrder As VCT_Order, StopOrder As VCT_Order) As String(). Sendet eine Bracket Order (eine Market Einstiegsorder zusammen mit einer Gewinnlimitierte Order und einem Verluststop) und liefert den Identifier der drei generierten Orders zurück. GetOrders(QueryFilter As VCT_QueryFilter) As VCT_Orders. Liefert eine Sammlung mit den Orders zurück, die den QueryFilter verifiziert. Diese Ergebnisse werden vom Server zurückgeliefert, sodass jegliche Information nachgeschlagen werden kann, auch wenn diese nicht verfügbar in Visual Chart ist. SAMMLUNGEN Alle Sammlungen (außer VCT_Orders), die über einige zusätzlichen Methoden verfügen, haben dieselbe Schnittstelle und Funktionsweise. Sie werden verwendet, um eine Datengruppe desselben Typs zurückzuliefern. Folgende Tabelle zeigt die vorhandenen Sammlungen und den enthaltenen Ordertyp: Sammlungen TRADING TOOLS | VISUALCHART Objekttyp VCT_Orders VCT_Order VCT_OpenPositions VCT_OpenPosition VCT_ClosedOperations VCT_ClosedOperation VCT_Balances VCT_Balance VCT_Accounts VCT_Account 40 VCT_MarketOrdersInfos Eigenschaft VCT_MarketOrdersInfo Beschreibung Count As Long Liefert die Elementeanzahl der Sammlung zurück. Item(index As Object) As XXX Liefert ein Item der Sammlung zurück (XXX bezieht sich auf den Sammlungstyp, der in der zweiten Spalte der vorigen Tabelle angezeigt ist). _NewEnum Alle Sammlungen implementieren diese versteckte Methode, um den Durchlauf über die verschiedenen Items der Sammlung bei der Anwendung von foreach zu ermöglichen. VCT_Orders. Diese Sammlung enthält, zusätzlich zu den bereits erwähnten Methoden, andere Methoden, die ermöglichen, Ordersammlungen von bestimmten Typen (Ausgeführt, Offene oder Stornierte) zu erhalten. Active() As VCT_Orders. Liefert eine Sammlung mit den aktiven Orders der Sammlung zurück. Executed() As VCT_Orders. Liefert eine Sammlung mit den ausgeführten Orders der Sammlung zurück. Cancelled() As VCT_Orders. Liefert eine Sammlung mit den stornierten Orders der Sammlung zurück. PRAKTISCHES BEISPIEL FÜR DIE VERWENDUNG DES COMTraderInterfaces SERVERS In diesem Beispiel erstellen wir ein Befehlsfenster, das uns den Kauf oder Verkauf für einen bestimmten Titel ermöglicht. In diesem Fenster können wir zwischen 3 verschiedenen Ordertypen, zusätzlich zu den Kauf und Verkaufsbefehlen, auswählen: Einstieg mit Best Ordertyp Stop Order (Best Stop) an den Markt senden Eine Limit Order an den Markt senden Wir können auch die Kontraktenanzahl und den Einstiegspreis (außer bei Best Ordertyp) auswählen. Microsoft Excel wird nochmals als Benutzer Anwendung verwendet. Wir übernehmen das Trading Tools Buch, mit dem wir in diesem Handbuch arbeiten, und verwenden hierfür die Seite 3 dieses Buches, da die vorigen Beispiele in Seite 1 und 2 vorhanden sind. Es muss berücksichtigt werden, dass bei der Anwendung des COMTraderInterface Objektes die VisualChart Trader Library 1.0 zu der Referenzliste hinzugefügt sein sollte. Nächste Schritte sind hier zu folgen: 1. Umgebung vorbereiten 2. Programmierung der Prozesse 3. Ausführung 1. Umgebung vorbereiten Zuerst werden wir die Schnittstelle herstellen, um die Information einzufügen und anzuzeigen. Die Seite 3 unseres Excel Buches muss wie folgt aussehen: In der entworfenen Umgebung sind die drei ActiveX Objekte hervorzuheben: Eine Pull-Down-Box Zwei Befehlsbuttons (KAUFEN/VERKAUFEN) Die Pull-Down-Box wird verwendet, um den Ordertyp auszuwählen. Solange der Broker es Ihnen erlaubt, können viele unterschiedliche Ordertypen in Visual Chart V benutzt werden. Für dieses Beispiel verwenden wir drei Typen: Best Orders Limit Orders Best Stop Orders Für die Erstellung der Pull-Down-Box klicken wir auf das Menü Entwicklertools der Option Einfügen Pull-Down-Box (Active X). Dieses Objekt wird in der B5 Zelle eingefügt, damit es mit den anderen Zellen ausgerichtet ist. Nachfolgend gehen wir auf das Eigenschaften Fenster des Objektes (beim Klicken mit der rechten Maustaste auf das Objekt) und ändern folgende Felder: Name OrderTypenBox BorderStyle 1-fmBorderStyleSingle Height 15,75 Width 105 Die Titelliste der Pull-Down-Box wird aus dem Programmierungscode heraus ausgefüllt. Hierzu erstellen wir einen Prozess im Code unter dem Name Ordertypenload, der wie folgt aussieht: TRADING TOOLS | VISUALCHART 42 Private Sub OrderTypenLoad() OrderTypenBox.AddItem "Best" OrderTypenBox.AddItem "Limit" OrderTypenBox.AddItem "Best Stop" OrderTypenBox.Value = "Best" End Sub Eine andere Option, anstatt ein Objekt vom Pull-Down-Box Typ hinzufügen, ist dieselbe Methode als im Beispiel des VCDataSource Servers zu benutzen. In diesem Beispiel wurde angezeigt, wie die Option Datengültigmachung aktiviert werden konnte. In diesem Fall muss dasselbe für die B5 Zelle ausgeführt werden, in dem eine Liste in den Nebenzellen mit den drei im Ordertypload Prozess angegebenen Texten generiert wird. Die KAUF und VERKAUF Buttons sind ähnlich den OK und STOP Buttons der Beispielseite in Realtime. Für die Erstellung der Kontrolle in einer Excel Seite muss das Menü Entwicklertools ausgewählt, die Option Entwurfsmodus aktiviert und nachfolgend die Option Einfügen Befehlsbutton (Active X) ausgewählt werden. Wie bei den anderen Buttons des vorigen Beispiels gehen wir zu dem Eigenschaften Fenster des Objektes und modifizieren die Namenparameter: Für den KAUF Button Name KaufBtn Caption KAUFEN BackColor &H00FF0000& Für den VERKAUF Button Name VerkaufBtn Caption VERKAUFEN BackColor &H000000FF& Zunächst doppelklicken wir auf jeden Button, um die Click Ereignisse im Visual Basic Editor zu generieren. Dieses Ereignis zeigt uns, dass bei jedem Klick auf den Button, die im Ereignis eingegebenen Ausgaben ausgeführt werden. 2. Programmierung der Prozesse Zuerst erstellen wir das TraderKlasse Objekt vom VCT_Trader Typ. Public WithEvents TraderKlasse As COMTraderInterfacesLib.VCT_Trader Bei dem Arbeitsprozess in den anderen zwei Beispielen konnte der Benutzer einen Button aktivieren und die Information herunterladen, aber hier kann der Benutzer die Kauf- und Verkaufsbuttons aleatorisch nach seinen Bedürfnissen verwenden. Deshalb müssen wir in diesem Fall einen Startpunkt außerhalb den Kauf- und Verkaufsbuttons finden. Die Funktionsweise ist die Folgende: 1. Die Umgebung starten, jedes Mal das Excel Buch geöffnet ist (über die Methode Workbook_Open). 2. Kauf- oder Verkaufstrades je nach dem vom Benutzer geklickten Button und die Zelleninformation zu generieren. 3. Einen Backup der in den nebenliegenden Zellen ausgeführten Trades speichern. 4. Das VCT_Trader Objekt befreien, wenn das Excel Buch (über das Workbook_BeforeClose Ereignis) geschlossen ist. Im 1. Schritt erstellen wir den sogenannten Prozess Umgebungstarten, der wie folgt aussieht: Public Sub UmgebungStarten() Range("A8:H1000").ClearContents Range("D2") = False TraderObjektBefreien OrderTypenLoad End Sub Wir haben folgendes unternommen: 1. Den Zelleninhalt ab Zeile 8 entfernen. 2. Die D2 Zelle wurde mit FALSE gestartet. Diese Zelle informiert uns, ob das VCT_Trader Objekt erstellt wurde oder nicht. Zeigt sich FALSE in der Zelle an, wurde das Objekt nicht erstellt und muss geschlossen werden. Zeigt sich TRUE in der Zelle an, wurde das Objekt erstellt und wir brauchen nichts mehr dies bezüglich zu machen. 3. Das TraderKlasse Objekt wird als Sicherheitsmaßnahme befreit. 4. Wir füllen die Ordertypen Pull-Down-Box aus, falls wir sie gerade benutzen. Der UmgebungStarten Prozess wird abgerufen, wenn das Worbook_Open Ereignis stattgefunden hat. Dieses Ereignis müssen wir im ThisWorbook Objekt melden. Um den Code dieses Objektes zu öffnen, wählen wir das Objekt ThisWorkbook unter dem Fenster des Projektexplorers und klicken zwei Mal darauf: Unter dem Code von ThisWorkBook definieren wir den Workbook_Open Prozess und geben an, dass wir einen Abruf auf den Prozess UmgebungStarten der Seite3 des Buches machen möchten. Wir können beobachten, dass der Prozess UmgebungStarten als öffentlich gemeldet wurde. Dies ermöglicht, Zugang zu diesem Prozess aus einem externen Element heraus zu haben. Im 2. Schritt unserer Entwicklung füllen wir die KaufBtn_Click und VerkaufBtn_Click Codes aus, die vorher generiert werden sollten. Beide Buttons werden einen Abruf auf denselben Prozess, den sogenannten OrderGenerieren, ausführen. Da die Routine für das Abschicken der Orders gleich beim Kaufen und Verkaufen ist, beziehen wir uns auf diesen externen Prozess, der einfach die Orderaktion anfordert, um zwischen Kauf und Verkauf zu unterscheiden. Der Code für OrderGenerieren bleibt dann wie folgt: TRADING TOOLS | VISUALCHART 44 Private Sub OrderGenerieren(OrderAktion As enumVCTOrderSide) Dim Konto As String Dim Titel As String Dim OrderTyp As enumVCTOrderType Dim Limit As Double Dim STOPPreis As Double Dim Volumen As Integer Dim NewID As String Konto = Range("B2").Text Titel = Range("B4").Text OrderTyp = SelectOrderT(OrderTypenBox.Text) Volumen = Range("D4").Value STOPPreis = Range("D5").Value Limit = Range("D6").Value 'Vorige Information speichern Range("A" & LetZeile) = Time Range("B" & LetZeile) = Titel Range("C" & LetZeile) = STOPPreis If OrderTyp = VCT_OT_BestStop Then Range("C" & LetZeile) = STOPPreis Range("D" & LetZeile) = Volumen '-- Order abschicken NewID = TraderKlasse.SendOrder(Konto, Titel, OrderTyp, OrderAktion, Volumen, Limit, STOPPreis) Range("G" & LetZeile) = 0 Range("H" & LetZeile) = NewID LetZeile = LetZeile + 1 End Sub Als Einstiegsparameter wird der OrderAktion Wert angefordert, der zum Typ enumVCTOrderSide gehört. Diese Aufzählungsform ist Teil der Aufzählungen der COMTraderInterfaces Klasse und unterscheidet zwischen Kauforders (VCT_OS_Buy) und Verkaufsorders (VCT_OS_Sell). Bezüglich des Codeinhalts, wurde Folgendes ausgeführt: 1. Die unterschiedlichen Pflichtfelder für das Abschicken einer Order, wie zum Beispiel das Konto, den Titel, das Volumen, et cétera definieren. Wir ziehen den Wert dieser Felder von den verschiedenen Zellen aus, die in unserer Schnittstelle gemeldet wurden. 2. Besonders zu erwähnen ist das OrderTyp Feld, das als Variable zum enumVCTOrderType und auch der COMTraderInterfaces Familienklasse gehört. 3. Wir zeigen auf den Bildschirm die Information des Orderabschickens wie die Uhrzeit der Sendung, den Titel und den Preis. Zusätzlich zu dieser Information zeigen wir ebenfalls die Datenangaben nach der Ausführung der Order. Hierzu verwenden wir die eigenen Ereignisse des VCT_Trader Objektes. 4. Wir schicken die Order mit der Methode des VCT_Trader SendOrder Objektes ab. Zusätzlich zu den in diesem Objekt definierten Feldern, die Pflichtfelder sind, kann der Benutzer auch weitere Informationen zu der Order wie das Gültigmachungsdatum, das versteckte und minimal Volumen, usw. hinzufügen. 5. Abschließend speichern wir den ID Identifier der Order in der Zelle, da er für uns später behilflich sein wird, und erhöhen den Zähler der Zeilen LetZeile. Diese Variable ist eine globale Variable, die am Anfang des Codes gemeldet werden muss und die beim Einfügen neuer Orders erhöht wird. Wie oben erwähnt, ist die OrderTyp Variable eine spezielle Variable, die mit besonderen Werten ausgefüllt werden soll. Wir werden jeden einzelnen Wert mit den möglichen Werten verknüpfen, die der Benutzer in unserer PullDown OrderTypenBox auswählen kann. Hierzu fügen wir im Code eine Funktion ein, die anders als die Prozessen, einen Ausstiegswert zurückliefert. Diese Funktion wird SelectOrderT genannt und sieht wie folgt aus: Private Function SelectOrderT(NameT As String) As enumVCTOrderType Dim AUXValue As enumVCTOrderType Select Case NameT Case "Best" AUXValue = VCT_OT_Best Case "Limit" AUXValue = VCT_OT_Limit Case Else AUXValue = VCT_OT_BestStop End Select SelectOrderT = AUXValue End Function Die Funktion erhält die NameT Variable (die dem ausgewählten Wert der Pull-Down-Box entspricht), welche gemäß ihrem Wert den entsprechenden Ordertyp je nach der enumVCTOrderType Aufzählung zurückliefern wird. Wir haben bereits den Prozess definieren, den wir über die Ereignisse KaufBtn_Click und VerkaufBtn_Click abrufen werden. Beide Ereignisse können wir deshalb wie folgt definieren: Private Sub VerkaufBtn_Click() If Range("D2") = False Then Set TraderKlasse = New COMTraderInterfacesLib.VCT_Trader Range("D2") = True LetZeile = 8 End If OrderGenerieren (VCT_OS_Buy) End Sub Private Sub VerkaufBtn_Click() If Range("D2") = False Then Set TraderKlasse = New COMTraderInterfacesLib.VCT_Trader Range("D2") = True LetZeile = 8 End If OrderGenerieren (VCT_OS_Sell) End Sub Je nach dem gedruckten Button wird der OrderGenerieren Prozess als Einstiegswert VCT_OS_Buy oder VCT_OS_Sell erhalten. Zusätzlich zu dem Abruf OrderGenerieren wird es in beiden Fällen eine Kontrolle ausgeführt, um die Existenz des VCT_Trader Objektes zu überprüfen. In der D2 Zelle wird diese Information ermittelt. Zeigt sich FALSE in der Zelle, wurde das Objekt nicht erstellt und muss über den Abruf Set = New erstellt werden. Ist diese Aktion ausgeführt, muss sie nicht mehr wiederholt werden, da das Objekt so oft wie nötig benutzt werden kann. Die Kontrolle wird auch genutzt, um die LetZeile Variable zu starten. TRADING TOOLS | VISUALCHART 46 Im 3. Schritt müssen wir die fehlende Information für jede Order ausfüllen. Wie oben gesehen, bevor eine Order über die Methode SendOrder abgeschickt wird, schreiben wir Folgendes auf dem Bildschirm: Datum Preis Ordertyp, der gesendet wird Nachfolgend erhöhen wir um 1 die LetZeile Variable, da diese die letzte geschriebene Zeile kontrolliert. Diese Option hilft uns, die abgeschickten Orders zu verfolgen. Neben der gespeicherten Information bei der Ordersendung werden wir auch ein Register über die ausgeführten Orders speichern. Hierfür benutzen wir das OnTotalExecuteOrder Ereignis des VCT_Order Objektes und als Unterstützung das OnPartialExecuteOrder Ereignis. Das OnTotalExecuteOrder Ereignis wird bei jeder am Markt kompletten ausgeführten Order aktiviert. Ist das am Markt ausgeführte Kontraktenanzahl niedriger als das gesamte Volumen, wird nun das OnPartialExecuteOrder Ereignis aktiviert. Das OnTotal Ereignis wird nur dann nach der Ausführung der ausstehenden Kontrakte aktiviert. Beispiel. Beim Abschicken einer Stop Kauforder von 4 Kontrakten kann Folgendes vorkommen: 1. Die 4 Kontrakten können gleichzeitig ausgeführt werden Das OnTotal Ereignis mit Volumen = 4 wird aktiviert. 2. Nicht alle 4 Kontrakte werden ausgeführt (angenommen 3) Das OnPartial Ereignis wird zuerst mit Volumen = 3 aktiviert, danach wird das OnTotal Ereignis mit Volumen = 1 (den restlichen Kontrakt) aktiviert. Logischerweise kann es vorkommen, dass das OnTotal Ereignis nicht aktiviert wird, wenn ein Kontrakt noch auszuführen ist. Da die umzusetzende Struktur in beiden Ereignissen dieselbe ist, werden wir nochmals einen externen Prozess benutzen, den wir von jedem Ereignis abrufen können. Diesen Prozess benennen wir AusgeführteOrder und erhält die Information über die teilweise oder komplett ausgeführte Order als einen Einstiegsparameter. Anstatt mehrere Felder mit der Information über die ausgeführte Order als Einstiegsparameter zu bekommen, werden wir eine eigene Variable erstellen, die als Argumente über jede gewünschte Datenangabe verfügt, die wir dem Prozess senden möchten. Hiermit brauchen wir nur eine einzige Variable als Einstiegsparameter zu erstellen. Die neue Variable-Klasse wird OrderInfoTyp genannt. Sie wird am Anfang des Codes erstellt und sieht wie folgt aus: Nachfolgend kann der Code des OrderAusführung Prozesses wie folgt geschrieben werden: Private Sub AusgeführteOrder(Order As OrderInfoTyp) Dim Ausstieg As Boolean: Dim i As Integer Dim Gefunden As Boolean i = 8: Ausstieg = False: Gefunden = False While Not Ausstieg If Range("H" & i) = "" Then Ausstieg = True Else If Order.OrderID = Range("H" & i) Then Ausstieg = True Gefunden = True Else i=i+1 End If End If Wend If Gefunden Then Range("E" & i) = DatePart("h", Order.Date) & ":" & DatePart("n", Order.Date) & ":" & DatePart("s", Order.Date) Range("F" & i) = Order.Price If Order.Ordertype = VCT_OT_BestStop Then Range("F" & i) = Order.StopPrice Range("G" & i) = Range("G" & i) + Order.Volume End If End Sub Wie oben erwähnt, erhält der Prozess die Order Variable vom Typ OrderInfoTyp, die vom OnTotal Ereignis oder vom OnPartial Ereignis erhalten haben muss. Bei der AusgeführteOrder gehen wir wie folgt vor: 1. Wir sehen alle Zeilen durch, in denen Information über die Zeile geben kann, deren Spalte H mit dem ID Wert der Order Variable übereinstimmt. 2. Ist die entsprechende Zeile gefunden (Gefunden = True), schreiben wir in den entsprechenden Spalten die in der Order Variable enthaltenen Felder. TRADING TOOLS | VISUALCHART 48 Zwei Punkte sind zu berücksichtigen: 1. Die abgeschickten und ausgeführten Orders können zwei unterschiedlichen Preistypen je nach dem Ordertyp haben. Handelt es sich um eine Limit Order, bezieht sich der Orderpreis auf das Price Feld. Handelt es sich um eine Stop Order, bezieht sich der Orderpreis auf das StopPrice Feld. Die Market Orders haben keinen verknüpften Preis. 2. In der G Spalte speichern wir das Volumen der ausgeführten Kontrakte. Da wir bei der teilweisen Ausführung der Kontrakte, mehrmals Zugang zu dem AusgeführteOrder Prozess mit derselben Order haben, erhöhen wir den Inhalt der Zelle mit jedem neuen Prozessabruf. Ist der AusgeführteOrder Prozess definiert, müssen wir im Folge diese Ereignisse melden: OnTotalExecuteOrder OnPartialExecuteOrder Hierfür unter dem Reiter für die Objektauswahl werden wir das TraderKlasse Objekt auswählen und automatisch werden die entsprechenden Objekte unter dem Prozessreiter angezeigt. Unter der Prozessliste wählen wir das OnTotalExecuteOrder Ereignis und danach OnPartialExecuteOrder aus. Nach ihrer Auswahl werden die Ereignisse im Code generiert. Jetzt müssen wir nur noch jedes Ereignis ausfüllen, die wie oben erwähnt gleich sind: '-- EREIGNISSE Private Sub TraderKlasse_OnTotalExecutedOrder(ByVal Order As COMTraderInterfacesLib.IVCT_Order) Dim NewOrder As OrderInfoTyp NewOrder.OrderID = Order.OrderID NewOrder.Date = Order.Date NewOrder.Price = Order.Price NewOrder.StopPrice = Order.StopPrice NewOrder.Ordertype = Order.Ordertype NewOrder.Volume = Order.Volume AusgeführteOrder NewOrder End Sub Private Sub TraderKlasse_OnPartialExecutedOrder(ByVal Order As COMTraderInterfacesLib.IVCT_Order) Dim NewOrder As OrderInfoTyp NewOrder.OrderID = Order.OrderID NewOrder.Date = Order.Date NewOrder.Price = Order.Price NewOrder.StopPrice = Order.StopPrice NewOrder.Ordertype = Order.Ordertype NewOrder.Volume = Order.Volume AusgeführteOrder NewOrder End Sub Wir erstellen eine Variable vom Typ OrderInfoTyp mit dem Namen NewOrder, füllen sie mit den entsprechenden Daten der erhaltenen ausgeführten Order aus und zuletzt rufen den AusgeführteOrder Prozess mit der NewOrder Variable als Parameter ab. Darauf brauchen wir nur noch das VCT_Trader Objekt (Schritt 4) befreien. Hierfür erstellen wir einen neuen Prozess mit dem Namen TraderObjektBefreien, der wie folgt aussieht: TRADING TOOLS | VISUALCHART 50 Public Sub TraderObjektBefreien() Set TraderKlasse = Nothing End Sub Da die Funktionsweise unserer Entwicklung nicht zyklisch ist, können wir es nicht befreien, bis der Benutzer das Excel Buch schließt. Hierfür verwenden wir das Workbook_BeforeClose Ereignis, das genau vor der Buchschließung aktiviert wird. Genauso wie beim 1. Schritt, müssen wir es unter DieseArbeitsmappe Objekt melden. Um den Code dieses Objektes zu öffnen, wählen wir unter dem Projektexplorer das Objekt Diese Arbeitsmappe aus und doppelklicken darauf. Unter ThisWorkBook definieren wir das Workbook_BeforeClose Prozess und geben an, dass wir den TraderObjektBefreien Prozess vom Seite3 des Buches abrufen möchten. Noch einmal stellen wir fest, dass der TraderObjektBefreien Prozess öffentlich gemacht wurde, sodass wir hiermit den Abruf auf diesen Prozess aus ThisWorbook heraus ausführen können. Damit ist der Code fertig gestellt und das Buch kann dann gespeichert und geschlossen werden. 3. Ausführung Beim Öffnen der Excel Seite wird das Worbook_Open Ereignis aktiviert, das uns den Start der Entwicklung angibt. Demnächst müssen wir überprüfen, dass Visual Chart V geöffnet und der Brokerage Server (realer Modus oder Simulator) verbunden ist. Wir notieren das Benutzerkonto, das wir in der Zelle von KONTO (B2) verwenden werden. Die restlichen Zellen füllen wir nach Wunsch aus. Wir möchten zum Beispiel eine Stop Order auf den DAX Future Continuous von 2 Kontrakten abschicken. Hierfür werden die Zellen wie folgt ausgefüllt: Wir klicken auf den Button KAUFEN und die erste Zeile wird darauf mit Daten ausgefüllt: Die Order bleibt aktiv am Markt und wird deshalb nicht ausgeführt. Aus diesem Grund sind die Zellen der ausgeführten Order leer. Nachfolgend senden wir das Gegenorder, einen Stop Verkauf, falls sich der Markt dreht. Hierfür modifizieren wir die Zelle STOP PREIS und klicken auf VERKAUFEN. Damit wird die erste Datenzeile ausgefüllt: Schließlich wird die KAUF Order ausgeführt und damit ist die entsprechende Zeile bezüglich dieser Order ausgefüllt: Zuletzt wird das Excel Buch geschlossen und das VCT_Trader Objekt hiermit befreit, sodass die Verknüpfung mit VisualChart abgebrochen wird. Wichtig: Am Markt sind eine offene Kaufposition und eine andere offene Verkaufsposition, unabhängig davon ob die Benutzung des Excel Buches beendet ist. TRADING TOOLS | VISUALCHART 52 Dies muss berücksichtigt werden. Sie haben aber auch die Möglichkeit, die Orders mit dem eigenen COMTraderInterfaces Server zu stornieren. In diesem Fall können Sie die entsprechende Methode in Ihrem Code für diese Aktion hinzufügen. VCContributor EINFÜHRUNG Eine der Visual Chart V Funktionen ist die Contributors Benutzung. Die Contributions sind ein Tool, mit dem die Benutzer folgende Information zu anderen Benutzern senden oder von anderen Benutzern empfangen können: Nachrichten Signale Ordervorschläge Komplette Seite eines Projekts (Charts, Kurslisten, Webseiten…) Das neue Tool kann ebenfalls über die COM Server mit dem VCContributor verwendet werden. Wie in der Abbildung zu sehen ist, fungiert der Server als Vermittler zwischen Visual Chart und die Benutzer Anwendung (z.B. Microsoft Excel). Um diesen Server zu benutzen, muss die Benutzer Anwendung die VisualChart Contributor library 1.0. in ihrer Referenzliste eingeschlossen haben. Wie bei den anderen Libraries verfügt diese über eine Sammlung von Objekten, Ereignissen und Methoden, die für die Datenbehandlung verwendet werden können. Für die Contributions Sendung benutzt der Server Methoden. Für den Nachrichten Empfang, die von anderen Benutzern oder über Beitragskanäle gesendet wurden, benutzt der Server Ereignisse. OBJEKTE Die Objekte der VCContributor Library sind die Folgenden: VCC_Filters VCC_Device VCC_Devices VCC_IAlert VCC_ITrader VCC_IGraphic VCC_ILiveMsg VCC_Ilive VCC_Filters. Stellt eine Filtersammlung dar. Die Filter sind Klassifizierungen der verschiedenen Beiträge, die über einen Kanal gesendet werden können. Die Filterkonfiguration eines Kanals ermöglicht Visual Chart, die gewünschten Beiträge zu senden und zu filtrieren. Eigenschaft Beschreibung Count As Long Filteranzahl des Kanals. Item(Index As Long) As String Filterwert. VCC_Device. Visual Chart verfügt über mehrere Einrichtungen, in denen verschiedene Funktionalitäten der Beiträge verkapselt oder angezeigt werden. Eine grafische Einrichtung zum Beispiel stellt eine Seite des Projektes dar, und eine Signaleinrichtung wird für die Anzeige des Signals in Visual Chart benutzt. Bei der Sendung der Beiträge werden jene inaktiven Einrichtungen mit dem Beitrag nicht gesendet. Bei dem Empfang eines Beitrags zeigen die inaktiven Einrichtungen keine relevanten Werte, da diese in der Sendung nicht eingeschlossen wurden. Eigenschaft Active As Bool Beschreibung Aktiviert oder deaktiviert die Einrichtung. VCC_Devices. Stellt eine Einrichtungssammlung dar. Sie wird von VCC_ILiveMsg verwendet, um zusätzliche Einrichtungen vor der Sendung eines Beitrags zu konfigurieren. Dieses Objekt beinhaltet auch solche Einrichtungen, wenn Beiträge empfangen sind. Eigenschaft Beschreibung Count As Long Anzahl der Einrichtungen der Sammlung. Item(Index As Long) As VCC_Device Sammlungseinrichtung. VCC_IAlert. Implementiert die VCC_Device Schnittstelle und stellt ein Visual Chart Signal dar. Die Signale mit höchster Priorität werden vor den Signalen mit niedriger Priorität angezeigt. Eigenschaft Beschreibung Text As String Text/Mitteilung des Signals. Priority As enumVCCAlertPriority Priorität des Signals. LifeTime As Long Lebensdauer des Signals. Sound As String Sound verknüpft mit dem Signal. VCC_ITrader. Dieses Objekt implementiert die VCC_Device Schnittstelle und stellt eine Order (siehe VCT_Order) dar. Die Order Eigenschaft beinhaltet einen Ordervorschlag, der direkt oder nach der Änderung seiner Eigenschaften ausgeführt werden kann. Eigenschaft Order As VCT_Order Beschreibung Order verknüpft mit der VCC_ITrader Einrichtung. Diese ist die Order, die den VisualChart Benutzer vorgeschlagen wird. VCC_IGraphic. Dieses Objekt implementiert die VCC_Device Schnittstelle und stellt eine Seite des Projektes in Visual Chart dar. Eigenschaft Beschreibung WksXML As String XML mit der Serialisierung der Projektseite. Wenn anstatt eines XML der Name einer Projektseite angezeigt ist, benutzt VisualChart die XML-Datei, die mit dieser Seite verknüpft ist. VCC_ILiveMsg. VCC_ILiveMsg beinhaltet eine komplette Beitragsbeschreibung. Es wird verwendet, um den Beitrag zu konfigurieren und die Information eines erhaltenen Beitrags nachzuschlagen. TRADING TOOLS | VISUALCHART 54 Eigenschaft Beschreibung Channel As String Beitragskanal. Users As String Benutzer, die den Beitrag empfangen werden. Der Beitrag kann leer sein, wenn er nur zum Kanal gesendet wird, oder kann mehrere Benutzernamen beinhalten, die mit “ , ” oder “ ; ” getrennt werden. SaveHistoric As Bool Der Wert ist True, wenn der Beitrag im Verlauf gespeichert ist. Die im Verlauf gespeicherten Beiträge können im VisualChart nach ihrer Sendung nachgeschlagen werden. Sind sie nicht im Verlauf gespeichert, werden sie nur empfangen, wenn sie gesendet wurden. Header As String Titel. Topic As String Thema. Body As String Mitteilung. iGraphic As VCC_IGraphic Projektseite, die mit dem Beitrag verknüpft ist (wenn Active True ist). iTrader As VCC_ITrader Vorgeschlagene Order, die mit dem Beitrag verknüpft ist (wenn Active True ist). iAlert As VCC_IAlert Mit dem Beitrag verknüpftes Signal (wenn Active True ist). ExtraDevices As VCC_Devices Mit dem Beitrag verknüpfte zusätzliche Einrichtungen (mehr vorgeschlagene Orders zum Beispiel). Filters As VCC_Filters Beitragsfilter. RelatedCode As String Mit dem Beitrag verknüpfter Titelcode. CtbType As Long Beitragstyp (siehe enumVCCCtbType). VCC_ILive. Dieses Objekt stellt die Schnittstelle der VCContributor Library dar. Hiermit können Beiträge gesendet und die empfangenen Beiträge nachgeschlagen werden, die bei den registrierten Kanälen empfangen wurden. EREIGNISSE Nachfolgend sind die verschiedenen Ereignisse detailliert, die stattfinden können. VCC_ILive OnNewILiveMsg(iLiveMsg As VCC_ILiveMsg). Dieses Ereignis wird bei jedem Beitrag ausgeführt. In iLiveMsg befindet sich die gesamte Information des Beitrags. OnServerShutDown (). Dieses Ereignis wird ausgeführt, genau bevor der Server aufhört, zur Verfügung zu stehen. Es ist nützlich, um andere Anwendungen zu verständigen, dass sie den Server nicht mehr verwenden können, oder um Aufgaben für die Schließung der Anwendung auszuführen. METHODEN In dieser Seite sind die verschiedenen Methoden detailliert, die mit der VCContributor Library verwendet werden. VCC_Devices Add(Device As VCC_Device). Fügt eine Einrichtung zu der Sammlung hinzu. Remove(Index As Long). Löscht eine Einrichtung der Sammlung. Clear(). Löscht sämtliche Einrichtungen der Sammlung. VCC_ILiveMsg SendMsg(ILive As VCC_ILive). Sendet mit dem ILive Objekt den unter VCC_ILiveMsg konfigurierten Beitrag. Dieses Objekt muss zuerst erstellt werden und ist für die Beitragssendung zuständig. VCC_ILive SendMsg(iLiveMsg As VCC_ILiveMsg). Sendet einen Beitrag mit den unter dem iLiveMsg Parameter spezifizierten Werten. RequestChannel(Channel As String). Registriert den spezifizierten Kanal (Channel ist der Kanalname). Die Registrierung ermöglicht, Beiträge von diesem Kanal zu empfangen. Für jede ausgeführte Registrierung muss nachfolgend CancelChannel abgerufen werden, um Ressourcen zu befreien. CancelChannel(Channel As String). Befreit die mit der Registrierung eines Kanals verknüpften Ressourcen und wenn keine weiteren Registrierungen von diesem Kanal vorhanden sind, werden keine zusätzlichen Beiträge von diesem Kanal empfangen. PRAKTISCHES BEISPIEL FÜR DIE ANWENDUNG DES VCContributor SERVERS Wie oben erwähnt, ist der Empfang der Beiträge eins der neuen in Visual Chart V verfügbaren Tools. Wir bieten Ihnen verschiedene Nachrichtenkanäle an. Unter diesen Kanälen steht zur Verfügung einen kostenlosen Kanal für alle Realtime und Delay Benutzer, der VisualChart (VC) benannt ist. In unserem Beispiel werden wir die Nachrichten von diesem Kanal filtrieren, in dem nur jene Nachrichten mit Information über Unterstützungen und Widerstände empfangen werden sollten. Das Trading Tools Excel Buch wird wieder benutzt (in diesem Fall Seite 4). Es muss berücksichtigt werden, dass die VisualChart Contributor 1.0. Library zu der Referenzliste hinzugefügt sein sollte. Die nächsten Schritte sind zu folgen: 1. Umgebung vorbereiten 2. Programmierung der Prozesse 3. Visualisierung der Information 1. Umgebung vorbereiten TRADING TOOLS | VISUALCHART 56 Zuerst wird die visuelle Schnittstelle entworfen, um die Information einzugeben und zu zeigen. Die Excel Seite muss wie folgt aussehen: In der Abbildung sind 2 Objekte vom Typ Befehlsbutton (AKTIVIEREN und ANHALTEN), ähnlich den Buttons der vorigen Beispiele zu sehen. Für die Kontrolle-Erstellung in einer Excel Seite müssen wir den Button Entwicklertools auswählen, die Option Entwurfsmodus aktivieren und zuletzt die Option Einfügen Befehlsbutton (active X) auswählen. Nach dem Einfügen der Buttons gehen wir auf das Eigenschaften Fenster jedes Objektes und ändern die folgenden Felder: Für den Button AKTIVIEREN Name AktivierenBtn Caption AKTIVIEREN BackColor &H00FF0000& Name AnhaltenBtn Für den Button ANHALTEN Caption ANHALTEN BackColor &H000000FF& Nachfolgend doppelklicken wir auf den Button, um die Click Ereignisse im Visual Basic Editor zu generieren. Wir müssen in Betracht ziehen, dass bei diesem Ereignistyp jedes Mal wir auf den Button klicken, die in diesem Ereignis angegebenen Aufgaben ausgeführt werden. 2. Programmierung der Prozesse Ist die Umgebung definiert, werden wir das VCILiveKlasse Objekt von Typ VCC_ILive erstellen. Public WithEvents VCILiveKlasse As VCC_ILive Für das Funktionieren unserer Entwicklung sind diese Schritte zu folgen: 1. Das Programm nach der Betätigung des Buttons AKTIVIEREN starten. Die Umgebung starten und das Objekt VCC_ILive erstellen. 2. Die Beiträge empfangen und wie oben erklärt filtrieren. 3. Die filtrierten Nachrichten auf dem Bildschirm anzeigen lassen. 4. Das VCC_ILive Objekt befreien, nach dem der Benutzer den Button ANHALTEN betätigt. Das AktivierenBtn_Click Ereignis wird für den ersten Schritt ausgefüllt und sieht wie folgt aus: Private Sub AktivierenBtn_Click() Range("A7:G6000").ClearContents SystemStop AktivierenBtn.Enabled = False AnhaltenBtn.Enabled = True Set VCILiveKlasse = New VCC_ILive NeueZeile = 7 End Sub Wir sind wie folgt vorgegangen: 1. Den Inhalt der Zellen ab Zeile 7 löschen. 2. Den SystemStop Prozess abrufen. Dieser Prozess befreit das VCC_ILive Objekt. Dieser Abruf wird als Sicherheitsmaßnahme ausgeführt. 3. Den Button ANHALTEN aktivieren und den Button AKTIVIEREN deaktivieren. Damit können wir sehen, wann das Programm aktiviert ist. 4. Das VCILiveKlasse Objekt erstellen und die NeueZeile Variable auf 7 neu starten. Die NeueZeile Variable markiert die folgende Zeile, die wir auf dem Bildschirm schreiben und die beim Empfang von neuen Meldungen erhöht wird. Diese Variable wird am Anfang des Codes erstellt. Public WithEvents VCILiveKlasse As VCC_ILive Dim NeueZeile As Long Der SystemStop Prozess sieht wie folgt aus: Public Sub SystemStop() Set VCILiveKlasse = Nothing End Sub Für den 2 Schritt unserer Entwicklung müssen wir das OnNewILiveMsg Ereignis des VCILiveKlasse Objektes erstellen. Bei jedem neuen erhaltenen Beitrag von irgendeinem aktivierten Kanal wird dieses Ereignis aktiviert. Um das Ereignis zu erstellen, wählen wir das VCILiveKlasse Objekt unter dem Reiter für die Objektauswahl und sofort werden die Objekte angezeigt. Unter der Prozessliste wählen wir das OnNewILiveMsg Ereignis. TRADING TOOLS | VISUALCHART 58 Nach der Auswahl wird das Ereignis unter dem Code generiert. Jetzt brauchen wir es nur noch auszufüllen. Vor dieser Aktion erklären wir wie die Meldungen von Visual Chart filtriert werden können. In diesem Fall möchten wir nur die Meldungen vom Typ Unterstützungen und Widerstände registrieren. Eine der Eigenschaften der Beiträge ist die Möglichkeit zu definieren, ob der gesendete Beitrag mit Patterns, Ereignissen, Indikatoren, usw. verknüpft ist. Die mit Unterstützungen und Widerständen verknüpften Nachrichten sind vom Charting Typ, sodass die Meldungen nach diesem Typ filtriert werden. Das mit dem OnNewILiveMsg, iLiveMsg, Ereignis erhaltene Objekt verfügt über die CtbType Eigenschaft, die sich auf den Nachrichtentyp bezieht. Diese Eigenschaft kann jeden Wert vom Typ enumVCCCtbType erhalten. Nachfolgend fügen wir eine Funktion zu, die jeden möglichen Wert von enumVCCtbType übersetzt, um die Information besser zu verstehen. Die Funktion heißt NamentypGeben und sieht wie folgt aus: Private Function NamenTypGeben(ByVal value As VCContributorLib.enumVCCCtbType) As String If value = VCC_CT_None Then NamenTypGeben = "Ohne Typ" ElseIf value = VCC_CT_Indicators Then NamenTypGeben = "Indikatoren" ElseIf value = VCC_CT_Charting Then NamenTypGeben = "Charting" ElseIf value = VCC_CT_Patterns Then NamenTypGeben = "Candle Patterns" ElseIf value = VCC_CT_Outstanding Then NamenTypGeben = "Ereignisse" ElseIf value = VCC_CT_BreakingNews Then NamenTypGeben = "Wichtigste" ElseIf value = VCC_CT_Fundamentals Then NamenTypGeben = "Wesentliche" ElseIf value = VCC_CT_Ratings Then NamenTypGeben = "Ratios" End If End Function Ist das Ereignis aktiviert und ein neues iLiveMsg Objekt erhalten, rufen wir diese Funktion ab, um zu wissen, ob die Meldung zum Charting Typ gehört. Der Inhalt des OnNewILiveMsg Ereignisses sieht dann wie folgt aus: Private Sub VCILiveKlasse_OnNewILiveMsg(ByVal iLiveMsg As VCContributorLib.IVCC_ILiveMsg) Dim Kanal As String Dim Titel As String Dim Typ As enumVCCCtbType Dim Titel As String Dim Thema As String Dim Meldung As String 'Info speichern Kanal = iLiveMsg.Channel Titel = iLiveMsg.RelatedCode Typ = iLiveMsg.CtbType Titel = iLiveMsg.Header Thema = iLiveMsg.Header Meldung = iLiveMsg.Body 'Meldungen filtrieren If Kanal = "Visual Chart" Then If NamenTypGeben(iLiveMsg.CtbType) = "Charting" Then If iLiveMsg.Topic = "Widerstandskreuzung" Or iLiveMsg.Topic = "Unterstützungskreuzung" Then Cells(NeueZeile, 1) = Now Cells(NeueZeile, 2) = Kanal Cells(NeueZeile, 3) = Titel Cells(NeueZeile, 4) = "Charting" Cells(NeueZeile, 5) = Titel Cells(NeueZeile, 6) = Thema Cells(NeueZeile, 7) = Meldung NeueZeile = NeueZeile + 1 End If End If Else Range("A1") = "Neue Meldung um: " & Time & ": " & Titel End If End Sub Wir sind wie folgt vorgegangen: 1. Für ein besseres Verständnis der Information haben wir jedes Element des iLiveMsg Objektes unter Variablen vom Typ Kanal, Titel, usw. gespeichert. 2. Jede Meldung wurde filtriert und nur jene gespeichert, die die folgende Kriterien erfüllen: Es muss der Visual Chart Kanal sein Die Meldung muss zum Charting Typ gehören Der Untertitel der Nachricht muss über eine Widerstands- oder eine Unterstützungskreuzung sein 3. Sind die Kriterien erfüllt, dann schreiben wir jedes Element der Meldung in der entsprechenden Zeile. 4. Nachfolgend erhöhen wir den Zeilenzähler, dass im Schritt 3 unserer Entwicklung stattfindet. TRADING TOOLS | VISUALCHART 60 5. Schließlich als zusätzliche Information schreiben wir, jedes Mal ein Kriterium nicht erfüllt ist, die Uhrzeit und die Überschrift der ausgeschlagenen Meldung in der A1 Zelle. Dies hilft uns für die Bestätigung der Beiträge, obwohl diese Datenangabe rein informativ ist. Sind die Schritte 2 und 3 beendet, müssen wir nur Schritt 4 ausführen, d.h., das VCC_ILive Objekt zu befreien. Hierzu füllen wir den Inhalt des AnhaltenBtn_Click Ereignisses wie folgt aus: Private Sub AnhaltenBtn_Click() AnhaltenBtn.Enabled = False AktivierenBtn.Enabled = True Range("A1").ClearContents Systemanhalten End Sub Wir gehen hier wie folgt vor: 1. Den AKTIVIEREN Button neu aktivieren und den ANHALTEN Button neu deaktivieren (damit wir eine visuelle Wahrnehmung für das Anhalten des Programms haben) 2. Die zusätzliche Information in der A1 Zelle löschen 3. Den Prozess SystemStop abrufen, damit das VCC_ILive Objekt befreit wird. Damit ist der Code beendet und wir brauchen nur das Design Modus von Excel zu deaktivieren. 3. Visualisierung der Information Bevor die Seite für den Empfang der Information ausgeführt wird, müssen wir die Verbindung in Realtime (Delay) in Visual Chart überprüfen. Nachfolgend klicken wir auf den Button AKTIVIEREN und sobald wir Meldungen empfangen, werden sie in der A1 Zelle angezeigt: Wenn eine Meldung erscheint, die unseren Filter überstanden hat, wird diese in der entsprechenden Zeile gespeichert: TRADING TOOLS | VISUALCHART 62 ANHANG AUFZÄHLUNGEN DER VERSCHIEDENEN LIBRARIES Die Aufzählungen sind die möglichen Werte, die ein bestimmter Variablentyp übernehmen kann. Nachstehend finden Sie die Beschreibung der Aufzählungen für die verschiedenen Libraries. VCRealTime AUFZÄHLUNGEN Zu der VCRealTime Library gehören folgende Variablen: EnumVCRTField. Beinhaltet die Definitionen sämtlicher Felder, die nachgeschlagen oder empfangen werden können. Wert Beschreibung VCRT_Field_Code Titelcode (Beispiel: 010015DX). VCRT_Field_Last RT-Wert. VCRT_Field_Evol Entwicklung. VCRT_Field_Buy1 Kaufpreis in der ersten Position. VCRT_Field_Sale1 Verkaufspreis in der ersten Position. VCRT_Field_Time Uhrzeit. VCRT_Field_Diff Differenz. VCRT_Field_Porcentual Differenz im Prozent. VCRT_Field_Los_Trades Trades. VCRT_Field_Last_Vol Wert des RT-Volumens. VCRT_Field_Volume Volumen. VCRT_Field_Vol_Mon Geld-Volumen. VCRT_Field_Low Minimum. VCRT_Field_High Maximum. VCRT_Field_Open Eröffnung. VCRT_Field_Bid_Size Anzahl der angebotenen Kaufkontrakte. VCRT_Field_Ask_Size Anzahl der angebotenen Verkaufskontrakte. VCRT_Field_Previous Voriger Preis. VCRT_Field_Open_Int Open Interest. VCRT_Field_Average_P Durchschnittspreis. VCRT_Field_Description Beschreibung. VCRT_Field_B_Ag Kaufagentur. VCRT_Field_S_Ag Verkaufsagentur. VCRT_Field_Date Datum. VCRT_Field_Value_Per_Point Wert pro Punkt. VCRT_Field_Expiry_D Fälligkeitsdatum. VCRT_Field_ISIN ISIN Code. VCRT_Field_Sub_Market Submarkt, zu dem sie gehört. VCRT_Field_Minimum_Mov Minimum Movement. VCRT_Field_Decimals Dezimalzahlen. EnumVCRTExtField. Beinhaltet die Definitionen der erweiterten Felder, die nachgeschlagen oder empfangen werden können. Nachstehend sind die verschiedenen Werte detailliert, die die Variablen von diesen 2 Typen übernehmen können: Wert Beschreibung VCRT_EF_FUND_Description_ES Unternehmensbeschreibung (Spanisch). VCRT_EF_FUND_Description_EN Unternehmensbeschreibung (Englisch). VCRT_EF_FUND_Description_FR Unternehmensbeschreibung (Französisch). VCRT_EF_FUND_Description_DE Unternehmensbeschreibung (Deutsch). VCRT_EF_FUND_IndustryWeight Titelgewichtung innerhalb der Industrie. VCRT_EF_FUND_SectorWeight Titelgewichtung innerhalb des Sektors. VCRT_EF_FUND_SubsectorWeight Titelgewichtung innerhalb des Subsektors. VCRT_EF_FUND_MarketWeight Titelgewichtung innerhalb des Marktes. VCRT_EF_FUND_URL URL des Unternehmensweb. VCRT_EF_FUND_MarketCap Marktkapitalisierung. VCRT_EF_FUND_MarketCapDayInc Erhöhung der Marktkapitalisierung am Tag. VCRT_EF_FUND_Nempoyees Anzahl der Beschäftigte. VCRT_EF_FUND_Noffices Büro-/Einrichtungsanzahl. VCRT_EF_FUND_Officers Führungskräfte. VCRT_EF_FUND_RefIndex Referenzindices als Vergleich (Beta Berechnung). VCRT_EF_FUND_SharesOut Aktienanzahl. VCRT_EF_FUND_MktSharesOut Aktien am Markt. Es kann sich vom SharesOut Feld unterscheiden, wenn der Titel an mehreren Märkten notiert. VCRT_EF_FUND_FaceValue Nennwert einer Aktie. VCRT_EF_FUND_NetIncome Nettogewinn. VCRT_EF_FUND_NetIncome_B Halbjährlicher Nettogewinn. VCRT_EF_FUND_NetIncome_Q Vierteljährlicher Nettogewinn. VCRT_EF_FUND_PreTaxIncome Nettogewinn vor Steuern / EBT (jährlich). VCRT_EF_FUND_PreTaxIncome_B Nettogewinn vor Steuern / EBT (halbjährlich). VCRT_EF_FUND_PreTaxIncome_Q Nettogewinn vor Steuern / EBT (vierteljährlich). VCRT_EF_FUND_NetIncCont Nettogewinn von fortlaufenden Aktivitäten (jährlich). VCRT_EF_FUND_NetIncCont_B Nettogewinn von fortlaufenden Aktivitäten (halbjährlich). VCRT_EF_FUND_NetIncCont_Q Nettogewinn von fortlaufenden Aktivitäten (vierteljährlich). VCRT_EF_FUND_Sales Nettoumsatz (jährlich). VCRT_EF_FUND_Sales_B Nettoumsatz (halbjährlich). VCRT_EF_FUND_Sales_Q Nettoumsatz (vierteljährlich). VCRT_EF_FUND_OpIncome Betriebsergebnis / Gewinn vor Steuern und Finanzlasten (jährlich). VCRT_EF_FUND_OpIncome_B Betriebsergebnis / Gewinn vor Steuern und Finanzlasten (halbjährlich). VCRT_EF_FUND_OpIncome_Q Betriebsergebnis / Gewinn vor Steuern und Finanzlasten (vierteljährlich). VCRT_EF_FUND_OIBDA Operativer Gewinn vor Abschreibungen (jährlich). VCRT_EF_FUND_OIBDA_B Operativer Gewinn vor Abschreibungen (halbjährlich). VCRT_EF_FUND_OIBDA_Q Operativer Gewinn vor Abschreibungen (vierteljährlich). VCRT_EF_FUND_GrossIncome Bruttogewinn (jährlich). VCRT_EF_FUND_GrossIncome_B Bruttogewinn (halbjährlich). VCRT_EF_FUND_GrossIncome_Q Bruttogewinn (vierteljährlich). TRADING TOOLS | VISUALCHART 64 VCRT_EF_FUND_ExtraIncome Außerordentliches Ergebnis/Ergebnisse von nicht fortlaufenden Aktivitäten (jährlich). VCRT_EF_FUND_ExtraIncome_B Außerordentliches Ergebnis/Ergebnisse von nicht fortlaufenden Aktivitäten (halbjährlich). VCRT_EF_FUND_ExtraIncome_Q Außerordentliches Ergebnis/Ergebnisse von nicht fortlaufenden Aktivitäten (vierteljährlich). VCRT_EF_FUND_COGS Produktionskosten der Verkäufe (jährlich). VCRT_EF_FUND_COGS_B Produktionskosten der Verkäufe (halbjährlich). VCRT_EF_FUND_COGS_Q Produktionskosten der Verkäufe (vierteljährlich). VCRT_EF_FUND_OpExpenses Betriebskosten (jährlich). VCRT_EF_FUND_OpExpenses_B Betriebskosten (halbjährlich). VCRT_EF_FUND_OpExpenses_Q Betriebskosten (vierteljährlich). VCRT_EF_FUND_TotalExpenses Gesamtkosten (jährlich). VCRT_EF_FUND_TotalExpenses_B Gesamtkosten (halbjährlich). VCRT_EF_FUND_TotalExpenses_Q Gesamtkosten (vierteljährlich). VCRT_EF_FUND_IncTaxes Körperschaftssteuer (jährlich). VCRT_EF_FUND_IncTaxes_B Körperschaftssteuer (halbjährlich). VCRT_EF_FUND_IncTaxes_Q Körperschaftssteuer (vierteljährlich). VCRT_EF_FUND_MinorityInterests Minoritätsinteressen/Den Minoritätsaktionären zugeschriebene Gewinne (jährlich). VCRT_EF_FUND_MinortyInterests_B Minoritätsinteressen/Den Minoritätsaktionären zugeschriebene Gewinne (halbjährlich). VCRT_EF_FUND_MinorityInterests_Q Minoritätsinteressen/Den Minoritätsaktionären zugeschriebene Gewinne (vierteljährlich). VCRT_EF_FUND_NetNonOpLoss Dem Betrieb nicht zugeschriebene Verluste (jährlich). VCRT_EF_FUND_NetNonOpLoss_B Dem Betrieb nicht zugeschriebene Verluste (halbjährlich). VCRT_EF_FUND_NetNonOpLoss_Q Dem Betrieb nicht zugeschriebene Verluste (vierteljährlich). VCRT_EF_FUND_ComEquity Buchwert / Den Aktionären zugeschriebenes Nettovermögen. VCRT_EF_FUND_EV Unternehmenswert (jährlich). VCRT_EF_FUND_EV_B Unternehmenswert (halbjährlich). VCRT_EF_FUND_EV_Q Unternehmenswert (vierteljährlich). VCRT_EF_FUND_EV_RT Unternehmenswert in Realtime. VCRT_EF_FUND_ShareholdersEquity Nettovermögen (jährlich). VCRT_EF_FUND_ShareCap Kapital. VCRT_EF_FUND_OtherReserves Andere Rücklagen. VCRT_EF_FUND_Dividends Jährliche Dividenden pro Aktie. Sie zeigt den Gewinnanteil jeder Aktie. Diese Datenangabe ist vom Anleger häufig benutzt, da die Dividendenpolitik manchmal einen wichtigen Bestandteil seiner Gewinne bedeutet. Diese Börsenratio ist der Quotient der gezahlten Dividende zwischen der Aktienanzahl. VCRT_EF_FUND_Dividends_B Halbjährliche Dividenden pro Aktie. VCRT_EF_FUND_Dividends_Q Vierteljährliche Dividenden pro Aktie. VCRT_EF_FUND_Liabilities Summe der Passiva. VCRT_EF_FUND_NonCurrLiab Noch nicht fällige Verbindlichkeiten. VCRT_EF_FUND_CurrLiab Kurzfristige Verbindlichkeiten. VCRT_EF_FUND_NonCurrBonds Noch nicht fällige Anleihen. VCRT_EF_FUND_NonCurrBankDebs Noch nicht fällige Schulden. Es sind langfristige Schulden (über einem Jahr), sowohl wegen Bankkrediten als auch Anleihen oder anderen Wertpapieren. VCRT_EF_FUND_OtherNonCurrFinancialLiab Andere noch nicht fällige finanzielle Verbindlichkeiten. VCRT_EF_FUND_CurrBonds Kurzfristige Anleihen. VCRT_EF_FUND_CurrBankDebs Kurzfristige Bankschulden. VCRT_EF_FUND_Creditors Gläubiger. VCRT_EF_FUND_OtherCurrFinancialLiab Andere kurzfristige finanzielle Verbindlichkeiten. VCRT_EF_FUND_OtherCurrLiab Andere kurzfristige Verbindlichkeiten. VCRT_EF_FUND_Assets Aktiva. VCRT_EF_FUND_NonCurrAssets Noch nicht fälliges Vermögen. VCRT_EF_FUND_CurrAssets Kurzfristiges Vermögen. VCRT_EF_FUND_Inventory Bestände. VCRT_EF_FUND_Receivables Debitoren. Noch einzuziehende Beträge, Handelsdebitoren, usw. VCRT_EF_FUND_Cash Bargeld. VCRT_EF_FUND_EPS Gewinn je Aktie. VCRT_EF_FUND_EPS_B Gewinn je Aktie (halbjährlich). VCRT_EF_FUND_EPS_Q Gewinn je Aktie (vierteljährlich). VCRT_EF_FUND_PER Price Earning Ratio. Dieser Wert misst das Verhältnis zwischen dem Marktwert eines Unternehmens und seinem gesamten Gewinn (jährlich). VCRT_EF_FUND_PER_B PER halbjährlich. VCRT_EF_FUND_PER_Q PER vierteljährlich. VCRT_EF_FUND_PER_RT PER in Realtime. Er wird jede 5 Minuten berechnet. VCRT_EF_FUND_PtoS Preis nach Umsatz (jährlich). VCRT_EF_FUND_PtoS_B Preis nach Umsatz (halbjährlich). VCRT_EF_FUND_PtoS_Q Preis nach Umsatz (vierteljährlich). VCRT_EF_FUND_PtoS_RT Preis nach Umsatz (Realtime). Er wird jede 5 Minuten berechnet. VCRT_EF_FUND_PtoB Preis nach Buchwert (jährlich). VCRT_EF_FUND_PtoB_RT Preis nach Buchwert (Realtime). Er wird jede 5 Minuten berechnet. VCRT_EF_FUND_PtoCF Preis nach Kassenfluss (jährlich). VCRT_EF_FUND_PtoCF_B Preis nach Kassenfluss (halbjährlich). VCRT_EF_FUND_PtoCF_Q Preis nach Kassenfluss (vierteljährlich). VCRT_EF_FUND_PtoCF_RT Preis nach Kassenfluss (Realtime). Er wird jede 5 Minuten berechnet. VCRT_EF_FUND_DivYield Rendite/Dividendenrentabilität (jährlich). VCRT_EF_FUND_DivYield_B Rendite/Dividendenrentabilität (halbjährlich). VCRT_EF_FUND_DivYield_Q Rendite/Dividendenrentabilität (vierteljährlich). VCRT_EF_FUND_DivYield_RT Rendite/Dividendenrentabilität (Realtime). Er wird jede 5 Minuten berechnet. VCRT_EF_FUND_PayOutR Payout ratio (jährlich). VCRT_EF_FUND_PayOutR_B Payout ratio (halbjährlich). VCRT_EF_FUND_PayOutR_Q Payout ratio (vierteljährlich). VCRT_EF_FUND_GrossMargin Bruttogewinn der Umsätze (jährlich). VCRT_EF_FUND_GrossMargin_B Bruttogewinn der Umsätze (halbjährlich). VCRT_EF_FUND_GrossMargin_Q Bruttogewinn der Umsätze (vierteljährlich). VCRT_EF_FUND_OpMargin Bruttogewinn der Umsätze (jährlich). VCRT_EF_FUND_OpMargin_B Bruttogewinn der Umsätze (halbjährlich). TRADING TOOLS | VISUALCHART 66 VCRT_EF_FUND_OpMargin_Q Bruttogewinn der Umsätze (vierteljährlich). VCRT_EF_FUND_PreTaxMargin EBIT der Umsätze (jährlich). VCRT_EF_FUND_PreTaxMargin_B EBIT der Umsätze (halbjährlich). VCRT_EF_FUND_PreTaxMargin_Q EBIT der Umsätze (vierteljährlich). VCRT_EF_FUND_EfTaxRate Effektiver Steuersatz (jährlich). VCRT_EF_FUND_EfTaxRate_B Effektiver Steuersatz (halbjährlich). VCRT_EF_FUND_EfTaxRate_Q Effektiver Steuersatz (vierteljährlich). VCRT_EF_FUND_ROA Gesamtkapitalrentabilität (jährlich). VCRT_EF_FUND_ROA_B Gesamtkapitalrentabilität (halbjährlich). VCRT_EF_FUND_ROA_Q Gesamtkapitalrentabilität (vierteljährlich). VCRT_EF_FUND_ROE Eigenkapitalrendite (jährlich). VCRT_EF_FUND_ROE_B Eigenkapitalrendite (halbjährlich). VCRT_EF_FUND_ROE_Q Eigenkapitalrendite (vierteljährlich). VCRT_EF_FUND_ROI Investitionsrendite (jährlich). VCRT_EF_FUND_ROI_B Investitionsrendite (halbjährlich). VCRT_EF_CALF_DayCash Gehandeltes Bargeld. Tagessumme des gehandelten Volumens durch den Preis jeder Transaktion. VCRT_EF_CALF_MonthRotation Monatliche Rotation. Monatsanzahl, die nötig für das Handel des Volumen gleich der gesamten Aktienzahl war. VCRT_EF_CALF_DayHi Tageshoch. VCRT_EF_CALF_PToDayHI Prozentabstand zum Tageshoch. VCRT_EF_CALF_WeekHi Wochenhoch. VCRT_EF_CALF_PToWeekHi Prozentabstand zum Wochenhoch. VCRT_EF_CALF_MonthHi Monatshoch. VCRT_EF_CALF_PToMonthHi Prozentabstand zum Monatshoch. VCRT_EF_CALF_52WeekHi Hoch der letzten 52 Wochen. VCRT_EF_CALF_PTo52WeekHi Prozentabstand zum Hoch der letzten 52 Wochen. VCRT_EF_CALF_HistoricHi Historiehoch. VCRT_EF_CALF_PToHistoricHi Prozentabstand zum Historiehoch. VCRT_EF_CALF_5YearsHi Hoch der letzten 5 Jahre. VCRT_EF_CALF_PTo5YearsHi Prozentabstand zum Hoch der letzten 5 Jahre. VCRT_EF_CALF_CurrentYearHi Hoch des laufenden Jahres. VCRT_EF_CALF_PToCYearHi Prozentabstand zum Hoch des laufenden Jahres. VCRT_EF_CALF_DayLo Tagestief. VCRT_EF_CALF_PToDayLo Prozentabstand zum Tagestief. VCRT_EF_CALF_WeekLo Wochentief. VCRT_EF_CALF_PToWeekLo Prozentabstand zum Wochentief. VCRT_EF_CALF_MonthLo Monatstief. VCRT_EF_CALF_PToMonthLo Prozentabstand zum Monatstief. VCRT_EF_CALF_52WeekLo Tief der letzten 52 Wochen. VCRT_EF_CALF_PTo52WeekLo Prozentabstand zum Tief der letzten 52 Wochen. VCRT_EF_CALF_HistoricalLow Historietief. VCRT_EF_CALF_PtoHistoricLow Prozentabstand zum Historietief. VCRT_EF_CALF_5YearsLo Tief der letzten 5 Jahre. VCRT_EF_CALF_PTo5YearsLo Prozentabstand zum Tief der der letzten 5 Jahre. VCRT_EF_CALF_CurrentYearLo Tief des laufenden Jahres. VCRT_EF_CALF_PToCYearLo Prozentabstand zum Tief des Jahres. VCRT_EF_CALF_DayYield Tagesrentabilität. VCRT_EF_CALF_WeekYield Wochenrentabilität. VCRT_EF_CALF_MonthYield Monatsrentabilität. VCRT_EF_CALF_52WeekYield Rentabilität der letzten 52 Wochen. VCRT_EF_CALF_CurrentYYield Rentabilität des laufenden Jahres. VCRT_EF_CALF_5YearsYield Rentabilität der letzten 5 Jahre. VCRT_EF_CALF_TradeDiferencial Tradedifferenz. Differenz zwischen dem ausgeführten Kauf- und Verkaufsvolumen am Tag. VCRT_EF_CALF_Beta Beta Koeffizient. Für die Berechnung dieses Wertes werden die wöchentlichen Rendite der letzten 5 Jahre des Titels und des Referenzindexes (RefIndex Rv und Ri jeweils) übernommen. Die Regressionslinie dieser Werte wird berechnet, in dem Ri als Y-Variable und Rv als XVariable betrachtet werden. Die Neigung der geraden Linie ist Beta. Falls 5 Jahre Historie nicht vorhanden ist, wird die verfügbare Periode benutzt, vorausgesetzt diese Periode größer als 1 Jahr ist. Die Berechnung und die Aktualisierung finden wöchentlich statt. VCRT_EF_CALF_Delta Delta einer Option. VCRT_EF_CALF_Gamma Gamma einer Option. Die Änderungsgeschwindigkeit des Delta wird hiermit gemessen. VCRT_EF_CALF_Theta Die Änderung einer Option im Laufe der Zeit wird hiermit gemessen. VCRT_EF_CALF_Vega Die Volatilitätsempfindlichkeit des zugrunde liegenden Basiswertes des Optionspreises wird hiermit gemessen. VCRT_EF_CALF_Rho Optionsempfindlichkeit auf Wechselkurse. VCRT_EF_CALF_Alfa Alfa Koeffizient. Für die Berechnung dieses Wertes werden die wöchentlichen Rendite der letzten 5 Jahre des Titels und des Referenzindexes (RefIndex Rv und Ri jeweils) übernommen. Die Regressionslinie dieser Werte wird berechnet, in dem Ri als y-Variable und Rv als XVariable betrachtet werden. Die Kreuzung der geraden Linie mit der x-Achse ist der Alfa Parameter. Falls 5 Jahre Historie nicht vorhanden ist, wird die verfügbare Periode benutzt, vorausgesetzt diese Periode größer als 1 Jahr ist. Die Berechnung und die Aktualisierung finden wöchentlich statt. VCRT_EF_CALF_VaR Value at risk. Hier wird das höchste Prozent spezifiziert, das in einer Sitzung mit 95% Gewissheit verloren gehen kann. VCRT_EF_CALF_VaR99 Spezifiziert das höchste Prozent, das in einer Sitzung mit 99% Gewissheit verloren gehen kann. VCRT_EF_CALF_Liquidity Liquidität. Ein interessanter Parameter für die Portfoliobewertung ist die Liquidität seiner Titel. Als Liquidität verstehen wir, die verfügbare Leichtigkeit eine Position zu schließen, oder die entgegengesetzten Kosten beim Schließen einer Position weil nicht genügend Gegenpartie vorhanden ist. VCRT_EF_CALF_AvPriceDay Durchschnittspreis des Tages. VCRT_EF_CALF_AvPriceWeek Durchschnittspreis der Woche. VCRT_EF_CALF_AvPriceMonth Durchschnittspreis des Monats. VCRT_EF_CALF_AvPriceQuarter Durchschnittspreis des Vierteljahres. VCRT_EF_CALF_AvPriceYear Durchschnittspreis des Jahres. VCRT_EF_CALF_AvMarketCapDay Durchschnittspreiskapitalisierung des Tages. TRADING TOOLS | VISUALCHART 68 VCRT_EF_CALF_AvMarketCapWeek Durchschnittspreiskapitalisierung der Woche. VCRT_EF_CALF_AvMarketCapMonth Durchschnittsmarktkapitalisierung des Monats. VCRT_EF_CALF_AvMarketCapQuarter Durchschnittsmarktkapitalisierung des Vierteljahres. VCRT_EF_CALF_AvMarketCapYear Durchschnittsmarktkapitalisierung des Jahres. VCRT_EF_RT_CapType Klassifizierung nach Kapitalisierung. VCRT_EF_RT_YieldWeekly Wöchentliche Rentabilität. VCRT_EF_RT_YieldMonthly Monatliche Rentabilität. VCRT_EF_RT_YieldQuarterly Vierteljährliche Rentabilität. VCRT_EF_RT_YieldBiannually Halbjährliche Rentabilität. VCRT_EF_RT_YieldYearly Jährliche Rentabilität. VCRT_EF_TECA_Support1 Erste Unterstützung. VCRT_EF_TECA_SupportViolated Durchgebrochene Unterstützung. VCRT_EF_TECA_PToSupport1 Prozentabstand zur ersten Unterstützung. VCRT_EF_TECA_Support2 Zweite Unterstützung. VCRT_EF_TECA_PToSupport2 Prozentabstand zur zweiten Unterstützung. VCRT_EF_TECA_Support3 Dritte Unterstützung. VCRT_EF_TECA_PToSupport3 Prozentabstand zur dritten Unterstützung. VCRT_EF_TECA_Resistance1 Erster Widerstand. VCRT_EF_TECA_ResistanceViolated Durchgebrochener Widerstand. VCRT_EF_TECA_PToResistance1 Prozentabstand zum ersten Widerstand. VCRT_EF_TECA_Resistance2 Zweiter Widerstand. VCRT_EF_TECA_PToResistance2 Prozentabstand zum zweiten Widerstand. VCRT_EF_TECA_Resistance3 Dritter Widerstand. VCRT_EF_TECA_PToResistance3 Prozentabstand zum dritten Widerstand. VCRT_EF_TECA_BullTLine Bullische Trendlinie. VCRT_EF_TECA_CrossBullTLine Gekreuzte bullische Trendlinie. VCRT_EF_TECA_BullTLine2 Zweite bullische Trendlinie. VCRT_EF_TECA_BullTLineSlope Neigung der bullischen Trendlinie. VCRT_EF_TECA_PToBullTLine Prozentabstand zur bullischen Trendlinie. VCRT_EF_TECA_BearTLine Bärische Trendlinie. VCRT_EF_TECA_CrossBearTLine Gekreuzte bärische Trendlinie. VCRT_EF_TECA_BearTLine2 Zweite bärische Trendlinie. VCRT_EF_TECA_BearTLineSlope Neigung der bärischen Trendlinie. VCRT_EF_TECA_PToBearTLine Prozentabstand zur bärischen Trendlinie. VCRT_EF_TECA_RegLine Regressionslinie. VCRT_EF_TECA_RegSlope Neigung der Regressionslinie. VCRT_EF_TECA_TopRegChannel Obere Grenze des Regressionskanals. VCRT_EF_TECA_BotRegChannel Untere Grenze des Regressionskanals. VCRT_EF_TECA_CrossTopRegChannel Obere Grenze des Regressionskanals durchgekreuzt. VCRT_EF_TECA_CrossBotRegChannel Untere Grenze des Regressionskanals durchgekreuzt. VCRT_EF_TECA_RegLineParams Parameter für die Zeichnung der Linie und des Regressionskanals. VCRT_EF_TECA_PToRegLine Prozentabstand zur Regressionslinie. VCRT_EF_TECA_PToTopRegCh Prozentabstand zur oberen Linie des Regressionskanals. VCRT_EF_TECA_PToBotRegCh Prozentabstand zur unteren Linie des Regressionskanals. VCRT_EF_TECA_PercentGap Gap im Prozent. Wenn eine Lücke zwischen der Eröffnung und dem Schluss des vorigen Tages vorhanden ist, zeigt dieses Feld den Prozentabstand. VCRT_EF_TECA_DoubleTop Doppeltop Chartfigur. VCRT_EF_TECA_DoubleBottom Doppelboden Chartfigur. VCRT_EF_TECA_HeadShoulders Kopf-Schulter-Kopf Chartfigur. VCRT_EF_TECA_BreakingFloor Unterstützungsdurchbruch. VCRT_EF_TECA_FibonacciR1 Erstes Fibonacci-Retracement. VCRT_EF_TECA_CrossFibR1 Erstes durchgekreuztes Retracement. VCRT_EF_TECA_PToFibonacciR1 Prozentabstand zum ersten Fibonacci-Retracement. VCRT_EF_TECA_FibonacciR2 Zweites Fibonacci-Retracement. VCRT_EF_TECA_CrossFibR2 Zweites durchgekreuztes Retracement. VCRT_EF_TECA_PToFibonacciR2 Prozentabstand zum zweiten Fibonacci-Retracement. VCRT_EF_TECA_FibonacciR3 Drittes Fibonacci-Retracement. VCRT_EF_TECA_CrossFibR3 Drittes durchgekreuztes Retracement. VCRT_EF_TECA_PToFibonacciR3 Prozentabstand zum dritten Fibonacci-Retracement. VCRT_EF_TECA_FibonacciR4 Viertes Fibonacci-Retracement. VCRT_EF_TECA_CrossFibR4 Viertes durchgekreuztes Retracement. VCRT_EF_TECA_PToFibonacciR4 Prozentabstand zum vierten Fibonacci-Retracement. VCRT_EF_TECA_GannR1 Erstes Gann-Retracement. VCRT_EF_TECA_PToGannR1 Prozentabstand zum ersten Gann-Retracement. VCRT_EF_TECA_GannR2 Zweites Gann-Retracement. VCRT_EF_TECA_PToGannR2 Prozentabstand zum zweiten Gann-Retracement. VCRT_EF_TECA_GannR3 Drittes Gann-Retracement. VCRT_EF_TECA_PToGannR3 Prozentabstand zum dritten Gann-Retracement. VCRT_EF_TECA_GannR4 Viertes Gann-Retracement. VCRT_EF_TECA_PToGannR4 Prozentabstand zum vierten Gann-Retracement. VCRT_EF_TECA_ElliotWN Anzahl der Elliot-Welle. VCRT_EF_TECA_WMagnitude Wellenbreite. VCRT_EF_TECA_AvWMagnitude Durchschnittsbreite der Welle. VCRT_EF_TECA_CTrendMagnitude Breite des aktuellen Trends. VCRT_EF_TECA_AvTrendMagnitude Durchschnittsbreite des Trends. VCRT_EF_TECA_Hammer Kerze vom Typ Regenschirm, in der das Ende eines bärischen Trends erwartet wird. VCRT_EF_TECA_HangingMan Kerze vom Typ Sonnenschirm, in der das Ende eines bullischen Trends erwartet wird. VCRT_EF_TECA_InvertedHammer Kerze mit kleinem realen Körper und großen oberen Schatten, in der das Ende eines bärischen Trends erwartet wird. VCRT_EF_TECA_BullishHarami Bullisches Pattern bestehend aus 2 Kerzen. Die erste ist eine große Kerze. Die danach folgende Kerze besteht aus einem kleinen Körper, der komplett innerhalb des ersten Kerzenkörpers liegt. VCRT_EF_TECA_BearishHarami Bärisches Pattern bestehend aus 2 Kerzen. Die erste ist eine große Kerze. Die danach folgende Kerze besteht aus einem kleinen Körper, der komplett innerhalb des ersten Kerzenkörpers liegt. VCRT_EF_TECA_ShootingStar Kerze vom Typ Star, in der das Ende eines bullischen Trends erwartet wird. VCRT_EF_TECA_EveningStar Pattern vom Typ Star bestehend aus 3 Kerzen. Die erste ist eine große weiße Kerze. Die zweite ist ein Star. Die letzte bestätigt den Trendwechsel. Mit diesem Pattern wird das Ende eines bullischen Trends erwartet. VCRT_EF_TECA_MorningStar Pattern vom Typ Star bestehend aus 3 Kerzen. Die erste TRADING TOOLS | VISUALCHART 70 ist eine große weiße Kerze. Die zweite ist ein Star. Die letzte bestätigt den Trendwechsel. Mit diesem Pattern wird das Ende eines bärischen Trends erwartet. VCRT_EF_TECA_DarkCloudCover Dieses Pattern gilt als bärisches Trendwendesignal. Der Markt setzt zunächst seine bullische Marktbewegung mit einer langen weißen Kerze fort. Die zweite Kerze eröffnet über dem vorherigen Höchstkurs (bzw. Schlusskurs), schließt jedoch in der Nähe des Eröffnungskurses der vorherigen Kerze. VCRT_EF_TECA_PiercingLine Dieses Pattern zeigt eine bullische Umkehrformation bestehend aus zwei Kerzen. Nach einer langen schwarzen Kerze im Abwärtstrend liegen die Eröffnung der nächsten Kerze unter dem Tief der vorigen Kerze und der Schluss oberhalb der Mitte des vorigen schwarzen Kerzenkörpers. VCRT_EF_TECA_BullishEngulfing Dieses Pattern zeigt eine bullische Umkehrformation bestehend aus zwei Kerzen. Die erste Kerze ist eine schwarze Kerze. Die zweite Kerze ist eine große weise Kerze, deren Body die vorherige schwarze Kerze komplett umschließt. VCRT_EF_TECA_BearishEngulfing Dieses Pattern zeigt eine bärische Umkehrformation bestehend aus zwei Kerzen. Die erste ist eine weise Kerze. Die zweite ist eine schwarze Kerze, die die vorige Kerze umschließen muss. VCRT_EF_TECA_ThreeWhiteSoldiers 1. Dieses Pattern zeigt eine bullische Umkehrformation bestehend aus drei Kerzen mit jeweils höheren Preisen, die optimalerweise in der Nähe ihres Höchstkurses schließen. VCRT_EF_TECA_ThreeBlackCrows Dieses Pattern zeigt eine bärische Umkehrformation bestehend aus drei Kerzen. VCRT_EF_IND_RSI 14-Tage-RSI. VCRT_EF_IND_TendRSI RSI Trend. VCRT_EF_IND_MACD 12-Tage-MACD. Der MACD ist die Differenz zwischen 2 exponentiellen Durchschnitte: Average1 mit Periode 12 Average2 mit Periode 26 MACD=AVExp(12) - AVExp(26) VCRT_EF_IND_MACDSig Signallinie für die MACD Wirkung. VCRT_EF_IND_TendMACD MACD Trend. VCRT_EF_IND_StochasticSK Stochastic (Linie SK). VCRT_EF_IND_StochasticSD Stochastic (Linie SD). VCRT_EF_IND_TendStochastic Stochastic Trend. VCRT_EF_IND_BollingerCL10 10-Tage zentralles Bollinger Band. VCRT_EF_IND_BollingerUpL10 10-Tage oberes Bollinger Band. VCRT_EF_IND_BollingerDownL10 10-Tage unteres Bollinger Band. VCRT_EF_IND_BollingerCL20 20-Tage zentralles Bollinger Band. VCRT_EF_IND_BollingerUpL20 20-Tage oberes Bollinger Band. VCRT_EF_IND_BollingerDownL20 20-Tage unteres Bollinger Band. VCRT_EF_IND_AV15 15-Tage-Moving Average. VCRT_EF_IND_TendAV15 15-Tage-Moving Average Trend. VCRT_EF_IND_PToAV15 Prozentabstand zum 15-Tage-Average. VCRT_EF_IND_AV50 50-Tage-Moving Average. VCRT_EF_IND_TendAV50 50-Tage-Moving Average Trend. VCRT_EF_IND_PToAV50 Prozentabstand zum 50-Tage-Average. VCRT_EF_IND_AV100 100-Tage-Moving Average. VCRT_EF_IND_TendAV100 100-Tage-Moving Average Trend. VCRT_EF_IND_PToAV100 Prozentabstand zum 100-Tage-Average. VCRT_EF_IND_AV200 200-Tage-Moving Average. VCRT_EF_IND_TendAV200 200-Tage-Moving Average Trend. VCRT_EF_IND_PToAV200 Prozentabstand zum 200-Tage-Average. VCRT_EF_IND_DifAv15Av50 Prozentabstand zwischen den 15- und 50-Tage Average. VCRT_EF_IND_DifAv50Av200 Prozentabstand zwischen den 50- und 200-Tage Average. VCRT_EF_IND_DayVol Tagesvolumen. VCRT_EF_IND_WeekVol Wochenvolumen. VCRT_EF_IND_MonthVol Monatsvolumen. VCRT_EF_IND_52WeekVol Volumen der letzten 52 Wochen. VCRT_EF_IND_Av52WVol Durchschnittsvolumen der letzten 52 Wochen. VCRT_EF_IND_TendAv52WVol Trend des Durchschnittsvolumens der letzten 52 Wochen. VCRT_EF_IND_CurrentYVol Volumen des laufenden Jahres. VCRT_EF_IND_AvVol15 15-Tage-Durchschnittsvolumen. VCRT_EF_IND_TendAvVol15 15-Tage-Volumen Moving Average Trend. VCRT_EF_IND_RelativeVol Differenz zwischen dem Volumen der aktuellen Sitzung mit 15-Tage-Volumen Moving Average. VCRT_EF_IND_ComparativeVol Volumendifferenz (berechnet die Differenz zwischen einem Volumenvergleich eines Monats in Bezug auf den letzten 52 Wochen mit identischem Vergleich für denselben Monat des vorigen Jahres). VCRT_EF_IND_DayVolatility Tagesvolatilität (die Volatilität zeigt das Risiko in Bezug auf die Titelschwankungen). Dieses Feld wird ähnlich wie der Volatilitätsindex Indikator berechnet, aber sie wird nach dem Titelpreis gewichtet: Wir definieren: Ci-1 = Schluß des vorigen Balkens MAXi = Balkenhoch MINi = Balkentief Wir berechnen: a = | MAXi - MINi| b = | Ci-1 - MAXi| c = | Ci-1 - MINi| TRi = 100 * max (a, b, c)/ Ci-1 Es wird nach dem Schlusspreis des vorigen Balkens gewichtet. Der erste Volatilitätswert ist der Durchschnitt der TRi für die angegebene 'p' Periode. Die Folgenden werden so berechnet: Vi = (TRi + Vi-1 * (p - 1)) /p Für die verschiedenen Volatilitätswerten sind folgende anzuwendenden Perioden und Balken zu betrachten: Tag => 100 Balken von 15 Minuten Woche => 500 Balken von 15 Minuten Monat => 23 Balken von 1 Tag TRADING TOOLS | VISUALCHART 72 52 Wochen => 250 Balken von 1 Tag 5 Jahre => 1250 Balken von 1 Tag VCRT_EF_IND_DayVolatilityAlert Tagesvolatilitätssignal. Wenn TRi > 3 * Vi-1 in der Tagesvolatilität. VCRT_EF_IND_WeekVolatility Wochenvolatilität. VCRT_EF_IND_MonthVolatility Monatsvolatilität. VCRT_EF_IND_52WeekVolatility Volatilität der letzten 52 Wochen. VCRT_EF_IND_5YearsVolatility Volatilität der letzten 5 Jahren. VCRT_EF_IND_ADX 14-Tage-Directional Movement. VCRT_EF_IND_TendADX 14-Tage-ADX Trend. VCRT_EF_IND_PositiveDi 14-Tage-DI +. VCRT_EF_IND_TendPositiveDi 14-Tage-DI + Trend. VCRT_EF_IND_NegativeDi 14-Tage-DI-. VCRT_EF_IND_TendNegativeDi 14-Tage-DI- Trend. VCRT_EF_IND_AccumDis AccumDis VCRT_EF_IND_StdDesviation Standard Abweichung. Es wird die standard Abweichung der wöchentlichen Rentabilitäten der letzten 5 Jahren berechnet. Ist die 5 Jahren Historie nicht vorhanden, wird die verfügbare Zeit benutzt, aber mindestens 1 Jahr. Die Berechnung und die Aktualisierung sind wöchentlich. VCRT_EF_PORT_PHYield VCRT_EF_PORT_PDYield Prozentrentabilität des laufenden Tages. VCRT_EF_PORT_PWYield Prozentrentabilität der laufenden Woche. VCRT_EF_PORT_PMYield Monatsrentabilität. VCRT_EF_PORT_P52WYield Rentabilität der letzten 52 Wochen. VCRT_EF_PORT_PCYYield Prozentrentabilität des laufenden Jahres. VCRT_EF_PORT_P3YYield Prozentrentabilität der letzten 3 Jahre. VCRT_EF_PORT_P5YYield Prozentrentabilität der letzten 5 Jahre. VCRT_EF_PORT_PPIndex Historischer Wert der aktuellen Position eines Portfolios. VCRT_EF_PORT_PVaR VaR (Value at Risk) des Portfolios. VCRT_EF_PORT_PVolume Volumen (Kontraktenanzahl). VCRT_EF_PORT_PPrice Preis (per Kontrakt). VCRT_EF_PORT_PValue Marktwert der offenen Positionen eines Portfolios. VCRT_EF_PORT_PCash Verfügbares Bargeld eines Portfolios. VCRT_EF_PORT_PCredit Einnahme einer Transaktion. VCRT_EF_PORT_PBalance Bilanz (Einnahme minus Ausgaben). Sie zeigt die Gewinne und Verluste der Trades. VCRT_EF_PORT_PNumTransacts Anzahl der ausgeführten Transaktionen. VCRT_EF_PORT_PNumPositions Anzahl der Positionen im Portfolio. VCRT_EF_PORT_AvgBuyPrice Durchschnittskaufpreis einer Position. Ist derselbe Wertpapier in zwei Trades auf verschiedene Preise gekauft, zeigt dieses Feld den Durchschnittspreis in Bezug auf die in jeder Operation gekaufte Kontraktenanzahl. VCRT_EF_PORT_PShort Zeigt, ob die Position verkauft ist oder nicht. Bis jetzt sind Baissepositionen im Portfolio nicht möglich, wobei diese Funktion in neuen Versionen eingefügt wird. VCRT_EF_PORT_PDividends Erhaltene Dividende (bis zu diesem Datum kumuliert). VCRT_EF_PORT_PNumDividends Erhaltene Dividende (bis zu diesem Datum kumuliert). VCRT_EF_PORT_PNumEarnings Anzahl der geschlossenen Operationen. VCRT_EF_PORT_PAccount Konto der Transaktion. VCRT_EF_PORT_PTransactType Transaktionstyp. Es kann einen Kauf, Verkauf, Einnahme, Rückerstattung, Provision oder Dividende sein. VCRT_EF_PORT_PDebit Ausgaben einer Transaktion. VCRT_EF_PORT_PFees Provisionen. VCRT_EF_PORT_PGain Ausgeführte Garantien. VCRT_EF_PORT_PGLatentes Latente Garantien. VCRT_EF_PORT_Patrimonio Portfoliovermögen (PValue + PCash) VCRT_EF_PORT_PReturn Historischer Prozentgewinn. VCRT_EF_INDA_DayGainers Anzahl der steigenden Unternehmen am Tag (steigende Unternehmen von allen Indices und Märkten). VCRT_EF_INDA_DayLosers Anzahl der fallenden Unternehmen am Tag (fallende Unternehmen von allen Indices und Märkten). VCRT_EF_INDA_DayRepeat Anzahl der wiederholenden Unternehmen am Tag (wiederholende Unternehmen von allen Indices und Märkten). VCDataSource AUFZÄHLUNGEN Nachfolgend sind die möglichen Werte erklärt, die ein Variablentyp der VCDataSource Library übernehmen kann. EnumVCDSOrderType. Zeigt den im System ausgeführten Ordertyp (siehe VCDS_SystemOrder und VCDS_Trade). Wert Beschreibung VCDS_OT_Market Order am Markt. VCDS_OT_Limit Limit Order. VCDS_OT_Stop Stop Order. EnumVCDSOrderSide. Zeigt, ob die Order des Trades eine Kauf- oder Verkaufsorder ist (siehe VCDS_Trade). Wert Beschreibung VCDS_OS_Unknown Unbekannt (nicht spezifiziert). VCDS_OS_Buy Kauf. VCDS_OS_Sell Verkauf. EnumVCDSDataSourceType. Zeigt den Quellentyp (siehe VCDS_DataSource). Wert Beschreibung VCDS_DT_Any Nicht spezifiziert. VCDS_DT_DataSerie Die Quelle ist eine Serie (VCDS_DataSerie). VCDS_DT_Indicator Die Quelle ist ein Indikator (VCDS_Indicator). VCDS_DT_System Die Quelle ist ein System (VCDS_System). EnumVCDSCompressionType. Zeigt den Komprimierungstyp einer Serie. Für die Tickquellen zeigen die Komprimierungseinheiten die Tickanzahl in jedem Balken. Für die restlichen Komprimierungstypen zeigen die Einheiten die Anzahl der Minuten, Tagen, Wochen und Monaten. Wert VCDS_CT_Ticks TRADING TOOLS | VISUALCHART Beschreibung Tickkomprimierung. 74 VCDS_CT_Minutes Minutenkomprimierung. VCDS_CT_Days Tageskomprimierung. VCDS_CT_Weeks Wochenkomprimierung. VCDS_CT_Months Monatskomprimierung. EnumVCDSContextWorkMode. Zeigt den aktiven Kontexttyp. Wenn Datenserien erstellt sind, können diese die temporäre Skala miteinander teilen. Diese Funktion ist sehr nützlich, falls zwei Datenserien verglichen werden möchten, ein Indikator mit zwei Datenserien eingefügt wird, usw. Die Serien, die den Kontext miteinander teilen, machen es standardmäßig, und in diesem Fall wird der zuerst erstellte Kontext miteinander geteilt, der nicht zu einer Serie mit Tickkomprimierung gehört, oder der Kontext der ersten Tickserie, wenn nur Tickserien existieren. Wert Beschreibung VCDS_CWM_Multiple Die Serien werden in unabhängigen Kontexten erstellt. VCDS_CWM_Shared Die Serien teilen denselben Kontext, d.h. den standardmäßigen Kontext, miteinander. EnumVCDSInstrumentType. Instrumententyp (siehe VCDS_SymbolInfo). Wert Beschreibung VCDS_IT_Currencies Devisen. VCDS_IT_Future Futures. VCDS_IT_Index Indices. VCDS_IT_Mixed Mischung. VCDS_IT_Option Optionen. VCDS_IT_Fund Fonds. VCDS_IT_Warrant Warrants. VCDS_IT_Stock Aktien. EnumVCDSSystemEvent. Informiert über das Ereignis unter OnSystemEvent. Wert Beschreibung VCDS_SE_NewTrade Neuer Trade wurde generiert. VCDS_SE_NewOrder Neue Order wurde generiert. VCDS_SE_ChangedPosition Eine Positionsänderung wurde ausgeführt. EnumVCDSStatisticVariable. Zeigt die statistische Variable. Wert Statistische Variable in VBA (AppSystem) Beschreibung VC_SV_Gross svGross Bruttogewinn. VC_SV_GrossProfit svGrossProfit Bruttogewinn (kumuliert). VC_SV_Stdev_Gross svStdev_Gross Bruttogewinn (Standardabweichung). VC_SV_Avg_Gross svAvg_Gross Bruttogewinn (Durchschnitt). VC_SV_CV_Gross svCV_Gross Bruttogewinn (Abweichungskoeffizient). VC_SV_StdevPAvg_Gross svStdevPAvg_Gross Bruttogewinn (+1 Abw). VC_SV_StdevMAvg_Gross svStdevMAvg_Gross Bruttogewinn (-1 Abw). VC_SV_Max_Gross svMax_Gross Bruttogewinn (Maximum). VC_SV_Min_Gross svMin_Gross Bruttogewinn (Minimum). VC_SV_Select_Gross svSelect_Gross Bruttogewinn (Select). VC_SV_Outlier_Gross svOutlier_Gross Bruttogewinn (Outliers). VC_SV_Net svNet Nettogewinn. VC_SV_NetProfit svNetProfit Nettogewinn (kumuliert). VC_SV_Stdev_Net svStdev_Net Nettogewinn (Standardabweichung). VC_SV_Avg_Net svAvg_Net Nettogewinn (Durchschnitt). VC_SV_CV_Net svCV_Net Nettogewinn (Abweichungskoeffizient). VC_SV_StdevPAvg_Net svStdevPAvg_Net Nettogewinn (+1 Abw). VC_SV_StdevMAvg_Net svStdevMAvg_Net Nettogewinn (-1 Abw). VC_SV_Max_Net svMax_Net Nettogewinn (Maximum). VC_SV_Min_Net svMin_Net Nettogewinn (Minimum). VC_SV_Select_Net svSelect_Net Nettogewinn (Select). VC_SV_Outlier_Net svOutlier_Net Nettogewinn (Outliers). VC_SV_Stdev_NetProfit svStdev_NetProfit Kumulierter Nettogewinn (Standardabweichung). VC_SV_Avg_NetProfit svAvg_NetProfit Kumulierter Nettogewinn (Durchschnitt). VC_SV_CV_NetProfit svCV_NetProfit Kumulierter Nettogewinn (Abweichungskoeffizient). VC_SV_StdevPAvg_NetProfit svStdevPAvg_NetProfit Kumulierter Nettogewinn (+1 Abw). VC_SV_StdevMAvg_NetProfit svStdevMAvg_NetProfit Kumulierter Nettogewinn (-1 Abw). VC_SV_Max_NetProfit svMax_NetProfit Kumulierter Nettogewinn (Maximum). VC_SV_Min_NetProfit svMin_NetProfit Kumulierter Nettogewinn (Minimum). VC_SV_Select_NetProfit svSelect_NetProfit Select Netto (kumuliert). VC_SV_LongShortRatio svLongShortRatio Ratio: Long/Short. VC_SV_WinnersLosersRatio svWinnersLosersRatio Ratio: Positiv/Negativ. VC_SV_ProfitFactor svProfitFactor Profit-Factor. VC_SV_Adjusted_ProfitFactor svAdjusted_ProfitFactor Profit-Factor Adjusted (PRR). VC_SV_Select_ProfitFactor svSelect_ProfitFactor Profit-Factor (Select). VC_SV_Fiability svFiability Zuverlässigkeit. VC_SV_TradesCount svTradesCount Anzahl der Trades. VC_SV_Open_TradesCount svOpen_TradesCount Anzahl der Trades. (Off. Pos.). VC_SV_LinearRegression svLinearRegression Regressionslinie. VC_SV_Adjusted_GrossProfit svAdjusted_GrossProfit Bruttogewinn Adjusted. VC_SV_Adjusted_NetOverall svAdjusted_NetOverall Nettogewinn Adjusted. TRADING TOOLS | VISUALCHART 76 VC_SV_Drawdown svDrawdown DrawDown. VC_SV_NetDrawdown svNetDrawdown DrawDown (kumuliert). VC_SV_Avg_Drawdown svAvg_Drawdown DrawDown (Durchschnitt). VC_SV_Stdev_Drawdown svStdev_Drawdown DrawDown (Standardabweichung). VC_SV_StdevPAvg_Drawdown svStdevPAvg_Drawdown DrawDown (-1 Abw). VC_SV_StdevMAvg_Drawdown svStdevMAvg_Drawdown DrawDown (-1 Abw). VC_SV_CV_Drawdown svCV_Drawdown DrawDown (Abweichungskoeffizient). VC_SV_Max_Drawdown svMax_Drawdown DrawDown (Maximum). VC_SV_Min_Drawdown svMin_Drawdown DrawDown (Minium). VC_SV_Runup svRunup Runup. VC_SV_NetRunup svNetRunup Runup (kumuliert). VC_SV_Avg_Runup svAvg_Runup Runup (Durchschnitt). VC_SV_Stdev_Runup svStdev_Runup Runup (Standardabweichung). VC_SV_StdevPAvg_Runup svStdevPAvg_Runup Runup (+1 Abw). VC_SV_StdevMAvg_Runup svStdevMAvg_Runup Runup (-1 Abw). VC_SV_CV_Runup svCV_Runup Runup (Abweichungskoeffizient). VC_SV_Max_Runup svMax_Runup Runup (Maximum). VC_SV_Min_Runup svMin_Runup Runup (Minimum). VC_SV_Adjusted_NetOverall_DIV_Min_ Profit svAdjusted_NetOverall_DIV_Min_Pro fit Ratio: Nettogewinn Adjusted/Mindestgewinn. VC_SV_NetProfit_DIV_Min_Profit svNetProfit_DIV_Min_Profit Ratio: Nettogewinn kumuliert/Mindestnettoge winn. VC_SV_Adjusted_NetOverall_DIV_Min_ Drawdown svAdjusted_NetOverall_DIV_Min_Dra wdown Nettogewinn Adjusted/Mindester Drawdown. VC_SV_NetProfit_DIV_Min_Drawdown svNetProfit_DIV_Min_Drawdown Kumulierter Nettogewinn /Mindester Drawdown. VC_SV_Open_BarCount svOpen_BarCount Balkenanzahl (Offene Pos.). VC_SV_BarCount svBarCount Balkenanzahl. VC_SV_Acc_BarCount svAcc_BarCount Balkenanzahl (kumuliert). VC_SV_Avg_BarCount svAvg_BarCount Balkenanzahl (Durchschnitt). VC_SV_Max_BarCount svMax_BarCount Balkenanzahl (Maximum). VC_SV_Min_BarCount svMin_BarCount Balkenanzahl (Minimum). VC_SV_Stdev_BarCount svStdev_BarCount Balkenanzahl (Standardabweichung). VC_SV_StdevPAvg_BarCount svStdevPAvg_BarCount Balkenanzahl (+1 Abw). VC_SV_StdevMAvg_BarCount svStdevMAvg_BarCount Balkenanzahl (- 1 Abw). VC_SV_BarsBetweenTrades svBarsBetweenTrades Balken zwischen Trades. VC_SV_Acc_BarsBetweenTrades svAcc_BarsBetweenTrades Balken zwischen Trades. (Kumuliert). VC_SV_Avg_BarsBetweenTrades svAvg_BarsBetweenTrades Balken zwischen Trades. (Durchschnitt). VC_SV_Max_BarsBetweenTrades svMax_BarsBetweenTrades Balken zwischen Trades. (Maximum). VC_SV_Min_BarsBetweenTrades svMin_BarsBetweenTrades Balken zwischen Trades. (Minimum). VC_SV_Stdev_BarsBetweenTrades svStdev_BarsBetweenTrades Balken zwischen Trades. (Standardabweichung). svStdevPAvg_BarsBetweenTrades Balken zwischen Trades. (+1 Abw). VC_SV_StdevMAvg_BarsBetweenTrade s svStdevMAvg_BarsBetweenTrades Balken zwischen Trades. (-1 Abw). VC_SV_EntryPrice svEntryPrice Einstiegspunkt. VC_SV_ExitPrice svExitPrice Ausstiegspunkt. VC_SV_EntryDate svEntryDate Einstiegsdatum. VC_SV_ExitDate svExitDate Ausstiegsdatum. VC_SV_EntryBar svEntryBar Einstiegsbalken. VC_SV_ExitBar svExitBar Ausstiegsbalken. VC_SV_LongShort svLongShort Kauf/Verkauf (Offene Pos.). VC_SV_DaysSinceMaxProfit svDaysSinceMaxProfit Tage seit Höchstgewinn. VC_SV_DaysSinceMinProfit svDaysSinceMinProfit Tage seit Mindestgewinn. VC_SV_Acc_DaysSinceMaxProfit svAcc_DaysSinceMaxProfit Tage seit kumuliertem Höchstgewinn. VC_SV_Acc_DaysSinceMinProfit svAcc_DaysSinceMinProfit Tage seit kumuliertem Mindestgewinn. VC_SV_Avg_DaysSinceMaxProfit svAvg_DaysSinceMaxProfit Tage seit durchschnittlichem Höchstgewinn. VC_SV_Avg_DaysSinceMinProfit svAvg_DaysSinceMinProfit Tage seit durchschnittlichem Mindestgewinn. VC_SV_RetracementSinceMaxProfit svRetracementSinceMaxProfit Retracement seit Höchstgewinn. VC_SV_ImprovementSinceMinProfit svImprovementSinceMinProfit Verbesserung seit Mindestgewinn. VC_SV_Efficiency svEfficiency Wirksamkeit. VC_SV_EntryEfficiency svEntryEfficiency Wirksamkeit des Einstiegs. VC_SV_ExitEfficiency svExitEfficiency Wirksamkeit des Ausstiegs. VC_SV_NetEfficiency svNetEfficiency Kumulierte Wirksamkeit. VC_SV_NetEntryEfficiency svNetEntryEfficiency Kumulierte Wirksamkeit des Einstiegs. VC_SV_NetExitEfficiency svNetExitEfficiency Kumulierte Wirksamkeit des Ausstiegs. VC_SV_Avg_Efficiency svAvg_Efficiency Durchschnittliche Wirksamkeit. VC_SV_Avg_EntryEfficiency svAvg_EntryEfficiency Wirksamkeit des Einstiegs (Durchschnitt) VC_SV_StdevPAvg_BarsBetweenTrades TRADING TOOLS | VISUALCHART 78 VC_SV_Avg_ExitEfficiency svAvg_ExitEfficiency Wirksamkeit des Ausstiegs (Durchschnitt). VC_SV_Stdev_Efficiency svStdev_Efficiency Wirksamkeit (Standardabweichung). VC_SV_Stdev_EntryEfficiency svStdev_EntryEfficiency Wirksamkeit des Einstiegs (Standardabweichung). VC_SV_Stdev_ExitEfficiency svStdev_ExitEfficiency Wirksamkeit des Ausstiegs (Standardabw.) VC_SV_Max_Efficiency svMax_Efficiency Wirksamkeit (Maximum). VC_SV_Max_EntryEfficiency svMax_EntryEfficiency Wirksamkeit des Einstiegs (Maximum). VC_SV_Max_ExitEfficiency svMax_ExitEfficiency Wirksamkeit des Ausstiegs (Maximum). VC_SV_Min_Efficiency svMin_Efficiency Wirksamkeit (Minimum). VC_SV_Min_EntryEfficiency svMin_EntryEfficiency Wirksamkeit des Einstiegs (Minimum). VC_SV_Min_ExitEfficiency svMin_ExitEfficiency Wirksamkeit des Ausstiegs (Minimum). VC_SV_CV_Efficiency svCV_Efficiency Wirksamkeit (Abweichungskoeffizient). VC_SV_CV_EntryEfficiency svCV_EntryEfficiency Wirksamkeit des Einstiegs (Variationskoeff.) VC_SV_CV_ExitEfficiency svCV_ExitEfficiency Wirksamkeit des Ausstiegs (Abweichungskoeffizient). VC_SV_StdevPAvg_Efficiency svStdevPAvg_Efficiency Wirksamkeit (+1 Abw). VC_SV_StdevPAvg_EntryEfficiency svStdevPAvg_EntryEfficiency Wirksamkeit des Einstiegs (+1 Abw). VC_SV_StdevPAvg_ExitEfficiency svStdevPAvg_ExitEfficiency Wirksamkeit des Ausstiegs (+1 Abw). VC_SV_StdevMAvg_Efficiency svStdevMAvg_Efficiency Wirksamkeit (- Abw). VC_SV_StdevMAvg_EntryEfficiency svStdevMAvg_EntryEfficiency Wirksamkeit des Einstiegs (+1 Abw). VC_SV_StdevMAvg_ExitEfficiency svStdevMAvg_ExitEfficiency Wirksamkeit des Ausstiegs (-1 Abw). VC_SV_Commisions svCommisions Provisionen. VC_SV_NetCommisions svNetCommisions Provisionen (kumuliert). VC_SV_NetCommisions_DIV_NetProfit svNetCommisions_DIV_NetProfit Ratio: Kumulierte Provisionen/Kumulierter Gewinn. VC_SV_MarketProfit svMarketProfit Marktgewinn. VC_SV_NetMarketProfit svNetMarketProfit Marktgewinn (kumuliert). VC_SV_SystemMarketRatio svSystemMarketRatio Ratio: System/Markt. VC_SV_SharesCount svSharesCount Anzahl der Kontrakte/Aktien. VC_SV_Max_SharesCount svMax_SharesCount Anzahl der Kontrakte/Aktien (Maximum). VC_SV_PercentageInMarketTime svPercentageInMarketTime Prozentsatz Zeit am Markt. VC_SV_InMarketTime svInMarketTime Zeit am Markt. VC_SV_OverallTime svOverallTime Gesamte Zeit. VC_SV_TradeTime svTradeTime Trades Zeit. VC_SV_Max_TradeTime svMax_TradeTime Trades Zeit (Maximum). VC_SV_Acc_TradeTime svAcc_TradeTime Trades Zeit (Minimum). VC_SV_Avg_TradeTime svAvg_TradeTime Trades Zeit (Durchschnitt). VC_SV_TimeBetweenTrades svTimeBetweenTrades Zeit zwischen Trades. VC_SV_Max_TimeBetweenTrades svMax_TimeBetweenTrades Zeit zwischen Trades (Maximum). VC_SV_Acc_TimeBetweenTrades svAcc_TimeBetweenTrades Zeit zwischen Trades. (Kumuliert). VC_SV_Avg_TimeBetweenTrades svAvg_TimeBetweenTrades Zeit zwischen Trades. (Durchschnitt). VC_SV_TradesByYear_InMarketTime svTradesByYear_InMarketTime Trades pro Jahr (Zeit am Markt). svTradesByMonth_InMarketTime Trades pro Monat (Zeit am Markt). VC_SV_TradesByWeek_InMarketTime svTradesByWeek_InMarketTime Trades pro Woche (Zeit am Markt). VC_SV_TradesByDay_InMarketTime svTradesByDay_InMarketTime Trades pro Tag (Zeit am Markt). VC_SV_TradesByYear_OverallTime svTradesByYear_OverallTime Trades pro Jahr (Gesamtzeit). VC_SV_TradesByMonth_OverallTime svTradesByMonth_OverallTime Trades pro Monat (Gesamtzeit). VC_SV_TradesByWeek_OverallTime svTradesByWeek_OverallTime Trades pro Woche (Gesamtzeit). VC_SV_TradesByDay_OverallTime svTradesByDay_OverallTime Trades pro Tag (Gesamtzeit). VC_SV_RinaIndex svRinaIndex RINA Index. VC_SV_Open_Profit svOpen_Profit Nettogewinn (Offene Pos.). VC_SV_Open_NetProfit svOpen_NetProfit Kumulierter Nettogewinn (Offene Pos.). VC_SV_Open_NetProfit_DIV_NetProfit svOpen_NetProfit_DIV_NetProfit Kumulierter Nettogewinn (Offene Pos.)/Kumulierter Nettogewinn VC_SV_Avg_Open_Profit svAvg_Open_Profit Durchschnittlicher Nettogewinn (Offene Pos.). VC_SV_Avg_Open_Profit_DIV_Avg_Pro fit svAvg_Open_Profit_DIV_Avg_Profit Ratio: Durchschnittlicher Nettogewinn (Offene Pos.)/Durchschnittlicher Nettogewinn. VC_SV_ProfitByYear_InMarketTime svProfitByYear_InMarketTime Gewinn pro Jahr (Zeit am Markt). VC_SV_ProfitByMonth_InMarketTime svProfitByMonth_InMarketTime Gewinn pro Monat (Zeit am Markt). VC_SV_ProfitByWeek_InMarketTime svProfitByWeek_InMarketTime Gewinn pro Woche (Zeit am Markt). VC_SV_TradesByMonth_InMarketTime TRADING TOOLS | VISUALCHART 80 VC_SV_ProfitByDay_InMarketTime svProfitByDay_InMarketTime Gewinn pro Tag (Zeit am Markt). VC_SV_ProfitByYear_OverallTime svProfitByYear_OverallTime Gewinn pro Jahr (Gesamtzeit). VC_SV_ProfitByMonth_OverallTime svProfitByMonth_OverallTime Gewinn pro Monat (Gesamtzeit). VC_SV_ProfitByWeek_OverallTime svProfitByWeek_OverallTime Gewinn pro Woche (Gesamtzeit). VC_SV_ProfitByDay_OverallTime svProfitByDay_OverallTime Gewinn pro Tag (Gesamtzeit). VC_SV_SharpeRatio svSharpeRatio Sharpe Ratio. VC_SV_Volatility svVolatility Volatilität. VC_SV_EstimatedAccountSize svEstimatedAccountSize Kontoumfang. VC_SV_SerieOfLosses svSerieOfLosses Verlustserie. VC_SV_WorstSerieOfLosses svWorstSerieOfLosses Tiefste Verlustserie. VC_SV_SerieOfProfits svSerieOfProfits Gewinnserie. VC_SV_BestOfProfits svBestSerieOfProfits Höchste Gewinnserie. VC_SV_Open_EntryPrice svOpen_EntryPrice Einstiegspunkt (Offene Pos.). VC_SV_Open_ExitPrice svOpen_ExitPrice Ausstiegspunkt (Offene Pos.). VC_SV_Open_EntryDate svOpen_EntryDate Einstiegsdatum (Offene Pos.). VC_SV_Open_ExitDate svOpen_ExitDate Ausstiegsdatum (Offene Pos.). VC_SV_Open_EntryBar svOpen_EntryBar Einstiegsbalken (Offene Pos.). VC_SV_Open_ExitBar svOpen_ExitBar Ausstiegsbalken (Offene Pos.). VC_SV_Ratio svRatio Ratio: Jährlicher Gewinn/Tiefste Verlustserie. EnumVCDSStatisticMeasurementUnit. Definiert die Einheiten, in denen die Ergebnisse der Sytemstatistik zurückgeliefert werden. Wert Beschreibung VCDS_SMU_Undef Nicht definiert. VCDS_SMU_Money In Währung (Euro, Dollar…). VCDS_SMU_Points In Punkten. VCDS_SMU_Perc In Prozent. EnumVCDSStatisticCompression. Definiert die Komprimierung, die bei den statistischen Variablen angewandt wird. Wert Beschreibung VCDS_SC_Undef Nicht definiert. VCDS_SC_Trades Komprimierung nach Trades. VCDS_SC_Secs Komprimierung nach Sekunden. VCDS_SC_Mins Komprimierung nach Minuten. VCDS_SC_Days Komprimierung nach Tagen. VCDS_SC_Weeks Komprimierung nach Wochen. VCDS_SC_Months Komprimierung nach Monaten. VCDS_SC_Years Komprimierung nach Jahren. EnumVCDSMarketPosition. Zeigt die Position am Markt. Valor Beschreibung VCDS_P_Bull Gekauft. VCDS_P_Bear Verkauft. VCDS_P_Neutral Neutral. COMTraderInterfaces AUFZÄHLUNGEN Nachfolgend sind die Aufzählungen eines Variablentyps der COMTraderInterfaces Library detailliert. EnumVCTOrderType. Beinhaltet die Definitionen von allen in Visual Chart verfügbaren Ordertypen, welche in verschiedenen Objekten, Methoden und Ereignissen verwendet werden können: Eigenschaft Beschreibung VCT_OT_Limit Limit Ordertyp. VCT_OT_StopLimit Stop-Limit Ordertyp. VCT_OT_Market Market Ordertyp. VCT_OT_StopMarket Stop Market Ordertyp. VCT_OT_StopMarketSimulated Stop für den simulierten Markt Ordertyp. VCT_OT_StopLimitSimulated Simulierter Stop-Limit Ordertyp. VCT_OT_Best Best Ordertyp. VCT_OT_BestStop Best Stop Ordertyp. VCT_OT_BestStopSimulated Stop bei der besten Simulation Ordertyp. VCT_OT_Unknown Unbekannt (darf nie benutzt werden). EnumVCTVolumeRestriction. Beinhaltet die Definitionen der verschiedenen Werte, die eine Volumenbeschränkung für eine Order übernehmen kann: Eigenschaft Beschreibung VCT_VR_NoRestriction Ohne Beschränkung. VCT_VR_AllNothing Alles oder Nichts Beschränkung. VCT_VR_Hide Verstecktes Volumen Beschränkung. Das versteckte Volumen muss in der HideVolume Eigenschaft von VCT_Order angegeben werden. VCT_VR_MinVolume Minimal Volumen Beschränkung. Das Minimalvolumen muss in der MinVolume Eigenschaft von VCT_Order angegeben werden. VCT_VR_Unknown Unbekannt (darf nie benutzt werden). EnumVCTTimeRestriction. Beinhaltet die Definitionen der verschiedenen Werte, die eine Zeitbeschränkung für eine Order übernehmen kann: Eigenschaft Beschreibung VCT_TR_NoRestriction Ohne Beschränkung. VCT_TR_Immediate Unmittelbar Beschränkung. VCT_TR_OpenAuction Eröffnungsauktion Beschränkung. TRADING TOOLS | VISUALCHART 82 VCT_TR_CloseAuction Schlussauktion Beschränkung. VCT_TR_Auction Irgendeine Auktion Beschränkung. VCT_TR_Session Aktuelle Handelszeit Beschränkung. VCT_TR_Date Bis zu einem Datum Beschränkung (Gültigkeitsdatum). Das Datum muss in der ValidDate Eigenschaft von VCT_Order angegeben werden. VCT_TR_Unknown Unbekannt (darf nie benutzt werden). EnumVCTOrderSide. Beinhaltet die Definitionen der Aktionen (Kauf oder Verkauf), die eine Order, offene Position oder geschlossene Operation bezeichnen: Eigenschaft Beschreibung VCT_OS_Buy Kauf. VCT_OS_Sell Verkauf. VCT_OS_Unknown Unbekannt (darf nie benutzt werden). EnumVCTOrderStatus. Beinhaltet die Definitionen der verschiedenen Status, die eine Order übernehmen kann: Eigenschaft Beschreibung VCT_OST_WaitingMarket Es wird abgeschickt. VCT_OST_PendingEvent Ereignis abhängig (wegen einer eigenen Bedingung oder wegen einer Verknüpfung mit anderer Order). VCT_OST_OnSimulation In Simulation (für sämtliche simulierte Ordertypen). VCT_OST_Market Am Market. VCT_OST_Canceled Storniert. VCT_OST_PendingCancelation Stornierung abhängig. VCT_OST_Filled Ausgeführt. VCT_OST_PendingModification Änderungsabhängig. VCT_OST_PartialFilled Teilweise ausgeführt. VCT_OST_Rejected Abgewiesen. VCT_OST_Pending24x7 Eröffnungsmarkt abhängig (ausstehend 24x7). VCT_OST_StopPending Stopauslösung abhängig. VCT_OST_Unknown Unbekannt (darf nie benutzt werden). EnumVCTOrderFilter. Beinhaltet die Definitionen der verschiedenen Werte, die ein Filter bei einer Orderabfrage übernehmen kann. Bei einer Abfrage kann der Filter mit mehreren der folgenden Werte über eine OR Operation (eine Summe) festgelegt werden. Für eine Abfrage zum Beispiel der offenen und ausgeführten Orders muss der Filter als VCT_OF_Active + VCT_OF_Filled festgelegt werden. Eigenschaft Beschreibung VCT_OF_All Abfrage sämtlicher Orders. VCT_OF_Active Abfrage der offenen Orders. VCT_OF_Filled Abfrage der ausgeführten Orders. VCT_OF_Canceled Abfrage der stornierten Orders. VCT_OF_PartialExe Abfrage der teilweise ausgeführten Orders. VCT_OF_PartialExeCancelled Abfrage der teilweise ausgeführten und stornierten Orders. VCT_OF_Market Abfrage der Orders am Markt. EnumVCTOrderLocation. Beinhaltet die möglichen Lokalisierungen einer Order. Eigenschaft Beschreibung VCT_OL_Local Lokal VCT_OL_Server Server VCT_OL_Bridge Brücke/Link VCT_OL_Market Markt EnumVCTSource. Beinhaltet die Definitionen der verschiedenen Quellen, die von der Order generiert werden können. Eine Order kann in einem System, einer Kursliste, über den COM Server, usw. generiert werden. Eigenschaft Beschreibung VCT_SRC_Unknown Unbekannt. VCT_SRC_Systems Systeme. VCT_SRC_Tables Kurslisten. VCT_SRC_Positions Positionen. VCT_SRC_GraphicObject Grafisches Objekt. VCT_SRC_Charts Chart. VCT_SRC_Alerts Signal. VCT_SRC_Phone Telefone. VCT_SRC_Tv Fernseher. VCT_SRC_Web Web. VCT_SRC_PDA PDA. VCT_SRC_CellPhone Mobiltelefone. VCT_SRC_email E-Mail. VCT_SRC_External Extern. VCT_SRC_COM Über den COM Server. EnumVCTOpenPositionStatus. Zeigt den Status einer offenen Position. Eigenschaft Beschreibung VCT_OPS_NonTrade Unhandelbare Position. VCT_OPS_TradeGrouped Handelbare Position und gruppierbar mit anderen Positionen. VCT_OPS_TradeNoGrouped Handelbare Position, nicht gruppierbar mit anderen Positionen. VCT_OPS_NonTradePledge Beliehte Position, unhandelbar. EnumVCTRelatedType. Zeigt das Verhältnis zwischen den verschiedenen Orders. Die Orders OCO, OSO und Bracket generieren mehrere miteinander verknüpften Orders. (Siehe RelatedId und RelatedType von VCT_Order). Eigenschaft Beschreibung VCT_RT_NoRelation Ohne Verhältnis mit einer anderen Order. VCT_RT_OSOMainOrder Zeigt, dass diese die Hauptorder einer OSO ist. RelatedId TRADING TOOLS | VISUALCHART 84 beinhaltet den Identifier der eigenen Order. VCT_RT_OSOWaitingOrder Die Order wird bei der Ausführung der Hauptorder abgeschickt. RelatedId beinhaltet den Identifier der Hauptorder. VCT_RT_OCOOrder Die Order wird storniert, wenn die Order ausgeführt ist, deren Identifier mit dem RelatedId Wert übereinstimmt. VCT_RT_BracketMainOrder Zeigt, dass diese Order die Hauptorder einer Bracket ist. RelatedId beinhaltet den Identifier der eigenen Order. VCT_RT_BracketStopOrder Diese Order ist der Stop der Bracket. RelatedId beinhaltet den Identifier der Hauptorder. VCT_RT_BracketLimitOrder Diese ist die Limitorder der Bracket. RelatedId beinhaltet den Identifier der Hauptorder. VCContributor AUFZÄHLUNGEN Nachfolgend sind die verschiedenen Werte detailliert, die ein bestimmter Variablentyp der VCContributor Library übernehmen kann. EnumVCCAlertPriority. Zeigt die Priorität des Signals. Die Signale mit höchster Priorität werden für längere Zeit angezeigt. Eigenschaft Beschreibung VCC_AP_Inmediate Unmittelbar (VisualChart zeigt es sofort, sobald es angekommen ist). VCC_AP_High Höhe Priorität. VCC_AP_Medium Mittlere Priorität. VCC_AP_Low Niedrige Priorität. VCC_AP_Default Standardmäßige Priorität. EnumVCCtbType. Die Beiträge werden in verschiedenen Gruppen klassifiziert. Der Beitragstyp zeigt, in welcher Gruppe er sich befindet. Eigenschaft Beschreibung VCC_CT_None Keine. VCC_CT_Indicators Indikatoren. VCC_CT_Charting Charts. TRADING TOOLS | VISUALCHART 86