Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » openstrategie » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
_klaus
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61

_klaus ist offline
  openstrategieAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

möchte folgende idee in meiner ts2000i als SIGNAL umsetzen,
um historische prüfungen vorzunehmen - komme aber nicht weiter:

"kaufe / verkaufe den ausbruch aus einem 1 std-chart"

charteinstellung = 1 Std

input: price(close);
vars: highd(0), lowd(0);

if price > highd then buy highd + 1 point stop;
if price < openpositionprofit -20 points then exitlong,

if price < lowd then sell lowd - 1 point stop;
if price > openpositionprofit +20 points then exitshort,

setexitonclose;

Problem: .. der einstieg berechnet sich auf den vortagsbalken,
es sollte aber der balken der 1. std. sein.

wer hat eine idee und kann helfen ???
klaus

27.11.2000, 10:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _klaus senden Homepage von _klaus
_Robert UEberbacher
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 15

_Robert UEberbacher ist offline
  RE: openstrategieAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Klaus,
Versuchs mal mit folgendem Code auf Stundenchart.
Bei kürzeren Charts + StundenBreakOut wirds etwas komplizierter.

Vars: FirstHigh(-999999), FirstLow(+999999);
If (Time = Sess1FirstBarTime) or Date[0] > Date[1] or Time < Time[1]then begin {Tagesanfang}
FirstHigh = High;
FirstLow = Low;
end;
IF FirstHigh < 999999 then Buy ("Le_") at FirstHigh + 1 point stop;

IF FirstLow > -999999then sell ("Se_") at FirstLow - 1 point stop;


Rest wie gehabt.
Dein Problem ist daß highd als Funktion nur das Hoch des Vortages zurückgibt.

Gruß
Robert

27.11.2000, 16:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Robert UEberbacher senden Homepage von _Robert UEberbacher
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: openstrategieAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Klaus!

Deinen Vorstellungen kann ich leider nicht entnehmen, ob Du jede Stunde das Kriterium prüfen möchtest oder nur die die Extremkurse der erten Handelsstunde als Referenz herangezongen werden sollen. Ich nehme im folgenden an, daß Du die zweite Variante meinst.

Mit den von Dir deklarierten Variablennamen HighD und LowD verweißt Du auf Funktionen, die, wie Du richtig bemerkst, Dir das Vortageshoch bzw. das Vortagestief liefen (allgemein: refHigh=High(xBarsAgo) bzw. refLow=LowD(xBarsAgo), also die Extremkurse am Bar vor xBarsAgo vom aktuellen Bar gesehen).

Um die Extremerte der erten Stunde zu erhalten, wäre folgender Ansatz denkbar:


inputs: Price(close);
vars: refHigh(0), refLow(0);

if MarketPosition(0)<>0 then
begin
if Price < (EntryPrice - 20 points) then ExitLong;
if Price > (EntryPrice + 20 points) then ExitShort;
end;

if time <= Sess1FirstBarTime then
begin
refHigh=0;
end
else
begin
if refHigh=0 then
begin
refHigh=High[1];
refLow=Low[1];
end;

if Price > refHigh then
buy refHigh + 1 point stop
else
if Price < refLow then
sell refLow - 1 point stop;
end;


In der vordefinierten Variablen Sess1FirstBarTime sollte die Zeit enthalten sein, die, einen Stundenchart vorausgesetzt, die den Enpunkt des ersten Bars des Tages bezeichnet. Voraussetzung ist, daß in den Symboleinstellungen die Session korrekt definiert ist.

Zu beachten ist, daß für die Ausführungsmethoden mit Stop-/Limitorder nur zum nächsten Bar ausgeführt werden können!

Gruß
Uwe

P.S.
Deine Logik der Schwellwerte auf der Basis der Points und die Ausstiegslogik habe ich von Dir übernommen, obwohl ich nicht weiß, ob Du diese so wirklich gemeint hast (OpenPostionProfit +/-x points je nach long oder short-Positionierung?)



27.11.2000, 16:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  Doppelt hält besser! Da war ich woll ein wenig zu spät ;-) .....(owt)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

.

27.11.2000, 16:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_klaus
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61

_klaus ist offline
  openstrategie ...und kein endeAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

hallo robert, hallo uwe,
erst einmal ganz vielen dank für eure mithilfe.
jedoch ist das von mir erhoffte ergebnis "noch" nicht erreicht.

vermutlich lang es ja auch daran, das ich mein probl. nicht
ausführlich genug beschrieben hatte.
ich möchte es hiermit nachholen.

ziel : testen eines breakoutsytems.

referenzbalken = i.diesem fall - die erste std. (balkenchart= 1. balken),
kauf / verkauf kann erst aktiv werden, wenn der erste std-balken abgeschloßen wurde.
bedingung.......
kauf = high[1] + z.b. 1 point, oder
verkauf = low[1] - z.b. 1 point - also jedesmal ein breakout.

setexitonclose ist bedingung,

----------------------------------

variante 1
sollte die eingegangene position durch trs oder %stp oder... flat sein,
sollte kein weiterer handel mehr möglich sein.
( bsp.I, 10:15 = 1 punkt höher als der erste referenzbalken,
also buy .... )

variante 2
sollte die eingegangene position durch trs oder %stp oder... flat sein,
sollte nur noch ein weiterer handel mehr möglich sein - diese position sollte aber wiederum auf den ersten balken ( referenzbalken)
bezogen sein.
nachdem bsp. I = ausgestoppt, folgt ein 2ter versuch,
( bsp.II, 15:17 = 1 punkt niedriger als das low des ersten referenzbalken, also sell....)

ich weiß, das ist sicherlich ein dicker broken, aber das ist es, was ich gerne testen möchte, könnte ich hier nochmals auf eure mithilfe hoffen,
viele grüße und wie auch immer - danke,
klaus

27.11.2000, 22:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _klaus senden Homepage von _klaus
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: openstrategie ...und kein endeAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Klaus!

Prinzipiell müßte Dein Problem wie folgt zu lösen sein:

....
vars: ....., xTradePerDay(0), ,,,,;

if Date>xDate[1] then xTradePerDay=0;
{neuer Tag, neues Glück}

{Überprüfung ob eine neue Position eingegangen wurde}

if Marketposition(0)<>Marketpostion(1) and
Marketpostion(0)<>0 then xTradePerDay = xTradePerDay+1;

.... EXIT-Bedingungen.....

{nachfolgender IF-Block wird nur durchlaufen, wenn am Tag noch KEINE zwei Positionen eingegangen wurden.}

if xTradePerDay<2 then
begin
................
..Prüfen auf Ausbruchkriterium
und
buy/sell-Aktion..............
................
end;


Du könntest natürlich die Sache auch noch so erweitern, daß pro Tag nur bei zwei Versuchen in eine Richtung, die hintereinander liegen, kein weiterer Handelsversuch unternommen würde. Du müßtes dan nur
...xTradePerDay = xTradePerDay+Marketposition(0); schreiben und die Abfrage von xTradePerDay auf den Absolutwert beziehen:
if AbsValue(xTradePerDay)<2 then....

Um zwei Orderrichtungen je Tag zuzulassen, muß Du jedoch eine zusätzliche Abfragevariable (Flag) einführen, die in Abhängigkeit von der Richtung hochgezählt werden und die IF-Abrage muß um einen OR-Term erweitert werden.

Wenn Du Erfahrungen mit diesem System gewonnen hast, so bin ich sicher, daß nicht nur mich Deine Ergebnisse interessieren werden, welcher Art sie auch immer sein werden.

Gutes Gelingen
Uwe

28.11.2000, 07:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_klaus
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61

_klaus ist offline
  an Uwe: openstrategie ...und kein endeAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

danke für deine hilfe,
wenn ich alles zum laufen bekommen habe,
dann will ich dir gerne die ergebnisse meiner testungen zukommen lassen,
( gilt natürlich auch für andere interessierte )
gruß klaus

28.11.2000, 13:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _klaus senden Homepage von _klaus
_klaus
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61

_klaus ist offline
  an UWE....openstrategieAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

inputs: Price(close);
vars: refHigh(0), refLow(0), xTradePerDay(0);
if date > date[1] then xTradePerDay=0;


if MarketPosition(0)<> MarketPosition(1)
and MarketPosition(0)<>0
then xTradePerDay = xTradePerDay+1;


if Price < (EntryPrice - 20 points) then ExitLong;
if Price > (EntryPrice + 20 points) then ExitShort;

if xTradePerDay<2
then begin

if time <= Sess1FirstBarTime then
begin
refHigh=0;
end
else
begin
if refHigh=0 then
begin
refHigh=High[1];
refLow=Low[1];
end;
end;
if Price > refHigh then
buy refHigh + 1 point stop
else
if Price < refLow then
sell refLow - 1 point stop;
end;

SetExitOnClose;

hi uwe,
dank deiner hilfe sieht das ergebnis gar nicht so schlecht aus,
aber irgendwo scheint noch ein fehler zu sein.

kannst du dir nochmal die formel anschauen??

1. die sache mit dem referenz(stab) scheint zu funktionieren.

2. der einstieg bei kauf / verkauf setzt jedoch nicht wie
gewünscht am high[1] / low[1] +/- 1 point ein,
sondern es ist immer der openkurs.

3. die begrenzung auf max. 2 einstiege p/day funktioniert noch nicht,
z.zt. wird an einem tag bis zu 4 mal eine position eingegangen.

gruß klaus

28.11.2000, 15:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _klaus senden Homepage von _klaus
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  Rohgerüst....openstrategie / Frage an Robert UeberbacherAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Klaus!

Soweit ich feststellen konnte, steht die zweite end-Anweisung im Block:
....refHigh=High[1];
refLow=Low[1];
end;
end;
if Price > refHigh then....
falsch, da die zweite Endanweisung die IF xTradePerDay...-Abfrage abschließt. Die Doppelendanweisung gehört ans Ende.

Bei dieser gelegenheit habe ich den Code noch einmal etwas umgestrick :

inputs: Price(close);
vars: refHigh(0), refLow(0), xTradePerDay(0);

if date > date[1] then
begin
xTradePerDay=0;
refHigh=High;
refLow=Low;
end;

if (BarsSinceEntry=0)and
(MarketPosition(0)<>0) then xTradePerDay = xTradePerDay+1;

if Price < (EntryPrice - 2000 points) then ExitLong;
if Price > (EntryPrice + 2000 points) then ExitShort;

if (xTradePerDay < 2) and (Time > Sess1FirstBarTime+1) then
begin
if close > refHigh then
buy refHigh + 1 point stop
else
if close < refLow then
sell refLow - 1 point stop;
end;

print(Date:8:0, time:6:0, xTradePerDay:2:0, refHigh:12:2, refLow:12:2, EntryPrice:12:0);

SetExitOnClose;


Die Daten habe ich mit dem DAX-Futur getestet (tolerierbare Verlustpunkte sind nach Einstellung für das Symbol und nach eingenen Einschätzungen abzuändern (Welche Werte Untersuchst Du?)

Doch was nun kommt, stellt mich momentan auch vor ein Rätsel, den ich kann mir die Eigenwilligkeit der Orders noch nicht erklären. Ob dies an der TS2000i liegt oder meinen Fähigkeiten weiß ich noch nicht.

Doch daß das Programmr in der ersten Stunde eine Order plaziert, geht nun nach dem Programmzeilen m.E nicht. Auch sind die Ausführungskurse nicht die erwarteten. Die zum Schluß eingeführte print-Zeile ermöglicht eine Betrachtung der Werte, die bei der Ausführung des Programmes anden einzelnen Bars entstanden sind.

Da es noch etwas dauern kann, bis ich mich damit intensiver auseinandersetzen kann, hier als vorab die Programmzeilen als Grundgerüst.

Gruß
Uwe

P.S.
An Robert:
Hattest Du Deine Programmteil getestet (ich muß leider gestehen ich hatte es bis vorhin noch nicht)? Setzt Du die TS4 oder die TS2000i ein?

28.11.2000, 22:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_klaus
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 61

_klaus ist offline
  RE: Rohgerüst....openstrategie / Frage an Robert UeberbacherAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

hi uwe,
erst einmal dank für deine hilfe, - toll von dir, ( hoffentlich kann ich das mal wieder gut machen).
aber nun einmal allgemein zu deiner frage, wofür....
...ich möchte EINE openstrategien einem vergleich unterziehen,
insbesondere - gleiches system in verschiedene märkte.
im augenblick ex0z, dann dx0z, dann es0z, vielleicht in cash...usw.
nach dem motto einfach aber "vielleicht" ertragreich.
versuche mich an DIESER idee schon einige wochen,
die anscheinend leichte aufgabe stellt für mich derzeit eine
unüberwindliche schranke da - teilweise auch unlogisch.
gruß
klaus

28.11.2000, 23:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _klaus senden Homepage von _klaus
_Robert UEberbacher
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 15

_Robert UEberbacher ist offline
  RE: openstrategie ...und kein endeAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Alle miteinander,

Es gibt in der Ts2000 eine Funktion mit dem Namen "EntriesToday" die diese abfragen erledigt.
Im Systemcode ca. so einfügen

Input: M_Trades(2), {-- Anzahl Trades pro Tag}
if EntriesToday <= M_Trades then begin
Buy .....
Sell.....
End;

Sollte klappen.

Gruß
Robert

Ps.:
Habe so ein System 3 Jahren für einen Freund
geschrieben, allerdings war das Zeitfenster für den Breakout flexibel über den Tag einstellbar ( StartZeit bis Endzeit) und zusätzlich dazu war die Handelszeit begrenzbar.
Das sah dann so aus:
Alles auf 5 Minuten Chart
Breakout der ersten 45 Minuten traden,
max Trades pro Tag 3,
Trading Beginn nach 1030,
Trading Ende 1630
Gewinnziele nach x Punkten für einen Teil der Position, Rest it Trailing Stop abgesichert, MOC exit.
Anzahl der Kontrakte variabel in Abhängigkeit von der Kontogröße und der Volatilität.


Klappte eine Zeil lang sehr gut, aber die Drawdowns sind teilweise unerträglich.

30.11.2000, 10:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Robert UEberbacher senden Homepage von _Robert UEberbacher
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR