Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Posts aus dem alten Userforum (http://www.tradernet.org/wbb/board.php?boardid=15)
|-- Problem: Buy next Bar on High + 1 stop; (http://www.tradernet.org/wbb/threadid.php?boardid=15&threadid=100)


Geschrieben von _lassem am 17.12.2001, 18:10:

  Problem: Buy next Bar on High + 1 stop;

Wenn die Kaufbedingungen erfüllt sind,
soll on stop gekauft werden, wenn das High übertradet wird.
Aber eben nicht nur das aktuelle high, sondern - falls vorher kein Stab übertradet wird - das high eines der nächsten zB 5 Stäbe.
Bei obiger Bedingung erfolgt kein Trade,
wenn exakt der NÄCHSTE STAB nicht übertradet
wird.
Wer weiß Rat? Dank!


Geschrieben von _Steffen am 17.12.2001, 19:10:

  RE: Problem: Buy next Bar on High + 1 stop;

Meinst du solch eine Anweisung oder doch was anderes???
"Buy next Bar on Highest(High, 5) stop"

Steffen


Geschrieben von _Helmut am 17.12.2001, 20:10:

  RE: Problem: Buy next Bar on High + 1 stop;

Hier mein Vorschlag:
die Condition1 und C2 gibt deine Kaufbedingung wieder -

if Condition1 and High[0] = HigH[1] or High [0] > High[1] then begin buy ("Highentry") at High[0] + 1 stop;
end;
if Condition2 and Low[0] = Low[1] or Low [0] < Low[1] then begin sell ("Shortentry") at Low[0] - 1 stop;
end;

Falls Du die Bedingung für eine bestimmte Anzahl von Stäben begrenzen willst muß du noch einen Counter einbauen.
Hier die Lösung NUR FÜR LONG mit Counter:
vars:Condition1(false),maxvalidbars(5), Counter(0);

{Der Counter gehört gleichzeitig mit deiner Kaufbedingung auf 0 gesetzt.}
If ConditionXY + Condition XZ then begin
Counter = 0;
.......;
......;
end;

If Counter <> -1 then Counter = Counter + 1;

if Condition1 and Counter < maxvalidbars and High[0] = HigH[1] or High [0] > High[1] then begin buy ("Highentry") at High[0] + 1 stop;
end;

Natürlich könnte man die einzelnen Passagen wiederum in Variablen zusammenfassen - zur besseren Anschauung habe ich das unterlassen.

mit Gruß und ohne Test des Ela textes
Helmut


Geschrieben von _Helmut am 18.12.2001, 12:10:

  Meine Lösung funktioniert nicht - tut Leid - OHNE TEXT

.


Geschrieben von _Uwe am 19.12.2001, 10:10:

  RE: Problem: Buy next Bar on High + 1 stop;

lassen: Wenn die Kaufbedingungen erfüllt sind,
soll on stop gekauft werden, wenn das High übertradet wird.
Aber eben nicht nur das aktuelle high, sondern - falls vorher kein Stab übertradet wird - das high eines der nächsten zB 5 Stäbe. ...


Deine Problemstellung, so wie ich sie verstanden habe, wäre wie folgt umzusetzen:

inputs: ..., validXBars(5), ....
vars: ..., BarsSinceCond(-1), HighAtCond(0), ...

{Überprüfung ob Marktposition verändert}
if marketposition<>marketposition(1) then BarsSinceCond=-1;
...
if Kaufbedingung and BarsSinceCond<0 then
begin
  BarsSinceCond = 0;
  HighAtCond = High;
end;

if BarsSinceCond > -1 then
begin
  BarsSinceCond = BarsSinceCond+1;
  if BarsSinceCond > validXBars then BarsSinceCond = -1;
end;

if BarsSinceCond > 0 then
buy("NextHigh") at HighAtCond + 1 stop;


Leider komme ich mit der nachfolgenden Formulierung dann doch nicht klar, wenn Du schreibst:
lassen: Bei obiger Bedingung erfolgt kein Trade,
wenn exakt der NÄCHSTE STAB nicht übertradet
wird. ...


Dies steht doch im Gegensatz zu Deiner obigen Forderung, wonach auch mögliche Nachfolgebars in die Wertung einzubeziehen sind. Habe ich da etwas falsch verstanden?

Gruß
Uwe


Geschrieben von _lassem am 19.12.2001, 11:10:

  RE: Problem: Buy next Bar on High + 1 stop;

Danke für die Idee, werd ich umgehend ausprobieren.
Meine Schilderung bezog sich darauf, daß bzw. wo es bei meiner Programmierung NICHT klappte.
Mißverständnis damit geklärt?
Gruß Niko


Geschrieben von _lassem am 19.12.2001, 11:10:

  RE: Problem: Buy next Bar on High + 1 stop;

Danke, aber das meine ich nicht.
Er soll nicht bei erfüllter Indikatorbedingung das high der LETZTEN 5 Stäbe kaufen, sondern das NÄCHSTE übertradete High (aber nur max 5 Stäbe lang).
Gruß Niko


Geschrieben von _lassem am 19.12.2001, 11:10:

  RE: Meine Lösung funktioniert nicht - tut Leid - OHNE TEXT

Trotzdem vielen Dank für die Mühe. Ich werd mich anhand Deines Vorschlages nochmal mit dem Gebrauch von Conditions üben.
Gruß Niko


Geschrieben von _Uwe am 19.12.2001, 13:10:

  RE: Problem: Jetzt hab auch ich es begriffen, ...

... da ich anfänglich die fragliche Formulierung zur Aufgabenstellung gehörig gesehen hatte und nicht als Problembeschreibung verstand.

Dabei fällt mir ein, dass die von mir dargestellten EL-Fragmente sich auf eine Kaufbedingung bezieht, die während der beobachteten Bars der Folgetage nach dem ersten Auftreten eingehalten bleiben muss, da der IF-Block als Einstieg eine AND-Logik zweier Bedingungen enthält.

Dies ist z.B. der Fall, wenn ich nur die Order generieren möchte, wenn z.B. der kürzere Durchschnitt über dem längeren liegen soll. Wird als Kaufbedingung aber z.B. das Eintreten eines Schnittpunkt bestimmt, so ist dieses Ereignis durch eine zusätzliche Variable zu merken, da ja für die nächsten Bars diese spezielle Kaufbedingung nicht mehr vorliegt.

Zu beachten ist ferner, dass Du Deine Logik so strukturierst, dass auch der Zweig abgedeckt wird, der entsteht, wenn die Kaufbedingung eingetreten ist, sie z.B. beim zweiten Folgebar nicht erfüllt ist, dann jedoch erneut beim dritten Folgebar wieder eintritt. Im vorliegendem Fall würde dieses Ereignis als solches nicht bemerkt, wenn nicht gerade eine Order ausgeführt wird.

Mit if Kaufbedingung=false or marketposition<>Marketposition(1) then BarsSinceCond = -1, würdest Du die erneute Initialisierung der Variablen BarsSinceCond erwirken.

Daher muss natürlich meine Programm-Ideenskizze, nicht die Gesamtlösung Deines Problems bedeuten, denn dazu und über die effektivste Umsetzung, muss man immer die Gesamtlogik übersehen können.

Gruß
Uwe

Powered by: Burning Board 1.1.1 © 2001 by WoltLab