Samstag, 27. April 2024, 08:06 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.

Roti

unregistriert

1

Sonntag, 15. Juni 2003, 21:25

Signal wenn zwei Bedingungen zutreffen

Hallo,

ich bin noch mit der Investox-Formelsprache nicht so vertraut und schaffe es nicht zwei Bedingungen zu definieren - es kommt immer zum Fehler in der Formel.

Ich möchte eine Long-Position eröffnen wenn der Close BEIDE GD von unten nach oben schneidet. Die Position wird geschlossen, wenn der Close die BEIDEN Linien von oben nach unten schneidet und gleichzeitig wird eine Short Position geöffnet, usw..

Also durchgehend im Markt engagiert und auch direkter Positionswechsel ist in diesem EoD-System möglich.

Die Formel ist Enter Long:

Cross(GD(Close, 14, E), AND (Cross GD(Close, 30, E))=1

Short natürlich -1

Leider geht das Investox XL Logbuch auf und meldet Fehler der Definition. Ich denke es richtig definiert zu haben.

Des weitern weiß ich nicht ob ich für meinen Stopp (das letzte drei Tage Intradaytief bzw. -hoch) einen Anwenderstopp od. einen Verluststopp nehmen muss - wer kann mir dagen was ich nehmen muss bzw. muss ich hier noch was programmieren (clac , etc.??)?

Die Formel für Enter Long:

Cross(GD(Close, 14, E), GD(Close, 30, E), 1)=1

funktioniert gibt aber nicht meine ursprüngliche Absicht wider.

Wer kann mir das bitte mal richtig in der Formelsprache definieren.

Viele Grüße

Roti :)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Roti« (15. Juni 2003, 21:29)


Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

2

Sonntag, 15. Juni 2003, 22:41

Hallo Roti,
den 2. Teil deiner Frage, kann ich nicht so recht verstehen, aber der Anwenderstopp ist vermutlich die richtige Wahl. Die Formel dazu bekommst du evtl. nach dem Lesen diese Postings allein hin.

zum 1. Teil:

Zitat

Cross(GD(Close, 14, E), AND (Cross GD(Close, 30, E))=1


Das funktioniert natürlich so nicht! Das müsste so gehn:

Quellcode

1
2
EnterLong:
Cross(Close, GD(Close, 14, E), 1) = 1 and Cross(Close, GD(Close, 30, E), 1) = 1


Erklärung:
Beide Cross-Teile der Bedingung werden durch and verbunden. Sie müssen beide erfüllt sein. Close schneidet den jew. GD von unten nach oben ( =1 )

Die Shortseite sieht fast genauso aus, unterscheidet sich aber in den Minuszeichen vor der 1!

Quellcode

1
2
EnterShort:
Cross(Close, GD(Close, 14, E), 1) = -1 and Cross(Close, GD(Close, 30, E), 1) = -1


Close schneidet den jew. GD von oben nach unten ( =-1 )

Das war's schon. Das was jetzt folgt, ist nicht unbedingt nötig, aber du kannst dir ja schon mal eine Rechenzeit sparende Programmierung angewöhnen. Schaden kann's nicht!

Da ich ein Optimierungsfan bin, kann man jetzt die Berechnung noch etwas tunen ;)! In der EnterLong- und EnterShort-Bedingung werden die GDs doppelt berechnet. Wenn du diese Berechnungen unter Definitionen ablegst, wird Rechenzeit gespart. Bei EoD-Systemen sicher kein Argument, bei Intradaysystemen und NN aber schon.

Unter Definitionen steht dann:

Quellcode

1
2
calc Cross_GD14: Cross(Close, GD(Close, 14, E), 1);
calc Cross_GD30: Cross(Close, GD(Close, 30, E), 1);


Es wird hier nur berechnet welches Ergebnis die Formel liefert.

unter EnterLong steht dann

Quellcode

1
Cross_GD14 = 1 and Cross_GD30 = 1


unter EnterShort steht dann

Quellcode

1
Cross_GD14 = -1 and Cross_GD30 = -1


Vorteil dieser Vorgehensweise ist, dass die GD's nur 1mal berechnet werden und nicht 2mal wie im 1. Teil des Postings.

Ich hoffe, du bekommst es hin, sonst frag ruhig noch einmal nach!
Viele Grüße,
Hans-Jürgen

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

3

Montag, 16. Juni 2003, 07:53

Hallo Roti,
mir fällt gerade ein, dass du mit der Enterregel so wohl doch nicht glücklich wirst, da das Crossen beider GD's am selben Tag erfolgen muss um die Bedingung zu erfüllen.

Versuch's mal hiermit, das klappt vielleicht besser:

Quellcode

1
2
3
4
calc GD14: GD(Close, 14, E);
calc GD30: GD(Close, 30, E);

(Cross(Close, GD30, 1) = 1 and Close > GD14) or (Cross(Close, GD14, 1) = and Close > GD30)
Viele Grüße,
Hans-Jürgen

Roti

unregistriert

4

Montag, 16. Juni 2003, 19:39

@Hans-Jürgen

super - dankeschön; jetzt hab ich gleich mehere Varianten zum testen, das Problem mit dem verzögerten GD macht mir auch sorgen!

Bei der zweiten Frage wußte bzw. weiss ich nicht was für eine Stoppart für das einbeziehen eines x-Tage Intraday-Tiefs bzw. -Hochs ist.

Beispiel: 10 GD kreuzt 20 GD und als Stopp das letzte 5 Tage Intradaytief, der Stopp kann dann auch Intraday (was sehr schnell in einem EoD-System ist) od. zum Close ausgeführt werden.

Mir ist bzw. war nicht klar welche der Stopparten (Anwender- , Intraday-Verlust, Intraday-Gewinn od. Kurstrailling, etc.) für diese Aufgabe am geeignesten ist?

Werde das ganze mal in den nächsten Tagen testen - die Formel lautet:

(Cross(Close,GD(Close,30,E),1)=1 AND Close > GD(Close,14,E)) OR (Cross(Close,GD(Close,14,E),1)=1 AND Close > GD(Close,30,E))

'calc GD14: GD(Close, 14, E);' bringt die Fehlermeldung: Unvollständige Angaben für Berechnung!


Viele Grüße

Roti :)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Roti« (19. Juni 2003, 14:10)