Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » Gap programmieren » 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
_sascha
Administrator



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

_sascha ist offline
  Gap programmierenAntwort 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,
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

18.11.2000, 11:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _sascha senden Homepage von _sascha
_Uwe
Administrator



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

_Uwe ist offline
  RE: Gap programmierenAntwort 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 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

18.11.2000, 19: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
  RE: Gap programmieren / Berichtigung: if BarsSinceEntry=1 then exitlonAntwort 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 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

18.11.2000, 19:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_sascha
Administrator



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

_sascha ist offline
  RE: Gap programmieren /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

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

20.11.2000, 12:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _sascha senden Homepage von _sascha
_Uwe
Administrator



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

_Uwe ist offline
  RE: Gap programmieren / Close at End of DayAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

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

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

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR