Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Newbies (http://www.tradernet.org/wbb/board.php?boardid=3)
|-- Strategie mit zwei Zeitrahmen (http://www.tradernet.org/wbb/threadid.php?boardid=3&threadid=1416)


Geschrieben von Hans Beier am 22.05.2003, 13:06:

  Strategie mit zwei Zeitrahmen

Hallo EL-Profis,

ich teste gerade ein System mit zwei verschiedenen Handels-Zeitrahmen.
Dahinter steht die Idee, nur zu bestimmten Zeiten zu traden und flaue Handelszeiten zu umgehen.
Die ursprüngliche Formel bezieht sich nur auf einen Zeitrahmen, damit funktioniert es auch wunderbar.
Da ich aber zwei Zeiten nutzen möchte, bahe ich den Code etwas modifiziert und nun funktioniert es nicht mehr richtig. Ich kann den Fehler einfach nicht finden.
Wer kann mir helfen?

Liebe Grüße

Hans




Formula:

inputs: StartTime1(0910), EndTime1(1100), EndTimeExit1(1115),
StartTime2(1300), EndTime2(1430), EndTimeExit2(1445),
Series(Close),
L1(4),P1(50),L2(12),P2(0),Buyline(0),Selline(0);


vars: Flag(1), IRHigh(0), IRLow(0), IRHighBar(0), IRLowBar(0), HighBar(0), LowBar(0), Offset(0);

value1 = JokerForIndikator(series,L1,P1,L2,P2);


if Time >= StartTime1 and Time <= EndTime1 then
begin



IF value1 crosses above BuyLine Then Buy 1 share at market;

IF value1 crosses below SelLine Then Sell 1 share at market;

end;

if Time > EndTimeExit1 then
begin
ExitLong("\Time L\");
ExitShort("\Time S\");

end;

(bis hierhin funktionierts)



if Time >= StartTime2 and Time <= EndTime2 then
begin



IF value1 crosses above BuyLine Then Buy 1 share at market;

IF value1 crosses below SelLine Then Sell 1 share at market;

end;

if Time > EndTimeExit2 then
begin
ExitLong("\Time L\");
ExitShort("\Time S\");

end;


Geschrieben von Uwe am 22.05.2003, 14:44:

 

Zitat:
Original von Hans Beier
Hallo EL-Profis,

ich teste gerade ein System mit zwei verschiedenen Handels-Zeitrahmen.
Dahinter steht die Idee, nur zu bestimmten Zeiten zu traden und flaue Handelszeiten zu umgehen.
Die ursprüngliche Formel bezieht sich nur auf einen Zeitrahmen, damit funktioniert es auch wunderbar.
Da ich aber zwei Zeiten nutzen möchte, bahe ich den Code etwas modifiziert und nun funktioniert es nicht mehr richtig. Ich kann den Fehler einfach nicht finden.
Wer kann mir helfen?

Liebe Grüße

Hans

Formula:

inputs: StartTime1(0910), EndTime1(1100), EndTimeExit1(1115),
StartTime2(1300), EndTime2(1430), EndTimeExit2(1445),
Series(Close),
L1(4),P1(50),L2(12),P2(0),Buyline(0),Selline(0);


vars: Flag(1), IRHigh(0), IRLow(0), IRHighBar(0), IRLowBar(0), HighBar(0), LowBar(0), Offset(0);

value1 = JokerForIndikator(series,L1,P1,L2,P2);


if Time >= StartTime1 and Time <= EndTime1 then
begin
IF value1 crosses above BuyLine Then Buy 1 share at market;
IF value1 crosses below SelLine Then Sell 1 share at market;
end;

if Time > EndTimeExit1 then

begin
ExitLong("\Time L\");
ExitShort("\Time S\");
end;

(bis hierhin funktionierts)

if Time >= StartTime2 and Time <= EndTime2 then
begin
IF value1 crosses above BuyLine Then Buy 1 share at market;
IF value1 crosses below SelLine Then Sell 1 share at market;
end;
if Time > EndTimeExit2 then
begin
ExitLong("\Time L\");
ExitShort("\Time S\");
end;


Mit der Abfrage, die ich oben rot angelegt habe, erhältst Du zu jedem Zeitpunkt nach EndTimeExit1 ein EXIT..., also auch in der Zeit nach StartTime1. Daher mußt Du beide Blöcke zusätzlich voneinander trennen. dies kann auf verschiedenen Wegen funktioniern. Ich habe hier die Änderung über die Logik-Verknüpfung gewählt und hoffe sie klappt, da ich es nicht geprüft habe. Die Prüfung auf die Überschneidungsfreiheit der Eingabezeiten ist nicht Gegenstand dieser Änderung.

code:
inputs: StartTime1(0910), EndTime1(1100), EndTimeExit1(1115),
StartTime2(1300), EndTime2(1430), EndTimeExit2(1445),
Series(Close),
L1(4),P1(50),L2(12),P2(0),Buyline(0),Selline(0);

vars: Flag(1), IRHigh(0), IRLow(0), IRHighBar(0), IRLowBar(0), HighBar(0), LowBar(0), Offset(0);

value1 = JokerForIndikator(series,L1,P1,L2,P2);

if (Time >= StartTime1 and Time <= EndTime1) Or
(Time >= StartTime2 and Time <= EndTime2) then
begin
IF value1 crosses above BuyLine Then Buy 1 share at market;
IF value1 crosses below SelLine Then Sell 1 share at market;
end;

if (Time > EndTimeExit1 and time < StartTime2) OR
(Time > EndTimeExit2) then
begin
ExitLong("\Time L\");
ExitShort("\Time S\");
end;



Im Übrigen bitte ich, diese Themenbeiträge in dem entsprechnden Unterforum zu eröffnen, sofern auf meine Stellungnahme in der Zukunft Wert gelegt wird.

Gruß,
Uwe


Änderung:
if (Time > EndTimeExit1 and time < StartTime2) OR


Geschrieben von Hans Beier am 22.05.2003, 22:43:

 

Danke Uwe für die Mühe, die Du Dir gegben hast!

Leider hat sich an der Funktionsweise der Formel nichts geändert. Der EndtimeExit2 wird immer noch nicht korrekt ausgelöst. Vielmehr wird bei jedem Kaufauftrag nach Starttime2 gleichzeitig auch ein Verkaufssignal ausgelöst und nicht erst bei EndTimeExit2. Gibt es eine Lösung?

Hans


Geschrieben von Uwe am 23.05.2003, 14:39:

 

Zitat:
Original von Hans Beier
Danke Uwe für die Mühe, die Du Dir gegben hast!

Leider hat sich an der Funktionsweise der Formel nichts geändert. Der EndtimeExit2 wird immer noch nicht korrekt ausgelöst. Vielmehr wird bei jedem Kaufauftrag nach Starttime2 gleichzeitig auch ein Verkaufssignal ausgelöst und nicht erst bei EndTimeExit2. Gibt es eine Lösung?

Hans



Das war ein Kopierfehler von mir. Natürlich soll ein EXIT nur dann ausgelöst werden, wenn
  • entweder EndTimeExit1 überschritten ist, aber StartTime2 noch nicht erreicht ist,
  • oder aber EndTimeExit2 überschritten ist.

    Die Änderung habe ich in den oberen Beitrag vermerkt.

  • Powered by: Burning Board 1.1.1 © 2001 by WoltLab