Dienstag, 16. April 2024, 15:47 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.

PIcasso

unregistriert

1

Montag, 30. Januar 2012, 21:49

Kombititel Zeitverzug / zeitdifferenz

Hallo,

ich habe den Kombititel Dax in einem HS als Vergleichstitel verwendet und heute neu eingesetzt.

(damit hatte ich früher schon Probleme)

Für den Kombititel benötige ich nur die Closekurse und unvollendete Perioden habe ich inaktiv eingestellt.

Die Komprimierung ist bei meinem Titel und bei Dax-Kombititel 5 Minuten.

Im Anzeigebereich/Chart hinkt der Kombititel immer eine Periode hinterher, was aber zu erklären ist,

ich habe Closekurse im Kombititel eingestellt.

Nun gibt es lt. dem Signalprotokoll folgende Situation für den Enter Long:

Signalzeit 10:10:00

Tickzeit 10:19:59

zeit lt. der ersten Spalte Signalprotoll 10:20:01

Er hätte hier 10:15:xx, das ist die erste Periode, den Enter absetzen müssen, hat er aber nicht.

Ich steige hier mit Close ein und es sind zusammen 10 Minuten die der Vorgang anzeigt, also 2 Perioden.

Deshalb hätte er für den Haupttitel und für den Kombititeldax zum Close um 10:15 das Signal für den Entry geben sollen.

Es sieht so aus, als hätte er für die 1. Periode die 2 Close nicht innerhalb einer Periode erkannt.

Damit ist der Fehler leicht zu erklären, aber wie entsteht er?

Wie kann ich sicher sein, dass der Haupttitel und der Kombititel innerhalb einer Periode zum Close harmonieren???

Den Fehler hatte ich früher schon mal, das aber gar nicht richtig gesehen.

So könnten auch meine Tests verzerrt sein, wenn ich das gar nicht merke.

Also, irgendwo habe ich etwas übersehen, denn andere arbeiten ja auch dauerhaft mit dem Kombititel.



Picasso

PIcasso

unregistriert

2

Dienstag, 31. Januar 2012, 08:37

Hinweis

Hallo,

noch einen Hinweis, ich frage hier z.B. mit OBOS (close) den Kombititel ab, das stimmt also mit der Einstellung Close im Kombititel überein. Ich hatte gestern den Kombititel mit dem echten Titel ausgetauscht, dann ging es richtig.

Allerdings ging auch die Ergebnisrechnung zurück, weshalb ich das HS erst mal wieder ausgesetzt habe.

Es muss also am Kombititel liefen. Das Hauptproblem ist, dass das kaum entdeckt wird, normal schaut man das Signalprotokol nicht an.



Picasso

Ganesha

unregistriert

3

Dienstag, 31. Januar 2012, 13:05

Hallo,

zunächst: Ich verstehe die Frage nicht. Was genau ist der Inhalt Deines Kombititels? Was ist der Originaltitel? Und was sind die Enterbedingungen?

Zum Schlusskurs: Sowas gibt es eigentlich nicht. Bei der Eröffnung einer Periode guckt sich Investox den letzten Tick der Vorperiode an und weiß dann: Das war der Schlusskurs. Es ist also nicht möglich zum Schlusskurs irgendwas zu eröffnen. Was man aber machen kann ist sowas: " wenn ref(close, -1) > x dann gehe Long". Eröffnungskurs ist dabei der open der Folgeperiode.

Wenn man Komprimierungen oder gar gemischte vorkomprimierte Perioden benutzt, wird es richtig haarig, damit kann man sogar den Virtuellen Broker austricksen...

PIcasso

unregistriert

4

Dienstag, 31. Januar 2012, 15:16

kombi

Hallo Ganesha,

der Originaltitel ist der Bund (Future März), der Kombititel ist der DAX-Future, da habe ich mehrere Quartale zusammen, auch den aktuellen Dax Future März darin aufgeführt. Beim HS habe ich für den Bund 5 Minunten Komprimierung und auch für den Kombi "DAX".

Die Komprimierung ist also gleich.

Ich verwende beim Kombi-Dax nur Schluss-Kurse, da ich nur Schlusskurse abfrage. Ich habe hier "komprimierung verwendet nur Schlusskurse" eingetragen.

Das dürfte doch o.k. sein.

Die Entrys werden beim Close durchgeführt, Delay=0.

Da ich hier den Originaltitel mit OBOS mit "OBOS(Close..." abfrage, dürfte das auch o.k. sein.

Ich brauche hier kein Ref-1, da ich beim Close abfrage.

Nun benötige ich den Kombititel DAX um die Abhängigkeit zum Bund zu prüfen: "OBOS"Kombi_dax_5m", close....".

Da verwende ich auch den Close bei der Abfrage, das dürfte auch o.k. sein.

Nun habe ich gestern auf den Originaltitel umgestellt, also im HS "OBOS"dax@..." eingetragen.

Dann lief es richtig. Also, ich habe da nur den Titel ausgetausch und den Kombi-Dax entfernt.

Aber zumindest bei meinen tests brauche ich die Kombis um lang Zeitreihen abzufragen.

Nach der Erfahrung stelle ich aber das in Frage, weil ich nicht sicher bin, dass das auch im Test richtig läuft.

Im Test sieht man das kaum, weil ja scheinbar alles richtig läuft.



Ich hoffe natürlich, dass jemand im Forum da schon mal ähnliche Erfahrung gesammelt hat und die Ursache kennt.

Also, aus meiner Sicht ist alles richtig eingestellt, trotzdem läuft das nicht richtig.

Wie bei der obigen Eingangsmeldung beschrieben, kommt das Ticksignal um 10:19:59, also rund 10 Minunten nach dem Entrysignal in der Anzeige, um 10:10. Es sieht so aus, als würde er dem Kombititel erst eine Periode später zum Close verarbeiten und was ist die Ursache?



Zunächst muss ich mal prüfen, ob der Kombititel richtig eingestellt ist.

ich habe auch "grundkomprimierung: primäre Komprimierung beim Import ab 8:00 Uhr" und unvollendete Perioden inaktiv eingestellt, ist das o.k.?

Könnte ich jederzeit auf ALLE Kurse beim Kombititel umstellen oder muss ich da den Kombititel neu anlegen, das dürfte aber nicht die Ursache sein.





Picasso

Ganesha

unregistriert

5

Dienstag, 31. Januar 2012, 15:50

Hallo,

noch mal: Eine Tradeeröffnung zum Schlusskurs ist nicht möglich.

Genauer: Man kann zu einem Zeitpunkt x den Trade eröffnen und dieser Zeitpunkt kann auch kurz vor dem Schlusskurs sein. Aber dann kann man den Schlusskurs nicht zur Signalberechnung benutzen, weil er noch nicht bekannt ist.

Der frühste Zeitpunkt um einen Schlusskurs benutzen zu können, ist der Eröffnungskurs der Folgeperiode. Dort ist dann aber ein ref(-1) notwendig.

Oder mit anderen Worten: Dein System guckt vermutlich in die Zukunft.

Bezüglich Test: Falls Du den Backtest meinst: Investox kann alles mögliche berechnen. Ob die Berechnung sinnvoll ist, muss der Benutzer entscheiden. Schwierig im Backtest (und durchaus auch dem virtuellen Broker) ist, dass _dort_ der Schlusskurs bereits bekannt ist. Aber im Realhandel funktioniert das nicht mehr.

Von daher: Stelle Dein HS um auf 'open', 'Delay=0' und ref(-1). Die Performance sollte vergleichbar sein, ansonsten hast Du einen Fehler in der Handelslogik.

Eine wichtige Info fehler mir ansonsten noch: Wenn 'unvollendete Perioden' deaktiviert ist, wann aktualisierst Du das System?

PIcasso

unregistriert

6

Dienstag, 31. Januar 2012, 16:59

info

Hallo Ganesha,

hier die gewünsche Information.

Ich habe im HS den Butten unvollendete perioden nicht angekreuzt, da ich nur mit vollendeten perioden arbeite.

Deshalb hatte ich ja am Ende der vollendeten Perioden mit Close abgefragt, das hatte aber bisher funktioniert (ohne Kombititel)!

Das habe ich falsch gesehen, wie Du es meinst! (das verblüfft mich jetzt), werde ich umstellen und testen.

Beim Kombinationstitel wollte ich das anlalog HS einstellen, deshalb habe ich dort inaktiv stehen, "wie Basis" wäre wohl besser?

ich stelle wohl besser auf alle Kurse um?

Das System wird alle 2 Sekunden aktualisiert.



Picasso

Ganesha

unregistriert

7

Dienstag, 31. Januar 2012, 17:18

RE: info

Das System wird alle 2 Sekunden aktualisiert.
Ok und wann werden Signale ausgelöst? bei neuer Periode?

PIcasso

unregistriert

8

Dienstag, 31. Januar 2012, 17:53

signale

Hallo,

da habe ich "bei kursänderung" eingetragen, beim Bund ist da 0,01, beim Dax 0,5, das habe ich mit definiert.



Picasso

PIcasso

unregistriert

9

Dienstag, 31. Januar 2012, 18:03

EF

Hallo Ganesha,

ich verwende auch verschiedene Einflussfaktoren.

Das ist auch so aufgeführt wie ich es sonst mache.

z.B. für Schlusskurse abfragen: (schlusskurse ist hier nur ein Beispiel)

LRSlope(close, [7,5,200,10,80,2,0.3777,I]) > 0



Da ist auch kein Ref -1 enthalten, wie würde denn der EF ausschauen, nach Deiner Logik immer mit Ref-1 arbeiten?

Wie teile ich dann den EF das mit, jeden EF intern mit ref-1 ändern?



Picasso

Ganesha

unregistriert

10

Dienstag, 31. Januar 2012, 18:39

RE: EF

Wie teile ich dann den EF das mit, jeden EF intern mit ref-1 ändern?
bei mir sieht das immer so aus:

im Definitionsteil steht zum Beispiel sowas:

Quellcode

1
2
3
calc gd: GD(close, 30, S) > GD(close, 10, S);
calc enterlong: cross(gdl, 0.5, 1)=1;
calc entershort: cross(gdl, 0.5, 1)=-1;

Es gibt also nirgendwo ein -1

In der EnterLong-Bedingung von Investox steht aber dieses:

Quellcode

1
ref(enterlong, -1)


Einzige Ausnahme sind Dinge, die man vor Tradeeröffnung weiß. Zum Beispiel will man nur Montags long gehen (der Wochentag ist ja bekannt):

Quellcode

1
2
ref(enterlong, -1)
and datepart(w)=1


Da Einflussfaktoren aber im Kern nur Makros sind, ändert sich nichts:

Quellcode

1
2
3
4
calc gd: GD(close, 30, S) > GD(close, 10, S);
calc ef: cooler_einflussfaktor;
calc enterlong: cross(gdl, 0.5, 1)=1 and ef=1;
calc entershort: cross(gdl, 0.5, 1)=-1;


Das ref(-1) taucht wieder erst in den Enter- bzw. Exitbedingungen auf.

PIcasso

unregistriert

11

Mittwoch, 1. Februar 2012, 10:01

EF

Hallo Ganesha,

erst einmal vielen Dank für die Infos. Jetzt habe ich einigen Stoff um meine HS anzupassen und das zu testen.

Eigentlich ist es nicht zu aufwendig die EF so anzupassen, wie es zunächst scheint,

man kann ja den Quellcode dann entsprechend in anderes HS kopieren.



Viele Grüße

Picasso

PIcasso

unregistriert

12

Mittwoch, 1. Februar 2012, 14:58

Vergleichstest

Hallo Ganesha,

jetzt habe ich mal einen Vergleichstest gemacht und Dein Konzept open/del=0,ref-1 in einem analogen HS probiert (ohne Buchungen).

Obwohl ich das gleichen Zeitraum eingestellt habe, kommen etwas unterschiedliche Trefferzahlen (ca. 10 %).

o.k., das könnte anhand der Abfrageverschiebung auf open kommen.

Ich habe beim Cross die gleichen Signallinie abgefragt, und die gleiche Anzahl der Perioden.

Beim Cross kann ich keinen Ref-1 angeben. Wie funkioniert das dann richtig beim Open, es könnten ja veränderungen der neuen Periode mit einfliessen oder?

ROC mit ref-1 war o.k.

Die Performance wurde besser, aber das muss ich noch untersuchen.



Viele Grüße

Picasso

Ganesha

unregistriert

13

Mittwoch, 1. Februar 2012, 15:35

RE: Vergleichstest

Hallo,

die -1 beim cross hat nichts mit der Referenz (ref(-1)) zu tun, sondern ist die Richtung in der gekreutzt wird. cross(a, b, 1)=1 bedeutet "a kreuzt b nach oben". und cross(a, b, 1)=-1 bedeutet "a kreuzt b nach unten".

ohne ref(-1) dafür mit Delay=1 und Tradeeröffnung zum open ist normalerweise identisch zu ref(-1) auf die gesamte Signalgebung und Delay=0. Unterschiede kann es aber durch unterschiedliche Out-Positionen geben. Investox rechnet da irgendwie anders.

Wenn Du bei der Signalgebung ref(-1) benutzt, dann ist die aktuelle, noch laufende Periode für das Handelssystem nicht sichtbar.
Aufpassen muss man bei Anwenderdefinierten Stops: Die muss man üblicherweise auch zurücksetzen!
Die normalen Stops (bei denen nur Zahlen aber kein Code eingetippt wird) braucht man nicht zurücksetzen.
Beim Cross kann ich keinen Ref-1 angeben. Wie funkioniert das dann richtig beim Open, es könnten ja veränderungen der neuen Periode mit einfliessen oder?


PIcasso

unregistriert

14

Mittwoch, 1. Februar 2012, 21:04

Cross

Hallo Ganesha,

dass ich mit -1 beim Cross nach unten kreuze war mir klar, oder mit 1 nach oben.

ich meine ja auch das -1 für den Ref-Befehl.

Nehmen wir als Bedingungen für die Einstellung unter Testbedingungen bei Entry Open und Delay = 0.

Ich kann aber bei dem Cross kein Ref()-1 mit beim Cross einbauen oder doch?



Nehmen wir ein einfaches Beispiel, Periode A ist die gerade abgelaufende periode, Periode B ist die neue periode die ich mit Open-Entry abfragen will:

Ich habe zwei Befehle in einem HS, wenn ich das richtig mache, sollten ja alle Abfragen sich dann auf Ref-1 beziehen.

1. Ref(Roc.... Close.....), -1) >0

Damit frage ich den Close der letzten Periode A, mit dem Zeitpunkt der Periode B Entry "Open" (Einstellung Testbedingungen) richtig ab.

2. Der zweite Befehl ist der Cross

Wenn ich den so einfach stehen lasse ohne Ref-1, könnte sich der Cross ja auch in der neuen Periode B beim OPen ergeben oder sehe ich das falsch? Ich möchte ja hier, dass der Cross wie Punkt 1 auf die letzte Periode A wirkt?

Wie stelle ich das sicher?



Du sagst ja, wenn man mit Ref-1 arbeitet, erkennt das System die laufende Periode nicht.

Ich müsste dann aber beide Befehle (oben im Beispiel) so umsetzen, beim Cross ist mir das nicht klar.





Übrigens hatte ich mich wegen der Anwenderbeschreibung auf seite 118 an dem Beispiel Enter_Basis Close und Delay = 0 für kurzfristige Handeslstrategien extra an die Systemempfehlung gehalten und das bisher eingesetzt.

Deshalb musss ich jetzt etwas umdenken und probiere/Teste deinen Vorschlag gründlich aus.





Viele Grüße

Picasso

Ganesha

unregistriert

15

Mittwoch, 1. Februar 2012, 21:57

RE: Cross

Hallo,

Du musst nichts einbauen, sondern ein ref(-1) drum rum bauen.

1. Ref(Roc.... Close.....), -1) >0

Damit frage ich den Close der letzten Periode A, mit dem Zeitpunkt der Periode B Entry "Open" (Einstellung Testbedingungen) richtig ab.

2. Der zweite Befehl ist der Cross

Wenn ich den so einfach stehen lasse ohne Ref-1, könnte sich der Cross ja auch in der neuen Periode B beim OPen ergeben oder sehe ich das falsch? Ich möchte ja hier, dass der Cross wie Punkt 1 auf die letzte Periode A wirkt?

Wie stelle ich das sicher?



Du sagst ja, wenn man mit Ref-1 arbeitet, erkennt das System die laufende Periode nicht.

Ich müsste dann aber beide Befehle (oben im Beispiel) so umsetzen, beim Cross ist mir das nicht klar.





Übrigens hatte ich mich wegen der Anwenderbeschreibung auf seite 118 an dem Beispiel Enter_Basis Close und Delay = 0 für kurzfristige Handeslstrategien extra an die Systemempfehlung gehalten und das bisher eingesetzt.

Deshalb musss ich jetzt etwas umdenken und probiere/Teste deinen Vorschlag gründlich aus.





Viele Grüße

Picasso
Das kommt in den Definitionsteil:

Quellcode

1
2
3
4
5
6
7
8
calc roc: roc(close, 10, $)>0;//ist close gestiegen
calc gd: cross(close, gd(close,200,s);//Close steigt über den 200 Tage durchschnitt

//Berechnung eines Signals, praktisch die Handelsregel (oder eine davon)
calc signal: roc=1 and gd=1;

//Handelregel:
calc enterlong: ref(signal=1, -1);


In den Teil wo man jetzt die Enter Long-Handelsregel reinschreibt, kommt nun nur noch ein einziges Wort:

Quellcode

1
enterlong


Angenommen Du möchtest nun noch den open-Kurs mit einbeziehen. Etwa: Ich will wie oben long gehen, aber nur wenn der open dem Vortags-Close ist:



Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
calc roc: roc(close, 10, $)>0;//ist close gestiegen

calc gd: cross(close, gd(close,200,s);//Close steigt über den 200 Tage durchschnitt



//Berechnung eines Signals, praktisch die Handelsregel (oder eine davon)

calc signal: roc=1 and gd=1;



//Handelregel:

calc enterlong: ref(signal=1, -1) and open>ref(close,-1);



Es ist alles identisch, mit Ausnahme das da dieses open>ref(close,-1) hinzukommt.

Zur Erinnerung: Bei jedem einzelnen Tick rechnet Investox die Handelsregeln durch. Die Regel signal verändert sich laufend, weil der close sich laufend verändert (ist einfach der letzte bekannte Tick einer Periode). Aber der letzte Tick von gestern ändert sich nicht mehr, deshalb kann man den letzten Tick von gestern=Close benutzen.

Auch der open-Kurs von heute ändert sich nicht mehr. Ist einfach der erste Tick von heute. Daher kann man den auch benutzen und dann zum Beispiel zum zweiten Tick long gehen. Bezüglich Seite 118: Du musst unterscheiden zwischen Backtest und Realhandel. Im Realhandel ist es nicht möglich zum Schlusskurs einen Trade zu eröffnen (mal von Sonderfällen wie Schlussauktion oder Einstieg per Zeittrigger abgesehen). Man kann aber damit rechnen! Allerdings gibt es im Intradaybereich kaum einen Unterschied zwischen close und open der Folgeperiode, weshalb man zur Bequemlichkeit damit arbeiten kann. Muss dann aber irgendwann auf open umstellen und mit ref(-1) arbeiten. Deshalb ist es meist sinnvoller gleich mit ref(-1) zu entwickeln und zu testen.

Hinzu kommt: Die Out-Perioden werden u.U. anders berechnet, wodurch ein Umstellung von close auf open zu einer völlig anderen Kapitalkurve führt.

PIcasso

unregistriert

16

Donnerstag, 2. Februar 2012, 16:50

Syntax

Hallo Ganesha,

merkwürdig, aber bei dem Coss kommt ein Syntaxfehler den ich so nicht weg bekomme.

Er moniert die Klammerausdrücke, die aber nach meiner Meinung richtig sein, auch der ";" am Ende ist o.k.

Ich habe verschiedene Änderungen probiert.

Wenn ich nur den ROC abfrage: calc signal: roc=1; geht es.

Wenn ich auch allein calc signal: GD=1; abfrage geht es nicht, der fehler könnte in der Ursprungsdefinition liegen,

die aber keinen fehler aufzeigt, wenn ich die Abfrage auf GD=1 weg lasse.

Vielleicht kannst Du nochmals auf die Syntax schauen, danke.

Ich habe übrigens das rein kopiert, also keinen Schreibfehler gemacht.

Danach habe ich natürlich Änderungen probiert.

Also, die Abfrage auf den Cross geht nicht, da fehlt eine Klammer. deshalb hatte ich mal versucht zu ergänzen, mit =1) (wie ich es bei Cross kenne, das ging aber auch nicht)

calc gd: cross(close, gd(close,200,s);//

Nach dem Cross steht noch ein "(Close", ist der hier richtig, es ist ja beim GD noch der Close dahinter?

Diese syntax.......



Picasso

Tim

unregistriert

17

Donnerstag, 2. Februar 2012, 17:45

calc gd: cross(close, gd(close,200,s),1);//

PIcasso

unregistriert

18

Freitag, 3. Februar 2012, 08:47

Vielen Dank Ganesha, danke Tim,

ohne dem "=", das ich sonst immer verwende klappte das.

Vermutlich ist das im Zusammenhang mit dem Calc eine andere Schreibweise.

Falls mir jemand einen Rat geben kann, ob es ein Buch gibt, die diese Befehle/Programmiersprache gut beschreibt,

wäre das sicher sehr hilfreich. Es sind doch einige Besonderheiten zu beachten, auch wenn ich nicht das volle Programm benötige.



Nochmals herzlichen Dank an Ganesha, für Deine ausführliche Beschreibung/Erklärung. Das war Super von Dir.



Viele Grüße und schönes Wochenende



Picasso

PIcasso

unregistriert

19

Freitag, 3. Februar 2012, 10:10

o.k.

Hallo nochmals,

mit "=1)", ging es auch, wenn ich eine Linie mit einem Indikator kreuze. Die andere schreibform war wohl wegen dem GD, das ich so kaum verwende. Es sind oft nur ein paar kleine Unterschiede, die für ungeübte erst einmal schwer zu sehen sind.

Aber eine Buchempfehlung über diese Programmierersprache wäre gut.



Übrigens hatte ich anfangs nicht geglaubt, das über ein Forum so schnell Hilfe zu bekommen ist.

Das funktioniert hier sehr gut. :)



Picasso

PIcasso

unregistriert

20

Freitag, 3. Februar 2012, 14:13

Neue Technik - alter Fehler Kombititel

Hallo,

Ausgangspunkt meines Problems war der Einsatz des Kombititels.

Die neue Technik die mir von Ganesha empfohlen wurde habe ich auch umgestzt und finde die sehr gut.

Damit steht die Abgrenzung zur Vorperiode richtig bei den Abfragen.

Aber die Ergebnissanzeige hatte und hat weiterhin einen Wackelkontakt. Während ich den Bildschirm betrachte, wechelt das immer vor und zurück. z.B. Netto-Profit und Profitfaktor. Die Werte ändern sich im Takt der Aktualisierung.

Auch die Eingrenzung über Datum half nicht, MC habe ich nicht eingeschaltet.

Dann habe ich statt den Kombititel wieder der Originaltitel "dax@..." genommen und es ging richtig, A bei der neuen Open-Methode, B bei der alten Close-Methode.

Nach wie vor habe ich ein wesentliches problem mit dem Kombititel.

Den werde ich erst einmal löschen und neu anlegen.

Aber damit wird das Problem vermutlich nicht gelöst sein, denn das hatte ich schon mal gemacht.



Die Frage ist deshalb, wie muss ich Vorgehen, um den Wurm im Kombititel zu finden.

Gibt es da eine Prüfroutine? Ich habe ja schon alle Einstellungen geprüft.

Vielleicht hat ja Investox da eine Lösung?



Jetzt mache ich erst einmal einen Spaziergang, das kühlt heute schön ab, der Kombititel nervt.



Picasso