Samstag, 20. April 2024, 01:34 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

tebi

unregistriert

1

Dienstag, 7. März 2006, 18:30

ADX kombiniert mit GD und z.B. Momentum

Hallo liebe User,

ich möchte folgendes kreieren:

Wenn der ADX z.B. über 20 steht, dann soll das Trendfolgemodell greifen (Kreuzung zweier GD´s)

Wenn er unter 20 steht, dann soll ein Oszillator angewendet werden.

Vorgehensweise:

Über den Formelassistenten habe ich mittels "Wenn dann ansonsten Auswertung" die Parameter eingegeben. Folgendes erscheint dann:

(If(ADX(14)>20,
calc Enter_Long:
GD(Close, 30, S)>GD(Close, 153, S);

calc Exit_Long:
GD(Close, 30, S)<GD(Close, 153, S);

, calc Enter_Long:
(Cross(MOM(Close, 37), 118, 1) = 1);


calc Exit_Long:
(Cross(MOM(Close, 37), 80, 1) = -1);
))

Einzeln funktionieren die Anwendungen, jedoch nicht über den Versuch der Kombination.
-Warum erscheint die Fehlermeldung: "Indikator "EnterLong" wird bereits für eine andere Variable benutzt"

- hat jemand einen anderen Vorschlag für mein Vorhaben?

Vielen Dank!

Snoopy

unregistriert

2

Dienstag, 7. März 2006, 19:12

RE: ADX kombiniert mit GD und z.B. Momentum

Hallo tebi,
du hast zweimal Variablen mit den gleichen Namen benutzt (Enter_Long). In der Wenn Dann Regel dürfen nur die Namen der Variablen stehen z.B. Enter_Long1, Enter_Long2 oder anstatt der Variable direkt die Formeln.

Gruß Snoopy

tebi

unregistriert

3

Dienstag, 7. März 2006, 20:42

RE: ADX kombiniert mit GD und z.B. Momentum

Danke Snoopy. Ich probiere im Moment ne Menge rum, komme aber nicht zu der Erstellung des o.a. Handelssystems.

Im Moment bin ich hier:

(If(Proc ADX über Grenzwert:
const Perioden: 1+days([15, 5, 200, 10, 50, 2, 3, I]);
const Grenze: [25, 10, 50, 20, 35, 1, 3, I];

ADX(Perioden)>Grenze
End;, GD(Close, 38, S)>GD(Close, 200, S), (Cross(MOM(Close, 20), 100, 1) = 1)))

(Für Exit_Long entsprechend umgekehrt)

Aber das scheint nicht das abzubilden, was ich mir wünsche:

ADX>20: Kauf und Verkaufssignale für Kreuzen zweier GD´s beachten

ADX<20: Kauf und Verkaufssignale für Momentum (z.B. Kauf bei Kreuzen der 100 Linie) verfolgen

Hat das schon mal jemand gemacht oder kann mir weitere Tipps geben?

Snoopy

unregistriert

4

Dienstag, 7. März 2006, 20:49

Hallo tebi,
ich stelle Morgen dazu etwas rein.
Gruß Snoopy

Snoopy

unregistriert

5

Dienstag, 7. März 2006, 22:09

tebi,
hier eine Möglichkeit

Enter Basis:
calc Enter_Long1: GD(Close, 30, S) > GD(Close, 153, S) and ADX(14) > 20;
calc Enter_Long2: Cross(MOM(Close, 37), 0, 118) = 1 and ADX(14) < 20;
Enter_Long1 or Enter_Long2


Exit Basis:
calc Exit_Long1: GD(Close, 30, S)<GD(Close, 153, S) and ADX(14) > 20;
calc Exit_Long2: Cross(MOM(Close, 37), 80, 1) = -1 and ADX(14) < 20;
Exit_Long1 or Exit_Long2

Gruß Snoopy

tebi

unregistriert

6

Mittwoch, 8. März 2006, 12:13

Vielen Dank Snoopy!!

Zwecks Optimierung der Parameter hier eine Erweiterung, die dann unter Definitionen eingetragen wird:

Const GD1:[GD38:38,20,50,21,49,2,1];
Const GD2:[GD200:200,150,240,150,240,3,1];
Const ADXLinie:[ADXLinie:20,15,25,16,24,1,1];
Const ADX:[ADX:14,10,30,11,29,1,1];
Const Moben:[Moben:100,100,120,100,119,2,1];
Const Munten:[Munten:100,80,100,81,100,2,1];
Const MPerioden:[MPerio:20,15,40,16,39,2,1];

calc Enter_Long1: GD(Close, GD1, S) > GD(Close, GD2, S) and ADX(ADX) > ADXLinie;

calc Enter_Long2: Cross(MOM(Close, MPerioden), 0, Moben) = 1 and ADX(ADX) < ADXLinie;

calc Exit_Long1: GD(Close, GD1, S)<GD(Close, GD2, S) and ADX(ADX) > ADXLinie;

calc Exit_Long2: Cross(MOM(Close, MPerioden), Munten, 1) = -1 and ADX(ADX) < ADXLinie;

tebi

unregistriert

7

Mittwoch, 8. März 2006, 13:01

Bei näherer Betrachtung der Signale ist leider zu erkennen, dass das System noch nicht funktioniert. Irgendwas passt mit der Logik noch nicht, da keine Long-Positionen auf Basis der Momentumstrategie eingegangen werden.

Ist der ADX<20 und schneidet das Momentum die Signallinie, erfolgt kein Kaufsignal (auch nicht, wenn das System nicht investiert ist).

Schade, da muss ich noch weiter dran rumtüfteln.

tebi

unregistriert

8

Mittwoch, 8. März 2006, 13:08

Zumindest habe ich schonmal die Möglichkeit gefunden, den ADX mit einem 2-GD-Modell zu kombinieren(Eingehen von Long-Positionen nur wenn ADX>20):

Const GD1:[GD1:38\fix,10,30,11,29,1,1];
Const GD2:[GD1:200\fix,10,30,11,29,1,1];
Const ADXPer:[ADX:10,5,25,6,24,1,1];
Const ADXLinie:[ADX:20,5,25,6,24,1,1];


calc Enter_Long:
GD(Close, GD1, S) > GD(Close, GD2, S) and ADX(ADXPer) > ADXLinie;

calc Exit_Long:
GD(Close, GD1, S)<GD(Close, GD2, S) or ADX(ADXPer) < ADXLinie;

Das funktioniert so einwandfrei.

Hat noch jemand eine Idee, wie das Momentum (bei ADX kleiner 20) noch hinzugefügt werden könnte?

Snoopy

unregistriert

9

Mittwoch, 8. März 2006, 15:17

Hallo tebi,
prüfe einmal die Momentum Regel alleine.

calc Enter_Long2: Cross(MOM(Close, MPerioden), 0, Moben) = 1 and ADX(ADX) < ADXLinie;

Am Besten diese Regel noch in Momentum und ADX trennen und als Chart darstellen lassen.
Wird für das Monentum und für den ADX jeweils eine 1 zum selben Zeitpunkt im Chart ausgegeben, sollte die Regel auch im Handelssystem funktionieren.

Snoopy

unregistriert

10

Mittwoch, 8. März 2006, 19:12

Hallo tebi,
ich habe mir das angeschaut. Du hast ein Fehler in der Formel
calc Enter_Long2: Cross(MOM(Close, MPerioden), 0, Moben) = 1 and ADX(ADX) < ADXLinie;
Als Signallinie steht dort 0 und als Periodeneinstellung 100 (Variable Moben).

Mit der folgende Formel funktioniert es.

Calc Enter_Long2: Cross(MOM(Close, MPerioden),Moben, 1) = 1 and ADX(ADX) < ADXLinie;

Gruß Snoopy

tebi

unregistriert

11

Mittwoch, 8. März 2006, 19:22

Danke Snoopy!!

Ich komme leider erst morgen dazu, es erneut zu testen.

tebi

unregistriert

12

Sonntag, 12. März 2006, 09:11

Hallo Snoopy,

einwandfrei, das System funktioniert!

Hier nochmal eine Kombination: ADX-2 GD-RSI:

Const GD1:[GD38:38,20,50,21,49,2,1];
Const GD2:[GD200:200,150,240,150,240,3,1];
Const ADXLinie:[ADXLinie:20,15,25,16,24,1,1];
Const ADX:[ADX:20,10,30,11,29,1,1];
Const oben:[oben:70,60,80,60,80,2,1];
Const unten:[unten:40,25,40,25,40,1,1];
Const RSIPerioden:[Perioden:14,12,20,12,20,1,1];

calc GDKauf:(GD(Close, GD1, S) > GD(Close, GD2, S)
and ADX(ADX) > ADXLinie);

calc Enter_Long1: (GD(Close, GD1, S) > GD(Close, GD2, S)
and ADX(ADX) > ADXLinie) or
((Cross(RSI(Close, RSIPerioden), unten, 1) = 1 )
and ADX(ADX) < ADXLinie);


calc Exit_Long1: (GDKauf and (GD(Close, GD1, S)<GD(Close, GD2, S)
or ADX(ADX) < ADXLinie))
or
(NOT GDKauf and (ADX(ADX) > ADXLinie or (Cross(RSI(Close, RSIPerioden), oben, 1) = -1)));

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tebi« (12. März 2006, 09:11)