Einloggen Suche | Aktive Themen
Filter zu Widerstandslinie Optionen
Dietmar Schaefer
Geschrieben: Monday, January 15, 2018 12:37:47 PM
Gruppen: Kunde

Beiträge: 102

Grüße euch!

Es geht um die Erstellung eines Filters zu einer gesetzten Überwachungslinie (Kurs XXX) zum aktuellen Kurs

Beispiel:
Der Kurs einer Aktie steht aktuell bei 10,00. Ich habe für mich eine ÜLinie bei 9,50 Euro gesetzt. Ich würde gerne einen Filter erstellen bei dem ich abfrage mir Werte zu zeigen deren Kurs als Beispiel aktuell maximal 5% von meinem gesetzten Überwachungskurs entfernt liegt.

Im Filtermodul ist so ein Filter schon bei den GD's vorhanden (Gleitender Durchschnitt Kanal), leider lässt sich hierfür die Formel nicht editieren, sonst hätte ich mich selbst dran versucht.

Kann hier jemand helfen?

Gruß Didi
Thorsten Kitzig
Geschrieben: Thursday, January 18, 2018 12:13:14 AM
Gruppen: Insider

Beiträge: 22

Tai-Pan RealtimeTai-Pan End-of-Day
Viele Wege führen nach Rom .......

Ihre Frage ist nicht ganz eindeutig. Meinen Sie einen gesetzten Stopp-Kurs oder eine Überwachungslinie im Chart?

Wenn Sie die Überwachungslinie meinen, müssen sie folgenden Filter erstellen.

1. Filter Neu
2. Filterelement Formel
3. Parameter: Anzahl auf 1 und Typ auf Float. Default-Wert auf 3. Label kann beliebig gesetzt werden. Z.B. :"% Abstand"
4. Folgendes Script einfügen
Code:
// ChartLinien, linear und logarithmisch

wTestLinie: Array;
bErgebnis : Boolean := FALSE;

// Aktuelles Symbol und TrendLinie 1
dStart := Stamm.TrendLinieStartDatum(CurrentSymbol,1);
fStart := Stamm.TrendLinieStartKurs(CurrentSymbol,1);

dEnde := Stamm.TrendLinieEndeDatum(CurrentSymbol,1);
fEnde := Stamm.TrendLinieEndeKurs(CurrentSymbol,1);

iStart := IndexOfDateTime (Close, dStart, 0);
iEnde := IndexOfDateTime (Close, dEnde, 0);

wCnt := Cum(1);

iDelta := iEnde - iStart;
fDelta := fEnde - fStart;

fSteigung := fDelta / iDelta;

wTestLinie := If (wCnt >= iEnde, fStart + (wCnt - iStart) * fSteigung, Leer);

LetzterLinienWert := wTestLinie[wTestLinie.Count()];

if LetzterLinienWert <> Leer then
Begin
  ProzentAbstand := (1 - (LetzterLinienWert / Close[Close.Count()]))*100;

  if (ProzentAbstand > Para1)
    then bErgebnis := TRUE;
End

Result := bErgebnis;


Dieser Filter findet alle Wertpapiere deren 1. Überwachungslinie mindestens X% unter dem letzten Kurs der Kursreihe liegt. Der Wert für X kann über "Einstellen" im Filter-Dialog geändert werden.

Sollte der Stopp-Kurs gemeint sein, hilft folgendes Script
Code:

bErgebnis : Boolean := FALSE;

LetzterLinienWert := Stamm.StopKurs();

if Stamm.StopKurs() <> Leer then
Begin
  ProzentAbstand := (1 - (Stamm.StopKurs() / Close[Close.Count()]))*100;

  if (ProzentAbstand > Para1)
    then bErgebnis := TRUE;
End
Result := bErgebnis;

Dietmar Schaefer
Geschrieben: Thursday, January 18, 2018 3:34:36 PM
Gruppen: Kunde

Beiträge: 102

Thorsten Kitzig schrieb:
Viele Wege führen nach Rom .......

Ihre Frage ist nicht ganz eindeutig. Meinen Sie einen gesetzten Stopp-Kurs oder eine Überwachungslinie im Chart?

Wenn Sie die Überwachungslinie meinen, müssen sie folgenden Filter erstellen.

1. Filter Neu
2. Filterelement Formel
3. Parameter: Anzahl auf 1 und Typ auf Float. Default-Wert auf 3. Label kann beliebig gesetzt werden. Z.B. :"% Abstand"
4. Folgendes Script einfügen
Code:
// ChartLinien, linear und logarithmisch

wTestLinie: Array;
bErgebnis : Boolean := FALSE;

// Aktuelles Symbol und TrendLinie 1
dStart := Stamm.TrendLinieStartDatum(CurrentSymbol,1);
fStart := Stamm.TrendLinieStartKurs(CurrentSymbol,1);

dEnde := Stamm.TrendLinieEndeDatum(CurrentSymbol,1);
fEnde := Stamm.TrendLinieEndeKurs(CurrentSymbol,1);

iStart := IndexOfDateTime (Close, dStart, 0);
iEnde := IndexOfDateTime (Close, dEnde, 0);

wCnt := Cum(1);

iDelta := iEnde - iStart;
fDelta := fEnde - fStart;

fSteigung := fDelta / iDelta;

wTestLinie := If (wCnt >= iEnde, fStart + (wCnt - iStart) * fSteigung, Leer);

LetzterLinienWert := wTestLinie[wTestLinie.Count()];

if LetzterLinienWert <> Leer then
Begin
  ProzentAbstand := (1 - (LetzterLinienWert / Close[Close.Count()]))*100;

  if (ProzentAbstand > Para1)
    then bErgebnis := TRUE;
End

Result := bErgebnis;


Dieser Filter findet alle Wertpapiere deren 1. Überwachungslinie mindestens X% unter dem letzten Kurs der Kursreihe liegt. Der Wert für X kann über "Einstellen" im Filter-Dialog geändert werden.

Sollte der Stopp-Kurs gemeint sein, hilft folgendes Script
Code:

bErgebnis : Boolean := FALSE;

LetzterLinienWert := Stamm.StopKurs();

if Stamm.StopKurs() <> Leer then
Begin
  ProzentAbstand := (1 - (Stamm.StopKurs() / Close[Close.Count()]))*100;

  if (ProzentAbstand > Para1)
    then bErgebnis := TRUE;
End
Result := bErgebnis;





Hallo Herr Kitzig!

Sie haben natürlich vollkommen recht, meine Frage war etwas unglücklich formuliert, umso schöner dass Sie Überwachungslinie und Stopkurslinie verformelt haben. Vielen Dank

Ich hoffe es ist ok wenn mir auf dem "Weg nach Rom" noch ein paar Fragen eingefallen sind lachen

1. Ist es lediglich nötig beim Eintrag CurrentSymbol in den vier Zeilen auf "2" und bei "wCnt := Cum(1);" ebenfalls aus der 1 eine "2" zu machen um das ganze für die Überwachungslinie 2 zu berechnen?

2. wie kann man einen weiteren Filter so verformeln, das er alle Wertpapiere filtert deren 1. Überwachungslinie maximal X% ÜBER dem letzten Kurs der Kursreihe liegt. Ich habe mich selbst dran versucht, auch Ergebnisse gefunden, allerdings findet der Filter nicht alle Werte als Beispiel aus dem Dax die da zu gehören. Gibt's hier ne Lösung Ihrerseits?

Hier mal das von mir dahin gehend veränderte Script:

wTestLinie: Array;
bErgebnis : Boolean := FALSE;

// Aktuelles Symbol und TrendLinie 1
dStart := Stamm.TrendLinieStartDatum(CurrentSymbol,1);
fStart := Stamm.TrendLinieStartKurs(CurrentSymbol,1);

dEnde := Stamm.TrendLinieEndeDatum(CurrentSymbol,1);
fEnde := Stamm.TrendLinieEndeKurs(CurrentSymbol,1);

iStart := IndexOfDateTime (Close, dStart, 0);
iEnde := IndexOfDateTime (Close, dEnde, 0);

wCnt := Cum(1);

iDelta := iEnde - iStart;
fDelta := fEnde - fStart;

fSteigung := fDelta / iDelta;

wTestLinie := If (wCnt >= iEnde, fStart + (wCnt - iStart) * fSteigung, Leer);

LetzterLinienWert := wTestLinie[wTestLinie.Count()];

if LetzterLinienWert <> Leer then
Begin
ProzentAbstand := ((LetzterLinienWert / Close[Close.Count()]))*100-100;

if (ProzentAbstand > Para1)
then bErgebnis := TRUE;
End

Result := bErgebnis;


3. Ist es möglich für den Kurs der Überwachungslinien 1-3 ihre Formel für eine Liste im Listenmodul umzubauen? Mit folgender Formel für die Überwachungslinie bei einer Liste bekomme ich natürlich ein Ergebnis: "Result := Stamm.TrendLinieEndeKurs(CurrentSymbol,1);"

Allerdings bezieht sich das ja nur auf den letzten Kurs der Überwachungslinie. Solle somit die Überwachungslinie steigen oder fallen (nicht waagerecht sein) ist das nicht eine wirkliche Lösung richtig?

Können Sie auch hier behilflich sein?

Mit freundlichen Grüßen

Dietmar Schäfer
Benutzer die diese Diskussion aktuell lesen
Guest

Powered by Yet Another Forum.net version 1.9.1.8 (NET v4.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.

Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz finden Sie hier