Dienstag, 16. April 2024, 19:44 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Ralf

unregistriert

1

Donnerstag, 1. Mai 2008, 00:14

COM Schnittstelle

Hallo,
gibt es eine Möglichkeit Realtime Daten über die
COM Schnittstelle nach Investox zu senden?

( www.microsoft.com/com/ )

Danke
Ralf

Ralf

unregistriert

2

Montag, 5. Mai 2008, 19:49

2 Zeilen oder über 50 Zeilen

Hallo,
ich habe bisher mit NT6 gearbeitet. Dort ist es einfach Realtimedaten über die COM Schnittstelle nach NT6 zusenden.

COM in C#
NinjaTrader.Client.Client NTClient = new NinjaTrader.Client.Client();
NTClient.Last("MSFT", Geld, Volumen);

COM in Autoi
$var = ObjCreate("NinjaTrader.Client.Client")
$erg=$var.Last("DAX",$Geld,$Volumen) ;Nach NT senden

Bei Investox ist dies nur mit der DDE Schnittstelle möglich. Der Programmieraufwand ist doch erheblich zumal ich ein Einsteiger bin. Deshalb ist es nicht möglich das Investox RTT Modul zu erweitern so das es über COM Schnittstelle angesprochen werden kann.

DDE Client in VB?
'Dieser Source stammt von http://www.activevb.de
'-------------- Anfang Projektdatei Client.vbp --------------
'---- Anfang Formular "ClientForm" alias ClientForm.frm ----
' Steuerelement: Schaltfläche "Command7"
' Steuerelement: Schaltfläche "Command6"
' Steuerelement: Schaltfläche "Command5"


' Steuerelement: Schaltfläche "Command4"
' Steuerelement: Schaltfläche "Command3"
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Schaltfläche "Command1"


' Steuerelement: Textfeld "Text1"
' Steuerelement: Beschriftungsfeld "Label1"
' Source von Markus Zeichner
'
' DDE-Client:
' Der Client wird über folgender Controls(Label/Text/Picture) an den Server


' gebunden:
' - ListItem (Name des Server-Steuerelementes von dem die Daten kommen
' sollen, muss 100% übereinstimmen !!!)
' - LinkTopic (hier steht der Servername (Programmname ohne Extension !!!)


' und das DDE-Thema getrent mit | . Also wenn der Serverprogramm
' Server.exe heist und das Thema Talk heisst steht hier Server|Talk )
' - LinkTimeout (Zeit im ms in der der Server eine Antwort dem Client


' senden muss)
'
' Die Verbindung findet durch das zuweisen der LinkMode eigenschaft des
' Client-Controls statt. Die LinkMode-Eigenschaft kann 0-keine,
' 1-automatisch, 2-manuell, 3-benachrichtigung enthalten.


' Bei 0 findet keine DDE-Verbindung statt, bei 1 wird eine Automatische
' DDE-Verbindung aufgebaut (heisst die Serverdaten werden automatisch an
' den Client gesendet), bei 2 muss der Client mithilfe von


' control.LinkRequest die Daten vom Server abhollen !!!
'
' Vor dem zuweisen der LinkTopic-Eigenschaft des Clientcontrols MUSS !!!
' der Server bereits gestartet sein !!!!!
'
' Auf der Clientseite sind folgende Events verfügbar:


' - LinkOpen (wenn eine Verbindung geöffnet wird)
' - LinkClose (wenn eine Verbindung geschlossen wurde)
' - LinkError (wenn ein Verbindungsfehler aufgetreten ist)
'
' Ein Makro kann der Client mit controlname.LinkExecute "makro..." an den


' Server senden.
Option Explicit

Public Ende As Boolean

Private Sub Command1_Click() ' Makro ServerInfo

If Label1.LinkMode = 0 Then ' Prüffen ob Verbindung besteht

' Wenn nicht fehlermeldung


MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub ' und raus

End If

Label1.LinkExecute "ServerInfo" ' sonst Makro senden

' Command1.SetFocus
End Sub

Private Sub Command2_Click() ' Makro Problemm



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub

End If

Label1.LinkExecute "Problem"

' Command2.SetFocus
End Sub

Private Sub Command3_Click() ' Makro DelText



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub

End If

Label1.LinkExecute "DelText"

' Command3.SetFocus
End Sub

Private Sub Command4_Click() ' Makro SetText



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub

End If

Label1.LinkExecute "SetText"

' Command4.SetFocus
End Sub

Private Sub Command5_Click() ' Marko HideServer



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub

End If

Label1.LinkExecute "HideServer"

' Command5.SetFocus
End Sub

Private Sub Command6_Click() ' Makro ShowServer



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr zum " & _
"Server ! Makro fehlgeschlagen", vbCritical, "Problemm !"



Exit Sub

End If

Label1.LinkExecute "ShowServer"

' Command6.SetFocus
End Sub

Private Sub Command7_Click() ' Server Starten / Makro EndServer



Dim i

If Command7.Tag = 0 Then ' Tageigenschaft prüffen

On Error Resume Next
Text1.LinkMode = 1 ' Verbindung herstellen
Label1.LinkMode = 1 ' Verbindung herstellen



If Err <> 0 Then ' Fals Fehler (Server nicht gestartet)

i = Shell("Server.exe", vbNormalFocus) ' Server starten
Text1.LinkMode = 1 ' Verbindung herstellen


Label1.LinkMode = 1 ' Verbindung herstellen

End If

Command7.Caption = "Makro: EndServer"
Command7.Tag = 1

Else



If Label1.LinkMode = 0 Then

MsgBox "Es existiert keine Verbindung" & vbNewLine & "mehr " & _
"zum Server ! Makro fehlgeschlagen", vbCritical, _


"Problemm !"

Exit Sub

End If

Label1.LinkExecute "EndServer"
Command7.Tag = 0
Command7.Caption = "Start Server"



' Command7.SetFocus
End If

End Sub

Private Sub Form_Load()

Dim i

On Error Resume Next
Text1.LinkMode = 1 ' Verbindung herstellen
Label1.LinkMode = 1 ' Verbindung herstellen



If Err <> 0 Then ' Fals Fehler (Server nicht gestartet)

i = Shell("Server.exe", vbNormalFocus) ' Server starten
Text1.LinkMode = 1 ' Verbindung herstellen


Label1.LinkMode = 1 ' Verbindung herstellen

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

Ende = True ' Wegen LinkClose
Text1.LinkMode = 0 ' Verbindung abbrechen


Label1.LinkMode = 0 ' Verbindung abbrechen

End Sub

Private Sub Label1_LinkClose() ' Verbindung geschlossen

If Ende = False Then ' Fals nicht Programmende

MsgBox "Server nicht mehr verfügbar !", vbInformation, "Information"



Command7.Tag = 0
Command7.Caption = "Start Server"

End If

End Sub

Private Sub Label1_LinkError(LinkErr As Integer) ' Verbindungsfehler



MsgBox "LinkError"

End Sub

Private Sub Label1_LinkOpen(Cancel As Integer) ' Verbindung gestartet

MsgBox "LinkOpen"

End Sub

'----- Ende Formular "ClientForm" alias ClientForm.frm -----


'--------------- Ende Projektdatei Client.vbp ---------------

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

3

Montag, 5. Mai 2008, 20:01

Hallo Ralf

Entschuldige bitte, manchmal bin ich etwas langsam von Begriff. Ich habe noch nicht verstanden, was Du eigentlich machen möchtest; vielleicht geht das in Investox ja ganz ohne Programmieren ...

Kannst Du nicht in einem Zwei-Zeiler kurz Deinen Handelsansatz schildern, den Du abdecken möchtest? Oder ist das Ziel eher, Hake und Schaufel an Investox anzudocken?
Gruss
Bernd

Ralf

unregistriert

4

Samstag, 10. Mai 2008, 09:01

Realtime nach Investox

Hallo,
ich will Daten von meinem Handelsprogramm nach Investox übertragen. Die Daten habe ich in Realtime in einem AutoIT Programm.
Das Problem wie bekomme ich die Daten ohne Excel und ASCII Import nach Investox?

Ich will herausfinden warum mein Handelssystem auf den DAX Index aber nicht auf ein DAX CFD Funktioniert.

Die einzige Möglichkeit ist über die DDE Schnittstelle aber dafür reichen meine Programierkentnisse leider nicht aus.
Deshalb die Nachfrage nach der COM Schnitstelle.

Ralf

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

5

Samstag, 10. Mai 2008, 09:22

Hallo Ralf

Ein ASCII Import in Investox wäre in Deinem Fall das Einfachste; warum möchtests Du das ASCII Interface von Investox nicht nutzen?

Das geht in Investox sehr einfach: Projekt / Titel zufügen, dann einen passenden Katalog auf der linken Seite anklicken oder ggf. einen neuen anlegen. Nun den Button Neu anklicken, Tabelle (ANSI/ASCII) auswählen, den Speicherort Deiner .txt Datei angeben und nun ganz bequem dem Assistenten folgen. Am besten wählst Du beim Import eine sinnvolle Komprimierung, z.B. 5 Minuten; man will normalerweise sowieso nicht Tickweise backtesten und der Performance kommt's zu gute.

Die .txt Datei legst Du vorher an, z.B. in diesem Format:

Datum Uhrzeit <tab> Open <tab> high <tab> low <tab> close <tab> volume

Das geht ganz ohne Programmierkentnisse und in wenigen Minuten. Später kannst Du mit Hilfe eines Investox Kombititels den Text-Titel mit einem RTT Titel Life zusammenschalten, um sowohl Backtests als auch Real Trading abzudecken. Auch ohne Programmieren.
Gruss
Bernd