Geschrieben von _Uwe am 16.03.2001, 13:10:
RE: @uwe ...signalerstellung
Hallo, Klaus!
Der Grund des Problems dürfte in der Verwendung der EXITxxx-Anweisung liegen, obwohl Du ein "Drehsystem" einsetzt, solange Du noch keien drei Trages pro Tag ausgeführt hast. Die If-EXITxxx-Anweisungen werden aber zusätzlich ausgeführt, wenn die buy/ell-Bedingung greift.
Du hast nun zwei Möglichkeiten: 1. Das System soll ständig im Martkt sein, solange keine drei Trade am Tag erfolgt sind. Die EXIT-xxxx-Abfragen sind daher nur nach Ausführung des dritten Handels auszuführen:
input: price(close); var: refopen(0); var: xTradePerDay(0);
if date > date[1] then begin xTradePerDay=0; refopen=open; end;
if (BarsSinceEntry=0) and (MarketPosition(0) <>0) then xTradePerDay = xTradePerDay+1;
if xTradePerDay < 3 then begin if price > refopen then buy next bar at Market else if price < refopen then sell next bar at Market; end else if xTradePerDay=3 then begin if price < refopen then exitLong; if price > refopen then exitShort; end;
setExitOnClose;
Für die Zweite Alternative, die sinnvoll ist, wenn es zu einem Schwanken um dei Ref-Linie kommt, ist ein Programm mit einer veränderten Logik erforderlich, die feststellt, ob eine Buy-, Sell, Exit-Bedingung während des Bars entstanden ist, um nur eine dieser Aktionen auszuführen (EXITLONG-Bedingung darf nicht gleichzeit mit SELL-Bedingung entstehen.
if EXITLONG-BEdingung then EXITLONG else begin "Sell"bedingung untersuchen end if EXIT-Sgort-Bedingung then EXITSHORT else begin "buy"bedingung untersuchen end;
Gruß Uwe
P.S. Bitte Vorsicht, Programmmteile sind nur Entwürfe ohne Tests!
|