Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

NinjaTrader Scriptsprache und Win32 DLLs...

Geschrieben

@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

Bearbeitet von zentrader

Featured Replies

Geschrieben

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

Geschrieben

Win32 DLL ist unmanaged Code? Ich denke, bin mir da aber nicht sicher.

Ich hatte mal eine Schnittstelle zwischen ALMO

und .Net geschrieben. Der C-Code war der reinste Horror. Habe glaube ich auch nur Win32 DLL

gemacht und die DLL über Interop eingebunden.

Geschrieben
  • Autor

@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

Geschrieben
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.
Geschrieben
  • Autor

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

Geschrieben
  • Autor

@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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.