Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Posts aus dem alten Userforum (http://www.tradernet.org/wbb/board.php?boardid=15)
|-- Programmierproblem. (http://www.tradernet.org/wbb/threadid.php?boardid=15&threadid=947)


Geschrieben von _Rita Vera am 19.10.2000, 14:10:

  Programmierproblem.

Hallo Leute, kann mir jemand helfen. Bin blutige Anfängerin und möchte folgendes programmieren:

Wenn das aktuelle BAR das Hoch der (z.B. 1-5) vorhergehenden Bars überschreitet, möchte ich ein Kaufsignal haben. Ich bekomme das nicht hin. Mein Signal liegt immer auf dem nächsten BAR bei OPEN und nicht auf dem aktuellen am antsprechenden Punkt.
Überhaupt, was ich auch programmiere: mein Signal liegt immer auf open oder close.
Was nu.....?

Bitte,bitte gebt mir einen brauchbaren Tip.

Herzlichen Dank

RITA


Geschrieben von _Uwe am 19.10.2000, 17:10:

  RE: Programmierproblem.

Hallo Rita,

mit welcher Version arbeitest Du, TS4 oder TS2000i?

Eine Anweisungsmöglichkeit:

if BarsSinceEntry>10 then Exitlong;
value1=highest(High,5);
if value1 <= high then buy at value1 stop;


sollte funktionieren.

Viel Erfolg
Uwe


Geschrieben von _Rita Vera am 20.10.2000, 15:10:

  RE: Programmierproblem.

hallo Uwe,

recht herzlichen Dank für Deinen Tip. Funktioniert leider nicht. Aber vermutlich mach ich da was falsch, zumal ich überhaupt nicht verstehe, was Du mir da geschriebenn hast. Ich fange erst an mit programmieren und bin über die If-Funktionen (If high> .....) noch gar nicht hinausgekommen.

Dennoch vielen Dank für Deine Hilfe.


Gruss Rita


Geschrieben von _Uwe am 20.10.2000, 21:10:

  RE: Programmierproblem.

Hallo Rita,

dass Du erst mit dem Programmieren anfängst, ist doch kein Problem, sondern ein notwendiges "Übel", dass jeder, der sich damit beschäftigen möchte, durchlaufen hat.

Dein Hinweis allerdings zeigt mir, dass ich das kleine System etwas besser Dokumentieren muß. Leider hast Du aber auch nicht geschrieben, wo detailliert der Fehler auftritt, der das funktionieren verhindert. Der "Dreizeiler" ist nämlich durchaus ein System, was unter TS4 läuft.

Im PowerEditor (PE) eröffnets Du das Fenster für ein neues SYSTEM und benennst es.

Die nachfolgenden vier EasyLanguage-Zeilen (EL) können per Kopiermöglichkeit oder manuell eingegeben werden (konnte sie gegenüber der 1.Fassung vereinfacht)


vars: refHigh(0);
if BarsSinceEntry>10 then Exitlong;
refHigh=highest(High,5);
buy at refHigh stop;

Zur Erklärung:

1. Zeile: vars: refHigh(0);
(hier nur eingeführt, da ich nicht weiß, ob TS2000i vordefinierte Variablennamen kennt)

Es wir eine Variable mit dem Namen refHigh definiert (Platz reserviert, wo ein Wert abgelegt werden kann) und mit einer Null vorbelegt.

2. Zeile: if BarsSinceEntry>10 then Exitlong;
In der ersten Zeile wird geschaut, ob das geladene System seit nunmehr 10 Bars im Markt positioniert ist (eben: seit Einstieg; IF BarsSinceEntry).

Ist dies der Fall, dann wird die Bosition geschlossen (in diesem Fall, da nur Long-Positionen aufgebaut werden, kann eine Zusatzabfage bezüglich der Positionsart entfallen)

3.Zeile: refHigh=highest(High,5);

Mit der Funktion Highest(PRICE, LENGTH) wird das höchste Hoch der zurügliegenden Bars ermittelt, wenn mann ein Zeitfenster der Länge LENGTH öffnet. Dieser Wert wird in die Variable(Speicherplatz) mit dem oben bei Schritt 1 definierten Namen refHigh abgelegt.

4.Zeile: buy at refHigh stop;

Die Kauforder ist damit formuliert.



Kürzer kann natürlich geschriben werden, wobei die erste Zeile eben hier nur notwendig wird, um mehr als ein Trade zu generieren.

if BarsSinceEntry>10 then Exitlong;
buy at highest(High,5) stop;


Vielleicht hilft diese Form weiter. Absonsten gehe bitte auf die Fehlerdarstellung, die Du produzierst, näher ein.
Viel Erfog
Uwe


Geschrieben von _stephen am 26.10.2000, 15:10:

  RE: Programmierproblem.

hallo uwe!
ich entnehme deinem text, dass die var. in der ts2000 nicht mehr definiert werden müssen. ist das richtig?

stephen


Geschrieben von _Uwe am 26.10.2000, 17:10:

  RE: Programmierproblem.

Hallo stephen,

Deine Frage kommt zu früh, da die TS2000i bei mir noch nicht im Einsatz ist.

Unter vordefinierte Variablen-Namen sind jedoch alle Variablen zu verstehen, die nicht explizit über die Definitionzeile VARS deklariert werden müssen (z.B. date, time, Open, High,.... und auch Variable1, Variable2, ..., Condition1, Condition2,... in TS4)

Da ich nicht weiß, ob es die Vordefinition Variable1 in TS2000i gibt, habe ich die Variable refHigh eingeführt, die ich natürlich sowohl in der TS4 als auch in der TS2000i durch die VARS:-Zeile deklarieren muß.

Also schön auch weiterhin alles bekanntgeben, was nicht bekannt ist ;-)

Uwe


Geschrieben von _Gerhard am 04.11.2000, 16:10:

  RE: Programmierproblem.

Hallo Rita,

wenn ich Deine Zeilen richtig verstanden habe, dann liegt Dein Problem darin, dass die Kauforder immer auf dem NextBar liegt, statt auf dem CurrentBar.
Das ist in EasyLang. tatsächlich immer so. Eine Order, die durch den CurrentBar getriggert wird, wird erst beim Close dieses Bars erzeugt und dann beim NextBar ggf. ausgeführt!
Du kannst Buy-Statements nur absetzen als:
Buy this bar on Close oder Buy next bar ... !
Eine Möglichkeit wäre zB, wenn Du statt des 5-Tage-Hochs auf das 4-Tages-Hoch triggerst und dann ein Kaufsignal absetzt Buy next bar at High + 1 point oder ...or higher oder eine Stop-Buy-Order.
Lies Dir die genaue Funktionsweise der Ordertypen nochmal genau durch.
Es ist nicht immer ganz einfach zu verstehen, insbes. auch die Stop-Orders.

Ich hoffe, es hilft!
Gruß
Gerhard

Powered by: Burning Board 1.1.1 © 2001 by WoltLab