Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Newbies » STP LMT - Order mit EL » 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
John50055
Member



Dabei seit: 01 2003
Herkunft:
Beiträge: 5

John50055 ist offline
  STP LMT - Order mit ELAntwort 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,

bekanntlich ist bei der TWS von IB eine StopLimit-Order möglich. Zum Beispiel soll für eine Kauforder der Stop bei 8001 liegen und das Limit bei 8000. D.h. die Limitorder (8000) geht erst in den Markt, wenn der Stop (8001) erreicht ist - man versucht szs. einen Punkt günstiger zu kaufen.

Lässt sich diese Order in EL programmieren?

Vielen Dank!

John

01.02.2003, 09:42 Profil von Füge  deiner Freunde-Liste hinzu Email an John50055 senden
Steffen
Senior Member TUG



Dabei seit: 01 2002
Herkunft: bei Leipzig
Beiträge: 186

Steffen ist offline
  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

Die Programmierung wäre zwar ein wenig umfangreich, es ist aber machbar.

Das Wichtigste für einen solchen Test sind jedoch ausreichend gute Tickdaten.

Gruß Steffen

01.02.2003, 10:23 Profil von Füge  deiner Freunde-Liste hinzu Email an Steffen senden
John50055
Member



Dabei seit: 01 2003
Herkunft:
Beiträge: 5

John50055 ist offline
  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

@Steffen,

danke für die schnelle Antwort.

Die gewünschte Lösung sollte z.B. in einen 1min Barchart funktionieren - nicht in einem Tickchart. Scheint wohl ein generelles Problem der TS zu sein, dass man für den EntryPrice nur auf den Close des aktuellen Bars zugreifen kann und nicht auf beliebige Kurse innerhalb des aktuellen Bars.

In diesem Zusammenhang noch eine weitere Frage: Wie kann man auf das High des nächsten Bars zugreifen? So etwas wie: high[-1]?


Viele Grüße
John

01.02.2003, 12:00 Profil von Füge  deiner Freunde-Liste hinzu Email an John50055 senden
Steffen
Senior Member TUG



Dabei seit: 01 2002
Herkunft: bei Leipzig
Beiträge: 186

Steffen ist offline
  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

Du kannst den Test ohne weiteres auf einem 1 min Chart durchführen, jedoch sollte dieser aus Tickdaten stammen. Wie soll sonst der interne Verlauf des Kurses innerhalb der 1 min interpretiert werden. (ähnliches Bsp. hier )


Einen Tip bezüglich der Abfrage des zukünftigen OHLC findest du in diesem Beitrag .


Gruß Steffen

01.02.2003, 14:46 Profil von Füge  deiner Freunde-Liste hinzu Email an Steffen senden
Uwe
Super Moderator



Dabei seit: 12 2001
Herkunft:
Beiträge: 718

Uwe ist offline
  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

Zitat:
Original von John50055

Die gewünschte Lösung sollte z.B. in einen 1min Barchart funktionieren - nicht in einem Tickchart. Scheint wohl ein generelles Problem der TS zu sein, dass man für den EntryPrice nur auf den Close des aktuellen Bars zugreifen kann und nicht auf beliebige Kurse innerhalb des aktuellen Bars.



Hallo John,

wie Steffen schon angedeutet hat, kannst Du aus einem Bar mit OHLC eben nur diese vier Werte auslesen und über den zeitlichen Verlauf kannst Du nur zum Open und Close eine Aussage treffen, wenn Du nicht den Intrabar-Chartverlauf nachvollziehen kannst.

Dies gilt für jedes Zeitintervall, ob Du es nun minuten-, stunden-, tage--, wochen- oder monatsweise betrachtest. Somit gilt die Aussage, dass nur zum Close des aktuellen Bars gehandelt werden kann nur insofern allgemein, wie Du nichts über den zeitlichen Verlauf innerhalb des Bars sagen kannst.


Dieser zeitliche Verlauf ist im Realtime-Betrieb natürlich durch den aktuellen Kurse, der als Close verarbeitet wird, kein unbekanntes Wesen und die handelsüblichen Order sind programmierbar. Für die historischen Betrachtungen mußt Du in jedem Fall auf die Kursdatenauflösung achten, die von Dir einsetzbar ist.

Ist innerhalb des Intervalls eines Bar der Differenzsprung aus Deinem Beispiele möglich, so bleibt auch hier nur übrig, auf eine bekannte kleinere Unterteilung der Zeiteinheit zu setzen.

Gruß,
Uwe

P.S.
Zur Frage, wie man auf des High des nächsten Zeitintervalls greifen kann (eigentlich ein Wunsch eines jeden von uns, vermute ich ;-) ), fallen mir eigenlich kaum einsetzbare Anwendungen ein, die dieses notwendig werden lassen, den zum Zeitpunkt des Kursbalken t=[0], kann ich über das Offset t+1 doch der Zeitreihe vorgeben, den aktuellen Bar als Kursbalken der Zukunft zu betrachten. Statistische Auswertungen werden somit nicht eingeschränkt, jedoch eine Aussage, wenn morgiges Hoch höher als aktuelles Hoch, dann Kaufe morgiges Hoch, läßt sich über eine STOP-Order realisieren:
buy at High+x points stop;
Aber vielelicht gibt es in der Tat praxibezogene Anwendungsnotwendigkeiten, die ich nicht kenne und geren kennen lernen würde.

01.02.2003, 17:32 Profil von Füge  deiner Freunde-Liste hinzu Email an Uwe senden
Steffen
Senior Member TUG



Dabei seit: 01 2002
Herkunft: bei Leipzig
Beiträge: 186

Steffen ist offline
  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

Zitat:
Wie kann man auf das High des nächsten Bars zugreifen? So etwas wie: high[-1]?



Zitat:
Zur Frage, wie man auf des High des nächsten Zeitintervalls greifen kann (eigentlich ein Wunsch eines jeden von uns, vermute ich ;-) ), fallen mir eigenlich kaum einsetzbare Anwendungen ein, die dieses notwendig werden lassen,



Stell dir vor, du möchtest ein antizyklischen Handelsansatz testen, wo du mit Limit-Orders arbeitest. Beim Backtest wird die Limit-Order gefillt, wenn der Limitwert erreicht wurde. Wenn es sich z.B. um eine Sell Limit handelt, wird diese auch am High einer Kerze ausgeführt. In der Praxis kommt es jedoch vor, daß es sich dabei nur um einen einzigen Tick handelt, jedoch die eigene Order nicht gefillt wurde. Somit hätte man beim Backtesten einen Fill, wo man in der Praxis nur zuschauen würde. Um somit das Testergebnis praxistauglich zu machen, verwende ich die Abfrage des zukünftigen High bzw. Low. und generiere nur dann meine LIMIT Order, wenn das High bzw. Low mindestens einen Tick über/unter meiner Limit Order ist. Somit ist garantiert, daß man den Fill auch in der Praxis bekommen hätte. Wenn dieser Backtest danach immer noch positiv ist, so kann man sicher sein, daß man diesen Ansatz in der Praxis erfolgreicher handelt wie die Testergebnisse. Einige Fills erhält man nämlich in der Praxis an den Extremwerten doch, die beim Backtest nicht erlaubt wurden.

Für mich ist die Abfrage des zukünftigen High bzw. Low somit ein nützliches Instrument, um einen antizyklischen Handelsansatz auch praxistauglich testen zu können. Ansonsten wird man schnell von guten Performance-Ergebnissen geblendet, die in der Praxis nicht umgesetzt werden können.


Gruß Steffen

01.02.2003, 18:01 Profil von Füge  deiner Freunde-Liste hinzu Email an Steffen senden
John50055
Member



Dabei seit: 01 2003
Herkunft:
Beiträge: 5

John50055 ist offline
  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,

eine Wissenschaft wollte ich aus der Frage eigentlich nicht machen. Ehrlich gesagt auch keine philosophische Betrachtung über Sinn oder Unsinn. ;-))

Mit anderer Software, z.B. Investox, läßt sich sehr leicht auf zukünfige Bars zugreifen, z.B. Ref(High, 1), und ebenso leicht der EntryPrice definieren, z.B. (High-Low)/2. Ich wollte nun wissen, ob das mit EL auch geht, da EL andere Vorzüge hat.

Läßt sich vielleicht der EntryPrice verändern?

If MarkedPosition=1 then begin
irgendwas mit SetEntryPrice = 1234 o.ä.
...
end;

Bin daran interessiert, daß die Equity-Curve den Limit-EntryPrice und nicht den StopPrice verwendet. Ich möchte nur einen Backtest machen - also keine Realtime-Strategie bauen. Deshalb, Uwe, könnte ich auf das letzte, aktuelle Signal verzichten; für das vorletzte würden dann high[-1]-Werte vorliegen.


Viele Grüße
John


01.02.2003, 18:23 Profil von Füge  deiner Freunde-Liste hinzu Email an John50055 senden
John50055
Member



Dabei seit: 01 2003
Herkunft:
Beiträge: 5

John50055 ist offline
  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

@Steffen,

habe wohl gerade geschrieben als Du Deinen Beitrag reingestellt hast.

Hast völlig recht und genauso meinte ich es auch. Da ich noch keine TS-ID habe, vielleicht kannst Du hier mal schreiben, wie man auf das nächste High zugreifen kann.


Gruß
John

01.02.2003, 18:35 Profil von Füge  deiner Freunde-Liste hinzu Email an John50055 senden
Uwe
Super Moderator



Dabei seit: 12 2001
Herkunft:
Beiträge: 718

Uwe ist offline
  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

Zitat:
Original von Steffen
Zitat:
Wie kann man auf das High des nächsten Bars zugreifen? So etwas wie: high[-1]?



Zitat:
Zur Frage, wie man auf des High des nächsten Zeitintervalls greifen kann (eigentlich ein Wunsch eines jeden von uns, vermute ich ;-) ), fallen mir eigenlich kaum einsetzbare Anwendungen ein, die dieses notwendig werden lassen,



Stell dir vor, du möchtest ein antizyklischen Handelsansatz testen, wo du mit Limit-Orders arbeitest. Beim Backtest wird die Limit-Order gefillt, wenn der Limitwert erreicht wurde. Wenn es sich z.B. um eine Sell Limit handelt, wird diese auch am High einer Kerze ausgeführt. In der Praxis kommt es jedoch vor, daß es sich dabei nur um einen einzigen Tick handelt, jedoch die eigene Order nicht gefillt wurde. Somit hätte man beim Backtesten einen Fill, wo man in der Praxis nur zuschauen würde. Um somit das Testergebnis praxistauglich zu machen, verwende ich die Abfrage des zukünftigen High bzw. Low. und generiere nur dann meine LIMIT Order, wenn das High bzw. Low mindestens einen Tick über/unter meiner Limit Order ist. Somit ist garantiert, daß man den Fill auch in der Praxis bekommen hätte. Wenn dieser Backtest danach immer noch positiv ist, so kann man sicher sein, daß man diesen Ansatz in der Praxis erfolgreicher handelt wie die Testergebnisse. Einige Fills erhält man nämlich in der Praxis an den Extremwerten doch, die beim Backtest nicht erlaubt wurden.

Für mich ist die Abfrage des zukünftigen High bzw. Low somit ein nützliches Instrument, um einen antizyklischen Handelsansatz auch praxistauglich testen zu können. Ansonsten wird man schnell von guten Performance-Ergebnissen geblendet, die in der Praxis nicht umgesetzt werden können.

Gruß Steffen




Danke für das Beispile, Steffen.

Wenn es um das Backtesting geht, wo Du ja bereits über die DDL nxtopn20.dll (wo gibt es diese eigentlich?) Dir die Möglichkeit geschaffen hast, dann kann man möglicherweise auch über eine versetzte Datenreihe diesen Zugriff sich schaffen.

Dies ist bestimmt nicht so bequem, denn man muß erst einmal den Datenbestannd in eine ASCII-Datei auszulesen, die Zeiteinträge um eine Intervalleinheit zu versetzen, wenn man dies nicht bereits bei der Erzeugung der Datei vornimmt, und dann diese ASCII-Datei als zweite Datenreihe im Chartfenster, in dem die Strategy getestet wird, zu laden.

Dann wäre die Anweisung if High of data2 >= xpoints+(High of data1) then sell at high limit; möglich.

Gruß,
Uwe


01.02.2003, 19:24 Profil von Füge  deiner Freunde-Liste hinzu Email an Uwe senden
Uwe
Super Moderator



Dabei seit: 12 2001
Herkunft:
Beiträge: 718

Uwe ist offline
  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

Zitat:
Original von John50055

Mit anderer Software, z.B. Investox, läßt sich sehr leicht auf zukünfige Bars zugreifen, z.B. Ref(High, 1), und ebenso leicht der EntryPrice definieren, z.B. (High-Low)/2. Ich wollte nun wissen, ob das mit EL auch geht, da EL andere Vorzüge hat.

Läßt sich vielleicht der EntryPrice verändern?

If MarkedPosition=1 then begin
irgendwas mit SetEntryPrice = 1234 o.ä.
...
end;


Nein, der EntryPrice läßt sich nicht verändern. Auch läßt sich eine Einstiegsmarke (H+L)/2 nur als STOP/LIMIT-Order für die zukünfitige Preisentwicklung setzen, wenn man aus die programminterne Auswertung der Trades zurückgreifen will.

Was jedoch im Fall eines Backtesting realisierbar ist, abgesehen von der von Steffen vorgestellten Möglichkeit über die DLL, zu der ich nichts sagen kann, da ich sie nicht kenne, ist der "Nachbau" der Orderverwaltung, deren Einträge in eine Datei geschreiben werden und dann extern weiter ausgewertet werden können. In diesem Fall sind dann alle "Tricks" erlaubt:

code:
If H > H[1] and MktPos < 1 then
begin
EPrice=( H[1] + L[1] ) / 2;
if Mkt=-1 then
begin
SumProfit=SumProfit+(EPrice[1]-EPrice) +Kosten+Slippage;
fileappend(date[1], time[1], MktPos, "TR", EPrice, EPRICE[1]-EPrice, SumProfit);
MktPos=+1;
fileappend(date[1], time[1], MktPos, EPrice, 0);
end;



In diesem Beispile wird also am aktuellen Bar, die fiktive Order auf den Bar davor gelegt und die ensprechenden Werte in eine Datei geschreiben.

Natürlich ließe sich so auch die Equity-Curve nachbilden und zu jedem Bar aktuallisieren
(SumProfit+MktPos*(Close-EPrice)). Auf Ereignisse, die aus dem Kurvenverlauf abzuleiten sind, können dann die entsprechenden Aktionen geschaltet werden.

Gruß,
Uwe

Zitat:
Original von John50055
Hallo,

eine Wissenschaft wollte ich aus der Frage eigentlich nicht machen. Ehrlich gesagt auch keine philosophische Betrachtung über Sinn oder Unsinn. ;-))

Mit anderer Software, z.B. Investox, läßt sich sehr leicht auf zukünfige Bars zugreifen, z.B. Ref(High, 1), und ebenso leicht der EntryPrice definieren, z.B. (High-Low)/2. Ich wollte nun wissen, ob das mit EL auch geht, da EL andere Vorzüge hat.

Läßt sich vielleicht der EntryPrice verändern?

If MarkedPosition=1 then begin
irgendwas mit SetEntryPrice = 1234 o.ä.
...
end;

Bin daran interessiert, daß die Equity-Curve den Limit-EntryPrice und nicht den StopPrice verwendet. Ich möchte nur einen Backtest machen - also keine Realtime-Strategie bauen. Deshalb, Uwe, könnte ich auf das letzte, aktuelle Signal verzichten; für das vorletzte würden dann high[-1]-Werte vorliegen.


Viele Grüße
John




01.02.2003, 19:54 Profil von Füge  deiner Freunde-Liste hinzu Email an Uwe senden
Steffen
Senior Member TUG



Dabei seit: 01 2002
Herkunft: bei Leipzig
Beiträge: 186

Steffen ist offline
  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 John50055

Zitat:
Da ich noch keine TS-ID habe, vielleicht kannst Du hier mal schreiben,..........


Wenn du eine TS besitzt, so solltest du auch eine Customer ID haben. Damit bekommst du problemlos die Freischaltung auf alle Bereiche des Forums.
Der Bereich "Newbies" ist mehr für allgemeine Fragen zur TS - weniger für konkrete ELA Programmierung - sonst steht letztlich alles doppelt im Forum.

Wie du an den Erläuterungen von Uwe siehst führen bei der Programmierung"viele Wege nach Rom(zum Ziel)".
Das macht die TS so vielseitig. Auch wenn nicht alle Programmiermöglichkeiten original integriert sind, so ist nahezu alles über div. Zusatztools realisierbar. Für das konkrete "Wie" gibts dann den Bereich "Easy Language".


Gruß Steffen

Dieser Beitrag wurde von Steffen am 01.02.2003, 20:14 Uhr editiert.

01.02.2003, 20:02 Profil von Füge  deiner Freunde-Liste hinzu Email an Steffen senden
John50055
Member



Dabei seit: 01 2003
Herkunft:
Beiträge: 5

John50055 ist offline
  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,

@Steffen und Uwe, vielen Dank für Eure Bemühungen.

Bevor ich auf die TS umsteige, sollte ich schon in Erfahrung bringen, ob sich die Dinge, die mich interessieren, mit EL umsetzen lassen. Leider hat die TS auch in der Verarbeitung und Darstellung im Single-Tickbereich Schwächen, so daß sich auch andere Projekte nur ungenügend portieren (und verbessern) lassen würden.


Viele Grüße
John

01.02.2003, 21:32 Profil von Füge  deiner Freunde-Liste hinzu Email an John50055 senden
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR