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.

Sell This Bar on Close

Geschrieben

Hallo,

 

in tradesignal kann man folgende Order absetzten: 'Sell This Bar on Close'. Lt. Ninjatrader-Forum (z.B. hier: Link) wird die Order immer am nächsten Bar ausgeführt. Nach dem was ich bisher über die Entwicklung von HS gelesen habe, sollte eine Entscheidung immer am letzten abgeschlossenen Bar erfolgen. Am Bar x werte ich Bar x-1 aus. Eine eventuell abgesetzte Order am Bar x wird am Bar x+1 ausgeführt.

 

Ergibt sich daraus aber nicht

1) ein Problem mit der Qualität der Order (die ausgeführte Order basiert auf einer 2-Bar alten Entscheidung)

2) wie kann man im Echtbetrieb eine Order SOFORT ausführen:

 

 

Denke ich zu kompliziert und liege ich total falsch?

 

Gruß

Eddy

Featured Replies

Geschrieben

in tradesignal kann man folgende Order absetzten: 'Sell This Bar on Close'.

Genau: Sobald TS5 den für die aktuelle Kerze letzten Tick erhält wird die Order zum Close ausgeführt. Diesen Preis bekommst du aber nur im Backtest, in real wird sich hier fast immer eine Slippage ergeben, da ja nicht der Last, sondern Bid oder Ask zu nehmen ist.

 

Lt. Ninjatrader-Forum wird die Order immer am nächsten Bar ausgeführt. Nach dem was ich bisher über die Entwicklung von HS gelesen habe, sollte eine Entscheidung immer am letzten abgeschlossenen Bar erfolgen. Am Bar x werte ich Bar x-1 aus. Eine eventuell abgesetzte Order am Bar x wird am Bar x+1 ausgeführt.

 

Ergibt sich daraus aber nicht

1) ein Problem mit der Qualität der Order (die ausgeführte Order basiert auf einer 2-Bar alten Entscheidung)

2) wie kann man im Echtbetrieb eine Order SOFORT ausführen:

 

Das, was du gelesen hast (Entscheidung nach abgeschlossenen Bar) hat folgenden Hintergrund: Während der Entstehung eines Bars ist es möglich, daß aufgrund der Kursspanne innerhalb dieses einen Bars einmal der Zustand "Signal" zustandekommt und durch einen Möglichen Rücklauf der Kurse der Bar dann doch mit dem Zustand "NoSignal" schließt. Hätte dein HS jetzt schon während der Entstehung des Bars das Signal gehandelt, wäre das an dieser Stelle falsch, da der Close des Bars das zwischenzeitliche Signal ja nichtmehr bestätigt.

Allerdings ist es so: Die Entscheidung "Signal" oder "NoSignal" erfolgt bereits zum ClosingTick des SignalBars. Also kann man mit "Sell Next Bar At Open" den aktuellen Bar als SiganlBar benutzen und bereits einen Tick nach dem Close das Open des nächsten Bars handeln. Somit basiert die Order auf einer Entscheidung, die zum Close des letzten Bars getroffen wurde.

 

Mit z.B. "Sell This Bar At Market" führt TS5 eine Order im realtimebetrieb sofort zum aktuellen Preis aus. Im Backtest allerdings führt TS5 diese Order so aus, daß wenn zum Close des Bars das Signal da ist wird zum Close gekauft. Das ist so, weil TS5 keine brauchbare IntraBarTickSimulation hat; es werden einfach z.B. 1-MinutenDaten verwendet.

 

Ich hoffe, ich hab nicht zu kompliziert geschrieben :-)

Geschrieben
  • Autor

@wh

Das hatte ich gesucht.

 

@GoSPvC

Du hast dich nicht zu kompliziert ausgedrückt. Habs verstanden.

 

Danke euch beiden.

 

 

Dennoch eine Nachfrage (ich teste z.Z. nur mit historischen Tagesdaten). Im Realtime-Betrieb kann ich auf 'FirstTickOfBar' reagieren (sofern CalculateOnBarClose = false) und eine Order sofort ausführen. Beim Backtesten eines HS hat dies aber keine Wirkung. D.h. die Order wird erst nach dem Close ausgeführt und basiert damit auf einer 2-Bar alten Entscheidung. Das muss doch das Ergebnis des Backtest verfälschen, oder?

 

Gruß

Eddy

Geschrieben

Ich "wahr war" ja schon Millionär durch Backtesten, sah dann bloß im Realbetrieb anders

aus. Du kannst die Strategie testen ... (MarketReplay oder Demo)

 

Oder nimmst einfach mal Slippage

Ich verwendete für den Slippagewert den Spread ...

Slippage can also be set to mimic market conditions. The value is expressed in "ticks", the minimum value of fluctuation for an instrument, and is only applied to market and stop market orders since slippage is not possible when using a limit order.

Geschrieben
  • Autor

Mir gehts nicht darum ein Backtest-Millionär zu werden. Ich versuche nur auf Fragen, die mir während der Einarbeitung in NT und der HS-Entwicklung kommen, Antworten zu finden. Denn bevor ich mit einem HS handele, will ich dessen Funktionsweise richtig und vollständig verstehen.

 

Gruß

Eddy

Geschrieben

@GoSPvC

Du hast dich nicht zu kompliziert ausgedrückt. Habs verstanden.

 

Dennoch eine Nachfrage (ich teste z.Z. nur mit historischen Tagesdaten). Im Realtime-Betrieb kann ich auf 'FirstTickOfBar' reagieren (sofern CalculateOnBarClose = false) und eine Order sofort ausführen. Beim Backtesten eines HS hat dies aber keine Wirkung. D.h. die Order wird erst nach dem Close ausgeführt und basiert damit auf einer 2-Bar alten Entscheidung. Das muss doch das Ergebnis des Backtest verfälschen, oder?

 

Du sprichst hier von NinjaTrader, oder?

Ich kann dir nur die Eigenheiten von TS5 erklären, in Ninja bin ich noch überhauptnicht drin...

 

Bei TS5 ist das so: (ich hab schnell eine Grafik gemacht, sonst erklär ich mich dusslig :-)

 

=> Ein Backtest mit Sell Next Bar At Open kommt der Realität zumindest nahe;

ein BAcktest mit Sett This Bar At Market liefert nahezu nicht vergleichbare Ergebnisse.

Signal.png

Geschrieben
  • Autor

Hallo Michi,

 

mensch, da hast du dir aber viel Arbeit gemacht. Danke. Ja, ich rede über NT (7). Ich werde wohl von TS5 auf NT wechseln. Obwohl ich noch NT Anfänger bin, komme ich mit dem Event-gesteuerten Ablauf besser klar. Man kann (auch wenns am Anfanf schwer fällt) den Ablauf besser nachvollziehen.

 

Noch 2 Fragen zu deiner Grafik: (wir reden über Backtests):

 

1. Bekommst du in TS5 denn jede Minute einen Tick, obwohl der Backtest im Stundencahrt stattfindet?

 

2. Müsste der Crosses Under nicht so formuliert werden:

if (Close[1] Crosses Under ...) Then ...

 

Das ich von 2 Bars alten Entscheidungen rede, liegt am Close[1]. Wenn 1. und 2. zutreffen, wäre die Entscheidung dann nicht 1,x Bars alt?

 

Ich glaube, das Problem muss man wie 'wh' angedeutet hat, über die Slippage lösen.

 

Gruß

Eddy

Geschrieben

1. Bekommst du in TS5 denn jede Minute einen Tick, obwohl der Backtest im Stundencahrt stattfindet?

 

2. Müsste der Crosses Under nicht so formuliert werden:

if (Close[1] Crosses Under ...) Then ...

 

Das ich von 2 Bars alten Entscheidungen rede, liegt am Close[1]. Wenn 1. und 2. zutreffen, wäre die Entscheidung dann nicht 1,x Bars alt?

 

zu 1.: Nein, das meinte ich mit: TS5 hat keine IntraBarTickSimulation. Wenn TS5 einen Backtest mit Stundendaten macht, dann werden nur Signale gehandelt, die zum Close der Stundenkerze noch existieren. Sprich: TS5 berücksichtigt KEINEN kleineren Zeitrahmen als den, auf dem der Backtest läuft.

 

Man kann das jedoch mit etwas größerem eigenem Programmieraufwand umgehen, indem man z.B. ein HS auf m1 laufen läßt und trotzdem nur zum h1-Close Trades generieren läßt usw.

 

zu 2.: MMn. sind das zwei gleiche Vorgehensweisen, die du jedoch nicht vermischen solltest, da sonst der Sinn verlohren geht:

Entweder du sagst If ( Close[1] Crosses Under ... ) Then ... und führst die Order dann This Bar At Open; aus

Oder du sagst If ( Close Crosses Under ... ) Then ... und führst die Order dann Next Bar At Open; aus.

 

Wenn du beides zusammen mischt, dann bekommst du wie du schon richtig erkannt hast eine zwei-Bar-alte-Entscheidung, die jedoch total nutzlos ist, da du ein Bar lang wartest, obwohl zu diesem Bar die entscheidung garnichtmehr rückgängig gemacht werden kann!!!

 

Wenn du dich für eine der beiden Varianten entscheidest, dann ist die Entscheidung immer NUR

entweder vom aktuellen bis zum Close des aktuellen = Open des nächsten

oder vom letzten bis zum Open des aktuellen

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.