Dienstag, 16. April 2024, 18:48 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

1

Montag, 9. Juni 2003, 12:11

stopregeln

Hallo zusammen

Ich versuche mich zurzeit an Anwenderstops aber das klappt nicht wie ich es gerne hätte. Ich habe zwei stops Probiert der erste soll nach drei Perioden wirksam werden wenn der Trade im Plus ist und das Stoplevel auf den Einstigspreis setzten.
Mein Versuch:

Calc B1: max(close, tradeentryprice);{Ermitlung ob der Schlusskurs oder Einstiegspreis höher}
calc SLH: tradeentryprice; {neues Stoplevel}
Calc SLL: ref(low, -4); {altes Stoplevel}
if(close>b1, slh, sll)

für den zweiten stop habe ich keinen wirklichen Einstieg in die Programmierung gefunden. Ich möchte wenn der Trade im Plus und mindestens 4 Tage schon läuft das Stoplevel auf das low vor 2Tagen setzen aber nur wenn ein neues Hoch im Tagesverlauf ereicht wurde und der Stochhastik Indikator größer 50 ist.

Danke schon im Voraus
Revel7777
Mit freundlichen Grüßen

Revel7777

Thomas

unregistriert

2

Montag, 9. Juni 2003, 14:06

Hallo revel,

das sieht eigentlich schon sehr gut aus, was du da gemacht hast. Die Programmierung ist jedoch nicht für die Zusatzbedingung des Anwenderstopps geeignet, da sie nur die Ausstiegsbasis festlegt, jedoch keine Bedingung mit 0 (unwahr) oder 1 (wahr) erfüllt wird. Zurückgegeben wird der Ausstiegspreis, das Feld Anwenderstop benötigt jedoch das Ergebnis 0 oder 1.

Du kannst die Bedingung so wie sie ist bei den Optionen unter optionaler abweichender Ausstiegsbedingung eintragen (falls der Ausstieg nicht zum Close oder dem anderen unter den normalen Ausstiegsbedingungen angegebenen Preis abgerechnet werden soll), damit hast du einen Teil der Stopbedingung bereits erfüllt.

Anschließend solltest du die Formel um einen Zusatz ergänzen, der den Wert 0 oder 1 zurückgibt. Beispiel:

Calc B1: max(close, tradeentryprice);{Ermitlung ob der Schlusskurs oder Einstiegspreis höher}
calc SLH: tradeentryprice; {neues Stoplevel}
Calc SLL: ref(low, -4); {altes Stoplevel}
calc stop: if(close>b1, slh, sll);
low<stop

Bitte erst testen, habe ich nicht gemacht.

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

3

Dienstag, 10. Juni 2003, 10:45

Erst mal Danke Thomas

werde es bald ausprobieren hast du auch eine Idee zum zweiten stop?

grüße
Revel7777
Mit freundlichen Grüßen

Revel7777

Thomas

unregistriert

4

Dienstag, 10. Juni 2003, 12:47

Hallo revel,

ich habe mit den Schlüsselwörtern bei den Anwenderstoppst bisher kaum gearbeitet. Die Bedingung die du beschreibst beinhaltet meiner Meinung nach auch schon zwei Anwenderstopps. Einen Verlust- und einen Gewinnstopp.

Ich könnte mir vorstellen, dass man das gewünschte Ergebnis mit dieser Regel hinbekommt:

calc B1: Tradeprice>TradeEntryPrice;
calc B2: Tradeperiods>=4;
calc B3: Stoch(5, 3)>50;
calc stoplevel: Ref(low, -2);
calc newhigh: Tradeprice = HHV(high, Tradeperiods);
If(B1+B2+B3+newhigh=4, 1, low<stoplevel)

Da ich damit aber noch nicht viel gemacht habe solltest du die Bedingung sorgfältig prüfen. Bin mir nämlich nicht sicher ob ich sie richtig geschrieben habe und ob man das überhaupt so machen kann.

Ein kleines Problem stellt die abweichende Ausstiegsbasis dar, falls diese zur Anwendung kommen soll. Dort bekomme ich eine Fehlermeldung. Es ist möglich, dass man die Schlüsselwörter dort gar nicht verwenden kann. In diesem Fall müsstest du sie umschreiben. Eigentlich machst du hier auch aus einem EoD Handelssystem ein Handelssystem mit Intradayausstieg. Es würde sich anbieten für den Stop Intradaydaten zu verwenden. Mit Daten auf Tick- oder Minutenbasis sind solche Bedingungen einfacher zu definieren.

Da ich jetzt einen Termin habe kann ich dir im Moment leider keinen Vorschlag für die Umsetzung machen.

Vielleicht kann dir jemand anderes aus dem Forum weiterhelfen?

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

5

Dienstag, 10. Juni 2003, 20:08

Thomas, erst mal vielen Dank für die mühe die du dir machst!!!!!

Haben den zweiten noch nicht getestet, aber den ersten noch mal überarbeitet wegen dem Hinweis das bei Stops nur 0 oder 1 als Ergebniss sein kann!!!
Der Stop funktioniert aber immer noch nicht wie ich ihn brauchen würde, (Beschreibung in der ersten Nachricht) ich stelle ihn deshalb noch mal in Forum.

calc B1: Tradeentryprice > low; {Stoplevel Vestlegung}
calc B2: Tradeperiods=3 AND Close > Tradeentryprice; {Ermittlung ob der Trade am dritten Tag im Plus war}
If(B1+B2 =2, 1, 0)

Grüsse
Revel7777
Mit freundlichen Grüßen

Revel7777

Thomas

unregistriert

6

Dienstag, 10. Juni 2003, 21:17

Hallo revel,

könntest du genauer beschreiben, was der Stopp macht?
Der Fehler wäre dann besser einzugrenzen.

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

7

Dienstag, 10. Juni 2003, 21:46

Hallo Thomas

der Stop soll am dritten Tag des Trades nur wenn der Trade im Plus ist, das Austiegslevel auf den Tradeentryprice setzen. Sprich den Trade schliessen zum Close wenn der Trade unter den tradeentryprice in den darauf volgenden Tagen fält.
Mit freundlichen Grüßen

Revel7777

Thomas

unregistriert

8

Dienstag, 10. Juni 2003, 23:17

Hallo revel,

mir war nicht klar, dass du in die Zukunft blicken willst ;-)

Die Lösung hängt davon ab, welche Ausstiegsbasis und welchen Delay du unter Position in der Exit-Basis gewählt hast. Hast du dort Close und Delay 1 gewählt? Wenn ja, dann steigt das Handelssystem immer zum nächsten Tag aus. Du müsstest beim Anwenderstopp also den Delay auf 0 setzen, da das Handelssystem beim Stopp abweichend am selben Tag aussteigen soll. Als Ausstiegsbasis kannst du dort Close angeben, falls du unter den Bedingungen für den normalen Ausstieg (Exit-Basis) etwas anderes definiert hast.

Wenn du das gemacht hast, dann könntest du es hiermit versuchen (Zusatzbedingung des Anwenderstopps):

calc B1: Tradeprice>TradeEntryPrice; (ggf. Tradeentryprice<low)
calc B2: Ref(LLV(low, 3), 1) < Tradeentryprice;
B1 + B2=2

Das ist nur ein Beispiel. Das Handelssystem würde dann 3 Tage in die Zukunft blicken und vergleichen, ob in den nächsten Tagen der Tradeentryprice unterschritten wird. Das ganze ist natürlich nur für Tests geeignet, da man es nicht traden kann, denn unter realen Bedingungen weiß das Handelssystem natürlich nicht, wie sich der Kurs in den nächsten Tagen entwickelt. Die Signale kommen dann immer später, da die erforderlichen Kursdaten noch nicht vorliegen.

Wie weit das Handelssystem in die Zukunft blicken soll, musst du auf jedem Fall mit vorgeben. Es gibt keine Option, bei denen ein Indikator ohne zeitliche Begrenzung berechnet wird.

Aber ist das jetzt wirklich das, was du berechnen wolltest?

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

9

Mittwoch, 11. Juni 2003, 09:20

hallo Thomas

Tut mir leid aber dein Vorschlag bringt auch nicht das gewünschte Ergebnis. Ich versuche die Regel noch mal anders zu beschreiben!

Ich eröffne einen Trade und setze gleichzeitig den ersten Stoploss auf das tief vom Vortag. Ist der Trade am dritten Tag im Plus
(close > Tradeentryprice) dann setze ich meine Stoploss Order auf den Einstiegspreis.

Mir ist klar das ich keinen stoploss wärend des Tags Programmieren kann weil ich nur EoD habe aber wenn der Tradeentryprice unterschritten wird am 4,5,6... Tag soll der Stop den Trade zum close schliessen. Das habe ich mit exit Basis close ohne Delay versucht.

Grüsse
Revel7777
Mit freundlichen Grüßen

Revel7777

Thomas

unregistriert

10

Mittwoch, 11. Juni 2003, 23:29

Hallo revel,

ich habs jetzt selbst mal getestet. Für den ersten Stop mit dieser Formel als Zusatzbedingung im Anwenderstopp:

calc stop1: ValueWhen(Ref(low, -1), Tradeperiods=1, 1, V);
If(Tradeperiods<3, low<stop1, 0)

Es funktioniert nicht und ich weiß selbst nicht wieso.

Hat jemand eine Idee? Ist dort ein buck oder habe ich die Stopsystematik falsch verstanden?

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

11

Montag, 23. Juni 2003, 11:25

Hallo,

etwas verspätet möchte ich noch etwas dazu beitragen:
Muss es nicht heissen:
"TradePeriodes>3", da ja der Stop erst nach der 3. Periode aktiv werden soll?
Zusätzlich wäre ja noch die Bedingung zu definieren, dass der Trade in der 3. Periode im Plus sein soll. Die gesamte Formel sieht dann so aus:

--------------------------------------
calc stop1:
ValueWhen(Ref(low, -1), Tradeperiods=1, 1, V);
calc ImPlus:
Ersatz(ValueWhen(Close>TradeEntryPrice,TradePeriods=3,1,V),0);

If(ImPlus, If(Tradeperiods>3, low<stop1, 0), 0)
--------------------------------------

Die "Ersatz"-Funktion ist offenbar nötig, da die Überlagerung der beiden ValueWhen-Ausdrücke mit unterschiedlichen Tradeperioden ansonsten einen Datenfehler meldet (prinzipiell kann man mit "Ersatz" die Prüfung auf fehlende Daten entschärfen).

Viele Grüße
Andreas Knöpfel

Registrierungsdatum: 1. Mai 2003

Beiträge: 240

Wohnort: Gardasee

12

Montag, 23. Juni 2003, 20:54

Danke Herr Knöpfel

Es funktioniert prima habe nur einen Änderung vorgenommen vergleiche nicht low<Stop1 sondern low<Tradeentryprice denn ich möchte denn Stop am dritten Tag zur Gewinnsicherung nachziehen auf das Einstiegslevel.

Vielen Dank
Revel7777
Mit freundlichen Grüßen

Revel7777