Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted

Hallo,

 

kann mir jemand sagen, wie man beim automatischen Trading mit Ninjatrader herausbekommt, zu welchem tatsächlichen Ausführungskurs eine Order durchgegangen ist?

 

Vielen Dank im Voraus!

Posted
Unter dem Reiter "Executions" in NT, und wenn du dem nicht traust dann hilft nur ein Vergleich mit der Positionshistory des Brokers (bist du bei IB? Da am nächsten Tag unter Statements, ansonsten bei aktiver Position siehst du das unter ... frag mich jetzt nicht, Portfolio glaub ich, im TWS).
Posted
Mir geht es darum, wie ich dass programmtechnisch auslesen kann, wenn ich eine Strategie für den NinjaTrader programmiere und einen Trades ausgeführt habe. Habe gehört, dass das nicht so einfach sein soll. Beim MT kann man sich ja einfach mit dem Befehl OrderOpenPrice() den tatsächlichen Ausführungskurs auslesen. Gibts da im Ninjatrader auch einen vergleichbaren Befehl?
Posted

Ach so, da hab ich dich komplett falsch verstanden :laugh:

 

Da kann ich dir nicht helfen, ich bin nicht der Codingspezi, bin nicht sicher ob das geht, da NT ja grundsätzlich alles strategieintern managed.

 

Es gibt da ein sehr dickes "Handbuch", vielleicht findest du da etwas (oder ein anderer kann helfen), das Buch kennst du aber sicher (20 MB):

 

http://www.ninjatrader-support.com/HelpGui...n6HelpGuide.pdf

Posted
#Edit:

(Glaube das ist die Online Version von Henriks PDF)

 

Ja ist es, und in NT selber findet man das auch in 100000 kleinen Häppchen.

Aber in dem Handbuch steht alles recht übersichtlich, und die Suche geht schneller, deswegen nehme ich das immer (habs auf Platte gespeichert).

Posted

@Knochen:

 

In der OnExecution-Methode musst Du abfragen, ob die Order bereits gefillt wurde.

Dann kannst Du den Preis auslesen. NT arbeitet hier nach einem Event-Mechanismus,

was die Programmierung vereinfacht, aber natürlich die Einstiegshürde höher setzt.

 

Hier mal ein Code-Beispiel:

 

/// <summary>
/// Wird nach jedem (Partial)-Fill einer Order aufegrufen.
/// Erst hier habe ich den AvgPrice der Order und kann daraufhin
/// die Stop und Target setzen. Wird nach OnOrderUpdate() aufgerufen.
/// <summary>
protected override void OnExecution(IExecution execution)
{
if (entryOrder != null && entryOrder.Token == execution.Order.Token)
{
	if  (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled   
				 ||   (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
	{
		double entryPrice = entryOrder.AvgFillPrice;
		...		
			
		if (Position.MarketPosition == MarketPosition.Long)
		{	
			..					
		}
		else if (Position.MarketPosition == MarketPosition.Short)
		{	
			...	
		}
   }
			
  }
		
}

 

 

Erklärungen findest Du im Help-Guide, oder im Forum von NT unter den Samples,

die sind sehr zu empfehlen.

 

Beste Grüße

Darth

Posted

Vielen Dank für das Beispiel, das sollte mir reichen. Mit der eigentlichen Programmierung sollte ich keine Probleme haben und die Hilfe sieht ja auch recht gut aus.

 

Ich wollte nur eine Bestätigung bzw. einen Hinweis ob es auf einfache Art und Weise möglich ist den Preis auszulesen, weil mir gesagt wurde, dass das wohl gar nicht ginge mit der Scriptsprache von NT und man es ganz umständlich programmieren müßte, was ich mir allerdings nicht recht vorstellen konnte.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...