zentrader Posted January 11, 2012 Report Posted January 11, 2012 (edited) @all, Ninjatrader sieht ja auf den ersten Blick sehr interessant aus: als Testplattform ohne Brokeranbindung kostenlos und auch EOD-Kurse kostenlos... :-) Eine Frage an die NT-Programmiergurus habe ich, da ich gar nicht soweit in die NT-Scriptsprache einsteigen moechte, sondern existierende Windows DLLs einbinden moechte. Zur Klarstellung:es sind sog. industry standard Win32 DLLs (die also ohne Runtime etc. direkt auf dem Betriebsystem laufen) und keine COM-DLLs oder .NET-DLLs. Normalerweise kann ja z.B. C#.Net per pInvoke auch solche Standard DLLs einbinden - sollte also eigentlich auch mit NinjaTrader Script (das ja auf C# basiert) moeglich sein... Kann mir das jemand bestaetigen? ciao,zentrader Edited January 11, 2012 by zentrader
wh Posted January 11, 2012 Report Posted January 11, 2012 Ninjatrader ist C# und kein Scripting.PInvoke/Interop sollten kein Problem darstellen.Native geht da alles was nicht in der CLR läuft. //muss eingetragen werden im Indicator oder Strategie using System.Runtime.InteropServices; [DllImport("deinedll.dll")] Google mal InteropServices + Ninjatrader und hier
wh Posted January 11, 2012 Report Posted January 11, 2012 Win32 DLL ist unmanaged Code? Ich denke, bin mir da aber nicht sicher.Ich hatte mal eine Schnittstelle zwischen ALMOund .Net geschrieben. Der C-Code war der reinste Horror. Habe glaube ich auch nur Win32 DLLgemacht und die DLL über Interop eingebunden.
zentrader Posted January 11, 2012 Author Report Posted January 11, 2012 @wh, genau in der .NET Sprache heisst dies heute "unmanaged code". Der DLLImport-Konstrukt kommt mir bekannt vor (GFT macht das mit CTL genauso, um DLLs einzubinden). Das muesste so dann wohl gehen... Danke. ciao,zentrader
Eddy Posted January 11, 2012 Report Posted January 11, 2012 Ich entwickle meine HS-Logik in C# unter Visual Studio und erzeuge dann eine DLL. Ich nutzte die NinjaTrader-Funktion zum Bekanntmachen der DLL. Im NT-Script binde ich die notwendigen Namespaces mit 'using xxx' ein. Hat bisher sehr gut funktioniert. Ist allerdings eine statische Einbindung.
zentrader Posted January 11, 2012 Author Report Posted January 11, 2012 Ich entwickle meine HS-Logik in C# unter Visual Studio und erzeuge dann eine DLL. Ich nutzte die NinjaTrader-Funktion zum Bekanntmachen der DLL. Im NT-Script binde ich die notwendigen Namespaces mit 'using xxx' ein. Hat bisher sehr gut funktioniert. Ist allerdings eine statische Einbindung. Hi Eddy, was Du machst, ist die Einbindung einer "managed" DLL (geht ja mit C# nicht anders) in NT. Schonmal gut, dass NT so erweiterbar ist. Wenn das gleiche auch fuer "unmanaged" DLLs (also DLLs die z.B. mit C/C++, Delphi oder PowerBasic entwickelt wurden) funktioniert, waere es natuerlich optimal. Werde mir NT mal laden und ein wenig probieren... :-) ciao,zentrader
zentrader Posted January 13, 2012 Author Report Posted January 13, 2012 @all, das probieren habe ich mir ersparen koennen, dank einer qualifizierten Antwort des NT Supports: "...NinjaScript editor is based on C# and you can use all the features available in the C# editor. Coming specifically to your query, you can call native dlls, for example if you want to call the GetWindow function of the user32.dll then simply add the following code: [DllImport("user32.dll", SetLastError = true)]static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd); " D.h. maximale unter Windows moegliche Programmierflexibilitaet! ciao,zentrader
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now