Zum Inhalt

So fügen Sie Clouds zu cTrader-Indikatoren hinzu

cTrader Algo ermöglicht es Ihnen, Clouds zwischen Linien auf einem Chart zu zeichnen. Solche Clouds ermöglichen es Ihnen, wichtige Bereiche auf Charts schnell zu identifizieren und Veränderungen im Marktverhalten zu erkennen.

In diesem Artikel und dem dazugehörigen Video zeigen wir Ihnen, wie Sie Clouds in Indikatoren hinzufügen und anpassen.

Indikator hinzufügen

Ein typischer Bollinger-Bands-Indikator besteht aus einem oberen Band, einem unteren Band und einem Simple Moving Average in der Mitte. Um das Erscheinungsbild des Indikators zu verbessern, planen wir, den Raum zwischen den Bändern mit einer Cloud zu füllen.

Um den Indikator zu erstellen, öffnen Sie die Algo-App und navigieren Sie zur Registerkarte Indikatoren. Klicken Sie auf den Button Neu, geben Sie einen Namen für den Indikator ein, z. B. „Bollinger Bands Cloud", und klicken Sie dann auf den Button Erstellen.

Wir können nun den Indikatorcode ändern. Wir machen unser Beispiel zu einem Überlagerungsindikator.

1
[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

Dann fügen wir die drei Ausgabelinien hinzu, die erforderlich sind, um Bollinger Bands auf dem Chart zu zeichnen.

1
2
3
4
5
6
7
8
[Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Main { get; set; }

[Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Top { get; set; }

[Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Bottom { get; set; }

Wir deklarieren unseren Bollinger-Bands-Indikator.

1
private BollingerBands _bollingerBands;

Initialisieren Sie den Indikator.

1
_bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);

Füllen Sie die Linien mit den Indikatorwerten in der Methode Calculate().

1
2
3
Main[index] = _bollingerBands.Main[index];
Top[index] = _bollingerBands.Top[index];
Bottom[index] = _bollingerBands.Bottom[index];

Sie können den vollständigen Code unten kopieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;


        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Klicken Sie auf Build oder verwenden Sie die Tastenkombination Ctrl+B, um den Indikator zu erstellen.

Fügen Sie eine Indikatorinstanz für das Symbol EURUSD hinzu.

Sie sollten einen typischen Bollinger-Bands-Indikator auf dem Chart sehen.

Eine Cloud zu Bollinger Bands hinzufügen

Jetzt kehren wir zum Code-Editor zurück und arbeiten daran, eine Cloud zwischen den Bändern hinzuzufügen.

Um unser Ziel zu erreichen, fügen wir dem vorhandenen Indikator das Attribut Cloud hinzu. Das Attribut Cloud weist den Indikator an, eine Cloud zwischen den Linien Top und Bottom zu zeichnen.

1
[Cloud("Top", "Bottom", Opacity = 0.2)]

Sie können den vollständigen geänderten Code unten kopieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]
    [Cloud("Top", "Bottom", Opacity = 0.2)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;

        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Wir erstellen den Algorithmus neu und überprüfen dann unseren Indikator, um zu sehen, was sich geändert hat.

Sie sollten eine rote Cloud zwischen den Bändern sehen. Wenn Sie die Farbe der Linie Top ändern, wird die Farbe der Cloud automatisch aktualisiert.

Wir kehren zum Code-Editor zurück und ändern das Attribut Cloud, um eine Cloud nur vor der Linie Main (gelb) zu zeichnen.

1
[Cloud("Top", "Main", Opacity = 0.2)]

Erstellen Sie den Indikator neu und überprüfen Sie ihn dann, um sein neues Aussehen zu bestätigen.

Cloud zu MA-Crossover hinzufügen

Wir erstellen einen neuen Indikator und verwenden ihn, um zu demonstrieren, wie Clouds mit unterschiedlichen Farben zu einem Chart hinzugefügt werden können. Wir beabsichtigen, einen Moving-Average-(MA-)Crossover-Indikator mit einer grünen Cloud für Aufwärtstrends und einer roten Cloud für Abwärtstrends zu entwickeln.

Wiederholen Sie die Schritte aus dem vorherigen Abschnitt, um einen neuen Indikator zu erstellen. Dieses Mal sollte der Indikatorname „MA Cloud" lauten.

Wir beginnen mit der Änderung des neuen Indikators, indem wir seine Eigenschaft IsOverlay auf True setzen.

1
[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

Fügen Sie das erforderliche Attribut Cloud hinzu.

1
[Cloud("Fast", "Slow", Opacity = 0.2)]

Fügen Sie die Ausgabelinien hinzu und deklarieren Sie die Moving Averages.

1
2
3
4
5
6
7
8
[Output("Fast", LineColor = "Green", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Fast { get; set; }

[Output("Slow", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Slow { get; set; }

SimpleMovingAverage _fastMA;
SimpleMovingAverage _slowMA;

Wiederholen Sie den Schritt aus dem vorherigen Beispiel (Bollinger Bands). Initialisieren Sie die Moving Averages und übergeben Sie die resultierenden Werte an die Linien, damit sie auf dem Chart angezeigt werden.

1
2
3
4
5
_fastMA = Indicators.SimpleMovingAverage(Bars.ClosePrices, 7);
_slowMA = Indicators.SimpleMovingAverage(Bars.ClosePrices, 13);

Fast[index] = _fastMA.Result[index];
Slow[index] = _slowMA.Result[index];

Sie können den vollständigen Code unten kopieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]
    [Cloud("Top", "Bottom", Opacity = 0.2)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;

        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Erstellen Sie den Indikator und fügen Sie eine Instanz hinzu, um den Indikator auf einem Chart anzuzeigen.

Die Farben der Cloud ändern sich bei jeder Kreuzung (Schnittpunkt) der Moving Averages.

Dieser Artikel hat Ihnen gezeigt, wie Sie nützliche Clouds zu Indikatoren in cTrader hinzufügen.

Image title