Mittwoch, 24. April 2024, 19:04 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

1

Mittwoch, 13. August 2008, 20:12

Komp-Berechnung und Backtest

Hallo Gemeinde,

ich habe mal eine Frage zur Verhaltensweise von Kompberechnungen in Backtests.

Ich habe z.B. in einem Dax 5-Minuten-System eine Kompberechnung auf die Kreuzung zweier GD`s mit Komp 30. Ich berechne alles auf den aktuellen 5-Min-Close und steige dann zum Open 1 ein.
Jetzt beginnt eine neue 30 Minuten Komprimierung und in den ersten 5 Minuten bei Close crosst ein GD den anderen und er geht Long. Dreht jetzt der GD wieder unter den anderen in weiteren 5 Minuten bleibt das Signal in der Datenfeed Simu an Ort und Stelle.

ABER...wie verhält es sich im Backtest. Macht der Backtest es reell oder könnte es sein das in den ersten 5 Minuten wo er Long geht, der Backtest vielleicht schon weis das die GD`s auf 30 Minuten Komprimierung die ja noch nicht beendet ist, bei Beendung auf Longcross stehen ???

Versteht Ihr wie ich es meine? Was ist für ein system oder den Backtest massgebend. Die Signalgebung auf 5 Minuten oder die Beendigung der 30-Min-Komp.
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

2

Mittwoch, 13. August 2008, 20:59

Hallo Trader-hawk,
läuft das System mit unvollendeten Perioden und die GD`s kreuzen sich innerhalb einer 30 min Periode?

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

3

Mittwoch, 13. August 2008, 21:16

Hallo Snoopy,

ja, ich arbeite mit unvollendeten Perioden und die GD`s kreuzen sich "innerhalb" der 30 Minunten.
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

4

Mittwoch, 13. August 2008, 21:35

Wenn sich innerhalb einer 30min Periode die GD´s kreuzen, sind das Flattersignale, da erst am Ende der 30Min Periode feststeht, ob die GD`s sich gekreuzt haben.
Der Backtest rechnet mit dem Close der 5min Periode wenn die 30min Periode beendet ist, bzw. in deinem Fall mit dem Open der nächsten 5min Periode.

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

5

Mittwoch, 13. August 2008, 23:08

Hi Snoopy,

so wie Du es schreibst, würde es bedeuten das die 5 Minuten massgebend sind und es NICHT in die Zukunft schaut. Das wäre Super wenn es so wäre.
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

6

Mittwoch, 13. August 2008, 23:28

Hallo Trader-Hawk,
maßgebend sind die 30min Komp. Die Datenfeed Simulation erzeugt falsche Signale.

Vielleicht kannst du angeben, was du backtesten möchtest um das evt. besser dazustellen.

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

7

Donnerstag, 14. August 2008, 12:04

Hallo Snoopy,

danke für Deine Hilfe.

zum Beispiel:

Quellcode

1
2
3
4
5
Global const GD1: Komp(#GD(Close, 5, E)#, #30#);
Global const GD2: Komp(#GD(Close, 20, E)#, #30#);

{Long Bedingung}
close > SAR(Close, 0.02, 0.2) And GD1 > GD2


Enter dann zum Open 1

Die GD`s würden sich in der laufenden 5 Minuten Periode noch bewegen. Ist der eine GD sowieso grösser als der andere gibt es keine Probleme. Knackpunkt könnte aber ein frischer Cross sein. Aber eigentlich ist doch massgebend das wenn close grösser als der SAR ist und gleichzeitig GD1 über GD2 liegt das er dann Enter geht. Auch wenn 5 Minuten später die GD`s wieder drehen sollten, so war doch das erste Signal in Ordnung. Und dieses Signal bleibt auch. Allerdings weis ich nicht ob die Signale die bereits im Chart sind, reell sind.
Die Frage ist nur ob ein Backtest mich bescheissen könnte? Ich weis eben nicht wie der Backtest Intern arbeitet. Was ich auch nicht verstehe wieso die Datenfeed-Simulation falsch sein sollte. Denn genau für diese Dinge ist doch die Simu da.

Das mit den GD`s ist nur ein Beispiel. Genau so kann ich Untersuchungen mit dem RSI auf 30 Min Basis machen.
Mache ich einen Denkfehler oder gibt es in Inv. Tücken die ich noch nicht kenne?
Grüße aus dem Schwabenland
Arend

annapm

unregistriert

8

Donnerstag, 14. August 2008, 12:36

hallo

Der komp muss ins ref gesetzt werden,sonst schaut er in dei zukunft

Komp(#Ref(GD(Close, 5, E),-1)#, #30#)



peter

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

9

Donnerstag, 14. August 2008, 12:45

Hallo Peter,

genau das ist der Punkt den ich noch nicht ganz verstehe, wieso es in die Zukunft schaut. Denn ich frage ja zum 5-Minuten-Close den Stand der GD`s ab. Massgebend müsste doch das 5-Minuten-Close sein. Wenn sich die GD`s z.B. auf Long schneiden da zum 5er Close sie eben so standen und die GD`s dann in weiteren 5 Minuten sich wieder zurückbewegen, war der Schnitt in den 5 Minuten dennoch da. Und da ein System Tick für Tick abgearbeitet wird kann er doch dann das Signal nicht mehr zurück nehmen. Das wäre für mich dann ein Fehler in Inv.

Ich weis schon das es Dinge gibt wo es in die Zukunft blickt. Aber bei diesem Beispiel verstehe ich es nicht, da massgebend das 5er Close ist und er dann zur Eröffnung des nächsten Balkens einsteigt. Deshalb auch kein Ref. Ich glaube das hat dann damit zu tun wie Investox das ganze verarbeitet.
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

10

Donnerstag, 14. August 2008, 13:04

Hallo Trader-Hawk,
die Datenfeed Simulation ist schon richtig. Sie deckt nur, wie im reellen Betrieb die falschen Signale auf, die im Backtest nicht gesehen werden bzw. nicht korrekt programmiert sind.
Ich programmiere einmal das System wie es im Backtest und realen Betrieb richtig wäre.
Wahrscheinlich aber erst am Wochenende.
Gruß Snoopy

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

11

Donnerstag, 14. August 2008, 13:08

Zitat

Denn ich frage ja zum 5-Minuten-Close den Stand der GD`s ab. Massgebend müsste doch das 5-Minuten-Close sein.


Hallo trader-hawk,

ich versuche mal eine verständliche Erklärung:

Nach Ablauf von 5 Minuten (...in einer Stunde....) steht der aktuelle 30-Minuten GD noch nicht abschließend fest. Er kann sich noch verändern, bis 30-Minuten (....der Stunde...) um sind.
Sicher abfragen kannst du deshalb vom 5-Minuten Chart aus nur den letzten 30-Minuten GD (.....mit Ref(...,-1) um :00 zu Beginn der Stunde...), so wie es dir Peter und die Vorposter beschrieben haben.
Alle anderen Abfragen schauen in die Zukunft.

Am besten kann man sich -wie ich finde- merken, dass man von einer kleineren Basiskomprimierung (z.B. 5 min.) aus immer mit Ref(...,-1) innerhalb von Komp arbeiten muss, will man auf Daten einer größeren Komprimierung (z.B. 30 Minuten) zugreifen.

Anders wäre das nur, wenn du von einer größeren Basisikomprimierung (z.B. 30 Min.) auf Daten einer kleineren Basiskomprimierung (5 Min.) zugreifen wollte.
Sind die letzten 30 Minuten der aktuellen Stunde um, sind es immer auch die letzten 5 Minuten der Stunde.
Viele Grüße von Anke

http://www.ascunia.de

annapm

unregistriert

12

Donnerstag, 14. August 2008, 13:17

hallo

der komp gd geht über 6 perioden in der 5 minuten komprimierung und kann sich bei jeder periode verändern


Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

13

Donnerstag, 14. August 2008, 13:41

Hallo,

vielen Dank euch Dreien für die Erklärungen. :thumbsup:

Im Grunde sind mir die Erklärungen bewusst und leuchten mir auch ein. Nur dachte ich das der Stand der 30er GD`s bei jedem 5 Minuten Balken Neu abgefragt wird und das dann Massgebend ist. Denn ein System schaut ja wo ist mit jedem 5er Balken der GD und trifft dann eine Entscheidung.

Ok, jetzt weis ich wengistens das es einfach so ist und muss damit klar kommen, auch wenn mir die Logik noch nicht 100%-ig einläuchtet. Denn allem voran sollte ja immer der Kurs im System die Priorität haben, wo zu diesem Zeitpunkt die Berechnungen stehen. Es sei denn ich gebe etwas anderes an. Hm.

Also nochmal vielen Dank.
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

14

Sonntag, 17. August 2008, 12:22

Hallo Trader Hawk,
wie angekündigt, hier noch mal die Regeln.

System mit vollendeten Perioden
Wenn hier unvollendete Perioden verwendet werden, würde bei der Formel Close > SAR(Close, 0.02, 0.2) innerhalb der aktuellen Periode der SAR und das Close, sich bei jedem Tick bewegen. Dabei werden falsche Signale ausgelöst.
Werden vollendete Perioden verwendet wird erst die Bedingung abgefragt, wenn das Close entstanden ist. Hier kann mit OPEN DELAY 1 eingestiegen werden.
Aber:
Global const GD1: Komp(#GD(Close, 5, E)#, #30#);
Global const GD2: Komp(#GD(Close, 20, E)#, #30#);
And GD1 > GD2
Die GD`s verändern sich immer noch innerhalb der 30min Komp, auch wenn eine 5min Periode beendet worden ist.
Hier muß mit Ref,-1 auf die vorherige Periode zugegriffen werden
Global const GD1: Komp(#Ref(GD(Close, 5, E), -1)#, #30#);
Global const GD1: Komp(#Ref(GD(Close, 20, E), -1)#, #30#);
And GD1 > GD2

System mit unvollendeten Perioden
Hier muß beim SAR mit Ref,-1 zugegriffen werden
Ref(SAR(Close, 0.02, 0.2), -1)
Aber:
Das aktuelle Close bewegt sich und kann über oder unter dem SAR springen und falsche Signale auslösen.
Hier muß beim Close auf die vorherige Periode zugegriffen werden.
Ref(Close, -1) > Ref(SAR(Close, 0.02, 0.2), -1)
Jetzt wird mit OPEN DELAY 0 eingestiegen.
Die GD`s bleiben so wie im System 1.

Ich hoffe es ist etwas verständlicher.

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

15

Sonntag, 17. August 2008, 14:33

Hallo Snoopy,

durch Deine und auch Ankes ausführliche Erklärung wurde es mir verständlich. Von meiner Denkweise her dachte ich nur das der Stand der 30er Periode bei Close der 5er Periode verwendet und nicht mehr verändert wird. Aber wenn es so wäre, würde die höhere Komp auch keinen Sinn machen, muss ich zugeben. Denn dann könnte ich gleich statt einem 5er GD bei einer 30er Periode einen 30er GD bei einer 5er Periode nehmen und hätte den Effekt den ich möchte.

...und Beispiele finde ich immer sehr gut da sie einem den Sachverhalt einfach besser verdeutlichen.

Deshalb vielen Dank für Deine Arbeit. :)
Grüße aus dem Schwabenland
Arend