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.

In Strategie den aktuellen Kontostand abfragen

Geschrieben

Wie lautet der Befehl, um den aktuellen Kontostand abzufragen?

Wenn es geht ohne diese ATM-Geschichte, das ist mir zu umständlich und fehleranfällig.

 

Es muss doch irgendeinen Befehl geben...meinetwegen reicht mir auch Profit/Lost der Strategie, hauptsache ich kriege das in eine Variable zum weiterverarbeiten...

Ich finde aber nix.

 

Danke!! :tongue:

Featured Replies

Geschrieben
Wie lautet der Befehl, um den aktuellen Kontostand abzufragen?

Wenn es geht ohne diese ATM-Geschichte, das ist mir zu umständlich und fehleranfällig.

 

Es muss doch irgendeinen Befehl geben...meinetwegen reicht mir auch Profit/Lost der Strategie, hauptsache ich kriege das in eine Variable zum weiterverarbeiten...

Ich finde aber nix.

 

 

Ich hab leider schon lange nichts mehr mit Ninjatrader gemacht, aber auf die schnelle hab ich das gefunden. Da gibts auch ein sample .cs file dazu. Aber scheinbar gibt es wirklich keinen einfachen Zugriff auf den aktuellen Kontostand.

 

Ninjatrader Support Forum Thread

 

Und grad noch was entdeckt, es scheint ab NT7 wohl doch was neues in dieser Richtung zu geben. Allerdings scheinbar noch ohne Dokumentation der Funktion.

 

For Cash Value: GetAccountValue(AccountItem.CashValue)

For Realized PnL: GetAccountValue(AccountItem.RealizedProfitLoss)

Bearbeitet von Tommyknocker

Geschrieben
  • Autor

Oh, vielen Dank, das hilft mir schon sehr weiter! :tongue: Das werde ich heuet abend gleich ausprobieren.

 

Wo hast du denn das mit dem frischen NT7-Code gefunden? In dem NT7-Beta-Unterforum von Ninjatrader?

 

Ich schau ja immer in dieser großen PDF-Datei, wo alles, inkl. der Codebefehle für NT 6.5 beschrieben ist, das funzt ja meistens auch für NT7.

Geschrieben
  • Autor

Funktioniert super :tongue:

 

Habs kombiniert mit der E-Mailfunktion:

#region Variables
private bool sendeMail = false;	//Für die Parametereinstellungen
bool sendemailcode = false;		//Für interne Berechnung ob Mail schon gesendet worden ist


protected override void OnBarUpdate()
// [...] Code bla bla ggf TimeFrameKürzel



if (SendeMail && sendemailcode)  //Wenn E-Mail in den Parametern aktiviert und interne E-Mail-Variable auf "true" gesetzt ist
{
SendMail("absender@email.com", "empfänger@email.com", "(Betreff) Strategie Update",
	( "Cash Value   = " + GetAccountValue(AccountItem.CashValue) + "\nRealized PuL = " + GetAccountValue(AccountItem.RealizedProfitLoss)));  

	sendemailcode = false;  //Setzt die interne Variable wieder auf falsch damit nicht ununterbrochen Mails gesendet werden
}


//Irgendwo im Code, was nur selten aufgerufen wird, muss nun... 
sendemailcode = true;
//...gesetzt werden. z.B. bei ""EnterLong" oder auch in einem eigenen Timeframe welches stündlich aufgerufen wird, 
// so wird die E-Mail immer dann geschickt wann man es möchte (nach EnterLong oder alle Stunde)

#region Properties
[Description("Sendet eine E-Mail in einem Intervall")]
[Category("\tE-Mail")]   //Eröffnet in den Parametern ganz oben ein eigenes E-Mail-Feld, damit das "true" oder "false" nicht die zu optimierenden Parameter stört 
public bool SendeMail
{
 get { return sendeMail; }
 set { sendeMail = value; }
}

 

 

Irgendwo im Code setzt man jetzt "sendemailcode = true;", und dann sendet er eine Mail mit dem Inhalt: Accountgröße und realisierter Profit und Verlust. Dieses Codekürzel irgendwohin setzen, wo es nur ab und zu aufgerufen wird, sonst droht eine E-Mail-Flut.

Das Ganze ist über die Parameter (de)aktivierbar.

Geschrieben
Wo hast du denn das mit dem frischen NT7-Code gefunden? In dem NT7-Beta-Unterforum von Ninjatrader?

 

Ja, ich hab einfach das ganze NT Forum nach balance und total profitloss gesucht und bin dann recht rasch auf einen Forumseintrag gestoßen.

  • 1 Jahr später...
Geschrieben

Hallo Henrik,

 

ich komm nochmal zurück auf Deinen sendemailcode für NT.

Wo hast Du Ihn im code platziert, damit nur eine email abgeschickt wird?

 

Blackburn

Geschrieben

Eine Möglichkeit wäre es den Code in OnPositionUpdate zu positionieren.

Diese Methode wird von NT bei jedem Positionswechsel LONG/SHORT -> FLAT, FLAT -> LONG/SHORT aufgerufen:

 

/// <summary>
/// Wird nach jedem Positionswechsel aufgerufen. 
/// <summary>
protected override void OnPositionUpdate(IPosition position)
{
Print("OnPositionUpdate ... Position = " +position.MarketPosition);

if (position.MarketPosition == MarketPosition.Flat)
{
        // Sende Email ...
}
else if (position.MarketPosition == MarketPosition.Long)
{	
        // ...	
}
else if (position.MarketPosition == MarketPosition.Short)
{
	// ...
}	
}

 

Beste Grüße

DT

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.