Geschrieben von _Uwe am 09.12.2000, 19:10:
RE: Aroon Function
Hallo Ina!
Nichts mit Urlaub. Las Deinen Beitrag bei Bekannten und antwortete daher aus dem Stehgreif. Dennoch sollte der Quellcode als Grundlage zur Lösung Deines Programmwunsches ausreichend sein oder habe ich eione falsche Vorstellung von dem mathematischen "Innenleben" des Aroon-Ansatzes?
inputs: ViewLen(14), LevelUp(75), LevelDn(0); vars: AroonUp(0), AroonDn(0);
AroonUp=100*(ViewLen - HighestBar(High, ViewLen))/ViewLen; AroonDn=100*(ViewLen - LowestBar(Low,ViewLen))/ViewLen;
if AroonUp>LevelUp then ..... if AroonUp>LevelUp then ..... if AroonUp>LevelUp or AroonUp>LevelUp then .....
...
Eine Eigentliche Funktion daraus zu bauen lohnt sich eigentlich nicht, aber wenn Du diese Zeilen des öfteren Einsetzen möchtest kannst Du natürlich folgende Funktionen schreiben:
{ Function: AroonUp } inputs: Lenght(Numeric); AroonUp=100*(Length - HighestBar(High, Length))/Length;
{ Function: AroonDn } inputs: Lenght(Numeric); AroonDn=100*(Length - LowestBar(Low, Length))/Length;
Mit diesen Beiden Funktionen würde also die Schreibweise in einem EL-Programm sich wie folgt vereinfachen:
inputs: ViewLen(14), LevelUp(75), LevelDn(0); vars: ValueAroonUp(0),ValueAroonDn(0);
ValueAroonUp=AroonUp(ViewLen); ValueAroonDn=AroonDn(ViewLen);
if ValueAroonUp>LevelUp then ..... ...
Den "Umweg über die Variable ValueAroon.. würde ich immer dann wählen, wenn der Wert mehr als einmal je Berechnungsablauf/Bar benutzt wird.
Der Indikator selbst sagt ja eigentlich nur aus, wie nah das höchste Hoch (AroonUp) bzw. das tiefste Tiel (AroonDn) am aktuellem Bar liegt.
Hoffentlich bin ich mit meiner Antwort Deiner Fragestellung gerechter geworden, den beim ersten Ansatz hatte ich tatsächlich das Wort Funktion in seiner programmtechnischen Bedeutung nicht wahrgenommen.
Viel Erfolg Uwe
|