Mittwoch, 17. April 2024, 00:03 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Sonntag, 10. Oktober 2010, 17:58

OM: alle offenen Orders zu einem definierten Zeitpunkt aus Orderbuch löschen... bitte OM erweitern

Hallo,

man hat verschiedene Orderlösch-Optionen im OM, aber vielleicht könnte man diese noch so erweitern, dass alle offenen Orders zu einer bestimmten Uhrzeit gelöscht werden.

Wozu?
Angenommen man hat ein DAX-Ausbruch-HS und es wird eine Stop-Order im Laufe des Tages abgesetzt, aber dann kommen die Kurse zurück und die Order wird nie ausgeführt.
Am Ende des Handelstages um 22:10 Uhr könnte man dann alle noch offenen Orders automatisch löschen. Hätte man so ein HS auf dem SMI, dann könnte man es schon um 18:00Uhr tun. Und hätte man so ein HS am Forex-Markt, dann könnte um 23:59Uhr ein guter Zeitpunkt sein, sich aller Altlasten des Tages zu entledigen.

Sicher man kann auch jeden Tag händisch die offenen Orders durchgegehen und alle löschen, aber man könnte es auch leicht mal vergessen, deshalb wäre so einen automatisiertre Löschung zu einer bestimmten Uhrzeit am Tag genau das optimale.

Danke.

Viele Grüße
Sten

PS:
Sorry, die bestehende Löschoption nach X Perioden ist aus meiner Sicht zu unflexibel.
»sten« hat folgendes Bild angehängt:
  • 101010_offeneOrders_zuBestimmterZeitLöschen.GIF

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Sonntag, 10. Oktober 2010, 21:33

Aufgabenmanager / Offene Orders im Depot des Ordermoduls streichen. Es gibt auch noch ein paar weitere Aufgaben in der Richtung.

Wenn Du es gezielt haben möchtest, kannst Du dieses Beispiel doch auch sehr einfach gezielt umsetzen:
> Am Ende des Handelstages um 22:10 Uhr könnte man dann alle noch offenen Orders automatisch löschen.

Hau einfach einen Tradedauer-Stop mit 1 Periode rein mit Zusatzbedingung Uhrzeit >= 2210; falls bestehende Positionen erhalten bleiben sollen, dann kommt halt noch ein AND und die Abfrage auf keine Depotposition dazu. Das hat dann auch gleich den Vorteil, dass das HS und das ORM in sync bleiben.
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

3

Dienstag, 12. Oktober 2010, 09:51

Hallo Bernd,

Zitat

Aufgabenmanager / Offene Orders im Depot des Ordermoduls streichen.

Hier wäre es noch gut, wenn man den HS-Namen mit angeben könnte, auf welchen HS diese Methodik angewendet werden soll.

Zitat

Hau einfach einen Tradedauer-Stop mit 1 Periode rein mit Zusatzbedingung Uhrzeit >= 2210; falls bestehende Positionen erhalten bleiben sollen, dann kommt halt noch ein AND und die Abfrage auf keine Depotposition dazu. Das hat dann auch gleich den Vorteil, dass das HS und das ORM in sync bleiben.


Danke, das werde ich mal ausprobieren.

Viele Grüße
Sten

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

4

Mittwoch, 13. Oktober 2010, 16:55

Hallo,

ich habe es jetzt mit dem Tradedauerstop wie folgt umgesetzt:

Zitat


//Tradedauerstop: bei offene, nicht gefillte Orders am Tagesende Position im HS zurücksetzen (Sync: HS mit OM)
//Randbedingung: Sync HS mit OM von 0:00-0:59Uhr, Order gültig von 1:00 bis 23:59Uhr und Stopschelle über ganzen Tag konstant nach Freischaltung
global Calc Zusatzbedingung_TDStop: If( isBacktest, 0, DatePart(h)=0 AND Ref(DepotHist(s) = 0, -1) );//Uhrzeit=0:xxUhr AND in Vorperiode keine Position im Depot


Es tritt aber folgendes Problem auf:
Im Backtest hat man keine Position im Depot, d.h. die Tradedauerstop löst zu der angegebenen Zeit aus und verfälscht die Signale. Also braucht man eine Umschaltung zwischen Backtest und Livebetrieb. Für Backtest mit Variable 'isBacktest' Problem gelöst.

Allerdings im Livebetrieb löst der Tradedauerstop immer aus (zumindestens für die Vergangenheit, wo noch keine Depoteinträge existieren), d.h. man hat eine völlig verfälschte (meist stark fallende) Kapitalkurve im Livebetrieb. Das kann schon ein bischen irritieren..

Viele Grüße
Sten

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

5

Mittwoch, 13. Oktober 2010, 17:13

für die Vergangenheit, wo noch keine Depoteinträge existieren

Da gibt's Ersatz() für.
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

6

Mittwoch, 13. Oktober 2010, 18:16

Hallo Bernd,

ich glaube Ersatz() wirkt in diesem Zusammenhang nicht, d.h. ich habe jetzt 3 Varianten ausprobiert. Es kommt keine Fehlermeldung und es bleibt leider alles unverändert bei der Kapitalkurve im Live-Modus trotz Ersatz()-Funktion.

...Ref(DepotHist(s) = 0, -1)...
...Ref(Ersatz(DepotHist(s) = 0, 0), -1)...

Hmm, mache ich nur irgend was falsch oder geht es wirklich nicht ;( ?

Viele Grüße
Sten

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

7

Mittwoch, 13. Oktober 2010, 19:03

Ach, ach sten, was soll ich Dir sagen.

Ich hab's jetzt nicht getestet, sondern mal eben runtergetippt und vielleicht ist irgendwo ne Klammer zuviel; und möglicherweise musst Du in Abhängigkeit von Deinem Delay den Ersatz() aussem um Ref() herum verschachteln statt innen hinein. Aber das Prinzip wird hoffentlich klar:

Zitat


global calc Uhrzeit: DatePart(h)*100+DatePart(n);
global calc DepotPos: Ref( Ersatz( DepotHist(s), #_keinWert#), -1);
global Calc Zusatzbedingung_TDStop: If( isBacktest, 0, Uhrzeit >= 2210 AND DepotPos = 0);
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

8

Mittwoch, 13. Oktober 2010, 20:13

Hallo Bernd,

super, so geht es. :)
Wenn man die StopOrder-Schwellen nicht vorverlegt, dann ist Backtest=Livemodus, d.h. man kann die Umschaltung 'isBacktest' herausnehmen.

Vielen Dank Bernd.

Viele Grüße
Sten

PS:
Gibt es eventuell noch einen Trick die StopOrder-Schwellen vorzuverlegen ohne das sich die Signalgenerierung/Kapitalkurve gegenüber dem Originalsystem verändert?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »sten« (14. Oktober 2010, 00:46)


sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

9

Donnerstag, 14. Oktober 2010, 01:07

Hallo,

das ist ganz schön verzwickt, wenn man eine Stop-Order vorzeitig (mit vorgezogener Entry-Schwelle) aufgeben möchte.

Es treten hierbei 2 Probleme auf:
1.) offene Orders können am Ende des Tages noch im Orderbuch stehen
2.) durch die vorgezogene Schwellen werden andere Signale/Positionen im Handelssystem generiert, als eigentlich im Backtest ermittelt. Dadurch können "fiktive" Positionen entstehen, die dann später den korrekten Einstieg verhinden.

Lösung:
zu 1.) wie Bernd oben beschrieben mit dem Aufgabenmanager einen Lösch-Task für offene Orders z.B. für Mitternacht definieren
--> funktioniert, d.h. gelbes Kreuz verschwindet und Order wird aus dem Orderbuch gelöscht

zu 2.) man muss die "fiktiven" Positionen (aber nur die!!!) im Handelssystem wegbekommen, so dass sie am nächsten Tag nichts blockieren. Die Idee war mit einem Tradedauerstop wie oben beschrieben, aber dieser wirkt nur von 22:10 bis 23:59Uhr. Danach wären die fiktiven Positionen wieder da.
--> möglicherweise müsste man die Zeit so definieren: If( isBacktest, 0, Uhrzeit >= 0001 AND DepotPos = 0);
Fall A: keine Position:
-> jede "fiktive" Position im HS wird ganz schnell wieder geschlossen und sollte so nichts blockieren

Fall B: es wird eine Position eröffnet:
-> die Zusatzbedingung bleibt immer =0, d.h. Tradedauerstop bleibt deaktiviert

Viele Grüße
Sten

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

10

Donnerstag, 14. Oktober 2010, 10:56

dieser wirkt nur von 22:10 bis 23:59Uhr. Danach wären die fiktiven Positionen wieder da.

Aber dafür gibt's doch #_Aktivierend# .
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

11

Donnerstag, 14. Oktober 2010, 12:13

Hallo Bernd,

ja Du hast recht, sorry hatte ich leider vergessen gehabt.
Funktioniert so :) , ich habe die Zeit jetzt auf genau Mitternacht eingestellt, so sollte es am universellsten einsetzbar sein.

Vielen Dank.

Viele Grüße
Sten

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

12

Donnerstag, 14. Oktober 2010, 18:01

1.) offene Orders können am Ende des Tages noch im Orderbuch stehen

wenn man GTD Orders nimmt, löscht IB die automatisch um Mitternacht, nur mal so als Idee..

2.) durch die vorgezogene Schwellen werden andere Signale/Positionen im Handelssystem generiert, als eigentlich im Backtest ermittelt. Dadurch können "fiktive" Positionen entstehen, die dann später den korrekten Einstieg verhinden.


Dann musst Du zu den fiktiven Positionen auch fiktive Ausstiege per vergewaltigtem Tradedauerstop erstellen.
Wenn´s Dir darum geht nach einem long stop der nicht gefillt wurde einen Short Einstieg nicht zu verpassen hast Du 2 Möglichkeiten:
1. Long und Short in unterschiedliche HS zu verpacken
2. eine neutrale Zone im Chart einzuführen. Wenn der Kurs dahin läuft und keine Depot Position hat, wird der Trade beendet und ORM storniert natürlich dabei auch den Stop und IV ist bereit für einen Short EInstieg.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

13

Donnerstag, 14. Oktober 2010, 19:10

Hallo Lenzelott,

Mensch Du bist doch im Urlaub. Finde ich super, dass Du trotzdem immer ein Auge auf das Board hast, um zu helfen. Danke.

Zitat

wenn man GTD Orders nimmt, löscht IB die automatisch um Mitternacht, nur mal so als Idee..


Das habe ich dazu gefunden. Wäre nicht schlecht, wenn das möglich wäre.

Zitat

Sie können jeden Ordertypen in eine GTD Order abändern. Mit dieser änderung stellen Sie sicher, dass ihre Order solange in IB's Handelssystem bleibt bis zum Handelsende des Tages den Sie in den GTD Einstellungen spezifizierten. Falls Sie auch eine bestimmte Tageszeit ausgesucht haben, dann bleibt die Order bis zu einer konkreten Uhrzeit aktiv. Sie wollen dass ihre GTD Order bis 14:15 Uhr, am 4. Januar 2006, EST, aktiv im System bleibt. Zuerst geben Sie demnach 20060104 ins Exp. Date Feld ein, anschliessend kommt die Eingabe der Zeit im Exp. Time Feld, 14:15:00 und die Überprüfung des Kürzels der Zeitzonenangabe (EST).

Ich glaube wir haben da keinen Einschluss drauf, dass wird intern vom OM abgewickelt.
Sind "GTD Orders" Standard, d.h. bei alle Brokern verfügbar oder nur ein special von IB. In letzteren Fall könnte es für Hr. Knöpfel schwierig werden, dann ein einheitliches, homogenes OM für alle unterstützen Broker zur Verfügung zu stellen, wenn IB es hat und Broker B und Broker C nicht...

Zitat


Wenn´s Dir darum geht nach einem long stop der nicht gefillt wurde einen Short Einstieg nicht zu verpassen hast Du 2 Möglichkeiten:
1. Long und Short in unterschiedliche HS zu verpacken
2. eine neutrale Zone im Chart einzuführen. Wenn der Kurs dahin läuft und keine Depot Position hat, wird der Trade beendet und ORM storniert natürlich dabei auch den Stop und IV ist bereit für einen Short EInstieg.

zu 1) Wenn alle Strick reißen dann so, aber noch bin ich optimistisch alles in ein HS rein zu bekommen, welches nur über eine Variable 'isBacktest' umgeschaltet wird zw. Backtest und Livemodus.
zu 2) Wenn ich es richtig verstehe, dann kann Investox im HS eine Position eröffnen, eine Order generieren und diese Order kann im OM auch weiter existieren, wenn die Position schon längst wieder beendet wurde. Habe bei Orderüberwachung deshalb alle Hacken herausgenommen bis auf den 1. und den vorletzten. Ich spekuliere darauf, dass auch offene long & short-StopOrders gleichzeitig vom OM verwalten werden können, wenn man im OM-Signalumsetzung "1 Entersignal pro Richtung" einstellt.

Aber alles bis jetzt nur Theorie. Ich kann auch total falsch liegen. Muss man erst alles ausprobieren und beobachten wie sich Inv. dann im konkreten Fall im VB verhält und wenn nicht, ob man es vielleicht doch noch irgendwie hinbiegen kann. Vieles geht mittlerweile bei Inv. wenn man tief in die Trickkiste greifen kann..

Danke.

Viele Grüße
Sten

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

14

Donnerstag, 14. Oktober 2010, 19:30

Hallo Torsten

kann Investox im HS eine Position eröffnen, eine Order generieren und diese Order kann im OM auch weiter existieren, wenn die Position schon längst wieder beendet wurde.

Letztlich wird dann im Markt irgendendwas gehandelt, was mit dem Backtest irgendwie nichts mehr zu tun hat! Ich bin immer bestrebt, genau das zu vermeiden und das ORM exakt das umsetzen zu lassen, was ich gebacktestet habe.

Warum könnte das Loslösen des ORM vom HS denn Deiner Meinung nach Sinn machen? Für automatische Handelssysteme halte ich diese Entkopplung wie geschildert für ziemlich gefährlich.
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

15

Donnerstag, 14. Oktober 2010, 19:40

Hi,

Zitat

Ich spekuliere darauf, dass auch offene long & short-StopOrders gleichzeitig vom OM verwalten werden können, wenn man im OM-Signalumsetzung "1 Entersignal pro Richtung" einstellt.


Heute früh wurde die long-Stoporder aktiviert und Stop-Order lag korrekt im Orderbuch. Wurde nicht ausgelöst und die Kurse sind danach gefallen. Gerade wurde die short-Stoporder aktiviert, aber leider wurde dann im OM die andere Stop-Order gelöscht.
Ich befürchte, wenn jetzt die Kurse wieder steigen sollten, dass dann kein zweite long-Stoporder generiert werden kann, weil HS beschränkt ist auf nur eine Order long/short pro Tag.

Ich werde mal den OM-Hacken "Stückzahl Depot/HS abgleichen" auch herausnehmen. Mein Ziel ist es zu erreichen, dass scharf geschaltete long und short-Stoporder im OM gleichzeitig existieren können, solange bis sie dann erst um Mitternacht über den Aufgaben-ManagerTask gelöscht werden, falls die Stopschwellen nicht vorher überschritten wurde.

Viele Grüße
Sten

PS:
Im Bild sieht man mit durchgehenden Linien rot und grün die Entry-Stopschwellen. Bei den gestrichelten Linien wurden die jeweiligen Stoporder's abgeschickt. Im Idealfall müsste jetzt beide StopOrders beim Broker liegen und welche dann ausgeführt wird entscheidet der Markt. Bernd, ich halte mich zu jedem Zeitpunkt ganz genau an den Backtest.
»sten« hat folgendes Bild angehängt:
  • 101014_StopSignale.jpg

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »sten« (14. Oktober 2010, 19:59)