Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Newbies (http://www.tradernet.org/wbb/board.php?boardid=3)
|-- brauche Hilfe für easy Language (http://www.tradernet.org/wbb/threadid.php?boardid=3&threadid=2016)


Geschrieben von Joerg111 am 29.01.2010, 14:00:

  brauche Hilfe für easy Language

hätte eine Frage zum automatischen Handel. Wenn ich möchte, dass wenn ein Indikator eine bestimmte Grösse erreicht z. B. RSI erreicht 50, dass dann sofort gekauft wird beim erreichen der Größe und nicht erst die nächste Bar? (buy next bar open)

Danke im vorraus

Joerg


Ihr könnt mich auch anmailen:

enterprise9990@gmx.de


Geschrieben von Klaus am 29.01.2010, 15:01:

 

Hallo Joerg,

irgendwas scheint mit Deinen Umlauten nicht zu stimmen, oder bin ich der Einzige der dort nur kryptische Zeichen sieht?

Zu Deiner Frage: Prinzipiell sehe ich 3 verschiedene Möglichkeiten das umzusetzen:

  1. Man verwendet zwei Datenreihen. Wenn Du aktuell z.B. mit 60min Charts arbeitetest, dann kann man als Data1 einen 1 min Chart und als Data2 den 60 min Chart nehmen. Dann fragst Du jede Minute ab, ob "RSI(Close, 14) of Data2" > 50 ist und kannst dann minutengenau einen Entry machen.
  2. Indikator invertieren. Da es sich bei jedem Indikator um eine mathematische Berechnung (Formel) handelt kann man - mit etwas Mühe und mathematischem Verständnis - den Indikator so umschreiben, dass er Dir den Kurs ausrechnet zu dem der Indikatorwert > 50 ist. Zu diesem Kurs kannst Du dann eine Entry-Stop-Order für die nachfolgende Kerze generieren.
  3. Intrabar Order Generation. Geht nur in der TS8 und ist nicht empfehlenswert. Setzt hohes technisches Verständnis der TS und besondere Programmierkenntnisse voraus. Und man kann es nicht wirklich Backtesten. Daher mein Rat es nicht zu verwenden (habe ich auch nur der Vollständigkeit halber hier aufgeführt).
Gruss
-Klaus


Geschrieben von tso am 29.01.2010, 15:21:

 

Hallo Klaus,

Nein, bei mir sieht es auch komisch aus.

Gruß
tso


Geschrieben von Joerg111 am 29.01.2010, 16:54:

 

Danke Klaus für die Antwort

kannst du das mit dem Data1 und Data2 etwas genauer erklären, wie ich das einrichten muss?


Geschrieben von tso am 29.01.2010, 17:19:

 

Hallo Jörg,

wir nehmen mal an dein jetziger Chart hat bei Interval Settings einen Wert von 10 Minuten pro Bar.
Du klickst mit der rechten Maustaste in den Chart und wählst „Insert Symbol…“. Jetzt wirst du nach den Charteinstellungen für das hinzugefügte Symbol gefragt. Du wählst jetzt 60 Minuten und bestätigst mit OK. In deinem Chart hast du jetzt dein Symbol 2 mal, oben mit 10 Minuten und unten mit 60 Minuten. Der oberste Chart ist immer als data1 gekennzeichnet und nach unten wird dann automatisch jede Datenreihe mit data2, data3 usw. zugeordnet.
Wenn du jetzt in deinem Code die Abfrage "RSI(Close, 14) of Data2" > 50 hinterlegst passiert folgendes. Die Tradestation prüft ausgehend von data1 alle 10 Minuten deine Strategiebedingungen. Wird also um 10:30 Uhr festgestellt das der Wert überschritten wurde wird im Sinne des 60 Minuten Bars ein intrabar Signal erzeugt. (siehe Punkt 1 von Klaus)

Viel Erfolg
tso


Geschrieben von tso am 29.01.2010, 20:12:

 

Verwendung mehrere Zeitebenen

Aus Sicht der Tradestation ist es egal ob der Wert eines Indikators auf data1, data2 oder data5 berechnet wird. Auch ist es für die Berechnung bedeutungslos in welcher Reihenfolge die Zeitebenen eingerichtet wurden. Für den Einsatz einer Strategie in der Praxis macht es aber enorme Unterschiede ob die 10 Minuten Einstellung auf data1 oder data2 beispielsweise liegt.

Grundsätzlich sollte auf data1 die jeweilig „feinste“ Zeiteinteilung und auf den folgenden Datenreihen die „gröberen“ Zeitskalierungen eingestellt werden. Ganz abgesehen davon das der Arbeitsplatz somit strukturierter und übersichtlicher wird, möchte ich auf folgendes praktisches Problem hinweisen.
Beispielcode:

code:

If time = 1000 and ADX (close, 14) > 0 then buy market;
If marketposition=1 then begin
Sell mit 20 Punkten Gewinn Limit;
Sell mit 20 Punkten Verlust Stop;
End;


Als erstes nehmen wir an das auf data1 die Zeiteinteilung 10 Minuten und auf data2 1 Minute gewählt wurde. Der Einstieg in die Long-Position wird Regelkonform um 10:00 Uhr erfolgen. Weil wir data1 mit 10 Minuten eingestellt haben, wird jetzt aber auch bis 10:09:59 Uhr nichts mehr passieren. Das heißt egal wie sich der Kurs in diesen 9 Minuten entwickelt, er wird für die Tradestation unbemerkt bleiben. Erst um 10:10 Uhr, mit beenden des 10 Minuten Bars, bemerkt die TS die Veränderung des Wertes marketposition und sendet die Orders entsprechend ab. In diesen 10 Minuten kann der Kurs aber schon so weit gefallen sein, dass unsere Stop Absicherung überflüssig geworden ist.

Jetzt verändern wir die Reihenfolge so, dass data1 1 Minute und data2 10 Minuten entspricht. Der Programmcode verändert sich wie folgt:
code:

If time=1000 and ADX (close, 14) > 0 of data2 then buy market;
If marketposition=1 then begin
Sell mit 20 Punkten Gewinn Limit;
Sell mit 20 Punkten Verlust Stop;
End;

Der Einstieg in die Position erfolgt wieder um Punkt 10:00 Uhr, aber was hat das Ändern der Zeitebenen bewirkt? Jetzt prüft die TS bereits nach 1 Minute ob sich marketposition geändert hat und sendet die entsprechenden Orders ab. Effektiv haben wir unsere Position also nur 1 Minute am Markt schutzlos gehalten. Somit zeigt sich das aus purem Selbstzweck auf data1 immer die jeweilige „feinste“ Zeitskalierung gewählt werden sollte.

Um auch noch die 1 Minute Risiko zu unterbinden kann man die Befehle setstoploss und setprofittarget verwenden. Beide werden sofort nach absenden der Kauforder aktiv und setstoploss kann somit ideal als „worst-case“ Absicherung einer jeden Position unabhängig vom gewählten Zeitfenster genutzt werden.

viel Erfolg
-tso

Powered by: Burning Board 1.1.1 © 2001 by WoltLab