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)
|-- Gap programmieren (http://www.tradernet.org/wbb/threadid.php?boardid=15&threadid=919)


Geschrieben von _sascha am 18.11.2000, 11:10:

  Gap programmieren

Hallo,
ich versuche gerade ein gappattern vom close bzw. high des letzten tages zum open des nächsten tages zu programmieren.

inputs:breakout(.1);
if nextopen > high then buy
at nextopen + breakout * average(truerange,3) stop;
exitlong at close;

Doch leider bekomme ich ne Fehlermeldung bei "nextopen" und ich weis nicht warum.
Wer kann mir helfen ?
mfg sascha


Geschrieben von _Uwe am 18.11.2000, 19:10:

  RE: Gap programmieren

Hallo Sascha!

Syntaxsmäßig ist die verwendung von nextopen ohne vorherige Variabilendefinition nicht möglich, da nextopen kein Schlüsselwort (hier also vordefinierte Variable wie open, high,....) ist.

Des weitern ist der Gedanke, daß das Programm das Nextopen zum zeitpunkt seiner Berechnung an dem heutigen Bar kennt etwas fantatisches, das man sich zu nutze machen sollte ;-)

Doch leider kann die Formulierung Deines Gedankens nur so formuliert werden:
Wenn das nächste Bar höher eröffnet als das heutige Hoch, dann kaufe die Eröffnung + Offset als Stop-Order oder eben in Esay-Logik : wenn das Open des aktuellen Bars größer ist als das Vorbarhoch, dann plaziere die Kauf-Stoporder.

inputs:breakout(.1);

if open > high[1] then buy at open + breakout * average(truerange,3) stop;
exitlong at close;

Dieser Syntax ist zwar richtig, doch leider gestattet Easy-Language bei Stop- und Limitorder die Ausführung nur für den nächsten Bar. Da close aber im realtime-Modus auch den aktuellen Wert beschreibt, ist die exitlogik nur für historische Tests geeignet.

Somit muß eine market-order geschrieben werden:

if open > high[1] then
if close=>open+ breakout * average(truerange,3) then buy at market;

if BarsSinceEntry=1 then exit close;

Vielleicht war es eine Hilfe
Gruß
Uwe


Geschrieben von _Uwe am 18.11.2000, 19:10:

  RE: Gap programmieren / Berichtigung: if BarsSinceEntry=1 then exitlon

Hallo Sascha!

Syntaxsmäßig ist die verwendung von nextopen ohne vorherige Variabilendefinition nicht möglich, da nextopen kein Schlüsselwort (hier also vordefinierte Variable wie open, high,....) ist.

Des weitern ist der Gedanke, daß das Programm das Nextopen zum zeitpunkt seiner Berechnung an dem heutigen Bar kennt etwas fantatisches, das man sich zu nutze machen sollte ;-)

Doch leider kann die Formulierung Deines Gedankens nur so formuliert werden:
Wenn das nächste Bar höher eröffnet als das heutige Hoch, dann kaufe die Eröffnung + Offset als Stop-Order oder eben in Esay-Logik : wenn das Open des aktuellen Bars größer ist als das Vorbarhoch, dann plaziere die Kauf-Stoporder.

inputs:breakout(.1);

if open > high[1] then buy at open + breakout * average(truerange,3) stop;
exitlong at close;

Dieser Syntax ist zwar richtig, doch leider gestattet Easy-Language bei Stop- und Limitorder die Ausführung nur für den nächsten Bar. Da close aber im realtime-Modus auch den aktuellen Wert beschreibt, ist die exitlogik nur für historische Tests geeignet.

Somit muß eine market-order geschrieben werden:

if open > high[1] then
if close=>open+ breakout * average(truerange,3) then buy at market;

if BarsSinceEntry=1 then exitlong close;

Vielleicht war es eine Hilfe
Gruß
Uwe


Geschrieben von _sascha am 20.11.2000, 12:10:

  RE: Gap programmieren /

hallo,
vielen dank für die Antwort.
Diese Variante habe ich auch schon ausprobiert, doch das Problem dabei ist das dabei erst am nächsten Tag gekauft wird also einen Tag nach dem Gap.

So hab ich das ganze Umgeschrieben um als ShowMe mal anzusehen was geschieht.
Dabei ist mir aufgefallen das das Gap richtig erkannt wird aber das Kaufsignal erst für den nächsten Bar gilt, einen tag später. :-(

Lösungsansatz: Arbeiten mit zwei Datenreihen (Daily/und zB. 15min)
Im Daily definition von high und close und im 15min Erkennung von EröffnungsGap, um zum nächsten Bar ein Long zu generiern.

If O Data1 > H[1] Data2 then buy at open;

Doch wie bekomme ich es hin das jetzt die Position am Marktende geschlossen wird?

Mit Exitlong at Close bekomme ich bis Marktschluss immer wieder neue Longsignale und mit "Exitlong at close Data2" einen Fehler.
FixedBar Exit haut auch nicht hin da der Markteinstieg nicht immer konstant ist.

?

mfg sascha


Geschrieben von _Uwe am 20.11.2000, 14:10:

  RE: Gap programmieren / Close at End of Day

Sascha:Doch wie bekomme ich es hin das jetzt die Position am Marktende geschlossen wird?


Hallo Sascha!

Für die TS4 gab es in der Format-Maske zum System den Weg über den Registerdialog Stops das Selektionsfeld: Close all trades at end of day session
an zu wählen.

Für die TD2000i mußt Du den Weg über den StrategyBuilder gehen, wo Du über Edit->Signal->Add das Signal Close at End of Day auswählst.

Ist also keine Programierung als Signal erforderlich.

Viel Erfolg
Uwe

Powered by: Burning Board 1.1.1 © 2001 by WoltLab