Sonntag, 18. November 2018, 10:07 UTC+1

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

1

Mittwoch, 3. September 2003, 13:45

Schalter-Variable und Exit durch Stopp

Hallo zusammen,
ich habe ein Problem mit dem Zurücksetzen einer Variablen, die durch die Funktion Schalter "gefüttert" wurde. Um das Problem zu verdeutlichen, habe ich ganz einfache Handelsregeln (das ist natürlich kein real funktionierendes HS) zusammengefasst:

Zitat

global calc Long:
high>Ref(High, -1) and low<Ref(High, -1);

global calc Ex_Long:
low < Ref(Low, -1);

global calc Signal:
Schalter(0, Long, 1, Ex_Long, -1);

global calc EnterLong:
Signal = 1;

global calc ExitLong:
Signal = -1;


Das System arbeitet korrekt, wenn ich keine Stopps verwende. Wird ein Trade durch einen Stopp beendet, ist die Long-Bedingung u.U. noch erfüllt (Signal =1) und das System geht nach einer evtl. eingestellten Pause solange LONG, bis die Var. Signal auf -1 gesetzt wird.

Die Frage:
Gibt es eine Möglichkeit die Var. SIGNAL (das Schalterergebnis) auf -1 zu setzten, wenn der Trade durch einen Stopp beendet wird? Hat jemand eine Idee dazu?
Viele Grüße,
Hans-Jürgen

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 572

2

Mittwoch, 3. September 2003, 14:25

RE: Schalter-Variable und Exit durch Stopp

Hallo,

es ist leider nicht möglich, den Stop in der Schalter-Berechnung zu berücksichtigen (der Schalter wird vor den Stops berechnet). Was ist denn das Ziel, vielleicht gibt es eine andere Möglichkeit als über "Schalter".

Viele Grüße
Andreas Knöpfel

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

3

Mittwoch, 3. September 2003, 15:02

Hallo Herr Knöpfel,
es ist schade, dass dies nicht möglich ist. Es wäre sinnvoll, wenn man z.B. das Stoppereignis abfragen könnte und dann der Schalter.Var das Ergebnis -1 zuweisen könnte.

Das Ziel ist es verschiedene Komp. einer Basis in einem HS unterzubringen und das 1. Auftreten eines Signal der kleineren oder der größeren Komp "festzuhalten". Udo hatte dazu schon einige Ansätze gepostet, aber leider kommen wir da nicht recht weiter, da die Enter-Bedingungen logisch aufgelöst werden (was ja notwendig ist) und eine Bedingung mit einer kl. Komp in einer größeren Basis-Komp mehrfach sein Ergebnis ändern kann. Die ganzen Geschichten mit High und Low den Indikatoren führen zu unrealistischen Ergebnissen, wenn man als EnterBasis etwas anderes als CLOSE oder OPEN verwendet.

Ich werde später (evtl. erst heute Abend) dazu eine konkrete, möglichst einfache Formel posten, bei der das Problem auftritt.
Viele Grüße,
Hans-Jürgen

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

4

Mittwoch, 3. September 2003, 18:42

Hallo,
ich hab jetzt mal ein einfaches System zusammengestellt, bei dem das Zurücksetzen der Signale auftritt. M.E. ist das KEIN Fehler von Investox, sondern das Ergebnis der logischen Auswertung der EnterLong-Bedingung.

Das HS (auch nix für den Realbetrieb - nur Testformel)!

Zitat

Beschreibung für System 'Board'
Uhrzeit: 03.09.2003 18:13:10
Angelegt am: 05.08.2003 17:14:46
Zuletzt bearbeitet: 03.09.2003 17:50:40
Komprimierung: 30 Ticks

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

Enter Long:
EnterLong


Exit Long:
ExitLong

Übergreifende Definitionen:
global const G_Stopp: 10;
global const V_Stopp: 10;

global calc Long:
high > Ref(High, -1) and
Komp(#high>Ref(High, -1) and low<Ref(High, -1)#, #10T#);

global calc Ex_Long:
low < Ref(Low, -1);

global calc Signal:
Schalter(0, Long, 1, Ex_Long, -1);

global calc EnterLong:
Signal = 1;

global calc ExitLong:
Signal = -1;



***** Optimierung *****

Start: 21.03.2003
Ende: 20.06.2003

Optimierte Titel:
DAX-Future 03/09 (EUX Eurex)

Optimierungskriterien:
Maximiere 'Sharpe Ratio', Gewichtung: 1

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

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

Positionen: Long
Enter-Basis: Ref(high, -1) + 0.5
Delay: 0
Exit-Basis: Open
Delay: 1
Buy/Hold-Basis: Close
Trade-Mindestdauer: 0
Out-Mindestdauer: 1
Punkte testen
Initial Margin: 1000 €
Wert pro Punkt: 25 €
High/Low-Kurse zur Verlustberechnung verwenden!
Entry-Gebühren: 2 €
Exit-Gebühren: 2 €
Slippage: 0 €
Portfolio Zinssatz: 5
Risikotoleranz: 25
Sofortverlust Stop: bei V_Stopp Punkten
Sofortgewinn Stop: bei G_Stopp Punkten
Intra-Verlust Long+Short
bei V_Stopp Punkten
ab 1 Perioden
Intra-Gewinn Long+Short
bei G_Stopp Punkten
ab 1 Perioden
Money-Manag. Fester Kontrakt

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

Kein Optimierungsergebnis vorhanden



Ich habe es mal vollständig kopiert, damit es keine anderen Probleme gibt. Auch die Stopps sind absichtlich so weit gesetzt, um das Zurücksetzen besser zu fassen. Ich habe auch keine Indikatoren verwendet, weil das noch schwieriger Nachzuvollziehen ist. Es interessiert bei diesem Beispiel NUR der LONG-Teil. Short-Trades sind nicht aktiviert. Bitte die EnterBasis beachten!

Was die EnterLong-Formel bewirken soll:
Wenn das Vorperioden-High der Basis-Komp (30 Ticks) überschritten wird UND die kleinere Komp (10 Ticks) das Vorperioden-High der kleineren Komp überschreitet, soll das Signal kommen (ist auch so sh. Abb. 1 weiter unten), aber nicht wieder verschwinden (sh. Abb. 2 weiter unten), weil der 2. Teil der EnterLong-Bedingung dies natürlich bewirkt.

Mit SCHALTER könnte man nun das Teil-Ergebnis der Formel festhalten und letztendlich würde sie funktionieren - das Signal bliebe erhalten. Leider nicht mit Stopps.

In den Abb. wäre der Trade natürlich in die Hose gegangen ;), aber es handelt sich hier um ein Beispiel. Andere Signale, die aus anderen Formeln stehen und dieser Vorgehensweise folgen, sind sehr profitabel, sie sind aber nicht handelbar, weil man sie teilweise wieder verschwinden.

Ich hoffe, ich es es einigermaßen verständlich erklärt und es gäbe hierfür eine Lösung.
Viele Grüße,
Hans-Jürgen

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

5

Mittwoch, 3. September 2003, 18:43

Abb 1:
»Hans-Jürgen« hat folgendes Bild angehängt:
  • Temp_01.png
Viele Grüße,
Hans-Jürgen

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

6

Mittwoch, 3. September 2003, 18:43

Abb 2:
»Hans-Jürgen« hat folgendes Bild angehängt:
  • temp_02.png
Viele Grüße,
Hans-Jürgen

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

7

Donnerstag, 4. September 2003, 08:06

Guten Morgen,
manchmal muss man wohl erst ein Problem posten damit man selbst auf die Lösung kommt. Ich bin mir zwar sicher, auch Formelvariaten mit Cross(....) ausprobiert zu haben, aber ich muss das noch mal prüfen und durch den Simulator schicken. Mit konsequenter Anwendung von Cross(.....) sollten sich Probleme beheben lassen, auch mit unterschiedlichen Komp. Die oben gepostete Formel:

Zitat


global calc Long:
high > Ref(High, -1) and
Komp(#high>Ref(High, -1) and low<Ref(High, -1)#, #10T#);


kann man ja auch so schreiben:
global calc Long:
Cross(high, Ref(High, -1), 1) = 1 and
Komp(#Cross(high, Ref(High, -1), 1) = 1 and Cross(Low, Ref(High, -1), 1) = -1#, #10T#);

Ich muss das später noch mal testen.
Viele Grüße,
Hans-Jürgen