Donnerstag, 18. April 2024, 18:01 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.

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

1

Dienstag, 26. Mai 2009, 15:11

Programmierung eines Stops

Hallo,

leider muss ich erneut die Hilfe von Euch in Anspruch nehmen bei der Frage einer Stopprogrammierung (Kursverlust- oder Anwenderstop):

Es handelt sich um einen Anfangsstop, der wie folgt aussehen könnte:

Ausgehend vom Low-Kurs, der am Tag des Signals vorliegt (0), wird solange zurückgegangen, bis ein niedrigerer Low-Kurs als dieser in der Zeitreihe gefunden wird (1). Von diesem wird erneut solange zurückgegangen, bis wiederum ein niedrigerer Low-Kurs in der Zeitreihe gefunden wird (2). Dieser Wert wird festgehalten und als Stop-Kurs verwendet.

Während ich es technisch in meine vorhandenen Stops integrieren kann, fehlt mir momentan der entscheidende Formelbestandteil, der mir "die Rückwärtssuche" erlaubt, da sie nicht zeitmässig beschränkt ist, sondern nur auf Basis jeweils niedrigerer Kurse beruht :S.

Kann hier jemand helfen ?

Vielen Dank und viele Grüße,
Jost
Viele Grüße,
Investor

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Freitag, 29. Mai 2009, 10:47

Hallo,

>>fehlt mir momentan der entscheidende Formelbestandteil, der mir
>>"die Rückwärtssuche" erlaubt, da sie nicht zeitmässig beschränkt ist,

Hierfür gibt es den Indikator "NewLevelBarsSince". Der Limitwert lässt sich damit wie folgt ermitteln:

calc NewLowP: NewLevelBarsSince(low, T); //Perioden letztes Limit
calc P: NewLowP+RefVar(NewLowP,-NewLowP); //Perioden vorletztes Limit
RefVar(Low,-P) // Low in dieser Periode

Viele Grüße

Andreas Knöpfel

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

3

Freitag, 29. Mai 2009, 16:47

Hallo Herr Knöpfel,

danke für Ihre Formel ! Nur leider funktioniert sie bei mir nicht (zumindest in V4): Wenn ich Ihre Formel unter "Zusatzbedingungen" eines Kursverluststops eingebe, erscheint im Chart der Stop auf Basis des Low des Einstiegstags, er ermittelt nicht zurückliegende tiefere Lows.

Ich habe zugegebenermassen die Formel nicht ganz verstanden -mir scheint, dass hier der Low der Signalperiode in der Formel zuletzt ermittelt wird, aber wäre nicht der Low des Signaltags der Wert, den man zunächst festhalten und von dem man aus zurückgehen muss (um die beiden tieferen Lows zu finden), und der als erste Variable zu definieren wäre ?

Grüße,
Jost
Viele Grüße,
Investor

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

4

Mittwoch, 3. Juni 2009, 15:22

Hallo Herr Knöpfel,
liebe Investox-Gemeinde,

zur besseren Verdeutlichung meiner Frage habe ich nun noch zwei Bilder eingestellt:

Sog. "Countback"-Methode:



Der Einsatz des Formelvorschlags im Stop führt zu folgendem Ergebnis:





Bei Anwendung der "Countback"-Methode müsste im vorliegenden Fall der Anfangsstop beim Low des 24.5. eingezeichnet werden (oder an einem älteren Datum, sollte dieser Low höher liegen als der Low am 30.5.). Eine weitere Variante wäre dann noch die Fortführung als Trailing-Stop.

Ist die Konstruktion eines derartigen Anfangsstops überhaupt möglich (Schleifenbildung) ?

Grüsse + Danke,
Jost
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

5

Mittwoch, 3. Juni 2009, 17:01

Zieh Dir mal die Formel in den Chart.
Die macht exakt das was Du von Ihr erwartest.

Wenn Du diesen Wert in einen Intradaystop haben möchtest (Obacht, der greift erst in der 1. Periode nach dem Enter) mußt Du Ref(,..., -1) für den Wert benutzen.

Im Chart anschauen und dann wird alles klar.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

6

Mittwoch, 3. Juni 2009, 17:31

Hallo Lenzelott,

Du hast recht, im Chart macht die Formel das zutreffend.

Es lag daran, dass ich es nicht zutreffend im (Kursverlust-)stop (nur EoD) umgesetzt hatte: Es funktioniert bei der Eingabe in der Registerkarte "Optionen" unter "Basis für die Gewinn-/Verlustberechnung), nicht jedoch bei Eingabe der Formel unter "Zusatzbedingungen" oder unter "Einstiegsbedingungen". Das war mein Fehler.

Vielen Dank für Deine kompetente Hilfestellung :) !

Jost
Viele Grüße,
Investor

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

7

Donnerstag, 4. Juni 2009, 14:46

Hallo Lenzelott,

nun habe ich das Ganze nochmal getestet, leider funktioniert es nicht (so wie ich es eingegeben habe).

1. Der Stop wird nicht immer angezeigt, möglicherweise nur dann, wenn zwei aufeinanderfolgende Lows vorhanden sind. In den anderen Fällen, wenn z.B. Bars mit höheren Lows vorliegen, wie zwischen den Punkten A und B (s.u.), wird kein Stop angezeigt, zudem verschwinden die Handelssignale aus dem Chart. Im Chart unten ist die Lila-Linie der Anfangsstop.

2. Die Formel, in das Chart (TecDax) eingefügt, weist selbst erratische Schwankungen auf:



Sorry, dass ich so hartnäckig bin, aber ich komme hier mit meinen Kenntnissen nicht weiter. Hast Du hier eine Idee, wie der Stop zutreffend funktionieren könnte ?

Danke + Grüße,
Jost
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

8

Donnerstag, 4. Juni 2009, 15:26

möglicherweise nur dann, wenn zwei aufeinanderfolgende Lows vorhanden sind.

Nein das funktioniert.

weist selbst erratische Schwankungen auf:

ist mir auch aufgefallen und irgendwie auch "logisch". Er findet das nächste Low und danach kein tieferes mehr.
Müßte man Herrn Knöpfel mal fragen, was IV dann zurückgibt.

Punkten A und B (s.u.),

wo ist das im Chart. leider nicht ersichtlich
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

9

Donnerstag, 4. Juni 2009, 16:14

Zitat

wo ist das im Chart. leider nicht ersichtlich


Gemeint war in der Graphik "Countback" weiter unten, nicht im Chart; sorry für die unklare Ausdrucksweise

Zitat

Nein das funktioniert.


Ich bin nicht überzeugt. Anbei zwei Bilder:

1. Chart ohne Stop


2. Chart mit Stop


An den Gaps kann es nicht liegen, oder ?

Bei anderen Titeln wiederum werden sowohl das Signal als auch der Stop angezeigt:



Es muss also entweder an der Formel liegen, oder an meinen Stop-Einstellungen. Erstaunlich ist jedenfalls, dass bei manchen Titeln nach Zuschaltung des Stops die Signale verschwinden, bei anderen nicht.
Könntest Du evtl. auch eine Graphik einstellen, wo man die Funktionsweise des Stops lt. Formel erkennen kann ?

Vielleicht habe ich ja auch beim Stop falsche Eingaben gemacht und hier liegt der Schlüssel. Gibt es hier etwa besonders zu beachtende Einstellungen mit der Formel im Stop ?

Danke + Grüße,
Jost
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

10

Donnerstag, 4. Juni 2009, 20:34

Titeln nach Zuschaltung des Stops die Signale verschwinden


Dafür muss es aber im Logbuch dann Einträge geben warum kein Signal erscheint
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Jost Männlich

Profi

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

11

Freitag, 5. Juni 2009, 09:06

Leider nein. Es erscheint zwar eine Fehlermeldung:

Modul: Handelssysteme
Prozedur: Evaluierung
Vorgang: Überprüfung der Daten und Einstellungen
Datenreihe: Arcelor Mittal (DE)
Meldung: Keine ausreichenden Daten zum Testen vorhanden. Überprüfen Sie bitte die Handelsregeln und die Einstellungen der Testbedingungen sowie die verwendeten Titel. Prüfen Sie auch den Start des Kontrollzeitraums, der für die Berechnung von aktuellen Signalen relevant ist.


- allerdings auch ohne Stop, wenn die Signale angezeigt werden. Es hat damit zu tun, das einer meiner Indikatoren einen längeren Vorlauf haben als Daten vorliegen, was für mich o.k. ist.

So ist der Stop bei mir eingegeben:






Mir würde helfen, wenn Du mir einen Hinweis geben könntest, wie ich die Stop-Formel von Herrn Knöpfel in einen Anwender-/Kursverluststop einbauen kann, so dass es funktioniert. Wahrscheinlich habe ich hier etwas übersehen ? Funktioniert er denn bei Dir ? Wenn ja, wie hast DU ihn umgesetzt ?

Danke für Deine Unterstützung,
Jost
Viele Grüße,
Investor

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jost« (5. Juni 2009, 09:38)


Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

12

Montag, 28. Dezember 2009, 15:19

Hallo,

ich möchte das Thema noch einmal aufgreifen und mich an die Programmierung des Stops ("Countback", siehe Graphik v. 3. Juni 2009) machen. Allerdings finde ich leider auf Anhieb weder in der Hilfefunktion noch im Indikatorenverzeichnis V5 die von Herrn Köpfel verwendete Funktion "NewLevelBarsSince", damit ich mich intensiv damit beschäftigen kann (bevor ich weitere Fragen stelle...). Weiss jemand vielleicht, wo ich eine Beschreibung dieses Indikators finden kann ?

Vielen Dank und Grüße,
Investor
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

13

Montag, 28. Dezember 2009, 16:00

unter suchen findet man es.

Zitat

Vergangene Perioden seit letztem höheren/tieferen Wert
Gibt an, wie viele Perioden vergangen sind, seitdem im angegebenen Datenfeld zuletzt ein höherer bzw. ein tieferer Werte erreicht wurde.

Diese Funktion zeigt Ihnen an, vor wie vielen Perioden die angegebenen Daten zuletzt einen höheren bzw. tieferen Wert erreicht haben. Wird in der gesamten Datenreihe bis dato kein höherer bzw. tieferer Wert gefunden, so wird die Anzahl der Perioden ab Anfang der Datenreihe ausgegeben.

Schreibweise

NewLevelBarsSince(Daten, Methode)

Beispiel 1

NewLevelBarsSince(Close, Tiefer)

Gibt an, vor wie vielen Perioden die Schlußkurse zuletzt einen tieferen Wert hatten als den jeweils aktuellen Wert. Ein Ergebniswert von zum Beispiel 350 zeigt daher an, dass die Schlußkurse ein 350-Perioden-Tief erreichen.

Beispiel 2

NewLevelBarsSince(Close, Höher)

Gibt an, vor wie vielen Perioden die Schlußkurse zuletzt einen höheren Wert hatten als den jeweils aktuellen Wert. Ein Ergebniswert von zum Beispiel 20 zeigt daher an, dass die Schlußkurse ein 20-Perioden-Hoch erreichen.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

14

Montag, 28. Dezember 2009, 16:54

Hallo Lenzelott,

danke, jetzt habe ich es auch gefunden. Komisch, ich hatte es unter Indikatoren eingegeben und es ist nicht aufgetaucht. War wohl mein Fehler. Vielleicht kann ich Dich aber auch nochmal um Rat zur Programmierung meines Trailing-Stops fragen, wir hatten ja schon mal zu dem Thema gepostet.

Meine Frage ist die Folgende:



Kann man es ungefähr so hinbekommen, dass ein Trailingstop nur "Rücksetzer" erfasst, wie den in der Graphik unter Punkt B (das Low des dem Punkt C vorangehenden Balkens ist höher), aber noch einen (oder X) Rücksetzer weiter zurück ? Das wäre hier der Punkt C (wenn das Low des vorangehenden Balkens höher wäre als in Punkt C).

Die Bedingung lautet also untechnisch:

Low > Ref(Low,-1) und Ref(Low,-1) < Ref(Low,-2) und nun gehe ich vom heutigen Low soweit zurück, bis diese Bedingung des zweite (oder X. Mal) erfüllt ist.


Herr Knöpfel hatte damals freundlicherweise den folgenden Vorschlag gemacht:

Zitat

calc NewLowP: NewLevelBarsSince(low, T); //Perioden letztes Limit
calc P: NewLowP+RefVar(NewLowP,-NewLowP); //Perioden vorletztes Limit
RefVar(Low,-P) // Low in dieser Periode



Damit trifft man das jeweils niedrigere Tief (ausgehend von meiner damaligen Fragestellung -aber ich habe es leider nie 100% in einen TrailingStop umsetzen können).

Hast Du eine Idee, wie man es umprogrammieren müsste, damit ich mein Ziel erreiche ? Ich denke, dass ich mit "NewLevelBarsSince" nicht weiterkomme.

Viele Grüße,
Investor
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

15

Montag, 28. Dezember 2009, 18:31

Hast Du es mit einem Anwenderstop versucht abzubilden?

Ich denke, da wird man nicht drumherum kommen.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

16

Montag, 28. Dezember 2009, 18:33

Kann man es ungefähr so hinbekommen, dass ein Trailingstop nur "Rücksetzer" erfasst, wie den in der Graphik unter Punkt B (das Low des dem Punkt C vorangehenden Balkens ist höher), aber noch einen (oder X) Rücksetzer weiter zurück ? Das wäre hier der Punkt C (wenn das Low des vorangehenden Balkens höher wäre als in Punkt C).


Sorry versteh ich leider nicht wie Du das genau meinst.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

17

Dienstag, 29. Dezember 2009, 09:25

Hallo Lenzelott,

dass ich dazu einen Anwenderstop verwenden muss, ist mir eigentlich klar; ich habe nur Schwierigkeiten, ihn formelmässig zu definieren, damit das Richtige herauskommt.

Er soll im Grunde die Lows miteinander verbinden, bei denen das Low des diesem Low vorangehenden und des ihm nachfolgenden Balkens höher ist (siehe Punkt B oben). Damit der Trailingstop nicht zu nahe am aktuellen Kurs verläuft, soll eben bei einer Rückwärtsbetrachtung vom heutigen Kus aus nicht der erste so definierte Low, sondern das 2. (oder x.) erfasste Low in Richtung Vergangenheit Basis für den Trailingstop sein.

In der obigen Zeichnung wäre es ein Trailingstop, der Punkte wie Low wie B miteinander verbindet, aber eben nicht das dem heutigen Datum nächstgelegenen Punkt B verwendet, sondern den weiterzurückliegenden.

Ich habe es versucht, mal in einem Anwenderstop (in den Zusatzbedingungen) darzustellen, wie es inhaltlich aussehen müsste:

Zitat



calc TrailingStop: Low > Ref(Low,-1) und Ref(Low,-1) < Ref(Low,-2);

calc Stoplinie:
Ref(HighestSince(Trailingstop,TradePeriods=1,1),-1);

calc #_StopLevel#:
Stoplinie;

close<#_StopLevel#


Es ist mir klar, dass es so nicht funktionieren kann. Das Problem ist die Definition der Bedingung "Low > Ref(Low,-1) und Ref(Low,-1) < Ref(Low,-2)"; der Punkt Ref(Low,-1), auf den diese Bedingung zutrifft, müsste festgehalten (ValueWhen ?) und irgendwie als Zeitreihe definiert werden können. Ref(HighestSince,-1) nimmt dann den nächsten zurückliegenden, so definierten Punkt). Allerdings sind hier meine Programmierkenntnisse bereits am Ende.

Ich hoffe, ich konnte es nun etwas verständlicher machen. Hast Du eine Idee ?

Danke für Deine Unterstützung !

Investor
Viele Grüße,
Investor

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

18

Dienstag, 29. Dezember 2009, 17:18

Anders ausgedrückt:
Du suchst rückwärts den ersten Swinglowpunkt (Tief das von höheren Tiefs umgeben ist) und von dort aus nochmal rückwärts das erste Low, das noch tiefer liegt.
Dieses muss dann aber kein swinglow mehr sein.

Richtig ?
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

19

Dienstag, 29. Dezember 2009, 21:09

Ausgehend vom Low-Kurs, der am Tag des Signals vorliegt (0), wird solange zurückgegangen, bis ein niedrigerer Low-Kurs als dieser in der Zeitreihe gefunden wird (1). Von diesem wird erneut solange zurückgegangen, bis wiederum ein niedrigerer Low-Kurs in der Zeitreihe gefunden wird (2). Dieser Wert wird festgehalten und als Stop-Kurs verwendet.


Das oben beschrieben wird IMHO exakt mit der von Herrn Knöpfel beschrieben Formel abgebildet.

calc NewLowP: NewLevelBarsSince(low, T); //Perioden letztes Limit
calc P: NewLowP+RefVar(NewLowP,-NewLowP); //Perioden vorletztes Limit
RefVar(Low,-P) // Low in dieser Periode



Sollte jedoch das hier gesucht werden (laut chart ist davon auszugehen), die verbalen Beschreibungen dazu haben mich allerdings noch nicht erhellt ob das so gemeint ist:
Anders ausgedrückt:
Du suchst rückwärts den ersten Swinglowpunkt (Tief das von höheren Tiefs umgeben ist) und von dort aus nochmal rückwärts das erste Low, das noch tiefer liegt.
Dieses muss dann aber kein swinglow mehr sein.


Dann muss man anders vorgehen.


EDIT: was mir gerade aufgefallen ist:

Quellcode

1
Low > Ref(Low,-1) und Ref(Low,-1) < Ref(Low,-2)

liefert erst ein Bar nach dem eigentlichen Swinglow ein Signal.

Zitat

Er soll im Grunde die Lows miteinander verbinden, bei denen das Low des diesem Low vorangehenden und des ihm nachfolgenden Balkens höher ist (siehe Punkt B oben). Damit der Trailingstop nicht zu nahe am aktuellen Kurs verläuft, soll eben bei einer Rückwärtsbetrachtung vom heutigen Kus aus nicht der erste so definierte Low, sondern das 2. (oder x.) erfasste Low in Richtung Vergangenheit Basis für den Trailingstop sein.


Punkt C stellt in der Grafik kein weiteres Swinglow dar, sonder nur das 1. Low das tiefer liegt als das Swinglow.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Registrierungsdatum: 30. September 2005

Beiträge: 347

Wohnort: München

20

Mittwoch, 30. Dezember 2009, 09:49

Hallo Lenzelott,


Zitat

Du suchst rückwärts den ersten Swinglowpunkt (Tief das von höheren Tiefs umgeben ist) und von dort aus nochmal rückwärts das erste Low, das noch tiefer liegt.


Das ist richtig. Allerdings sollte das nächste zurückliegende Low auch ein Swinglow sein. Das wäre der Punkt C, wenn der dem vorangegangene Balken höher gewesen wäre; ich wollte nur aus Vereinfachungsgründen das anhand der Zeichnung beschreiben (statt Verwirrung stiften).

Also: Ich suche rückwärts das zweite (oder x.) Swinglow.

(Die ursprüngliche Lösung basierte auf einer anderen Fragestellung; ich bin damit aber nicht weitergekommen; zudem haben sich ja die beschriebenen Spikes ergeben. )

Es wäre super, wenn Du da eine Idee hättest. Sorry für meine ursprünglich unklare verbale Ausdrucksweise.


Viele Grüße
Investor
Viele Grüße,
Investor