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 ---------------