Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Newbies (http://www.tradernet.org/wbb/board.php?boardid=3)
|-- EL Signal programmieren (http://www.tradernet.org/wbb/threadid.php?boardid=3&threadid=2083)


Geschrieben von stisa am 05.07.2012, 17:36:

  EL Signal programmieren

Hallo an alle,

ich beschäftige mich erst seit kurzem mit der Programmierung in EasyLanguage und daher weiß auch noch nicht so richtig was funktioniert und was nicht. Mein folgendes Signal soll ab einer bestimmten Barnummer in vorher festgelegten Abständen zur nächsten Barnummer springen und dort testen ob die Bedingung erfüllt ist oder nicht, dann zur nächsten barnummer und wieder testen usw. hier ein kleines Beispiel

Start Barnummer = 2; Abstand = 5
nächste Barnummer 7 und dann bei barnummer 12 schauen ob beding. stimmt, dann 17 usw.

Hier das Programm dazu:

Input: ZyklusBegin(2), ZyklusLaenge(5);

Var: Start(0), Abstand(0), PatC(0), Pat(false);

Start = 0;
Abstand= 0;
PatC = 0;

Pat = (Low[2] > Low[1] and Low[1] < Low);

if CurrentBar = ZyklusBegin then
Start = CurrentBar;

if (CurrentBar > Start) and (CurrentBar = ZyklusBegin + ZyklusLaenge) then
Abstand = Currentbar - Start;

if Abstand > 0 then
while lastbaronchart = false
begin
Start = Start + Abstand;
Print(File("C:...."), CurrentDate);
if Pat then
PlotPaintBar(Low,"Pat",green);
PatC = PatC + 1;
end
else
Abstand = 0;

if lastbaronchart then
Begin
Print(File("C:..."), numtostr(PatC,0));
End;

Erst kam eine Fehlermeldung das meine MaxBarsBack nicht stimmen, das habe ich geändert und jetzt kommt entweder die Fehlermeldung, dass ich durch Null dividieren würde und das (natürlich) nicht geht oder er bricht einfach ab.
Kann mir bitte jemand helfen und sagen warum das nicht geht, ich sitze jetzt schon geschlagene 7 Tagen an dem Problem und hau mir die Nächte um die Ohren, weil es einfach nicht geht. Schon mal im Voraus vielen vielen Dank.


Geschrieben von Klaus am 08.07.2012, 16:30:

 

Hallo Stisa,

ich vermute, Du hast eine komplett falsche Vorstellung wie die TS arbeitet? Die while-Schleife in Deinem Code macht so gar keinen Sinn und führt zu unendlichen Durchläufen - bis der Indikator abbricht. Tatsächlich wird Dein (bzw. jeder) Code automatisch für jeden Bar im Chart durchlaufen und Du musst (darfst) dafür keine Schleife machen!

Weiterhin ist es nicht sinnvoll die Barnummern absolut zu verwenden, da die erste Bar im sichtbaren Chart nicht BarNumber 1 ist, sondern das abhängig von den BarsBack ist. Besser wäre es dem Chart genügend Historie zu geben und ab einem bestimmten Datum mit der Zählung der Bars zu beginnen.

Orientier Dich doch einfach mal an den vorhandenen Indikatoren, die sind alle im ELA-Code vorhanden und man kann sie sich anschauen...

Gruss
-Klaus

Powered by: Burning Board 1.1.1 © 2001 by WoltLab