Jump to content
Tom Next - Daytrading Community

Sell This Bar on Close


Eddy

Recommended Posts

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

Link to comment
Share on other sites

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 :-)

Link to comment
Share on other sites

@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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

@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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...