Donnerstag, 18. April 2024, 23:44 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.

Nicola

unregistriert

1

Samstag, 9. Januar 2010, 00:41

Benötige Hilfe zu Einstellungen

Hallo an alle!

Also ich versuche jetzt schon ein Weilchen mich in Investox einzuarbeiten, und einige Dinge habe ich auch schon einigermassen verstanden.
Doch jetzt bin ich hängen geblieben und ich versteh gar nix mehr. Irgendwie habe ich mich immer mehr in den Brei reingeritten und komm da ohne Hilfe nicht mehr alleine raus. Wenn es um Enter-Basis, unvollendete Perioden,
Intraday/normale Stops, HS Aktualisierung und dann noch Orderaufgabe geht, versteh ich mittlerweile nur noch Bahnhof.
Ich versuche die ganze Zeit mit Datenfeed-Simus nachzuvollziehen was passiert, doch das funzt auch nicht wirklich. Und das Forum habe ich auch schon ziemlich durchstöbert, doch ohne wirklichen Erfolg.

Also frage ich euch, ob ihr mir mal so eine Grundeinstellung geben könnt, die ich dann versuche nachzuvollziehen.
Ich denke da z.B an ein HS, das Enter- und Exit Signale generiert (die im Moment unwichtig sind), vlt. 2 Intradaystops besitzt und auf 60min Komprimierung arbeitet.
Dabei möchte ich einfach nur, dass Signale am Ende bzw. Anfang einer neuen Periode (also nicht irgendwann mittendrin) ausgegeben werden, diese mit der richtigen Basis sowohl für den Backtest, als auch für das ORM abgerechnet werden,
und 2 Intradaystops kontinuierlich prüfen (auch während der Periode) ob das Limit/stop erreicht wird und dann auch sofort (nicht zum Ende der Periode) aussteigen.

Wenn mir da jemand helfen könnte wäre ich wirklich sehr dankbar.
Vielen Dank & lg


Ach ja, komischerweise werden manchmal keine Symbole im Chart angezeigt, wenn Signale auftreten (->Bild). Ist das normal?


Yoggi

unregistriert

2

Samstag, 9. Januar 2010, 10:53

Hallo Nicola,

das sind ziemlich viele Fragen und die sind auch noch ziemlich unklar ...
Ich fange mal mit der Grafik an. An dem grauen Balken ab 16.19 kann man erkennen, dass eine Aktualisierung der Signale noch nicht stattgefunden hat. Woran das liegt, lässt sich aber nur schwer genau sagen, wenn wir die Codes nicht kennen. Irgendwo in den Regeln gibt es eine Regel, die besagt, dass z.B. nur alle 10 min Signale ausgelöst werden können ...
Bei den anderen Fragen würde ich mal versuchen nach und nach Klarheit zu erzeugen, also etwa die Orderaufgabe erstmal ganz beiseite zu lassen.
Bei einem HS mit 60 min Komprimierung werden Enter und ExitSignale nur alle 60 min erzeugt, wenn unvollendete Perioden deaktiviert ist. Da Du das ja möchtest, würde ich unvollendete Perioden erstmal deaktivieren, man umgeht damit auch einige Fallstricke.
Für die Handelssystementwicklung kann man trotzdem Intradaystops einsetzen, die dann trotzdem zu Kursen abgerechnet werden, die irgendwann innerhalb der 60min aufgetreten sind. Für den realen Handel kann man - falls es sich bei den Intradaystops um prozentuale Gewinn- oder Verluststops handelt - diese Stops als Stops im Ordermodul eingeben, was eine Ausführung auch innerhalb der 60min ermöglicht.
Vielleicht hilft das schonmal für den Start. Im Allgemeinen geht es einfacher, wenn man an einem bestimmten Projekt die Probleme bespricht. Vielleicht kannst Du ja ein HS posten, bei dem Du etwas nicht verstehst.
Schönes weißes Wochenende
Yoggi

Snoopy

unregistriert

3

Samstag, 9. Januar 2010, 11:29

Hallo Nicola,
so wie Yoggi bereits geschrieben hat, oder das System schaut bei der Datenfeedsimulation in die Zukunft, da das neue Signal in der Liste geschrieben wurde und im Chart wieder verschwunden ist.
Ich schreibe dir einmal ein einfaches Beispielsystem mit einem GD und Intradaystops, das im Backtest sowie mit der gleichen Einstellung im Ordermodul synchron läuft.

Wird heute Abend aber erst was.
Gruß Snoopy

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

4

Samstag, 9. Januar 2010, 12:25

Hallo Nicola,

folgende Einstellungen funktionieren ohne Zukunftsblick im Backtest und im ORM:

- gesamte Enter- und Exit- Regeln mit Ref( Deine_gesamte_Regel,-1) um eine Periode zurücksetzen
- Enter- und Exit Basis für Long und Short Trades= Open, Delay 0
- Unvollendete Perioden im Handelssystem aktivieren, weil sonst die Intraday-Stops in der aktiven Candle nicht zum Zeitpunkt ihres Auslösens geroutet werden können
Viele Grüße von Anke

http://www.ascunia.de

Nicola

unregistriert

5

Samstag, 9. Januar 2010, 12:57

Hallo an alle,



Vielen Dank erstmal für die ganzen Antworten!

@ Snoopy: Das wäre super, wenn du das machen könntest!


Also hier ist mal mein Test HS:



Beschreibung für System 'test'
Uhrzeit: 09.01.2010 12:50:20
Angelegt am: 05.01.2010 13:24:54
Zuletzt bearbeitet: 09.01.2010 12:50:02
Komprimierung: 60 Minuten

***** Regeln ******

Enter Long:
EnterLong

Enter Short:
EnterShort

Übergreifende Definitionen:
global calc GDkurz: GD(Close, 4, S);
global calc GDlang: GD(Close, 6, S);

global calc EnterLong: Cross(GDkurz, GDlang, 1)=1;
global calc EnterShort: Cross(GDkurz, GDlang, 1)=-1;


***** Optimierung *****

Start: 07.09.2009 08:06:00
Ende: 01.11.2009 17:42:54

Optimierte Titel:
Datafeed FDAX 16.08.1991

Optimierungskriterien:
Maximiere 'Profit-Ratio zu Buy/Hold', Gewichtung: 1
Maximiere 'Sharpe Ratio', Gewichtung: 1
Maximiere 'Netto-Profit', Gewichtung: 2
Maximiere 'Anzahl aller Trades', Gewichtung: 1
Maximiere 'Max. theoretisches Kapitalrisiko', Gewichtung: 2

GA-Einstellung: Optimiere maximal 50 Generationen mit 15 Eltern und 100 Nachkommen.

***** Test-Einstellungen *****

Positionen: Long+Short
Enter-Basis: Open
Short: Close
Delay: 0
Exit-Basis: Open
Short: Close
Delay: 0
Buy/Hold-Basis: Close
Trade-Mindestdauer: 1
Out-Mindestdauer: 1
Punkte testen
Startkapital: 20000 €
Wert pro Punkt: 25 €
Gewinn-/Verlustberechnung verwendet High/Low-Kurse.
Enter/Exit vor Intradaystop
Entry-Gebühren: 3 €
Exit-Gebühren: 3 €
Slippage: 25 €
Portfolio Zinssatz: 5
Risikotoleranz: 24
Kurs-Trailing Long+Short
bei 5 Kurspunkten
ab 1 Perioden
Intra-Verlust Long+Short
bei 15 Kurspunkten
ab 1 Perioden
Intra-Gewinn Long+Short
bei 15 Kurspunkten
ab 1 Perioden
Money-Manag. Fester Kontrakt
Anzahl 1
Delta 30000 €
Max. Kontrakte 100

***** Optimierungs-Report *****

Kein Optimierungsergebnis vorhanden

***** Aktualisierungs-Einstellungen *****

Aktualisierung alle 60 Minuten
Signale nur bei vollendeten Perioden
Signale nur bei neuer Periode

***** Order-Einstellungen *****

Automatische Orderaufgabe ist aktiv
Broker: Virtueller Broker
Alle Angaben in Punkten
Mindestkapital: 0
Std.-Stückzahl: 1
Manuelle Bestätigung: Keine

Enter-Order:
Bestens (at Market)
Kein Aufstocken von Positionen

Exit-Order:
Bestens (at Market)


Signalumsetzung pro Periode begrenzen auf 1 Signal
Out-Signale als Exit-Signal verwenden
Hold-Signale als Enter-Signal verwenden


ich hab das Mal mit Datafeed simuliert und eine konkrete Frage wäre z.B., warum gibt es jetzt bei diesem letzten Signal keinen Trade mit oben angegebenen Einstellungen? (-> Bild)





@ Anke: Bis jetzt habe ich ja auch Enter Basis Open, Delay 0; wenn ich jetzt noch Ref(...,-1) mache, sind die Signale dann nicht 1 Periode zu spät?


Vielen Dank euch für die Hilfe & Lg

Snoopy

unregistriert

6

Samstag, 9. Januar 2010, 13:48

Hallo Nicola,
dein System schaut in die Zukunft.

Zum besseren Verständnis:
Wir befinden uns jetzt in einer aktuellen laufenden 60min Periode. Deine Enter Regeln sagen aus, das bei einem Durchkreuzen des kurzen GD, berechnet auf das aktuellen Close durch den langen GD ein Signal entsteht.
Da aber bei unvollendeten Perioden jeder Tick für das System ein Close ist (Der GD bewegt sich in der laufende Periode) wird ein Signal innerhalb einer Periode ausgelöst. Wenn der GD wieder innerhalb der Periode zurück läuft, verschwindet das Signal wieder.
Wenn das Signal innerhalb der laufende Periode entstanden ist, berechnet Investox im Depot nach dem aktuellen Open, da du ja Delay 0 hast. Das heißt das System berechnet auf dem aktuellen Open, obwohl das Close am Ende der 60min Periode noch gar nicht entstanden ist (Zukunft).
Gruß Snoopy

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

7

Samstag, 9. Januar 2010, 14:48

Hallo Nicola,

Zitat

wenn ich jetzt noch Ref(...,-1) mache, sind die Signale dann nicht 1 Periode zu spät?


Nein- im Gegenteil. Deine Signale passen überhaupt erst mit dem Ref(....,-1) in den Regeln.
Ohne das Ref(...,-1) schauen Systeme mit der Enter/Exit Basis Open, Delay 0 immer in die Zukunft, wenn die Enter-Regeln (wie bei Dir) auf Close-Basis berechnet werden.

Den Grund dafür hat Snoopy in seinem letzten Posting sehr gut erklärt, wie ich finde.
Viele Grüße von Anke

http://www.ascunia.de

Nicola

unregistriert

8

Samstag, 9. Januar 2010, 15:56

:baby: Stimmt!! Vielen Dank Snoopy und Anke, jetzt versteh ich auch das mit dem Ref(....,-1), bzw. ansonsten GD mit Open berechnen lassen.

Also hab ich mein HS mal geändert und jetzt siehts so aus:



Beschreibung für System 'test'
Uhrzeit: 09.01.2010 15:41:01
Angelegt am: 05.01.2010 13:24:54
Zuletzt bearbeitet: 09.01.2010 15:31:28
Komprimierung: 60 Minuten

***** Regeln ******

Enter Long:
EnterLong

Enter Short:
EnterShort

Übergreifende Definitionen:
global calc GDkurz: GD(Close, 4, S);
global calc GDlang: GD(Close, 6, S);

global calc EnterLong: Ref(Cross(GDkurz, GDlang, 1)=1,-1);
global calc EnterShort: Ref(Cross(GDkurz, GDlang, 1)=-1,-1);


***** Optimierung *****

Start: 07.09.2009 08:06:00
Ende: 01.11.2009 17:42:54

Optimierte Titel:
Datafeed FDAX 16.08.1991

Optimierungskriterien:
Maximiere 'Profit-Ratio zu Buy/Hold', Gewichtung: 1
Maximiere 'Sharpe Ratio', Gewichtung: 1
Maximiere 'Netto-Profit', Gewichtung: 2
Maximiere 'Anzahl aller Trades', Gewichtung: 1
Maximiere 'Max. theoretisches Kapitalrisiko', Gewichtung: 2

GA-Einstellung: Optimiere maximal 50 Generationen mit 15 Eltern und 100 Nachkommen.

***** Test-Einstellungen *****

Positionen: Long+Short
Enter-Basis: Open
Short: Close
Delay: 0
Exit-Basis: Open
Short: Close
Delay: 0
Buy/Hold-Basis: Close
Trade-Mindestdauer: 1
Out-Mindestdauer: 1
Punkte testen
Startkapital: 20000 €
Wert pro Punkt: 25 €
Gewinn-/Verlustberechnung verwendet High/Low-Kurse.
Enter/Exit vor Intradaystop
Entry-Gebühren: 3 €
Exit-Gebühren: 3 €
Slippage: 25 €
Portfolio Zinssatz: 5
Risikotoleranz: 24
Intra-Verlust Long+Short
bei 25 Kurspunkten
ab 1 Perioden
Intra-Gewinn Long+Short
bei 25 Kurspunkten
ab 1 Perioden
Money-Manag. Fester Kontrakt
Anzahl 1
Delta 30000 €
Max. Kontrakte 100

***** Optimierungs-Report *****

Kein Optimierungsergebnis vorhanden

***** Aktualisierungs-Einstellungen *****

Aktualisierung alle 60 Minuten
Laufende Signale in unvollendeten Perioden
Signale nur bei Kursänderung

***** Order-Einstellungen *****

Automatische Orderaufgabe ist aktiv
Broker: Virtueller Broker
Alle Angaben in Punkten
Mindestkapital: 0
Std.-Stückzahl: 1
Manuelle Bestätigung: Keine

Enter-Order:
Bestens (at Market)
Kein Aufstocken von Positionen

Exit-Order:
Bestens (at Market)


Signalumsetzung pro Periode begrenzen auf 1 Signal
Out-Signale als Exit-Signal verwenden
Hold-Signale als Enter-Signal verwenden





die Signale funktionieren jetzt auch (also ich kann sie nachvollziehen :thumbsup: )



Als nächstes ist mir dann aufgefallen, dass die Enterpreise nicht übereinstimmen mit denen in der "Liste aller Trades".

Enter und Exit sind ja auf Open 0, und Open um 11Uhr war aber 5639Punkte und Open um 14Uhr zum Exit war 5631,5Punkte. (-> Bild)







Stops habe ich ja 2 Intradaystops mit je 25Punkten Abweichung.

Jetzt habe ich im Datafeed festgestellt, dass diese aber gar nicht ausgelöst werden (mit obigen Einstellungen), obwohl die Limits überschritten wurden (Open um 15Uhr war 5624,5Punkte). (-> Bild)









Und als letztes wollte ich noch fragen, welche Aktualisierungsrate muss ich denn einstellen im HS? Kann ich das bei 60min belassen, da 60min Komprimierung, oder stelle ich besser auf "Aktualisierung nur bei neuer Periode/neuem Kurs", oder doch eher auf 0s mit "Aktualisierung mit RTT Daten nur bei neuen Ticks"? (Unvollendete Perioden ist ja aktiviert wegen Stops um sofort einzugreifen)





Vielen Dank euch!

Snoopy

unregistriert

9

Samstag, 9. Januar 2010, 21:31

Hallo Nicola,
hier das Handelssystem.

Bei deinem Handelssystem ist noch die Enter- und Exitbasis bei Short nicht richtig. Da muss auch Open stehen.
Noch ein Tipp. Verwende die kleinen Dreiecke im Chart zur Anzeige der Ein- und Ausstiege.
Damit werden gleich visuell Fehler im Chart erkannt. Habe ich im System eingebaut.

Gruß Snoopy
»Snoopy« hat folgende Datei angehängt:
  • test4.Inv (22,6 kB - 415 mal heruntergeladen - zuletzt: 9. April 2024, 18:26)

Nicola

unregistriert

10

Sonntag, 10. Januar 2010, 15:26

Hi Snoopy,

vielen, vielen Dank, dass du dir die Mühe gemacht hast!

Ich glaube ich habe das meiste jetzt mitlerweile auch ganz gut verstanden, kann jetzt fast alles nachvollziehen.



Drei kleine Fragen habe ich aber noch:

1. Ist es notwendig eine 0 in die Exit Bedingung zu schreiben, bzw. was ist der Unterschied, denn wenn ich nix rein schreibe, gibt es doch auch keine Exit-Signale, oder?

2. Wenn ich das jetzt im ORM laufen lasse auf den VB, wird dann auch die EnterBasis als Einstieg verwendet, oder doch ein anderer Kurs? Ich habe gesehen, dass der Einstiegskurs im ORM immer ca. 1-1,5 Punkte abweichen vom Open.

und

3. Sollte ich die Aktualisierungsrate immer so klein halten, oder kann ich die auch z.b. auf 60min hochsetzen? (Signale gibt es ja sowieso nur jede neue Periode(also alle 60min), nur werden dann die Stops noch berechnet?)





Also nochmals vielen Dank für die ganze Hilfe hier! Hier wird einem wirklich geholfen!!

Lg

Yoggi

unregistriert

11

Sonntag, 10. Januar 2010, 16:08

Hallo Nicola,

zur Frage 1: Wenn Du bei Exit nichts einträgst wird jeder Trade nach einer Periode wieder geschlossen, da die Enterbedingung - da hast Du ja den Cross angegeben, nicht einfach nur, dass der eine GD über dem anderen GD liegt - ja nach einer Periode nicht mehr zutrifft, denn der Cross ist ja dann schon länger her. Deshalb muss beim Exit immer eine 0 stehen, wenn man den Exit nur über Stopps realisieren will.

Zu den Akualisierungseinstellungen: Entweder Du willst, dass das HS praktisch 60 min lang schläft - auch wenn die Twin Towers einstürzen oder sonst was passiert -, dann kannst Du die Aktualisierung bei alle 60 min belassen, oder Du willst, dass Dein HS permanent überwacht, ob Deine Stopps ausgelöst werden sollen, dann musst Du die Aktualisierungseinstellung klein halten (alle 0/1/5/10 sec). Ich würde aber sowieso empfehlen, die Stopps, gerade wenn sie feste Punktwerte sind, über das Ordermodul direkt als Gewinn- oder Verluststopp an IB zu routen. Der Vorteil ist, dass wenn es ein Problem mit der Internetverbindung gibt (das geht von Bagger trennt irgendwo ein Kabel durch über im Haus brennt irgendwo was durch und die Hauptsicherung fliegt mal kurz raus bis zu Computerproblemen) Du im Fall, dass Du die Stopps nur über Investox als Intradaystops generierst, plötzlich eine Position ohne Stopps hast. Wenn Du die Stopps bei der Positionseröffnung sofort an IB routest, können Dir solche Probleme dann nichts mehr ausmachen.
Alles Gute
Yoggi

Yoggi

unregistriert

12

Sonntag, 10. Januar 2010, 16:13

Noch ein Nachtrag:
Bei den Stopps gilt es zu beachten, dass Intradaystopps erst ab der zweiten(!!) Periode greifen können. Um auch in den ersten 60 min die gewünschten Stopps zu haben, muss man zusätzlich Sofortstopps einstellen. Damit handelt man sich aber einige Probleme ein, da Inv nicht so ohne weiteres erkennen kann, wenn in einer Kerze in der sowohl der Verlust- als auch der Gewinnstopp gegriffen hätten, welcher der beiden denn realiter gegriffen hätte.
Yoggi

Snoopy

unregistriert

13

Sonntag, 10. Januar 2010, 17:10

Hallo,
wie ich sehe hat sich Yoggi schon den Fragen angenommen :thumbup:

Noch zu 2)
Die Enter-Basis wird schon als Sollwert für den Einstieg genommen. Der Istwert, ist die Abweichung vom Kurs, in der Zeit zwischen Signalgenerierung und die Zeit wo die Order ausgeführt wird.
Klicke einmal doppelt auf einen Orderbucheintrag. Hier stehen die Signalzeit und die Ausführungszeit sowie der Kurs dazu.
Im virtuellen Broker kannst du noch eine Verzögerungszeit einstellen z.B. 5sec. Dann wird wie im richtigen Leben, eine Order verzögert vom virtuellen Broker ausgeführt. Die reale Slippage.

Nicola, zu Yoggi´s Nachtrag bist du bestimmt ein wenig ?(

Gruß Snoopy

Nicola

unregistriert

14

Sonntag, 10. Januar 2010, 17:43

Ok,

also 1 ist schon mal klar.

Zu 2, eigentlich auch klar, nur ist meine einstellung 0s (oder ist das die falsche?) (->Bild)



zu 3, ist jetzt auch klar. War noch etwas verwirrt ob bei längerer Komp die Stops nicht trotzdem greifen würden auch ohne aktualisierung des HS - das ist aber natürlich nur der Fall, wenn man tatsächlich die Stops mit übertragen würde zum Broker. Also stell ich die Aktualisierung jetzt immer im sec Bereich ein.



Das letzte von Yoggi war in der Tat für mich etwas ?(, kann das einer nochmal geneuer erklären?
Dazu fällt mir ein, greifen diese Sofortstops in der 1. Periode auch "sofort" wie IntradayStops, oder erst wenn die 2. Periode begonnen hat?



Danke euch!

Lg

Yoggi

unregistriert

15

Montag, 11. Januar 2010, 09:41

Hallo Nicola,

ich versuchs nochmal verständlicher. Folgendes Szenario: Du eröffnest eine Longposition beim Daxstand von 6000 Punkten. Innerhalb der ersten Stunde schwankt der Kurs zwischen 6030 und 5970 und schließt dann wieder bei 6000. Wenn INV mit 60min Komprimierung arbeitet, dann "kennt" INV den Kursverlauf innerhalb dieser Stunde nicht, alles was es kennt, sind Open, High, Low und Close. Ob aber der Kurs zuerst bis auf 6030 gestiegen wäre - was Deinen Kursgewinnstopp ausgelöst hätte - oder zuerst auf 5970 gefallen ist - was Deinen Kursverluststop ausgelöst hätte - ist INV "unbekannt".
Folgende Lösungen fallen mir ein: Entweder man geht einfach auf Nummer Sicher und nimmt für die erste Kerze nur einen Verluststopp (ich habe aber nicht nachgeprüft, wie stark das die Ergebnisse verändern würde) oder man schreibt das Handelssystem so um, dass man mit 1min Komprimierung oder ähnlich kleiner Komprimierung als Grundlage arbeitet, die Handelsregeln selber dann aber wieder auf 60 min Basis komprimiert.
Wenn Du mal im Forum zum Thema Sofortstopps suchst, wirst Du einige Diskussionen finden, in denen es um die Tücken beim Backtest geht.
Jetzt klarer?
Alles Gute
Yoggi

Nicola

unregistriert

16

Montag, 11. Januar 2010, 15:23

Hi Yoggi,

ist klar jetzt, vielen Dank dass du mir es nochmal erklärt hast :)

Lg