Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » Filter für Radarscreen » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo EL Freunde !
Habe versucht einen Filter für Radarscreen zu programmieren,der mir eine 1 Tagesdivergenz aufzeigt(Close ist kleiner als 1 Tag zuvor und der RSI ist größer als
1 Tag zuvor).

Inputs: RSI(0),TrueColor (Green), FalseColor(Red);
Variables: Filter("");
If Close < Close[1] and RSI > RSI[1] Then Beginn
Filter = "T";
If TrueColor <> -1 Then
Plot1 (Filter, "T/F", default, TrueColor)
Else
Plot1 (Filter,"T/F");
End
Else Begin
Filter = "F";
If FalseColor <> -1 Then
Plot1(Filter, "T/F", default, FalseColor)
Else
Plot1(Filter, "T/F");
End;

Nachdem ich EL Anfänger bin,und der Fehlerteufel wahrscheinlich wieder im Detail
steckt, bin ich für jede Hilfe dankbar.

Viel Spaß bei der TA wünscht
Hans

29.04.2001, 21:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen




Inputs: RSI(0),TrueColor (Green), FalseColor(Red);

RSI ist eine Funktion und kann nicht als Inputvariabelnamen benutzt werden. Eine Möglichkeit, variable Funktionen als Input zu nutzen ist über die Vergabe eines Inputs möglich - z.B. MeinIndikator(RSI(Close,14)) -

Variables: Filter("");

If Close < Close[1] and RSI > RSI[1] then
Beginn
Filter = "T";
If TrueColor <> -1 Then
Plot1 (Filter, "T/F", default, TrueColor)
Else
Plot1 (Filter,"T/F");
End
Else
Begin
Filter = "F";
If FalseColor <> -1 Then
Plot1(Filter, "T/F", default, FalseColor)
Else
Plot1(Filter, "T/F");
End;



Um die Unterschiede zwischen Orginal und "Fälschung" zu verdeutlichen, habe ich keinerlei logische und programmtechnische Änderungen an Deinem Programm durchgeführt, soweit sie nicht zur fehlerfreien Syntaxüberprüfung (F3 -Verify) notwendig wurden:



Inputs: Price(Close), LenRSI(9),TrueColor (Green), FalseColor(Red);
Variables: Filter(""), vRSI(0);

vRSI=RSI(Price, LenRSI);

If Close < Close[1] and vRSI > vRSI[1] Then
Begin
Filter = "T";
If TrueColor <> -1 Then
Plot1 (Filter, "T/F", default, TrueColor)
Else
Plot1 (Filter,"T/F");
end
Else
begin
Filter = "F";
If FalseColor <> -1 Then
Plot1(Filter, "T/F", default, FalseColor)
Else
Plot1(Filter, "T/F");
End;




30.04.2001, 10:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Vielen Dank Uwe für Deine Hilfe!

Habe soeben diesen Filter getestet,leider
bringt er nicht die gewünschten Ergebnisse.

Kann es sein, daß sich in der EL noch ein
logischer Fehler befindet.
(im Radarscreen
werden Aktien heraus gefiltert bei denen
sowohl der Close als auch der RSI gegenüber
dem Vortag gefallen sind.)
(Ziel sollte aber sein,daß der Close gegenüber dem Vortag kleiner ist und zugleich der RSI gegenüber dem Vortag größer ist.)
Nochmals vielen Dank
Hans

Hans

03.05.2001, 00:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans!

Wie ich bereits im Begleittext erläuterte habe ich erst einmal nichts and der Logik des Programmes geändert, um Schrittweise vorgehen zu können.

Der logische Fehler ist in den WENN...DANN...SONST-Schachtelungen zu suchen, wenn wenn eine IF-Bedingung nicht erfüllt ist, wird der ELSE-Zweig in Deinem Brogramm durchlaufen und da scheint mir etwas doppelt zu sein. Da scheint es mir, als wenn etwas widersprüschlich bewertet wird. Versuch bitte ersteinmal die einfache Struktur:

IF (CvRSI[1] Then
begin
.....
end
else
begin
....
end;

Allen anderen "Müll" eaus einer Arbeitsversion des Programmes herausnehmen und Stück für Stük die Erweiterungen einbauen und testen.

Vielleicht hift dies erstmal auf den Weg, ansonsten kann ich mich erst später mit der tatsächslichen Umsätzung beschäftigen.

Gruß
Uwe

03.05.2001, 10:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans!

Es ist tatsächlich eine Logikfehler im Programmansatz enthalten, der allerdings auf Deine unerfüllbare Forderung
Close < Close[1] AND vRSI > vRSI[1]
begründet liegt. Du "verlangst schlicht Unmögliches, wie Dir eine kleines Indikatorprogramm schnell darstellen kann:


vars: vRSI(0) signRSI(0), signClose(0);
vRSI=RSI(Close,9);
signClose=Close-Close[1];
signRSI=vRSI-vRSI[1];
plot1(signClose*signRSI,"");


Nur wenn Du mit dem obigen Program einen Plot darstellen kannst, der nicht nur den Wert +1 enthält sondern auch den Wert -1 anzeigt, könntest Du in den TRUE-Bereich Deiner IF-Abfrage gelangen. Das Proramm nutzt die mathematische Aussage:
(+1)*(+1)=(-1)*(-1)=+1 und
(+1)*(-1)=(-1)*(+1)=-1,
soweit beide Werte ungleich Null sind, also ein eindeutiges Vorzeichen (sign) haben.

Wenn Du Dir nun noch den Aufbau des RSI anschaust, wird auch schnell klar, warum bei einem steigendem Close gegenüber dem Vortag der RSI steigt muß> und bei einem fallenden Close gegenüber dem Vortag ebenso zwangsläufig fallen muß.

Eas gilt:
RSI = 100 - 100 / (1 + U/D)

Ein fallender Schlußkurs erhöht den Wert von D und senkt den Wert von U, eine steigender Schlußkurs erhöht den Wert U und senkt den Wert von D.

Damit kann gegenüber der Vorbarberechnung gezeigt werden, daß bei einem
  1. fallenden Schlußkurs C < C[1]
    1. der Wert von U fällt,
    2. der Wert von D steigt,
    3. der Quotient U/D und damit das Ergebnis der Rechenperation (1+U/D) steigt, wodurch
    4. der Abzug 100/(1+U/D) größer wird, sodaß
    5. der Indikatorwert RSI auch abnimmt
    6. Close < Close[1], dann RSI < RSI[1]

    >
  2. steigender Schlußkurs C > C[1]
    1. der Wert von U steigt,
    2. der Wert von D fält,
    3. der Quotient U/D und damit das Ergebnis der Rechenperation (1+U/D) steigt,
    4. wodurch der Abzug 100/(1+U/D) kleiner wird, sodaß
    5. der Indikatorwert RSI auch steigt
    6. Close > Close[1], dann RSI > RSI[1]


Deine Bedingung
Close < Close[1] AND vRSI > vRSI[1]
dürfte somit, wenn ich keiner Fehleinschätzung erlegen bin, niemals zur Aussage WAHR (true) führen.

Dein Gedankengang ist jedoch über die SwingXXX-Funktionen zu verwirklichen. Schaue Dir dazu bitte die entsprechenden Programme (Divergenzen, Swing...) an.

Gruß
Uwe

(Close,9)>vDie[AND weiter abnimmt(auch abbnimmtmfällt.avon um , eine steigender Schlußkurs

03.05.2001, 18:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Uwe,

vielen Herzlichen Dank für Deine enorme Hilfsbereitschaft!

Bei meiner regelmäßigen TA habe ich beobachtet,daß diese 1 Tages Divergenzen möglich sind (z.B. Momentum,Projektion Osc.,Point of Balance etc.).
Nun bin ich davon ausgegangen,ohne lange zu überlegen(was wohl mein Fehler war),daß diese
auch beim RSI möglich sind.
Nach Deiner umfangreichen Analyse zu urteilen,scheint dieser Vorgang allerdings unmöglich.
Um bei der EL Programmierung ein Stück voran zu kommen,wollte ich bewußt eine möglichst einfache Regel aufstellen,die demzufolge auch einen kurzen und damit auch einfachen EL Code mit sich bringt.
Das Momentum ist wohl für dieses Vorhaben am Besten geeignet,deßhalb mein zweiter Versuch einen solchen Filter zu programmieren.

Inputsrice(Close),LenMom(5), TrueColor(Green), FalseColor(Red);
Variables: Filter(""),vMom(0);
vMom=Momentum(Price,LenMom);

If Close < Close[1] and vMom > vMom[1] Then Begin Filter= "T";
If TrueColor ??? Then
Plot1 (Filter,"T/F",default, TrueColor)
Else
Plot1 (Filter,"T/F");
End
Else
begin Filter="F";
If FalseColor ??? Then
Plot1(Filter,"T/F", default, FalseColor)
Else
Plot1(Filter,"T/F");
End;

Nachdem meine EL Kenntnisse sehr zu wünschen übrig lassen,hoffe ich dennoch
baldmöglichst ein Erfolgserlebnis verbuchen
zu können um darauf aufbauend besser in die
Materie einsteigen zu können.
Sorry,daß der RSI für dieses Vorhaben nicht geeignet war.

Herzliche Grüße
Hans

04.05.2001, 09:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans!

Mit dem Momentum-Wert solltest Du programmtechnisch Deine Logik umsetzen können.

Die bisher vorgestellten Programme (Dein Programm und der Test-Indikat) brauchen nur für die Wertzuweisung vRSI abgeändert werden.

vRSI=Momentum(Price,LenRSI)

Du erkennst, daß die Namensgebung der Variablen nicht sonderlich wichtig ist, da es nur auf die Zuweisung ankommt.

Viel Erfolg und viel Spaß beim weiteren Experimentieren

Wochenendgruß
Uwe

04.05.2001, 19:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  RE: Filter für RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Uwe,
vielen Dank für Deine Unterstützung !

Habe den ganzen Tag schon rumgedoktert,
aber bin zu keinem brauchbaren Ergebnis
gekommen.
Normalerweise müßte der EL Code doch so
einfach aufgebaut sein, aber anscheinend
spricht mein PC nicht meine Sprache.

Gibt es aus Deiner Sicht noch irgend eine
Möglichkeit diesen 1 Tagesdivergenzfilter
(Close zu Momentum)zu programmieren?

Weiterhin viel Spaß bei der TA wünscht
Hans

06.05.2001, 19:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR