Dienstag, 16. April 2024, 14:40 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.

Roberto

unregistriert

1

Samstag, 21. Februar 2009, 16:33

Pyramiden System / Probleme mit 'ValueWhen'

Hallo Investox Programmier Experten,
ich möchte eine Idee testen und stosse nun an meine Grenzen mit 'ValueWhen'.
Für den Test verwende ich einen FDAX Kombititel mit 30' Komprimierung und 12 Jahre Datenlänge.
Die Idee ist folgende:
Augrund des Open Kurses 08.00 berechne ich 3 mögliche LongLimitEinstiege und 3 mögliche ShortLimitEinstiege.(Welche dann später noch an die Vola angepasst oder otimiert werden sollen)
aber im Moment mal:
LongLimit1 = Open +35P
LongLimit2 = Open +70P
LongLimit3 = Open +105P
ShortLimit1 = Open -35P
ShortLimit2 = Open -70P
ShortLimit3 = Open -105P
Wird zb das LongLimit1 erreicht,wird 1LongKontrakt gekauft und alle ShortLimits deaktiviert.Wird LongLimit2 erreicht wird 1LongKontrakt hinzugekauft und wird LongLimit3 erreicht,wird noch mal ein LongKontrakt gekauft.Alle Positionen werden bis 14.25 gehalten und dann alle zusammen glattgestellt.
Das selbe gilt für Short falls das ShortLimit1 als erstes erreicht wird.

Den Einstieg ins erste Level hab ich fertiggebracht (ob das wirklich korrekt so ist,bin ich mir aber auch nicht sicher)
Global Calc Uhrzeit: DatePart(h) * 100 + DatePart(n);
Global Calc MorgenLongLimit1:ValueWhen(Open, Uhrzeit=0800,1,V)+35 ;
Global Calc MorgenShortLimit1:ValueWhen(Open, Uhrzeit=0800,1,V)-35 ;
Enter Long: High>=MorgenLongLimit1 (für Short entsprechen)
Enter Long Basis: If(Open>MorgenLongLimit1,Open,MorgenLongLimit1)//für Short entsprechend

Das komische ist,dass das System nur einen Zeitraum bis Juni 06 zurück akzeptiert,obwohl im Chart alle Daten geladen sind?!?
Den Austieg aller Positionen krieg ich nicht hin.Ich hab schon die verschiedensten Varianten die im Forum erklärt wurden probiert, um auf den Schlusskurs der 5' Komprimierung um 14.25 zuzugreifen.

Kann mir jemand bei der korrekten Vorgehensweise helfen?
Ich denke,die 2. + 3. Position könnte man auch über die Pyramidenfunktion 'zukaufen' bewerkstelligen.Jedoch wäre ich sehr an der korrekten Programmierung interessiert,auch im Anbetracht dessen,dass die Limit Levels später angepasst oder optimiert werden sollten.

Recht herzlichen Dank im voraus für eure geschätzte Mithilfe
Viele Grüsse
Robert

Ps: zur näheren Erläuterung hänge ich noch ein Bild an.

Yoggi

unregistriert

2

Samstag, 21. Februar 2009, 18:22

Hallo Roberto,

mal folgende Teilantwortversuche: Wegen den Daten vor 2006: Kann es sein, dass sich die Handelszeiten da geändert haben und der Handel noch nicht um 8 Uhr gestartet ist? Ich hatte mal solche Probleme allerdings mit unterschiedlichem Ende des Futurehandels in den letzten 10 Jahren. Der Ausstieg ist mir noch nicht ganz klar. Willst Du genau um 14.25 aussteigen? Das müsste doch über Intraday Handelszeit begrenzen gehen, einfach von 8 bis 14.25 Uhr einstellen und dann die Position am Ende des Tages (also hier um 14.25 Uhr) schließen. Oder gibt das Probleme, da Du eine 30min Komprimierung gewählt hast und die Kerze eben von 14.00 bis 14.30 Uhr geht?
Für die Frage der Pyramideneinstiege muss ich Dich leider auf berufenere User vertrösten ...
Schönes Wochenende
Yoggi

Roberto

unregistriert

3

Samstag, 21. Februar 2009, 18:53

Hallo Yoggi,
danke dir für deine Antwort.
Bis jetzt habe noch keine Probleme mit dem Datenstamm erkennen können,daher dachte ich,dass es irgendwie mit einem 'ValueWhen' Fehler zusammenhängen könnte,da ich bei deren Anwendung schon öfters Fehlermeldungen wie 'die Datenreihe reicht zur Berechnung nicht aus',das hat dann meist an einem Programmierfehler gelegen,wenn zb eine Bedingung nie erfüllt werden,wegen des Fehlers.
Ich werd mir die Daten aber mal genauer anschauen!

Mit Eingrenzen der Handelszeit könnte das funktionieren.Gedacht war aber zusätzlich noch eine Abendsitzung, wo das ganze Spiel dann um 17.30 wieder von vorne beginnt.Im Notfall müsste man 2 Systeme draus machen.Die Frage ist sowieso ob 2 Syteme nicht optimaler oder übersichtlicher wären.Da diese 2 ja unterschiedliche Parameter haben können,würde es mit einem System vielleicht schon zu kompliziert.Mal sehen,ich probier jetzt mal einen Ausstieg über die Begrenzung zu erzwingen.
Der Programm technisch korrekte Weg würde mich aber schon sehr interessieren.

Ein angenehmes WE wünsch ich dir auch
Robert

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Sonntag, 22. Februar 2009, 08:36

Das komische ist,dass das System nur einen Zeitraum bis Juni 06 zurück akzeptiert,obwohl im Chart alle Daten geladen sind?!?


Kunststück vor Juni / 2006 war der Handelsszeitstart 09:00.
Und vor dem 18.10.1999 sogar 10 Uhr.
Also gibt es da keine 8 Uhr Werte.

Global Calc MorgenLongLimit1:ValueWhen(Open, Uhrzeit=0800,1,V)+35 ;
Global Calc MorgenShortLimit1:ValueWhen(Open, Uhrzeit=0800,1,V)-35 ;


ersetzen durch

Quellcode

1
2
Global Calc MorgenLongLimit1:dailyprice(open)+35
Global Calc MorgenShortLimit1:dailyprice(open)-35 ;


Und schon ist Dein 8 uhr Problem erledigt.

Zitat

Ich denke,die 2. + 3. Position könnte man auch über die Pyramidenfunktion 'zukaufen' bewerkstelligen.


Deine Idee mit dem zukaufen von Positionen kannst Du NUR über die Pyramidisierung lösen.

zb. ein Tradedauerstop der Pyramidisiert und ab der 1. Periode greift bekommt die Zusatzbedingung

Quellcode

1
Long: High>=MorgenLongLimit2

Und als abweichende Ausstiegsbasis "MorgenLongLimit2".

Dann musst Du noch für limit2 und die 2 Shortseiten Limits einenbauen und fertig ist der Lack.

Dein 14:25 Problem kannst Du im Backtest nicht in 30 Minuten Bars lösen.
Die Exit Bedingung uhrzeit>1425 tritt im 30 Minuten bar halt erst um 15 Uhr ein.
Uhrzeit>=1425 tritt im 14:30 Bar ein.

Da hilft dann nur ein Umstellen auf 5 Minuten Bars.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Roberto

unregistriert

5

Sonntag, 22. Februar 2009, 09:22

Morgen Lenzelott,
danke dir,das mit den Daten vor 6.06 hab ich jetzt auch bemerkt.Ist schon bemerkenswert,dass man die Probleme häufig am falschen Ort sucht.Da ich aber bis jetzt nie mit Zeitbedingungen gearbeited habe,ist mir diese Tatsache bis jetzt nicht aufgefallen.

Da du mir jetzt bestätigt hast,dass man keinen 5' Ausstieg zum Close,mit einer 30' Komprimierung verrechnen kann,muss ich wohl mit den 5' Kerzen leben.Hätte schöner ausgesehen,mit grösserer Komprimierung über nen langen Zeitraum,aber ist OK so.

Deine Vorschläge betreffend des Datenproblems und der Umsetzung der Nachkäufe werde ich jetzt versuchen umzusetzen und werde mich gegebenfalls noch mal bei euch nachfragen,falls noch Schwierigkeiten auftauchen sollten.

Besten Dank,Lenzelott für deine Hilfe
und noch ein wunderschönes (verschneites) WE
Robert

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

6

Sonntag, 22. Februar 2009, 09:53

noch ein wunderschönes (verschneites) WE


Tja, da macht der räumliche Bezug doch einiges aus, bei uns regnet es.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Roberto

unregistriert

7

Sonntag, 22. Februar 2009, 11:44

KLAPPT ALLES WUNDERBAR!!!

Vielen Dank für die Mithilfe :thumbsup:

Dank Euch hab ich ne Menge Zeit gespart und wieder was dazugelernt.
Viele Grüsse
Robert


Ähnliche Themen