equilla Lehrgang - Virtueller Klassenraum (Lösungen)

Eröffnet von nordie im Board Tipps & Tricks für Tradesignal-Einsteiger und Profis

Seitenlänge102030
Seite 1 von 212
#12: 08.06.2004 23:36 nordie
Lösungen zu Lektion 12 - Projektaufgaben

1. Insides und Outsides in Candledarstellung
Die aus der ersten Projektaufgabe bekannte Aufgabe zur Erkennung von Insides und Outsides wollen wir nun erweitern. Zur Erinnerung: Inside- und Outside-Bars finden Beachtung durch Trader wenn es um kurzfristige Kursbewegungen geht. Die Definition für diese beiden Kursmuster ist wie folgt:
INSIDE
Das Tief des aktuellen Bars muss größer oder gleich dem Tief
des vorherigen Bars sein
UND das Hoch des aktuellen Bars muss kleiner oder gleich dem Hoch
des vorherigen Bars sein.

OUTSIDE
Das Tief des aktuellen Bars muss kleiner dem Tief
des vorherigen Bars sein
UND das Hoch des aktuellen Bars muss größer dem Hoch
des vorherigen Bars sein.

Wie auch in der ersten Projektaufgabe zu diesem Thema soll innerhalb unseres Erkennungsprogramms über zwei voneinander unabhängige if-then-Abfragen erkannt werden, ob es sich um einen Inside- oder Outside-Bar handelt. Wenn eine dieser beiden Chartmuster erkannt wird, soll die aktuelle Kerze wie auch die vorhergehende Kerze eingezeichnet werden, so dass man die passende Inside- oder Outside-Kombination auch optisch besser beurteilen kann.
Zusätzlich soll bei einem Inside ein nach unten gerichtetes Dreieck der Farbe Grün und Größe 10 auf dem Höchstkurs der aktuellen Kerze gezeichnet werden. Passend dazu soll bei einem Outside ein nach oben gerichtetes rotes Dreieck gleicher Größe auf dem Tiefstkurs des aktuellen Bars den Outside markieren.

// -----------------------------------------------
// Programm zur Erkennung von Insides und Outsides
// incl. Darstellung der passenden Candles
// -----------------------------------------------


// Inside
if ( (low[0] >= low[1]) and
        (high[0] <= high[1])
    ) then
    begin
        DrawSymbol (high,"Inside",SymbolTriangleDown,10,Green,Green);
        DrawCandleStick[1] (open[1],igh[1],ow[1],lose[1],arkGreen,ed,arkGray);
        DrawCandleStick (open,high,low,close,DarkGreen,Red);
    end;


// Outside
if ( (low[0] < low[1]) and
        (high[0] > high[1])
    ) then
    begin
        DrawSymbol (low,"Outside",SymbolTriangleUp,10,Magenta,Magenta);
        DrawCandleStick[1] (open[1],igh[1],ow[1],lose[1],arkGreen,ed,ed,arkGray);
        DrawCandleStick (open,high,low,close,DarkGreen,Red);
    end;


// End Of Code
[opencode id=664778]

2. Die Heikin Ashi Methode
Um Schwächen in der Darstellung mittels normaler Candlestick-Charts bei der Erkennung des vorherrschenden Trends abzumildern, wurde die Heikin Ashi Methode von Dan Valcu entwickelt. Sie glättet die Auf- und Abwärtsbewegungen in einem Chart und erreicht damit eine Darstellung, welche eindeutiger in eine Richtung tendiert und somit ein klareres Bild des betrachteten Underlyings herstellt.

Die vier OHLC-Werte Open, High, Low, Close einer Kerze werden für die Heikin Ashi Chartdarstellung neu berechnet. Hierzu wird wie folgt vorgegangen:
HAclose	= (open + high + low + close) / 4;
HAopen	= (HAopen_gestern + HAclose_gestern) / 2;
HAhigh	= Maximum aus (high, HAopen, HAclose);
HAlow		= Minimum aus (low, HAopen, HAclose);

Die Basis der Berechnungen ist der HAclose-Wert. Er wird als eine Art Mittelpunkt des Tages betrachtet und dient allen anderen Werten als Basis ihrer Berechnung. Der HAopen-Wert errechnet sich aus dem Mittelwert des gestrigen HAopen und HAclose. Der HAhigh-Wert ist der maximale Wert aus den 3 Kursdaten high, HAopen und HAclose, wohingegen der HAlow-Wert der minimale Wert aus low, HAopen und HAclose ist.
Wir wollen mit diesen Berechnungsgrundlagen einen Heikin Ashi Candlestick-Chart kreieren. Die steigenden Kerzen sollen dunkelgrün und die fallen Kerzen in rot dargestellt werden. Die Rahmenfarbe ist dunkelgrau. Die Werte der 4 Heikin Ashi OHLC-Werte sollen im Vorwege in 4 Variablen berechnet und gespeichert werden, so dass Berechnung und Darstellung voneinander getrennt werden können.

// -----------------------------------------------
// Programm zur Darstellung der Heikin Ashi Methode
// in Form von Candlesticks ohne Startbedingung
// -----------------------------------------------

// Variables Definitions
vars:
    haOpen (0),
        haHigh (0),
        haLow (0),
        haClose (0);

        
// Calculations
haOpen = (haOpen[1] + haClose[1]) / 2;
haClose = (open + high + low + close) / 4;
haHigh = MaxItems (high,haOpen,aClose);
haLow = MinItems (low,haOpen,aClose);


// Drawing the Indicator (Candles)
DrawCandlestick (haOpen,aHigh,aLow,aClose,arkGreen,ed,arkGray);


// End Of Code
[opencode id=664779]

3. Die verbesserte Heikin Ashi Methode mit Startbedingung
Wenn wir uns in der vorhergehenden Abbildung die ersten Bars unserer soeben erstellten neuen Chartmethode anschauen, stellen wir ein Problem fest:

Aufgrund des Zugriffs auf Werte aus der Vergangenheit (HAOpen_gestern und HAclose_gestern) muss bei der Ermittlung der neuen Heikin Ashi Candles immer mit einem Bar "Verlust" ausgegangen werden, da die Werte des vorhergehenden Bars zur Verfügung stehen müssen. Dies ist aber am ersten Bar eines Charts nicht der Fall.

Aufgrund dieses Verhaltens muss zur Berechnung eine Startbedingung erstellt werden. Da die beiden notwendigen Werte nicht zur Verfügung stehen (s.o.) wird als Startbedingung für den ersten Bar in einem Chart festgelegt, dass
HAclose	= close;
HAopen	= open;

sein wird. Somit wird ein über mehrere Bars andauerndes "Einschwingen" des Heikin Ashi-Charts vermieden! Dieses Einschwingen würde aufgrund der Tatsache entstehen, dass am ersten Bar HAclose und HAopen Null wären und sich die dann folgenden Werte erst dem tatsächlichen Kursniveau annähern müssten.

Wir machen uns unser Equilla-Wissen derart zunutze, dass wir die 4 OHLC-Werte für die Heikin gAshi Candles mit dem Wert 0 in der Variablendeklaration vorbelegen. Wir gehen davon aus, dass der Zustand "0" nur ein einziges mal im Chart auftauchen wird und zwar am Beginn des Charts. Nun wird durch eine if-then-else Bedingung der Wert 0 für die HAopen Variable abgefragt und im Falle des Zutreffens dieser Bedingung die zwei oben genannten Startbedingungen gesetzt. Ansonsten wird wie im Standardfall für die Heikin Ashi Methode mit der Berechnung fortgefahren.

Die neu berechneten Candles sind wie unter Punkt 2) darzustellen und es ist zu testen, ob durch das Einführen dieser Startbedingung das Einschwingen vermieden werden kann.
// -----------------------------------------------
// Programm zur Darstellung der Heikin Ashi Methode
// in Form von Candlesticks mit Startbedingung
// -----------------------------------------------

// Variables Definitions
vars:
    haOpen (0),
        haHigh (0),
        haLow (0),
        haClose (0);

        
// Calculations
if (haOpen = 0) then
begin
    haOpen = open;
    haClose = close;
end
else
begin
    haOpen = (haOpen[1] + haClose[1]) / 2;
    haClose = (open + high + low + close) / 4;
end;
haHigh = MaxItems (high,haOpen,aClose);
haLow = MinItems (low,haOpen,aClose);


// Drawing the Indicator (Candles)
DrawCandlestick (haOpen,aHigh,aLow,aClose,arkGreen,ed,arkGray);


// End Of Code
[opencode id=664780]

4. Indikator "OpenDiff" für die Heikin Ashi Methode
Mit dem Wissen der Heikin Ashi Methode und ihrer Berechnung wollen wir uns nun einen Indikator erstellen, welcher uns die vermuteten Wendepunkte im Chart anzeigen soll. Wir gehen dabei von der offensichtlichen Überlegung aus, dass die Eröffnungskurse nach Heiking Ashi in einem Aufwärtstrend immer höher als der vorhergehende Eröffnungskurs liegen (grüne Kerzen!) und vice versa in einem Abwärtstrend (rote Kerzen!). Wenn wir also eine Differenz aus dem aktuellen und dem vorhergehenden Eröffnungskurs bilden, diese als OpenDiff bezeichnen und in Form einer um die Nulllinie schwingenden Linie darstellen, so sollten wir die Wendepunkte im Chart deutlich angezeigt bekommen.

Wir überprüfen unsere Hypothese durch die Programmierung eben dieses Indikators. Dabei berücksichtigen wir, dass wir für den ersten Bar / Candle keine Werte für OpenDiff berechnen können, weil uns wie bereits oben erwähnt die Werte für den zurückliegenden Bar am Beginn des Charts nicht zur Verfügung stehen. Aus diesem Grund werden wir durch eine if-then-Abfrage verhindern, dass uns "Datenmüll" angezeigt wird. Dazu prüfen wir HAopen_von_gestern auf den Wert 0 und fahren mit der Berechnung nur fort, wenn dieser anders als 0 ist!

Der neue Indikator Heikin Ashi-"OpenDiff" ist als Linie der Farbe Magenat in der Stärke 2 darzustellen. Zusätzlich ist eine Nulllinie in Dunkelgrau in Form einer 1pixel starken gestrichelten Linie einzuzeichnen.
// -----------------------------------------------
// Programm zur Darstellung der Heikin Ashi Methode
// in Form von Candlesticks
// -----------------------------------------------

vars:
    haOpen (0),
        haHigh (0),
        haLow (0),
        haClose (0),
        OpenDiff (0);


// Calculations
if (haOpen = 0) then
begin
    haOpen = open;
    haClose = close;
end
else
begin
    haOpen = (haOpen[1] + haClose[1]) / 2;
    haClose = (open + high + low + close) / 4;
end;
haHigh = MaxItems (high,haOpen,aClose);
haLow = MinItems (low,haOpen,aClose);

if (haOpen[1] <> 0) then
    OpenDiff = haOpen - haOpen[1];


// Drawing the Indicator (Line)
DrawLine (OpenDiff,OpenDiff",StyleSolid,2,Magenta); DrawLine (0,"0",tyleDot,,DarkGray);


// End Of Code
[opencode id=664781]



equilla-Lehrgang / equilla-1.Hilfe
#11: 07.06.2004 21:16 nordie
Lösungen zu Lektion 11

a) Wir wollen die täglichen Bewegungen sichtbar machen um sie besser miteinander vergleichen zu können. Dazu möchten wir den Eröffnungskurs eines jeden Tages immer auf der Nulllinie beginnen lassen und tragen von dort in Form von Kerzen / Candles die Kursmarken High, Low und Close ab. Somit beginnen alle Kerzen immer bei 0 und können direkt miteinander verglichen werden. Um dies ein wenig mathematischer auszudrücken: Von den 4 relevanten Kursmarken des heutigen Tages wird immer der Eröffnungskurs abgezogen! Die Chartdarstellung soll als eigenen Indikator unter dem eigentlichen Chart angezeigt werden und die steigenden Kerzen sollen in dunkelgrün und die fallenden Kerzen in rot sichtbar werden. Als Rahmenfarbe der Kerzen soll dunkelgrau verwendet werden.
// Loesungen 11-01

vars:
    CandleOpen (0),
        CandleHigh (0),
        CandleLow (0),
        CandleClose (0);


CandleOpen = Open - Open;
CandleHigh = High - Open;
CandleLow = Low - Open;
CandleClose = Close - Open;

DrawCandleStick (CandleOpen,andleHigh,andleLow,andleClose,arkGreen,ed,arkGray);
[opencode id=663230]

b) Der Unterschied zwischen den heutigen Eröffnungskurs und dem gestrigen Schlusskurs kann bei einem unterschied beider als Lücke (engl. Gap) bezeichnet werden. Oft sind diese Gaps nicht einfach erkennbar weswegen wir uns eine Art Gap-Indikator zeichnen wollen. Dazu werden wir uns als BarChart täglich den Unterschied zwischen dem Schlusskurs des vorherigen Bars und dem Eröffnungskurs des aktuellen Bars darstellen! Um nicht unnötige Informationen im Chart anzugeben und so die Konzentration auf das Wesentliche zu erleichtern, verzichten wir auf Hoch- und Tiefstkurse, wir werden sie in der Darstellung durch Wahl von geeigneten Werten unterdrücken. Dazu gehen wir mathematisch betrachtet so vor: Hoch- und Tiefstkurs des darzustellenden Bars werden aus Maximum und Minimum der soeben ermittelten Werte für Eröffnungskurs und Schlusskurs gewählt, so dass das Hoch und das Tief des aktuellen Bars sich mit den ermittelten Werten für Eröffnung und Schlusskurs decken! Somit wird der durch uns neu gezeichnete Bar nur das Gap zwischen dem vorhergehenden und dem jetzigen Bar darstellen. Als Darstellung kommt ein Barchart mit den Farben dunkelgrün und rot zum Einsatz.
// Loesungen 11-02

vars:
    BarOpen (0),
        BarHigh (0),
        BarLow (0),
        BarClose (0);


BarOpen = Close[1];
BarClose = open;
BarHigh = MaxItems (BarOpen,arClose);
BarLow = MinItems (BarOpen,arClose);

DrawBar (BarOpen,arHigh,arLow,arClose,arkGreen,ed);
[opencode id=663231]



equilla-Lehrgang / equilla-1.Hilfe
#10: 13.05.2004 12:23 nordie
Lösungen zu Lektion 10

a) Erstellung eines Indikators aus 4 Linien, welche jeweils aus den 4 Kursen open,low,high,close des Bars das Maximum, Minimum, 2.groesste Maximum und 2.kleinste Minimum darstellen. Die Linien sollen für Maximum und Minimum als durchgezogene Linien der Stärke 2 in 2 unterschiedlichen Farben dargestellt werden. Die 2.Werte (Max/Min) sollen als gestrichelte Linien der Stärke 1 in den selben Farben im Chart eingezeichnet werden.

// Loesungen 10-01

vars:
    Maximum (0),
        Minimum (0),
        Maximum2 (0),
        Minimum2 (0);


Maximum = MaxItems (open,high,low,close);
Minimum = MinItems (open,high,low,close);
Maximum2 = MaxItems2 (open,high,low,close);
Minimum2 = MinItems2 (open,high,low,close);

DrawLine (Maximum,Maximum",StyleSolid,2,Red); DrawLine (Minimum,"Minimum",StyleSolid,2,DarkGreen); DrawLine (Maximum2,"Maximum2",StyleDash,1,Red); DrawLine (Minimum2,"Minimum2",tyleDash,,DarkGreen);
[opencode id=630108]

b) Es soll der Schwerpunkt der 4 Kurse open,low,high,close unter Verwendung der Funktion „AvgItems“ errechnet werden und im Chart als eine durchgezogene Linie, Stärke 2, blau dargestellt werden. Zusätzlich sind in 2 Fällen Symbole einzuzeichnen: Wenn der Schwerpunkt sich innerhalb des oberen Dochtes des Bars befindet soll ein Quadrat , Größe 10, dunkelblau auf Höhe des Schwerpunktes eingezeichnet werden. Wenn sich der Schwerpunkt innerhalb des unteren Dochtes befindet, wird ein Quadrat, Größe 10, dunkelgrün gewählt.

// Loesungen 10-02

vars:
    Schwerpunkt (0);

Schwerpunkt = AvgItems (open,high,low,close);

DrawLine (Schwerpunkt,Schwerpunkt",StyleSolid,2,Blue); if (Schwerpunkt > close) and (Schwerpunkt > open) then DrawSymbol (Schwerpunkt,"SchwerpunktOben",SymbolSquare,10,DarkBlue,DarkBlue); if (Schwerpunkt < close) and (Schwerpunkt < open) then DrawSymbol (Schwerpunkt,"SchwerpunktUnten",ymbolSquare,0,arkGreen,arkGreen);
[opencode id=630109]

c) Es soll ein gleitender Durchschnitt über 5 Bars (incl. dem aktuellen) unter Verwendung der Funktion „SumItems“ berechnet und als Linie gezeichnet werden. Als Kursbasis werden die Schlusskurse gewählt. Das Aussehen der Linien ist frei wählbar.

// Loesungen 10-03

vars:
    Durchschnitt (0);

Durchschnitt = SumItems (close[0],lose[1],lose[2],lose[3],lose[4]) / 5;

DrawLine (Durchschnitt,Durchschnitt",tyleSolid,,Blue);
[opencode id=630110]

d) Aus den Schlusskursen der letzten 8 Bars (incl. dem aktuellen) soll der 2.Kleinste Wert und der 3.Kleinste Wert mit der Funktion „MinItemsN“ ermittelt werden. Diese Werte sollen als 2 Linien in den Chart eingezeichnet werden. Das Aussehen der Linien ist frei wählbar.

// Loesungen 10-04

vars:
    KleinerWert (0),
        GrosserWert (0);


KleinerWert = MinItemsN (2,lose[0],lose[1],lose[2],lose[3],lose[4],lose[5],lose[6],lose[7]);
DrawLine (KleinerWert,KleinerWert",StyleSolid,2,Red); GrosserWert = MinItemsN (3,close[0],close[1],close[2],close[3],close[4],close[5],close[6],close[7]); DrawLine (GrosserWert,"GrosserWert",tyleSolid,,DarkGreen);
[opencode id=630111]



equilla-Lehrgang / equilla-1.Hilfe
#9: 02.05.2004 21:41 nordie
Lösungen zu Projektaufgaben aus Lektion 09
Die Aufgabenstellung ist im Know How Beitrag 09 unter

http://www.de.tradesignal.com/default.asp?p=wsn/artikel.asp&id=1947

zu finden!

zu 09-01

// -----------------------------------------------
// Programm zur Erkennung von Insides und Outsides
// -----------------------------------------------

// Variablen definieren
variables:
    MittlererKurs (0);

// Berechnung des Mittleren Kurses
MittlererKurs = (high-low)/2 + low;

// Inside
if ( (low[0] >= low[1]) and
        (high[0] <= high[1])
    ) then
        DrawSymbol (MittlererKurs,Inside",SymbolDonut,10,Green,Green); // Outside if ( (low[0] < low[1]) and (high[0] > high[1]) ) then DrawSymbol (MittlererKurs,"Outside",ymbolDonut,0,agenta,agenta);

// End Of Code
[opencode id=614582]

zu 09-02

// -----------------------------------------------------------
// Programm zur Berechnung eines einfachen 4-Bar-Durchschnitts
// und Darstellung des vorherrschenden Trends
// -----------------------------------------------------------

// Variablen definieren
variables:
    Durchschnitt (0);

// Berechnung des Gleitenden Durchschnitts
Durchschnitt = (close[3] + close[2] + close[1] + close[0])/4;

// Darstellung des Gleitenden Durchschnitts
DrawLine (Durchschnitt,Durchschnitt",StyleSolid,2,Blue); // Darstellung des Trends if (Durchschnitt >= Durchschnitt[1]) then DrawSymbol (Durchschnitt,"TrendUP",SymbolSquare,8,Darkgreen,Darkgreen) else DrawSymbol (Durchschnitt,"TrendDown",ymbolSquare,,Red,Red);

// End Of Code
[opencode id=614583]

zu 09-02


// -----------------------------------------------------------
// Programm zur Berechnung und Darstellung einer fortlaufenden
// Summe der ThrustUp- und ThrustDown-Bars
// -----------------------------------------------------------

// Variablen definieren
variables:
    ThrustSumme (0),
            Durchschnitt (0);


// Berechnung der forlaufenden Summe
// UPThrust-Bar
if (close[0] > high[1]) then
    ThrustSumme = ThrustSumme + 1;
// DOWNThrust-Day
if (close[0] < low[1]) then
    ThrustSumme = ThrustSumme - 1;

// Berechnung eines GD aus 4 Bars über die fortlaufende Summe
Durchschnitt = (ThrustSumme[3] + ThrustSumme[2] + ThrustSumme[1] + ThrustSumme[0]) / 4;

// Darstellung der forlaufenden Summe und des GDs
DrawLine (ThrustSumme,ThrustSumme",StyleSolid,2,DarkBlue); DrawLine (Durchschnitt,"Durchschnitt",StyleDot,2,Darkgreen); // Signalpunkte einzeichnen if (Durchschnitt crosses under ThrustSumme) then DrawSymbol(Durchschnitt,"UP",SymbolTriangleUp,7,Darkgreen,Darkgreen); if (Durchschnitt crosses over ThrustSumme) then DrawSymbol(Durchschnitt,"DOWN",ymbolTriangleDown,,Red,Red);

// End Of Code
[opencode id=614584]



equilla-Lehrgang / equilla-1.Hilfe
#8: 29.04.2004 01:37 nordie
Lösungen zu Übungsaufgaben der Lektion 08

a) Zeichnen eines Indikators mittels DrawLine als durchgezogene Linie, blau, 2 breit. Der Indikator soll das arithmetische Mittel aus den 4 Kurskennzahlen open, high, low, close des aktuellen Bars darstellen. Dieses bezeichnen wir in der Regel als "Schwerpunkt" des Bars. Die Linie soll um 3 Bars in die Vergangenheit versetzt gezeichnet werden.
Variables:
    Schwerpunkt;

Schwerpunkt = (open + high + low + close) / 4;
DrawLine [3] (Schwerpunkt,Schwerpunkt",tyleSolid,,Blue);
[opencode id=610089]


b) Einzeichnen des vorhergehenden Eröffnungs- und Schlusskurses in den aktuellen Bar durch zwei Quadrate mit der Kantenlänge 5 und frei wählbarer Farbgebung, wenn der aktuelle Eröffnungskurs größer dem vorhergehenden Eröffnungskurs ist.
if (open[0] > open[1]) then
begin
    DrawSymbol (open[1],openVorher",SymbolSquare,5,DarkGreen,DarkGreen); DrawSymbol (close[1],"closeVorher",ymbolSquare,,Blue,Blue);
end;
[opencode id=610087]


c) Projektion des Mittleren Kurses aus High und Low des aktuellen Bars auf die nächsten 3 Bars in die Zukunft. Einzeichnen mittels DrawSymbol und dies in der Form eines Kreises der Größe 5 und komplett schwarzer Farbgebung. Die Zeichenbefehle sollen nur am letzten Bar des Charts ausgeführt werden. Als „Mittleren Kurs“ verstehen wir (high+low)/2+low!
variables:
    MittlererKurs;

if currentbar = lastbar then
begin
    MittlererKurs = (high - low) / 2 + low;

    DrawSymbol [-1] (MittlererKurs, "MittlererKurs", SymbolCircle, 5, Black, Black);
    DrawSymbol [-2] (MittlererKurs, "MittlererKurs", SymbolCircle, 5, Red, Black);
    DrawSymbol [-3] (MittlererKurs, "MittlererKurs", SymbolCircle, 5, Black, Black);
end;
[opencode id=610083]




equilla-Lehrgang / equilla-1.Hilfe
#7: 28.04.2004 00:31 Stefan Mohr
Lösungen zu Übungsaufgaben der Lektion 07

a) Erzeugung eines Indikators welcher mit einem aufwärts gerichteten, dunkelgrünen Dreieck kenntlich macht, wo „weiße Kerzen“ vorhanden sind. Als „weiße Kerzen“ werden Kerzen bezeichnet, die einen höheren Schlusskurs gegenüber ihrem Eröffnungskurs aufweisen. Das Dreieck soll auf Höhe des Schlusskurses eingezeichnet werden und die Größe 10 besitzen.
if (close > open) then
    DrawSymbol (close,"WeisseKerze",SymbolTriangleUp,10,DarkGreen,DarkGreen);
[opencode id=608144]


b) Wo schließen die Kurse nah an ihrem Höchstkurs? Diese Frage soll uns ein weiteren Indikator klären. Wir nehmen dafür an, dass die Bedingung erfüllt sein muss, dass der Schlusskurs innerhalb der oberen 10% der Kerze liegen muss! In der Equilla-Lösung soll der maximale Abstand den der Schlusskurs vom Höchstkurs besitzen darf in einer Variable gespeichert werden. Das Symbol wird als Quadrat der Größe 10 und der Farbe „Magenta“ gewählt.
variables:
    maximalabstand;

maximalabstand = (high-low)*0.10;

if (close >= (high - maximalabstand)) then
    DrawSymbol (close,"HoherSchlusskurs",SymbolSquare,10,Magenta,Magenta);
[opencode id=608140]


c) Wir erweitern den unter b) erstellen Indikator so, dass wenn der Schlusskurs innerhalb der unteren 10% der Kerze schließt, ebenfalls eine Kennzeichnung erfolgt. Dies geschieht wiederum mittels der bereits errechneten Variable und eines Kreissymbols der Größe 10 und Farbe Blau auf der Höhe des Schlusskures.
variables:
    maximalabstand;

maximalabstand = (high-low)*0.10;

if (close >= (high - maximalabstand)) then
    DrawSymbol (close,"HoherSchlusskurs",SymbolSquare,10,Magenta,Magenta);

if (close <= (low + maximalabstand)) then
    DrawSymbol (close,"NiedrigerSchlusskurs",SymbolCircle,10,Blue,Blue);
[opencode id=608138]
#6: 27.04.2004 00:05 nordie
Lösungen zu Übungsaufgaben aus Lektion 06

a) Wir möchten einen binären Preisindikator schreiben. Ein binärer Indikator kann nur 2 Zustände (binär) annehmen. Dieser soll den Wert 1 annehmen, wenn der Schlusskurs (close) größer oder gleich als der Eröffnungskurs (open) ist. Wenn diese Bedingung nicht zutrifft, dann soll der Preisindikator den Wert –1 annehmen. Wir wollen diesen binären Zustand (1 oder –1) als Linie mittels des DrawLine-Befehls sichtbar machen.
variables:
    charttrend;

if (close >= open) then
    charttrend = 1
else
    charttrend = -1;

DrawLine (charttrend,Trend",tyleSolid,,Blue);
[opencode id=606563]


b) Die Summierung der „roten“ und der „schwarzen“ Kerzen soll uns Aufschluss über die Bewegung des Underlyings geben. Wir erhöhen einen Zähler imme rum +1, wenn Schlusskurs (close) größer oder gleich als der Eröffnungskurs (open) ist. Trifft dies nicht zu, so verringern wir unseren Zähler um –1! Der Zähler soll aufgrund der Varibalendefinition mit dem Wert 0 vorbelegt werden. Die sich ergebende Linie stellen wir im Chart dar. Auch möchten wir dabei auf der Nulllinie eine graue, punktierte, 1-Punkt breite Linie zur besseren Orientierung darstellen.

variables:
    move (0);

if (close >= open) then
    move = move + 1
else
    move = move - 1;
    
DrawLine (move,Move",StyleSolid,2,Red); DrawLine (0,"zero",tyleDot,,DarkGray);
[opencode id=606567]




equilla-Lehrgang / equilla-1.Hilfe
#5: 24.04.2004 22:02 nordie
Lösungen zu den Übungsaufgaben aus Lektion 05

1)
Berechnung der Differenz zwischen High und Low eines Bars, speichern in einer Variablen
und Darstellung mit Hilfe des DrawLine-Befehls unter Verwendung dieser Variablen
variables:
    diff;
diff = (high - low);
DrawLine (diff,difference",tyleSolid,,Blue);
[opencode id=604105]


2)
Berechnung der prozentualen Kursschwankung eines Bars (Beispielcode für prozentuale
Berechnung siehe oben) und Darstellung mittels DrawLine-Befehl sowie einzeichnen einer
punktierten, dunkelgrauen Linie der Breite 1 auf der Nullinie.
variables:
    percents;
percents = (high - low)/high*100;
DrawLine (percents,percents",StyleSolid,2,Blue); DrawLine (0,"zero",tyleDot,,DarkGray);
[opencode id=604106]


3)
Den unter b) verstellten Code durch eine innerhalb der Deklarationen mit dem Wert 2
vorbelegten Variable so abändern, dass die prozentuale Kursschwankung quadriert
wird. Darstellung mittels DrawLine-Befehl.

hier gibt es probleme! der indikator sollte so aussehen:
variables:
    percents;

percents = (high - low)/high*100;
percents = percents ^ exponent;

DrawLine (percents,percents",StyleSolid,2,Blue); DrawLine (0,"zero",tyleDot,,DarkGray);
[opencode id=604108]
aber das erzeugt:
Error: 777 - Lehrgang/Loesungen 05-03b (line 4) - syntax error
Es wurden Fehler gefunden...

das klaere ich und melde mich zu dem thema!

als loesung kann man das quadrieren so machen:
variables:
    percents;

percents = (high - low)/high*100;
percents = percents * percents;

DrawLine (percents,percents",StyleSolid,2,Blue); DrawLine (0,"zero",tyleDot,,DarkGray);
[opencode id=604109]

wer in der hilfe zu equilla blättert, findet auch diese loesung:
variables:
    percents,
            exponent (2);


percents = (high - low)/high*100;
percents = pwr (percents,xponent);

DrawLine (percents,percents",StyleSolid,2,Blue); DrawLine (0,"zero",tyleDot,,DarkGray);
[opencode id=604107]



Stefan



equilla-Lehrgang / equilla-1.Hilfe
#4: 21.04.2004 20:58 nordie
Lösungen zu den Übungsaufgaben aus Lektion 03

a) Erstellung eines Indikators, welcher die open-Kurse durch eine dunkelgrüne, gestrichelte Linie der Stärke 2 und die close-Kurse mittels einer blauen, durchgezogenen Linie der Stärke 3 darstellt.
DrawLine (open,"Line1",StyleDash,2,arkGreen);
DrawLine (close,"Line2",StyleSolid,3,lue);
[opencode id=599700]


b) Einen Indikator programmieren, welcher die high-Kurse als dunkelgrüne punktierte 1er Linie und die low-Kurse als rote punktierte 1er Linie zeichnet.
DrawLine (high,"Line1",StyleDot,1,arkGreen);
DrawLine (low,"Line2",StyleDot,1,ed);
[opencode id=599701]


c) Variation der beiden Ergebnisse aus a) und b) nach eigenen Wünschen (Farbe, Strichstärke und Stil).
DrawLine (open,"Line1",StyleDash,1,arkGray);
DrawLine (close,"Line2",StyleSolid,2,lack);
[opencode id=599702]


d) Den Indikator „All-Lines“ nach eigenen Vorstellungen anpassen und dem Forum vorstellen.
DrawLine (open,"open",StyleDash,1,arkGray);
DrawLine (high,"high",StyleDot,2,ed);
DrawLine (low,"low",StyleDot,2,arkGreen);
DrawLine (close,"close",StyleSolid,2,lack);
[opencode id=599711]


e) Kennenlernen der elementaren Bedeutung der „Caption“: 2 Linen zeichnen lassen, welche die selbe „Caption“ tragen! Ist dies möglich?
Nein, es ist NICHT möglich. Wenn eine Caption für 2 unterschiedliche Darstellungen verwendet werden soll, so kann der Compiler dies nicht unterscheiden. Es müssen für unterschiedliche Darstellungen immer unterschiedliche Captions verwendet werden.

Ergänzung: Der unter 4) vorgestellt Indikator ist so schlecht schon mal nicht. Zeigt er uns doch deutlich, in welcher Range (high/low) sich die Kurse bewegt haben, wo sie geschlossen haben und wie die Entwicklung an dem Tag war (open gegenueber close).

Stefan



equilla-Lehrgang / equilla-1.Hilfe
#3: 15.04.2004 23:23 nordie
Lösungen zu Lektion 02 finden sich inzwischen mehrere im Diskussionsthread. Dort haben Teilnehmer ihre Ergebnisse veröffentlicht incl. einer kleinen Anleitung für die Frage mit der Bildschirmkopie.

Stefan



equilla-Lehrgang / equilla-1.Hilfe
Seite 1 von 212