Freitag, 19. April 2024, 01:42 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

tebi

unregistriert

1

Montag, 16. Januar 2006, 16:36

Signal bei Cross GD200 nur bei steigendem GD200

Hallo liebe User,

nun bin ich mit meinem GD 200 soweit:

Calc Indi:GD(Close,[GD200:200\fix,20,300,30,270,5,0.7911,I],S);
Global Const Haltedauer_L: [Haltedauer_L:1\fix,0,50,0,50,1,1,I];
CrossHold(Close,Indi,Haltedauer_L) = 1

das ich die Haltedauer und den GD selber optimieren kann.

Hat jemand eine Idee, wie ich nun noch den Filter zufügen kann, dass das Kaufsignal nur generiert wird, wenn der GD200 im Aufwärtstrend ist und das Verkaufssignal generiert wird, wenn der GD200 im Abwärtstrend ist.

Bisher habe ich im Formeleditor nur etwas zum "Abschwächender Aufwärtstrend" gefunden.

Vielen Dank!

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »tebi« (16. Januar 2006, 16:37)


Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

2

Montag, 16. Januar 2006, 16:53

RE: Signal bei Cross GD200 nur bei steigendem GD200

Hallo,
schau Dir diesbzgl. ROC() an - entweder > oder kleiner 0!
Gruß, Vuego

tebi

unregistriert

3

Dienstag, 17. Januar 2006, 10:20

RE: Signal bei Cross GD200 nur bei steigendem GD200

So scheint es zu funktionieren (obwohl ich mir nicht ganz sicher bin, ob es das ist, was ich wollte):

Calc Indi:GD(Close,[GD200:200\fix,20,300,30,270,5,1,I],S);
Global Const Haltedauer_L: [Haltedauer_L:3\fix,0,50,0,50,1,1,I];
CrossHold(Close,Indi,Haltedauer_L) = 1
AND
ROC((GD(Close, 200, S)), 10, $) >1


Jetzt würde ich allerdings gerne den GD200 identisch optimieren, soll heißen, der GD200, der optimiert wird, hat an allen Stellen den gleichen Wert. Das habe ich so unter Definitionen versucht, bekomme aber die u.a. Fehlermeldung:

Const GD1:[GD200:200,20,300,30,270,5,1,I];

Enter_Long:
Calc Indi:GD(Close, GD1,S);
Global Const Haltedauer_L: [Haltedauer_L:3\fix,0,50,0,50,1,1,I];
CrossHold(Close,Indi ,Haltedauer_L) = 1
AND
ROC((GD(Close, 200, S)), 10, $) >1

Exit_Long:
Calc Indi:GD(Close, GD1,S);
Global Const Haltedauer_L: [Haltedauer_L:3\fix,0,50,0,50,1,1,I];
CrossHold(Close,Indi ,Haltedauer_L) = 1
AND
ROC((GD(Close, 200, S)), 10, $) <1

Nochmal meine erhofften Einstellungen:
Enter Long wenn:
- Close die GD200 nach oben kreuzt und
- soll für mindestens 3 Tage erfüllt sein (steht oben auf 10) und
- soll nur gelten, wenn GD200 steigt

Der GD sollte in allen Einstellungen gleich optimiert werden können.

Hat jemand noch einen Rat?
»tebi« hat folgendes Bild angehängt:
  • Fehler Indi.jpg

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »tebi« (17. Januar 2006, 10:23)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

4

Dienstag, 17. Januar 2006, 11:18

Hallo,

teste bitte mal mit dieser Formel:





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

Enter Long:
Enter_Long




Exit Long:
Exit_Long



Übergreifende Definitionen:

Const GD1:200;
Calc Indi:GD(Close, GD1,S);
Const Haltedauer_L: 3;



Calc Enter_Long:
CrossHold(Close,Indi ,Haltedauer_L) = 1
AND
ROC((GD(Close, GD1, S)), 10, $) >1;


Calc Exit_Long:
CrossHold(Close,Indi ,Haltedauer_L) = 1
AND
ROC((GD(Close, GD1, S)), 10, $) <1;


Die Formeln können hier direkt kopiert und ins eigene System transportiert werden! Beim GD 200 wurden die Variablen von mir entfernt,diese musst Du wieder eintragen!
Happy Trading

tebi

unregistriert

5

Dienstag, 17. Januar 2006, 14:48

Vielen Dank, Udo, es funktioniert!

(bis auf das - Zeichen vor der 1, was in deiner Angabe noch fehlte:
Calc Exit_Long:
CrossHold(Close,Indi ,Haltedauer_L) = -1
AND
ROC((GD(Close, GD1, S)), 10, $) <1;


Damit das System nun endlich Buy and Hold schlagen kann, fehlt noch die Angabe, dass verkauft werden muss, wenn der Close z.B. seit 10 Tagen unterhalb der GD200 liegt. Kauf adäquat.

Aktuell ist es noch nicht flexibel genug, da in Baisseperioden das System zu lange investiert ist, wenn der Close vorher nur einen steigenden GD200 geschnitten hat. Geschlossen wird erst, wenn der Close wieder erst von oben nach unten einen fallenden GD schneidet - häufig viel zu spät.

Mal sehen wie ich nun die o.a. Einstellung noch hinzufügen kann.

tebi

unregistriert

6

Dienstag, 17. Januar 2006, 17:04

Im oben genannten verrennt man sich glaube ich in einem Zirkelbezug.

Besser (einfacher) habe ich es nun folgendermaßen gelöst:

Enter Long: wenn GD steigt und Close steigt:

Const GD1:[GD200:200\fix,50,300,66,290,5,1.5494];
Calc Indi:GD(Close, GD1,S);
Const Haltedauer_L: [Haltedauer:11,2,20,3,18,1,2.3983];
Const Perioden_P: [Perioden:63,2,100,3,99,2,2.9279];


Calc Enter_Long:
ROC(Close, Perioden_P, $)>1
AND
ROC((GD(Close, GD1, S)), Haltedauer_L, $) >1;


Calc Exit_Long:
ROC(Close, Perioden_P, $)<1
AND
ROC((GD(Close, GD1, S)), Haltedauer_L, $) <1;

Das funktioniert ganz gut.

Vielen Dank für die Tipps!

Durch jeden Tipp lerne ich in kleinen Schritten durch den Dschungel der Programmiersprache (auch wenn wenn es noch ziemlich lange dauert)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tebi« (17. Januar 2006, 17:05)


tebi

unregistriert

7

Dienstag, 17. Januar 2006, 17:38

Jetzt habe ich doch noch ein Problem mit dem ROC:

Wenn ich das richtig verstanden habe, signalisiert der ja bei:

ROC((GD(Close, GD1, S)), 10, $) >1;


lediglich, ob der Schlusskurs vor 10 Perioden höher war, als der aktuelle Kurs.

Gibt es nicht eine Möglichkeit zu sagen, dass der Schlusskurs seit 10 Tagen über dem GDverläuft?