Autor |
|
gandalf
Member
Dabei seit: 12 2002
Herkunft:
Beiträge: 7
|
|
hi,
Ich hätte eine kleine Frage bezüglich Easylanguage, wäre super wenn mir jemand helfen würde.
ich brauche folgendes:
So ähnlich wie das Signal "Close at the end of the day" bräuchte ich dass z.b. nach 12 uhr kein neues Entry ausgelöst wird. Aber ein bestehendes Signal soll aktiv bleiben und einfach mit den Parametern des Handelssystems geschlossen werden, aber es soll eben kein neues Signal entstehen.
Ist das machbar ? Hat das vielleicht schon jemand mal programmiert ?
Wäre super wenn mir dabei jemand helfen würde !
Besten Dank im voraus,
Gandalf
Dieser Beitrag wurde von gandalf am 20.12.2002, 21:48 Uhr editiert.
|
|
20.12.2002, 13:29 |
|
Uwe
Super Moderator
Dabei seit: 12 2001
Herkunft:
Beiträge: 718
|
|
Zitat: Original von gandalf
hi,
Ich hätte eine kleine Frage bezüglich Easylanguage, wäre super wenn mir jemand helfen würde.
ich brauche folgendes:
So ähnlich wie das Signal "Close at the end of the day" bräuchte ich dass z.b. nach 12 uhr kein neues Entry ausgelöst wird. Aber ein bestehendes Signal soll aktiv bleiben und einfach mit den Parametern des Handelssystems geschlossen werden, aber es soll eben kein neues Signal entstehen.
Ist das machbar ? Hat das vielleicht schon jemand mal programmiert ?
Wäre super wenn mir dabei jemand helfen würde !
Besten Dank im voraus,
Gandalf
Hallo Gendalf!
Umschliesse Deine Entryanweisung bzw. -bedingung einfach mit eienr IF-Klammer:
If time<=1200 then
....
....Entryanweisungen
....
end;
If time<=1200 then
....
....Entrybedeingung
....
else
....
....BuyCond=false;
....SellCond=false;
....
end;
If buyCond or SellCond then
....Entryanweiseungen
end;
Während in der ersten Fassung durchaus Signale, für die Anweisungen ausserhabl des IF-Blocks stehen, erzeugt werden aber eben nicht ausgeführt werden, werden bei der zweiten Variante generell nur in der Zeit bis 1200 Singale berückssichtigt, die innerhalb des IF-Blocks stehen.
Gruß,
Uwe
|
|
20.12.2002, 21:23 |
|
gandalf
Member
Dabei seit: 12 2002
Herkunft:
Beiträge: 7
|
|
Hi Uwe,
wieder mal ein Grosses DANKE für die schnelle Antwort...
es klappt super, danke !
nur noch ein kleines Problem:
wenn das System z.b. das ein short entry um 11:30 uhr generiert, und es wird 12 uhr und ich bin noch short mit diesem signal, die ganze Strategie ist nicht mehr aktiv, weil ja das definiert wurde: "If time<=1200 then..." nach 12:00 passiert dann nix mehr, und die um 11:30 eröffnete Position schliesst dann erst am Abend bzw. am nächsten Tag. Ist es glaubst du möglich, dass das von der Strategie generierte Signal um 11:30 auch nach 12 uhr erst geschlossen wird, aber eben ab 12 uhr kein neues Signal mehr erzeugt wird ?
Ich weiss, das ist jetzt kompliziert ;-)))
Wenn es nicht geht, kein Problem..
Danke für die bisherige Hilfe !!!
Beste Grüsse,
Gandalf
|
|
20.12.2002, 22:37 |
|
Uwe
Super Moderator
Dabei seit: 12 2001
Herkunft:
Beiträge: 718
|
|
Zitat: Original von gandalf
...
nur noch ein kleines Problem:
wenn das System z.b. das ein short entry um 11:30 uhr generiert, und es wird 12 uhr und ich bin noch short mit diesem signal, die ganze Strategie ist nicht mehr aktiv, weil ja das definiert wurde: "If time<=1200 then..." nach 12:00 passiert dann nix mehr, und die um 11:30 eröffnete Position schliesst dann erst am Abend bzw. am nächsten Tag. Ist es glaubst du möglich, dass das von der Strategie generierte Signal um 11:30 auch nach 12 uhr erst geschlossen wird, aber eben ab 12 uhr kein neues Signal mehr erzeugt wird ?
....
Hallo Gandalf!
Genau deswegen hatte ich Dir die Varianten so allgemein wie möglich gehalten, denn natürlich hast Du recht, dass die Strategy natürlich auch nach 1200 noch seine offne Position überwachen muß können.
Da Du keine näheren Angaben zur Art Deiner Sinale machst, vermute ich, dass Du eine "Drehsystem" gebaut hast, das seine Positionierung durch die Gegenposition oder am Tagesende wechselt bze. glattstellt. In diesem Fall mußt Du jeweils eine weitere Bedingung für die EXIT Singnale einbauen, die natürlich dann nicht in dem IF-Block geklammert werden dürfen.
Beispiel: Kaufe wennn Close > MA(Close,35); Verkaufe wenn Close < MA(Close,35)
vars: MA(0), buyCond(false), sellCond(false)
MA=Average(Close,35);
buyCond=Close > MA and MarketPosition < 1;
sellCond=Close < MA and MarketPosition > -1;
if time <= 1200 then
begin
if buyCond then buy at market;
if sellCond then sell at market;
end
else
begin
{....Hier nun der Block, der nach 1200 ausgeführt wird....}
if MarketPosition = 1 and SellCond then EXITLONG;
if MarketPosition = -1 and buyCond then EXITSHORT;
end;
Hoffe, dass an dem Beispiel, das nicht auf Lauffähigkeit gestestet ist, der Grundgedanke der Vorgehensweise herauszulesen ist und Du es für Deinen Fall umsetzen kannst. Ansonsten einfach bitte noch Mal fragen.
Gruß,
Uwe
|
|
21.12.2002, 01:25 |
|
gandalf
Member
Dabei seit: 12 2002
Herkunft:
Beiträge: 7
|
|
Hi Uwe,
danke für deine Hilfe !! , es funktioniert super.. thanks..
Beste Grüsse,
Gandalf
|
|
21.12.2002, 13:50 |
|
|