Dienstag, 16. April 2024, 18:52 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.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Samstag, 20. August 2005, 01:30

schaut dieses HS in die Zukunft?

Hallo,

ich habe ein HS auf dem Schatz, welches auf 15min eingestellt ist. Innerhalb dieses Zeitrahmens verwende ich 60min-Komprimierungen, wie folgt:
===============================================
global Const einTick: 0.005;
global Const kompMinuten: 60;
global Calc long_Limit: Komp(#Ref(High, -1) + einTick#, #kompMinuten#);
global Calc short_Limit: Komp(#Ref(Low, -1) - einTick#, #kompMinuten#);

global Const periode_mom: 10;
global Calc Daten_mom: Komp(#MOM(Close, periode_mom)#, #kompMinuten#);

{Long: Signallinie nach oben durchstoßen}
global Const delta_signallinie: 33/1000;
global Const long_signallinie: 100 + delta_signallinie;
global Calc long_Setup: Cross(Daten_mom, long_signallinie, 1)=1;

{Short: Signallinie nach unten durchstoßen}
global Const short_signallinie: 100 - delta_signallinie;
global Calc short_Setup: Cross(Daten_mom, short_signallinie, 1)=-1;

{Handelssignale}
global Calc enterLong:
Ref(long_Setup, -1) AND High >= long_Limit;

global Calc enterShort:
Ref(short_Setup, -1) AND Low <= short_Limit;
===============================================
Danke.

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »sten« (20. August 2005, 10:52)


Bandit137

unregistriert

2

Samstag, 20. August 2005, 07:10

Hallo,

ob das HS in die Zukunft schaut, kann ich auf den ersten Blick nicht sagen. Mir ist aber etwas anderes aufgefallen.

Man sollte "Const" nicht verwenden, wenn eine Berechnung folgt :

{Long: Signallinie nach oben durchstoßen}
global Const delta_signallinie: 33/1000;
global Const long_signallinie: 100 + delta_signallinie;
global Calc long_Setup: Cross(Daten_mom, long_signallinie, 1)=1;

{Short: Signallinie nach unten durchstoßen}
global Const short_signallinie: 100 - delta_signallinie;
global Calc short_Setup: Cross(Daten_mom, short_signallinie, 1)=-1;

Meiner Meinung nach müßte es Global Calc und nicht Global Const heißen.

----------------------------------------------------------------
Außerdem bin ich der Meinung, daß die Berechnung des MOM in die Zukunft schaut.
"global Calc Daten_mom: Komp(#MOM(Close, periode_mom)#, #kompMinuten#);"

Müßte hier nicht auch mit REF gearbeitet werden, da es sich (wie in der ersten Berechnung) um eine 60min Komprimierung in einem 15min Umfeld handelt ?

Dann müßte es heißen :
global Calc Daten_mom: Komp(#REF(MOM(Close, periode_mom),-1)#, #kompMinuten#);


Gruß Carsten

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Bandit137« (20. August 2005, 07:26)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

3

Samstag, 20. August 2005, 08:36

Hallo Torsten,

wie von Carsten angesprochen liegt in der Momentumsformel das Problem!
Close komprimiert wird ohne REF wird bei aktivien HS zum Signalflattern führen und verbessert den Backtest auf unrealistische Performance Werte!

Teste das ganze an einer Simulation. Stelle den Simulator exakt auf das Datum eines Trades und beobachte TickByTick wie Investox exakt
abhandelt.Stelle danach die Formel auf Carstens Vorschlag um und prüfe die Abfolge erneut! Du kannst das natürlich auch parallel prüfen indem du das komplette Project klonst,das HS duplizierst und es neben oder über das Orginal legst!
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

4

Samstag, 20. August 2005, 11:02

Hallo Carsten und Udo,

bei "*signallinie" ist CONST falsch, aber das ist historisch gewachsen und ich habe später einfach vergessen, die Definition in CALC umzuwandeln.
Werde ich umändern.

Bei der MOM-Berechnung stimme ich nicht ganz zu.
Ich sehe es so, ich verwende eine höhere MOM-Komprimierung in einen kleineren Zeitrahmen, d.h. ich darf die letzte Periode nicht verwenden.
Man könnte es nun so machen wie Carsten es vorschlägt, oder Alternativ verwende ich erst ganz zum Schluß in der Enter-Formel den Ref(xx,-1)-Bezug.
Müßte das nicht eigentlich ausreichen, um den "Zukunftsblick" abzuschalten?
Danke.

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (20. August 2005, 11:03)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

5

Samstag, 20. August 2005, 11:48

Hallo Torsten,

ich stimmte Carsten Vorschlag ja zu und es ist auch m.M. eine korrekte Lösung!Die Periode der grösseren Periode muss immer abgeschlossen sein wenn sie in einer kleineren Komprimierung als Signalgeber fungiert! Solange die grössere Periode noch aktiv besteht die Gefahr dass das Signal flattert oder revidiert wird!

REF muss in KOMP verschachtelt werden-nicht umgekehrt weil es sont zu falschen Ergebnissen führt! Setze testhalber Carstens Formel ein und dann sollte es stimmen! Zur Sicherheit kann man eine Simulation durchführen!Im allgemeinen gilt, das alle KOMPS die > Basiskomp sind mit REF definiert werden müssen falls sie in einer Form in der Berechnung,mit der basiskomp kombiniert,auftauchen!
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

6

Samstag, 20. August 2005, 12:24

Hallo Udo,

ich bin noch am probieren, aber der erste Effekt nachdem ich bei MOM das Ref-1 nach den Vorgaben von Carsten eingebaut habe war, dass die wunderschöne steigende KK in sich zusammengebrochen ist.
Wenn etwas zu gut aussieht, dann hat man einen Fehler gemacht...

Ich denke es liegt daran, dass mein unteres Ref-1 nicht gleichwertig ist mit dem Ref-1 innerhalb der Komp-Berechnung. Außerhalb der Komp-Berechnung wirkt nur der kleinere 15min-Zeitbezug, d.h. statt 60min zurück gehts nur 15min zurück und das reicht nicht aus den "Zukunftsblick" aufzuheben.
Danke.

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (20. August 2005, 12:25)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

7

Samstag, 20. August 2005, 12:50

Hallo Torsten,

>>statt 60min zurück gehts nur 15min zurück .....

Genau! Wenn REF falsch verschachtelt wird bewegt sich der REF-Indikator auf dem x-Achsen Zeitraser der Basiskomprimierung!
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

8

Samstag, 20. August 2005, 13:25

Hallo,

das ist ein wirklich interessanter Effekt.
Innerhalb einer Komp(#...#,#60#)-Berechnung, darf leider kein Bezug genommen werden auf eine Calc-Berechnung. Dann wird eine Fehlermeldung ausgegeben und es erfolgt keine Signalgenerierung.

Eine Const-Berechnung dagegen kann problemlos innerhalb von Komp() verwendet werden.

Man kann aber den Komp()-Indikator heimlich eine Calc-Berechnung unterjubeln, indem man bei einfachen Berechnungen einfach statt Calc --> Const schreibt.

Beispiel:

Zitat

{Long: Signallinie nach oben durchstoßen}
global Const delta_signallinie: 33/1000;
global Const long_signallinie: 100+delta_signallinie;
global Calc long_Setup: Komp(#Cross(Ref(MOM(Close, periode_mom),-1), long_signallinie, 1)#, #kompMinuten#)=1;

Es wird auch keine Fehlermeldung erzeugt.

Herr Knöpfel bitte unbedingt dieses Feature lassen, dass ist super!!!

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »sten« (20. August 2005, 13:28)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

9

Samstag, 20. August 2005, 13:26

Hallo Torsten,

das war schon immer so! :)
Happy Trading

Bandit137

unregistriert

10

Samstag, 20. August 2005, 13:51

Zitat

Original von sten
Man kann aber den Komp()-Indikator heimlich eine Calc-Berechnung unterjubeln, indem man bei einfachen Berechnungen einfach statt Calc --> Const schreibt.


Mal ne dumme Frage. Und wozu gibt es dann die Unterscheidung Calc / Const ?
Dann könnte ich doch immer Const schreiben. Oder gibt es doch etwas, was ich mit der Const Funtkion nicht machen kann.

Hätte ich diese Möglichkeit früher gekannt, dann hätte ich mir einige Probleme mit der Komp() Funktion erspart. =)

Gruß Carsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

11

Samstag, 20. August 2005, 14:02

Hallo Carsten,

aus der Investox-Hilfe:



CONST


Der Konstantenname ist ein gültiger Name ohne Sonderzeichen. Die Konstantendefinition ist entweder ein konstanter Wert, eine Optimierungsvariable oder ein Ausdruck, der zu einem konstanten Wert umgeformt werden kann.


Beispiele



Const Perioden: 10;

Weist dem Namen „Perioden" den Wert 10 zu.

Const Perioden: 10/2+3;

Weist dem Namen „Perioden" den Wert 8 zu.

Const Perioden: [10, 2, 100, 5, 20, 1, 3, I];

Weist dem Namen „Perioden" einen Wert zu, der im Bereich von 2 bis 100 optimiert wird und aktuell den Wert 10 besitzt.




CALC:

Der Berechnungsname ist ein gültiger Name ohne Sonderzeichen. Die Berechnungsdefinition ist eine gültige Berechnung, die auch einfach aus einem konstanten Wert bestehen kann.

Beispiele

Calc Mom: Momentum(Close, 10);

Weist dem Namen „Mom" eine Zeitreihe zu, welche die Werte des angegebenen Momentums beinhaltet.

Calc ROCMom: ROC(Mom, 5, $);

Weist dem Namen „ROCMom" eine Zeitreihe zu, welche die absolute Wertänderung des Momentums über 5 Perioden berechnet (zur Berechnung des 2. Beispiels wird vorausgesetzt, dass es nach dem 1. Beispiel in der Berechnung steht).


© 2005 Andreas Knöpfel




Happy Trading

Bandit137

unregistriert

12

Samstag, 20. August 2005, 14:15

Hi Udo,

die Investox Hilfe kannte ich. Ich habe mich wahrscheinlich durch die Unterberechnungen von sten etwas täuschen lassen.

Ich nehme mal an, daß es so ist, wie ich es schon kannte. In Const kann man zwar Berechnungen durchführen aber man darf keine Datenreihen oder Indikatoren verwenden. Man könnte also keinen RSI() unter Const berechnen lassen.

Soweit richtig ?

Schönes Wochenende.
Gruß Carsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

13

Samstag, 20. August 2005, 17:53

Hallo Carsten,

>>Man könnte also keinen RSI() unter Const berechnen lassen.
Genau!

Wünsche Dir auch ein schönes Wochende!
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

14

Samstag, 20. August 2005, 19:53

Hallo,

jetzt ist doch noch eine Frage aufgetaucht und zwar betrifft diese den Ref-Bezug von "Setup" in dem realTrading-HS (Stop-Orders in Limitsystemen) in der Ordermudulbeschreibung auf S.19/20.
Dazu muß ich kurz was erklären.

In Kurzform wird im Handbuch zwischen zwei HS unterschieden, je nach Zweck:
a) Backtest-HS:
EnterLong: Ref(Setup, -1) AND High >= Limit
Enter-Basis Long: If(Open>Limit, Open, Limit)

b) realTrading-HS:
EnterLong: Setup
Enter-Basis Long: High

Ich habe weiter oben dieses HS so erweitert, dass ich unabhängig von der globalen Handelssystem-Komprimierung bin (z.B. im Tick-Bereich) und die Handelslogik trotzdem fest auf 5 Minuten einstellen kann.
Leider muß man wegen Komp in der Cross-Berechnung mir Ref-1 arbeiten, d.h. mein Backtest-HS sieht wie folgt aus:
a) Backtest-HS:
EnterLong: Setup AND High >= Limit {Ref-1 muß weg, da schon bei Cross enthalten}

b) realTrading-HS:
EnterLong: Setup oder Ref(Setup, 1) oder Komp(#Ref(Setup, 1)#,#kompMinuten#) ???
Enter-Basis Long: High
Enter-Basis Long: If(Open>Limit, Open, Limit)

Wie sieht jetzt in der Komp-Variante die EnterLong-Regel aus? Ich habe mal 3 mögliche Varianten angegeben in der Farbe Orange, was wäre hier korrekt? Mit dem Ref+1 bin ich möglicherweise total auf dem Holzweg?
Danke.

Viele Grüße
Torsten

PS:
Ich war bestebt mich beim ersten Versuch so genau wie nur möglich an das Handbuchbeispiel zu halten, um das automatische Stoplimit-HS umzusetzen.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »sten« (20. August 2005, 20:05)


sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

15

Samstag, 20. August 2005, 21:59

Hallo,

ich habe noch eine 2.Frage.

Ich habe bei der 5min-HS-Einstellung einen optimalen Tradedauerstop von 306 Perioden (also 306 Periode von je 5 Minuten Länge) ermittelt.

Zitat

global Const tradedauerPerioden: 306;


Dann habe ich die Handelsregeln weiterhin auf 5min-Komprimierung fixiert und den Handelssystem-Rahmen auf 1min eingestellt (unter Titel).
Damit jetzt die Trades noch genau so lang sind wie bei 5min-Rahmen muß ich schreiben (also 306 Perioden 5min = 306*5 Perioden 1min):

Zitat

global Const tradedauerPerioden: 5*306;


Und jetzt komme ich ein bischen ins grübeln. Ich möchte den Handelssystem-Rahmen auf 2Ticks eingestellen. Aber es gibt hier keinen festen Faktor wieviel 2er-Tick-Perioden in eine 5min-Periode passen.
Also habe ich mir gedacht verwende ich den Komp-Indikator, wie folgt:

Zitat

global Const tradedauerPerioden: Komp(#306#, #5#);


Das funktioniert leider so nicht, es werden keine Handelssignale generiert und im Logbuch steht folgender Eintrag:

Zitat

Modul: Handelssysteme
Prozedur: Evaluierung
Vorgang: Überprüfung der Daten und Einstellungen
Datenreihe: EuroSchatz_ib
Meldung: Ungültige Stopeinstellung. Prüfen Sie, ob in der Stopeinstellung eine gültige Einstellung vorliegt (Zahlenwert, globale Variable oder Optimierungsvariable).


Kann man das irgendwie hinbekommen? Mache ich vielleicht nur beim Syntax was falsch?
Danke.

Viele Grüße
Torsten

PS:
Ich habe noch folgendes ausprobiert:

Zitat

global Calc tradedauerPerioden: Komp(#306#, #5#);

Mit Calc werden Handelssignale generiert, aber die Anzahl der Trades ist von 175x sprunghaft auf 1977x angestiegen, d.h. mit der Tradelänge stimmt was nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (20. August 2005, 22:05)