Autor |
|
_Schmalhofer Johann
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36
|
|
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 |
|
_Uwe
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313
|
|
RE: Filter für Radarscreen | |
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 |
|
_Schmalhofer Johann
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36
|
|
|
03.05.2001, 00:10 |
|
_Uwe
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313
|
|
|
03.05.2001, 10:10 |
|
_Uwe
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313
|
|
RE: Filter für Radarscreen | |
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 - fallenden Schlußkurs C < C[1]
- der Wert von U fällt,
- der Wert von D steigt,
- der Quotient U/D und damit das Ergebnis der Rechenperation (1+U/D) steigt, wodurch
- der Abzug 100/(1+U/D) größer wird, sodaß
- der Indikatorwert RSI auch abnimmt
- Close < Close[1], dann RSI < RSI[1]
> - steigender Schlußkurs C > C[1]
- der Wert von U steigt,
- der Wert von D fält,
- der Quotient U/D und damit das Ergebnis der Rechenperation (1+U/D) steigt,
- wodurch der Abzug 100/(1+U/D) kleiner wird, sodaß
- der Indikatorwert RSI auch steigt
- 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 |
|
_Schmalhofer Johann
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36
|
|
RE: Filter für Radarscreen | |
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 |
|
_Uwe
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313
|
|
|
04.05.2001, 19:10 |
|
_Schmalhofer Johann
Administrator
Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36
|
|
|
06.05.2001, 19:10 |
|
|