Tradestation: Einstieg und Stopp auf verschiedenen Zeitebenen
Die Entry Signale werden auf einem 60-Minuten Chart berechnet. Der Stop soll jedoch auf einem 5-Minuten Chart berechnet werden, da die Stops im 60-Minuten zu spät kommen.
Das sollte doch mit data1 und data2 möglich sein, jedoch ist mir nicht klar wo ich data1 und data2 einfügen soll.
Danke für die Hilfe.
Gruß
input: price(Close),prozentstop(0.4),InitialLevel(20),StopLoss(1;
Vars: NumberofBars(0),StopPrice(0),KorOben(0),KorUnten(0);
KorOben = Entryprice + InitialLevel points;
KorUnten = Entryprice - InitialLevel points;
if range[4] > range and Range[3] > range and range[2] > range and range[1] > range
and high[1] > high and low[1] < low
then sell next bar at lowest(low,1) -1 point stop;
if range[4] > range and Range[3] > range and range[2] > range and range[1] > range
and high[1] > high and low[1] < low
then buy next bar at highest(high,1) +1 point stop;
NumberofBars = Barssinceentry;
StopPrice = (highest(high ,NumberofBars) - StopLoss points);
if marketposition = 1 and Highest(High ,NumberofBars) > KorOben then
ExitLong("MyTrail L") at StopPrice Stop;
setstoploss(close/100*prozentstop*bigpointvalue);
setexitonclose;
@mathe
"Das sollte doch mit data1 und data2 möglich sein, "
Ja!
"jedoch ist mir nicht klar wo ich data1 und data2 einfügen soll.""
Wenn kein data2 hinzugefügt wird, geht/gilt alles für data1.
Data2 fügt man dort ein, welches sich auf diese Datenreihe bezieht.
Beispiel:
Condition1 = low of data2 < low[1] of data2;
if condition1 AND Time = 2200 AND marketposition <> 1 then begin
buy this bar on close;
Buyprice = close;
Exitpreis = low of Data2;
value2 = value2 + 1;
Gruß Thomas
Danke für die Antwort, jedoch kann ich den Ausführungen nicht folgen.
data1 = 60Minuten
data2 = 5Minuten
Ich stell nochmals den Code mit data1 und data2 rein, jedoch funktioniert es so nicht. RunTime Error/Floating point numerical overload
Bin für jede Hilfe dankbar.
input: price(Close),prozentstop(0.4),InitialLevel(20),StopLoss(18);
Vars: NumberofBars(0,data2),StopPrice(0,data2),KorOben(0,data1),KorUnten(0,data1);
KorOben = Entryprice + InitialLevel points of data1;
KorUnten = Entryprice - InitialLevel points of data1;
if range[4] > range and Range[3] > range and range[2] > range and range[1] > range
and high[1] > high and low[1] < low
then sell next bar at lowest(low,1) -1 point of data1 stop ;
if range[4] > range and Range[3] > range and range[2] > range and range[1] > range
and high[1] > high and low[1] < low
then buy next bar at highest(high,1) +1 point of data1 stop ;
NumberofBars = Barssinceentry;
StopPrice = (highest(high ,NumberofBars)- StopLoss points)of data2;
if marketposition = 1 and Highest(High ,NumberofBars)of data2 > KorOben then
ExitLong("MyTrail L") at StopPrice Stop;
setstoploss(close/100*prozentstop*bigpointvalue);
setexitonclose;
@ mathe [#3]
Man(n) kann doch jedes System auf kürzere Zeitreihen "runterrechnen" (umcodieren) und dann z.B. nur noch die 5min bars zeigen und den Rest vergessen. Nur als eine Möglichkeit.
gruss hans
Ja klar geht das, aber bei mir funktioniert es nicht.
Dieses Regelwerk:
NumberofBars = Barssinceentry;
StopPrice = (highest(high ,NumberofBars) - StopLoss points);
if marketposition = 1 and Highest(High ,NumberofBars) > KorOben then
ExitLong("MyTrail L") at StopPrice Stop;
soll sich auf data2 = 5Minuten beziehen, und dies bekomme ich einfach nicht hin.
Es wäre schön, wenn mir jemand konkret helfen könnte.
Herzlichen Dank
@mathe
Wenn das KorOben sich auf data2 bezeihen soll, dann würde ich es auch so beschriften.
KorOben = Entryprice + InitialLevel points of data2;
und den StopPrice so versuchen:
StopPrice = (highest(high ,NumberofBars) - StopLoss points) of data2;
Versuchs mal.
Oh, KorOben gehört ja zu data1. Fällt also raus:-)
Danke für die Hilfe, aber so wie Ihr das hier beschreibt funktioniert es nicht.
Habe schon einige Möglichkeiten mit data1 und data2 durchprobiert.
Es scheint wohl ein umfangreicheres Problem zu sein.
Stehe voll auf dem Schlauch.Wenn ich das Programm nur über den 60-MinutenChart laufen lasse, also ohne data1 und data2. Dann kommen die StopSignale beim Backtesting immer erst zum nächsten 60-Minuten Bar und das verfälscht das Ergebnis u.U. erheblich.