Dienstag, 16. April 2024, 08:43 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.

Ralf

unregistriert

1

Montag, 21. März 2011, 21:56

RSI für 14 Tage berechnen

Ich habe ein Handel System EOD entwickelt als Signalgeber benutze ich den DAX Kurs
RSI(".DAX (X)", Close, 14). Gute Ergebnisse erziele ich mit dem Schlusskurs um 17:30 Uhr.

Mein Wertpapier kann ich aber nur um 15:00 Uhr kaufen und verkaufen. Wenn ich den Dax um 15:00 Uhr als Signalgeber nehme sind die Ergebnisse wesentlich schlechter.

Beim RSI(".DAX (X)", Close, 14) um 15:00 Uhr werden die Close werte 14 Tage um 15:00 Uhr berechnet.

Nach Meiner Meinung hat der Schlusskurs um 17:30 eine größere Aussagekraft. Ich will jetzt den RSI mit 13 Tagen um 17:30 berechnen und am Kauftag soll der Kurs um 15:00 genommen werden.

Wie kann ich den RSI für 14 Tage berechnen?
13 Tage Close um 17:30 Uhr und am 14 Tag um 15:00 Uhr?
So das ich das System auch Backtesten kann.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Dienstag, 22. März 2011, 11:35

Hallo Ralf

Den RSI kannst Du natürlich mit dieser einfachen Formel auch selber rechnen. Brauchst ja nur die 13 Schlusskurse von 1730 und den einen Schlusskurs von 1500 reinstecken.

Nur mit dem Backtest, das wird nicht klappen: nehmen wir an, Du hast gestern die 13 Schlusskurse gerechnet plus den Kurs von 1500. Nun hast Du gestern einen bestimmten RSI Stand erhalten.

Jetzt ist heute, und Du rechnest wieder 13 Schlusskurse 1730 und den aktuellen von 1500. Was ist jetzt passiert?, Du hast für gestern den Schlusslurs 1730 gerechnet, aber gestern hast Du da den Schlusskurs von 1500 genommen. Merkts Du das Problem? Die Berechnung kann nicht backtest-stabil werden.

Du wirst also einen Tod sterben müssen: entweder Du lebst mit der Unschärfe, oder Du suchst Dir ein zum System passendes Handelsinstrument, welches Du um 1730 handeln kannst.


PS: soll das in Deinem Beitrag Blindenschrift sein? Die Schrift ist so gross, dass man die paar Zeilen gar nicht auf einer Bildschirmseite angucken kann :wacko:
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

3

Dienstag, 22. März 2011, 12:10

Ich wage die Behauptung, dass die Formel Backtest stabil ist.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Dienstag, 22. März 2011, 12:27

Die Beweisführung wird mich interessieren :)
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

5

Dienstag, 22. März 2011, 13:31

Der für gestern berechnete rsi wird sich nicht ändern, da er immer auf 15 Uhr zurückgreift.
Für die heutige Berechnung wird zwar der 1730 wert angenommen, was natürlich inkonsistent in der berechnngsmethode ist, aber davon ändert sich die Berechnng gestern doch nicht.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Ralf

unregistriert

6

Dienstag, 22. März 2011, 20:08

Vielen dank für die einfache Formel (http://de.wikipedia.org/wiki/Relative_Strength_Index).

Aber wie sieht die Berechnung in Investox aus?

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

7

Mittwoch, 23. März 2011, 09:19

Ja das ist eine gute Frage, die kann nur Herr Knöpfel beantworten. ;)
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 050

Wohnort: Giessen

8

Mittwoch, 23. März 2011, 09:25

wenn man es selber programmieren möchte mit Investox wird´s dann ungefähr so aussehen:

calc daten:....;
calc diff1:daten-ref(daten,-1);
calc diff2:ref(daten,-1)-daten;
calc h:if(diff1>0,diff1,0);
calc r:if(diff1<=0,diff2,0);
calc rs:gd(h,14,e)/gd(r,14,e);
calc rsi:100-100/(1+rs);
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

9

Mittwoch, 23. März 2011, 13:50

Hallo Ralf

Was auch gehen könnte, um Deine Anforderung zumindest für den Life Handel einfach und mit Investox-Standard-Mitteln abzudecken; probier' mal diese Formel:
global calc RalfRSI: Komp(#RSI(close,14)#,#T#);

Das setzt voraus, dass Dein HS auf 30 Minuten Basis-Komprimierung läuft, Du um 1500 Uhr aktualisierst und Dein Datenfeed (also der Titel im HS) mindestens alle 30 Minuten Daten einliefert. Dessweiteren wird vorausgesetzt, dass der Titel die Daten von 0800 bis 1730 enthält (Import Intraday begrenzen!), und dass Du die EOD Signalgenerierung trotz Intraday Daten im Griff hast (ggf. für Dein EOD-System Komp(#...#,#T#) nutzen).

Nun solltest Du um 1500 Uhr den RSI rechnen können mit dem aktuellen Close-Kurs von 145959 Uhr, während für die Tage zuvor die Close-Kurse von 1700 Uhr drinstecken, wie Du es Dir gewünscht hast.

Ich bin aber weiterhin der Meinung aus Posting 2, dass ein so gebastelter RSI heute einen RSI-Stand anzeigen wird, den Du morgen, wenn heute gestern ist, im Backtest anderst sehen wirst. Mithin sich auch die Signale verschieben könnten. Dieses Problem halt ich für durch Deinen Handelswunsch impliziert, eine andwerweitige Beweisführung, wie das stabil werden soll, sehe ich bisher nicht. Tatsächlich würde in dem Beispiel schon bei einer Aktualisierung ab 1530 Uhr möglicherweise ein anderer RSI gerechnet, weil dann ein neuer Close Kurs vorliegt.
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (23. März 2011, 14:05)


Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

10

Mittwoch, 23. März 2011, 15:52

Zitat

Ich bin aber weiterhin der Meinung aus Posting 2, dass ein so gebastelter RSI heute einen RSI-Stand anzeigen wird, den Du morgen, wenn heute gestern ist, im Backtest anderst sehen wirst. Mithin sich auch die Signale verschieben könnten. Dieses Problem halt ich für durch Deinen Handelswunsch impliziert, eine andwerweitige Beweisführung, wie das stabil werden soll, sehe ich bisher nicht. Tatsächlich würde in dem Beispiel schon bei einer Aktualisierung ab 1530 Uhr möglicherweise ein anderer RSI gerechnet, weil dann ein neuer Close Kurs vorliegt.


@ Bernd
Ich schließe mich Deiner Meinung an.
Viele Grüße von Anke

http://www.ascunia.de

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

11

Mittwoch, 23. März 2011, 17:37

Hallo,

prinzipiell möglich wäre es wohl schon. Das Problem ist die fortlaufende expon. Glättung. Daher müsste man (jeweils pro Periode) für den heutigen Wert den Wert von gestern (15:00) aus der Glättung erst herausrechnen, dann den Wert von gestern um 17:30 hineinrechnen und schließlich den heutigen Wert von 15:00 dazurechnen. Der gestrige Wert ändert sich dabei ja nicht.

Viele Grüße
Andreas Knöpfel

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

12

Mittwoch, 23. März 2011, 19:10

Hallo Herr Knöpfel,

wenn der Wert von gestern 15.00 Uhr heute aus der Glättung herausgerechnet wird und durch den Wert von gestern 17.30 Uhr ersetzt wird, dann würde sich doch auch ein Trade, welcher gestern auf Basis des 15:00 Uhr -Wertes gemacht wurde, noch nachträglich verändern können ?
Oder mache ich einen Denkfehler ?
Viele Grüße von Anke

http://www.ascunia.de

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

13

Donnerstag, 24. März 2011, 00:38

Wenn man so vorgeht wie von Bernd vorgeschlagen, dann hat man natürlich das Problem des evtl. eintretenden Flattersignales, da gebe ich Euch recht.

Vielleicht hatte ich mich in meinem Eingangspost sehr unklar ausgedrückt, aber so wie Herr Knöpfel es formuliert hat, war es von mir auch gemeint.
Da wird imho dann nichts mehr flattern.
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 050

Wohnort: Giessen

14

Donnerstag, 24. März 2011, 09:12

Man muss auch imho nicht herausrechnen, sondern es geht einfacher, wenn man von vorne nach hinten rechnet statt umgekehrt.

Der EMA ist wie folgt definiert
faktor=2/(perioden+1)
EMA=faktor*y(t)+(1-faktor)*EMA(t-1)

Die Glättung auf h und r in obigem Code wird dann nicht mit gd(h,14,e) vorgenommen sondern man nimmt den Wert von gestern zur Grundlage ref(gd(h,14,e),-1) um mit eigenem Code den heutigen geglätteten Wert zu errechnen aber auf Basis des 15 Uhr Kurses. Also :

const perioden:14;
..... // Berechnen von g,r, und h_1500 und r_1500
calc faktor:2/(perioden+1)
calc H_:faktor*h_1500+(1-faktor)*ref(gd(h,perioden,e),-1)
calc R_:faktor*r_1500+(1-faktor)*ref(gd(h,perioden,e),-1)
calc rs:H_/R_;
....
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Lenzelott« (24. März 2011, 16:03)


Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

15

Freitag, 25. März 2011, 01:21

Alle schweigen.
Hab ich Mist geschrieben?
War´s unverständlich?
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

16

Freitag, 25. März 2011, 08:35

Hallo,

das müsste so auch hinkommen. In der 5. Zeile müsste im GD natürlich "r" stehen statts "h". h und r sind die fortlaufenden Glättungswerte mit 17:30-Kursen. Der Glättungsfaktor des RSI wird in Investox übrigens mit 1/Perioden berechnet.

Viele Grüße
Andreas Knöpfel

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

17

Freitag, 25. März 2011, 10:04

Ups, dann der Vollständigkeithalber hier die korrigierte Version:

Quellcode

1
2
3
4
5
6
7
const perioden:14;
..... // Berechnen von h,r, und h_1500 und r_1500
calc faktor:1/perioden;
calc H_:faktor*h_1500+(1-faktor)*ref(gd(h,perioden,e),-1);
calc R_:faktor*r_1500+(1-faktor)*ref(gd(r,perioden,e),-1);
calc rs:H_/R_;
....
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

18

Freitag, 25. März 2011, 10:07

Hallo,

das ist wirklich charmant gerechnet.
Ich bin schon so gut wie überzeugt.
Nur eine Frage noch zum Abschluss:
Wie lauten denn die Formeln für die von Ralf gewünschte Tageskomprimierung ?
Viele Grüße von Anke

http://www.ascunia.de

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

19

Freitag, 25. März 2011, 11:59

Hab nix davon ausprobiert, wollte eigentlich nur zeigen, dass es flatterfrei geht und bin davon ausgegangen, dass man mit der Idee im Rücken die Lösung selber basteln kann.
Aber schon richtig, auf Intraday Daten funktioniert das so natürlich nicht wirklich 1:1 so wie es oben steht.

calc H_:faktor*h_1500+(1-faktor)*komp(#ref(gd(h,perioden,e),-1)#,#t#)
calc R_:faktor*r_1500+(1-faktor)*komp(#ref(gd(r,perioden,e),-1)#,#t#)

Wobei man die Berechnung für h und r in den Komp packen muss, weil sonst Investox es nicht berechnen kann.

h_1500 und r_1500 muss man dann mittels lastdp(close) und valuewhen(open,datepart(h)*100+datepart(n)=1500,1,v) ermitteln.

alles kein Hexenwerk. Weg ist aufgezeigt, Coden darf jemand anderer. ;)
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

20

Freitag, 25. März 2011, 13:01

Hallo Lenzelott
Hallo Herr Knöpfel

Hab nix davon ausprobiert, wollte eigentlich nur zeigen, dass es flatterfrei geht

Bisher sehe ich eine Formel, die plausibel scheint, oder wie es Anke ausgedrückt hat, charmant.

Überzeugt bin ich nicht restlos; die Tatsache, dass zwei Koryphäen der Meinung sind, die Idee wäre flatterfrei, ist noch keine Beweisführung.

Ich nehme an, Eure Meinung läuft darauf hinaus, dass der "falsche" 15:00 Uhr Kurs seine Wirkung durch das kleine Alpha des Glättungsfaktors schnell in der Vergangenheit verliert.

Ob das stimmt, müsste wohl mit Reihentests nachgewiesen werden, denn das Problem der exponentiellen Gkättung bringt nach Kursverwerfungen auch im "Normalbetrieb" schon seltsame Ergebnisse (link).

Ich würde vermuten, dass ein bis zwei Tage von 100 aus der Reihe tanzen, also das Signal nachträglich ungültig wird (flattert) oder auch im Backtest nachträglich Trades auftauchen, die nicht am Handelstag um 15 Uhr zu sehen waren.

dass man mit der Idee im Rücken die Lösung selber basteln kann ... Coden darf jemand anderer.

Da diesen Indikator ausser Ralf wohl niemand selbst benötigt, müsste er ihn sich selbst codieren. Anschliessend müsste er einen Testrahmen aufbauen mit einem Intraday-Datenfeed und EOD Signalgenerierung, dann die Reihentests durchführen, also einige hundert Trades durch den Simulator laufen lassen, und anschliessend die Trades im Depot und die HS Tradeliste miteinander abgleichen.

Oder Ralf müsste jemand finden, den er mit was auch immer überzeugen kann, dies alles für ihn zu programmieren und auszutestet, möglicherweise mit dem von mir angesprochenen und von ihm nicht nicht erwünschten Ausgang.

Könnte dieser Aufwand durch eine lückenlose theoretische Beweisführung Eurer Behauptung vermieden werden (? vielleicht bin ich ja blind, und es liegt auf der Hand?), dann müsste Ralf sich immer noch jemand finden, der ihm Indikator und Handelsrahmen baut, wenn er es wie aus Posting 6 zu vermuten nicht selbst kann. Unmittelbar trivial ist das bisher sehr theoretische Gebilde ja nun auch nicht ...
Gruss
Bernd