Donnerstag, 18. April 2024, 07:05 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.

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

21

Dienstag, 18. Juli 2006, 18:57

Zitat

Ich bin ab morgen wieder 4 Tage im Krankenhaus zur Untersuchung,



.... oh bei dem Wetter kann ich mir aber auch einen angenehmeren Zeitvertreib vorstellen.
Auf jeden Fall : Alles Gute !!!!
Viele Grüße von Anke

http://www.ascunia.de

winkel

unregistriert

22

Sonntag, 23. Juli 2006, 15:16

@Anke
danke, bin wieder daheim

Das System macht Trades ausserhalb der
Sessions, woran könnte es liegen? 8o

Unter Definitionen steht aber klar:
{Festlegung der Zeitfenster}
Calc Bed1: Zwischen(DatePart(h), 8, 10);
Calc Bed2: Zwischen(DatePart(h), 11, 13);
Calc Bed3: Zwischen(DatePart(h), 14, 23);
{Hier wird abgefragt welches High der Stundenkerze vorliegt und der Trigger um 10 pips angehoben}
Calc Abfrage1: Komp(#Ref(ValueWhen(high, DatePart(h) = 7, 1, V), -1)#, #60#) + 0.001;
Calc Abfrage2: Komp(#Ref(ValueWhen(high, DatePart(h) = 10, 1, V), -1)#, #60#) + 0.001;
Calc Abfrage3: Komp(#Ref(ValueWhen(high, DatePart(h) = 13, 1, V), -1)#, #60#) + 0.001;

Global Calc trigger_long: (If(bed3=1, Abfrage3, (If(bed2=1, Abfrage2, (If(bed1=1, Abfrage1, Abfrage1))))));

Demnach sollten nur Positionen zwischen 8-11; 11-14 und 14-17Uhr
eröffnet werden. ?(

Torsten

Snoopy

unregistriert

23

Sonntag, 23. Juli 2006, 16:40

Hallo Torsten,
nur der Trigger wird in den drei Zeitfenster berechnet. Der Trigger ist aber eine fortlaufende Datenreihe, d.h. er läuft auch nach 17.00 Uhr weiter. In der Zeit können dann auch Signale entstehen, wenn dieses nicht in den Regel zur Entstehung eines Signals beachtet wird. Die erste Regel zum Entstehen des Signal wäre das Durchkreuzen vom Kurs und den Trigger. Die zweite Regel damit das Signal nur in diesem Zeitraum von 8-17 Uhr enstehen kann, ist Zwischen(DatePart(h), 8, 16) . Die erste und zweite Regel wird mit and verknüpft.
Wird das Handelssystem nicht over night gehandelt kannst du auch anstatt die zweite Regel in Handelssystem einstellen/Test/Intraday die Handelszeiten einstellen.

Gruß Snoopy

winkel

unregistriert

24

Sonntag, 23. Juli 2006, 18:53

@Snoopy

danke, es funktioniert nun, habe in den
Einstellungen "Handelszeit begrenzen"
16.59 Uhr eingestellt.
Wenn ich 17 Uhr als Ende eingebe bekomme ich 6 Trades mehr angezeigt, eigenartig. ?(

In der Liste aller Trades wird unter Positionen neben "Long" auch
"Out" angezeigt und auch mitgezählt, obwohl "Out" eigentlich kein
Trade ist.
Kann ich diese Outpositionen unterdrücken?
In der Tabelle kann ich lediglich, nach "Out" bzw. "long" sortieren, hast Du eine Idee?

Torsten

Snoopy

unregistriert

25

Sonntag, 23. Juli 2006, 19:22

Das ist soweit richtig. Wenn um 17.00 Uhr die Periode beendet ist, werden noch Trades ausgeführt.
Unter Liste aller Trades kannst du auf das Feld EINSTELLEN klicken. Dann unter POSITIONEN das Häkchen OUT deaktivieren.

winkel

unregistriert

26

Sonntag, 23. Juli 2006, 19:54

@Snoopy

danke,

wenn ich die Anzeige "Positionen" in Liste aller Trades ausblende
bekomme ich sie zwar nicht mehr angezeigt, jedoch werden diese
OUT-Positionen als Trade abgerechnet!

Snoopy

unregistriert

27

Sonntag, 23. Juli 2006, 20:34

Torsten,
in der Liste dürften die Out Positionen nicht angezeigt werden.
Und wie sieht der Nettoprofit in der Tabelle aus :)
Gruß Snoopy

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Snoopy« (23. Juli 2006, 20:51)


winkel

unregistriert

28

Montag, 24. Juli 2006, 09:30

Die Outpositionen werden natürlich ausgeblendet, hatte sie nur aktiviert um zu zeigen das jedesmal eine eine fortlaufende Nummer für die Outpositionen generiert wird, was bei meiner grafischen Weiterbearbeitung in Exel sehr hinderlich ist.
Meine Aussage zu den Kosten der Outpositionen muss ich revidieren, hier
wird 0$ angezeigt.
Trotzdem frage ich mich welchen Sinn die Anzeige von Outpositionen hat?

Bei der Einstellung der Stops habe ich noch Probleme.
Wenn ich mir den Nettoprofit anschaue dann sehe ich Trades
die mit bis -500$ im Verlust bzw. 840$ im Gewinn enden obwohl ich
in den Stops für intraday Verlust =0,0010 Punkte und für Gewinn
0,0018 Punkte angegeben habe.

Bei den Kosten müssten ja 30$/RT=3pips richtig sein.

Anbei die aktuellen Einstellungen:

Beschreibung für System 'Forex Session'
Uhrzeit: 24.07.2006 09:24:17
Angelegt am: 18.07.2006 08:35:50
Zuletzt bearbeitet: 24.07.2006 09:07:36
Komprimierung: 60 Minuten

***** Regeln ******

Enter Long:
Cross(high, (trigger_long +0.001), 1) = 1


Übergreifende Definitionen:
{Festlegung der Zeitfenster}
Calc Bed1: Zwischen(DatePart(h), 8, 10);
Calc Bed2: Zwischen(DatePart(h), 11, 13);
Calc Bed3: Zwischen(DatePart(h), 14, 23);
{Hier wird abgefragt welches High der Stundenkerze vorliegt und der Trigger um 10 pips angehoben}
Calc Abfrage1: Komp(#Ref(ValueWhen(high, DatePart(h) = 7, 1, V), -1)#, #60#) + 0.001;
Calc Abfrage2: Komp(#Ref(ValueWhen(high, DatePart(h) = 10, 1, V), -1)#, #60#) + 0.001;
Calc Abfrage3: Komp(#Ref(ValueWhen(high, DatePart(h) = 13, 1, V), -1)#, #60#) + 0.001;

Global Calc trigger_long: (If(bed3=1, Abfrage3, (If(bed2=1, Abfrage2, (If(bed1=1, Abfrage1, Abfrage1))))));




***** Optimierung *****

Start: 01.01.1988
Ende: 31.12.1993

Optimierte Titel:
EURUSD5min_Januar-heute
EURUSD5_ab 11.07.06

Optimierungskriterien:
Maximiere 'Profit-Ratio zu Buy/Hold', Gewichtung: 1
Maximiere 'Sharpe Ratio', Gewichtung: 1

GA-Einstellung: Optimiere maximal 50 Generationen mit 15 Eltern und 100 Nachkommen.

***** Test-Einstellungen *****

Positionen: Long
Enter-Basis: MAX(open,trigger_long+0.001)

Delay: 0
Exit-Basis: Close
Delay: 0
Buy/Hold-Basis: Close
Trade-Mindestdauer: 0
Out-Mindestdauer: 0
Punkte testen
Initial Margin: 10000 $
Wert pro Punkt: 100000 $
High/Low-Kurse zur Verlustberechnung verwenden!
Entry-Gebühren: 30 $
Exit-Gebühren: 0 $
Slippage: 0 $
Portfolio Zinssatz: 5
Risikotoleranz: 24
Intra-Gewinn Long
bei 0,0018 Kurspunkten
ab 0 Perioden
Intra-Verlust Long
bei 0,0010 Kurspunkten
ab 0 Perioden
Handelszeit
von 08:00:00
bis 16:59:50
Money-Manag. Fester Kontrakt
Anzahl 1

***** Optimierungs-Report *****

Kein Optimierungsergebnis vorhanden




Torsten

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

29

Montag, 24. Juli 2006, 10:11

Hallo Torsten,

Zitat

Bei der Einstellung der Stops habe ich noch Probleme.
Wenn ich mir den Nettoprofit anschaue dann sehe ich Trades
die mit bis -500$ im Verlust bzw. 840$ im Gewinn enden obwohl ich
in den Stops für intraday Verlust =0,0010 Punkte und für Gewinn
0,0018 Punkte angegeben habe.



Dafür kann es verschiedene Gründe geben.
Ein Grund kann z.B. sein, dass sich der Kurs bereits in der Einstiegskerze weit vom Einstiegskurs entfernt hat.
In der Einstiegskerze werden aber Intraday-Stops noch nicht wirksam (....dafür gibt es ja die Sofortverlust-Stops....).
Der Intraday-Stop wird dann in der 1. Kerze nach dem Entry ausgelöst. Da kann aber der Kurs schon deutlich über / unter dem Stoplevel liegen.

Am besten, Du schaust Dir die Einzeltrades an, bei denen das Stoplevel gravierend überschritten wurde. Dann siehst Du sicherlich auch, warum das so war und kannst ggf. zusätzliche Systemregeln implementieren, um den Zustand abzuändern.
Viele Grüße von Anke

http://www.ascunia.de

winkel

unregistriert

30

Montag, 24. Juli 2006, 10:30

Hallo Anke,

Zitat

Am besten, Du schaust Dir die Einzeltrades an, bei denen das Stoplevel gravierend überschritten wurde. Dann siehst Du sicherlich auch, warum das so war und kannst ggf. zusätzliche Systemregeln implementieren, um den Zustand abzuändern.


Der Chart meines HS ist fest an die 60min gebunden , kann man die Einstellungen ändern ohne an den HS Einstellungen zu schrauben, oder sollte ich einen extra Chart öffnen, z.B. 5min?

Torsten


Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

31

Montag, 24. Juli 2006, 10:38

Wofür brauchst Du denn einen extra 5-Minuten Charts, wenn Du Dir einige Einzeltrades mit höherem Gewinn/Verlust als die eingestellten Stoplevel in Deinem 60-Minuten Handelssystem anschauen möchtest ? Das verstehe ich nicht ....dafür reichen doch auch die Tradeliste und der aktuelle Chart?

Die Komprimierung des Handelssystems kannst Du aber dennoch in den Handelssystem-Einstellungen ändern (Menü Handelssystem---Handelssystem einstellen --- Registrierkarte Titel ).
Viele Grüße von Anke

http://www.ascunia.de

winkel

unregistriert

32

Montag, 24. Juli 2006, 11:30

Zitat

In der Einstiegskerze werden aber Intraday-Stops noch nicht wirksam (....dafür gibt es ja die Sofortverlust-Stops....).
Der Intraday-Stop wird dann in der 1. Kerze nach dem Entry ausgelöst. Da kann aber der Kurs schon deutlich über / unter dem Stoplevel liegen.


Ja genau das ist das Problem.
Der Ansatz ist ja, das sofort mit der Entryorder Stop und Target aufgegeben werden, so wie im Livetrade auch.
Wenn ich die Sofortstops verwende , bekomme ich die Fehlermeldung:

Stops für die Eröffnungsperiode sollten nur in Verbindung mit Enterbasis"open" eingesetzt werden.
In der Enterbasis steht aber: Enter-Basis: MAX(open,trigger_long+0.001 ?(

Was mache ich falsch?
Torsten

Snoopy

unregistriert

33

Mittwoch, 26. Juli 2006, 12:45

Hallo Torsten,
für den Sofortstop sollte Open verwendet werden. Sonst könnten die Ergebnisse nicht genau der Realität entsprechen.
Hast du Tickdaten zur Verfügung. Am realistischen kannst du das System mit Tickdaten testen oder mindesten mit 1min Daten.

winkel

unregistriert

34

Mittwoch, 26. Juli 2006, 19:57

Snoopy

Enterbasis habe ich auf Open gesetzt, nun sieht das System schon viel besser aus. 8:)

Jetzt möchte ich auch die Shortseite testen.
Müsste dann bei Enter Short: Cross(low, (trigger_short +0.001), 1) = -1
stehen?
Die Definitionen habe ich so erweitertert:


wäre das korrekt? :rolleyes:

Torsten

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

35

Mittwoch, 26. Juli 2006, 20:15

Hallo Torsten,

Zitat

Enterbasis habe ich auf Open gesetzt, nun sieht das System schon viel besser aus.



... und das System schaut trotzdem nicht in die Zukunft ???????

Es ist also nicht so, dass irgendwann im Laufe einer Candle Deine Cross-Regel zutrifft und das System immer schon zum Open dieser Candle rechnet ?
Viele Grüße von Anke

http://www.ascunia.de

winkel

unregistriert

36

Mittwoch, 26. Juli 2006, 20:51

Zitat

und das System schaut trotzdem nicht in die Zukunft ???????

Es ist also nicht so, dass irgendwann im Laufe einer Candle Deine Cross-Regel zutrifft und das System immer schon zum Open dieser Candle rechnet ?


mmhhhh, kannst Du Dich etwas ausführlicher ausdrücken? ?(

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

37

Mittwoch, 26. Juli 2006, 21:11

.... noch ausführlicher ???? :D :D

Ich werde es versuchen, obwohl der Zusammenhang ja auch schon oft hier im Forum besprochen wurde.

Deine Enter-Long Regel lautet:

Cross(high, (trigger_long +0.001), 1) = 1

Komprimierung ist 60 Minuten

Wenn innerhalb einer 60-Minuten Candle das Hoch dieser Candle größer als Dein trigger_long + 0.001 ist, willst Du zum Open dieser Candle in den Markt gehen - richtig ? (....Enter Basis ist bei Dir Open, Delay 0....)
Das ist nicht realistisch. Liegt Dein trigger_long + 0.001 z.B. deutlich höher als der Open der Candle, wirst Du zum Zeitpunkt der Notierung des höheren Kurses, nicht mehr zum Open kaufen können.
Zum Zeitpunkt des Open weißt Du aber noch nicht, ob im Laufe der 60-Minuten der trigger_long + 0.001 überhaupt gekreuzt wird (...also ob ein Enter-Signal auftreten wird).
Viele Grüße von Anke

http://www.ascunia.de

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

38

Mittwoch, 26. Juli 2006, 22:49

… um alle Unklarheiten (hoffentlich) zu beseitigen:

Das Handelssystem in 60-Minuten Komprimierung war mit der Enter-Basis:
MAX(open,trigger_long+0.001)
Delay 0
richtig gecodet.

Sofortverlust-Stops können in diesem Handelssystem nicht eingesetzt werden, weil dafür die Enter-Basis : Open lauten sollte.
Änderst Du die Enter-Basis einfach nur auf Open, Delay 0 ab, schaut Dein System aber in die Zukunft.

Es gibt 2 Möglichkeiten, die Wirkungsweise von Stops gleich nach dem Markteinstieg zu testen.
Beide Möglichkeiten hat Dir Snoopy vollkommen korrekt benannt.

Variante a) (…die sauberste Lösung…)
Du testest Dein System auf Basis reiner Tickdaten. Die Systemregeln müssen dazu umgeschrieben werden. Sofortverlust-Stops verwendest Du nicht, weil reine Tickdaten nur Close-Kurse enthalten. Die Intraday-Verluststops wirken aber dann ja sofort ab dem nächsten Tick nach Markteintritt, so dass Sofortverlust-Stops auch nicht nötig sind.

Variante b) (…. Die Näherungs-Lösung)
Du verwendest für den Backtest eine deutlich kleinere Komprimierung als 60-Minuten (z.B. 1 Minute). Das hat den Effekt, dass Deine Intraday-Stops eben z.B. schon (maximal)1 Minute nach Eröffnung des Trades ausgelöst werden können – nicht erst 60 Minuten später.
Du bist also im Backtest näher an dem Verhalten, das Du testen möchtest.
Das Restrisiko besteht darin, dass sich in der (maximal) 1 Minute seit Eröffnung des Trades bis zum Beginn der nächsten Kerze (…ab der die Intraday-Stops wirken) der Kurs theoretisch ebenfalls schon deutlich von Deinen Stop-Levels entfernt haben könnte. Das ist aber weniger wahrscheinlich, als wenn zwischen Eröffnung des Trades und der nächsten Kerze nach Eröffnung maximal 60 Minuten vergehen können.

Fazit:
Sofortverlust-Stops werden zwar immer sofort in der Eröffnungsperiode des Trades wirksam, eignen sich aber nicht für jedes Handelssystem, weil Sie eben die Enter-Basis „Open“ erfordern. Eine Änderung der Enter-Basis auf „Open“ darf aber nicht um den Preis erfolgen, dass das Handelssystem danach in die Zukunft schaut.
Darauf wollte ich Dich hinweisen.

Ich denke auch Snoopy wollte Dich nicht dazu auffordern, die Enter-Basis Deines Handelssystems auf Open, Delay 0 zu ändern.

Um die Wirkungsweise von Stops gleich nach der Eröffnung des Trades für Dein System zu testen, geh also einen der beiden Wege, die Dir Snoopy schon vorgeschlagen hat.

Passe nie einfach nur die Enter-Basis eines Handelssystems für die Verwendung von Sofortstops an, wenn Du nicht ausschließen kannst, dass das Handelssystem danach in die Zukunft schaut.

War es jetzt besser verständlich erklärt ? Falls nicht, frag halt nochmal nach.
Viele Grüße von Anke

http://www.ascunia.de

winkel

unregistriert

39

Donnerstag, 27. Juli 2006, 10:29

Moin moin,

Anke, Snoopy

danke das Ihr weiterhin Unterstützung gebt,
mir stehen schon die Haare zu Berge, ohne die Hilfe aus dem Forum
hätte ich schon längst aufgegeben. :baby:

Tickdaten habe ich leider nicht zur Verfügung.
Ich nutze die 1min Daten von Alpari, die sind aber nicht ganz fehlerfrei.


Müsste für Varinate b mit Enterbasis "MAX(open,trigger_long+0.001)
" das System geändert werden, wenn ich auf auf 1min Komp umschalte?
Das Risiko besteht doch nur zur Eröffnungsperiode.
Nach Ende der ersten Periode (1min) sollte dann der Intradaystop greifen.
In der Liste aller Trades könnte ich dann die Auswirkung des fehlenden
Sofortstop checken, max. theoretischer Verlust müsste dann grösser sein
wenn in der Eröffnungsperiode der schützende Stop nicht vorhanden ist.
Steht MAX(open,trigger_long+0.001); für -Bedingung erfüllt =>then buy at market?

Dann sollte also bei Systemen die auf Enter Basis Open und Delay=0
erstellt worden sind zur Absicherung der Position immer zwei Stops
verwendet werden, der Sofortstop für die Eröffnungsperiode und Intradaystop
nach der Eröffnungsperiode.
Wenn ich allerdings Delay =1 einsetze würde der Intraystop zur Absicherung
der Position genügen.

Grüße und vielen Dank Anke, für die ausführliche Antwort :engel:

Torsten

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

40

Donnerstag, 27. Juli 2006, 11:15

Moin Torsten,

… ok, dann fang ich mal einfach mit Frage 1 an.


Zitat

Müsste für Varinate b mit Enterbasis "MAX(open,trigger_long+0.001)
" das System geändert werden, wenn ich auf auf 1min Komp umschalte?


Prinzipiell nicht.

Dennoch:

An Deinem aktuellen System würde ich trotzdem einige Kleinigkeiten ändern – aber eins nach dem anderen- ok ?

Ich habe mir die Postings hier noch einmal durchgeschaut und dabei festgestellt, dass Guido in seinem ersten Beitrag zunächst den „nackten“ Trigger im Bereich „Definitionen“ des Handelssystems berechnet hat und später dann in der Cross-Regel unter Enter auf ein Crossing des Triggers + Limit abgestellt hat.

Snoopy hingegen hat die tatsächlich relevante Linie Trigger + Limit 0.001 (für Long) bereits komplett im Definitionsbereich des Handelssystems definiert.
In den Enter-Regeln muss dann nur noch auf ein Crossing des Triggers abgestellt werden (…ohne nochmalige Addition des Limits bei Long-Trades)
.
Beide Vorgehensweisen sind vollkommen richtig und möglich – nur solltest Du Dich an dieser Stelle für eine der beiden entscheiden.
Das ist wichtig, weil die korrekte Enter Regel und Enter-Basis davon abhängt, welche Definitionsart Du wählst.

Die Enter-Regel und Enter-Basis die ich Dir früher in diesem Thread vorgeschlagen habe i.e.

Regel: Cross(high, (trigger_long +0.001), 1) = 1
Basis: Max(open,Trigger_long+0.001)

passt für Guidos Lösung.
Es ist aber absolut kein Problem, die Regeln für Snoopy´s Art der Definition anzupassen.

Also:
Welchen Weg der Definition willst Du wählen – den von Guido oder Snoopy ?
Viele Grüße von Anke

http://www.ascunia.de