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
Dieser Beitrag wurde von Uwe am 23.05.2003, 14:40 Uhr editiert.
|