Aller au contenu

Comment ajouter des nuages aux indicateurs cTrader

cTrader Algo vous permet de dessiner des nuages entre les lignes sur un graphique. Ces nuages vous permettent d'identifier rapidement les zones clés sur les graphiques et de détecter les changements dans le comportement du marché.

Dans cet article et sa vidéo correspondante, nous vous montrerons comment ajouter et personnaliser des nuages dans les indicateurs.

Ajouter un indicateur

Un indicateur Bollinger Bands typique se compose d'une bande supérieure, d'une bande inférieure et d'une moyenne mobile simple au milieu. Pour améliorer l'apparence de l'indicateur, nous prévoyons de remplir l'espace entre les bandes avec un nuage.

Pour créer l'indicateur, ouvrez l'application Algo et accédez à l'onglet Indicateurs. Cliquez sur le bouton Nouveau, saisissez un nom pour l'indicateur, tel que « Bollinger Bands Cloud », puis cliquez sur le bouton Créer.

Nous pouvons maintenant modifier le code de l'indicateur. Nous ferons de notre exemple un indicateur de superposition.

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

Ensuite, nous ajoutons les trois lignes de sortie nécessaires pour dessiner les Bollinger Bands sur le graphique.

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; }

Nous déclarons notre indicateur Bollinger Bands.

1
private BollingerBands _bollingerBands;

Initialisons l'indicateur.

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

Remplissons les lignes avec les valeurs de l'indicateur dans la méthode Calculate().

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

Vous pouvez copier le code complet ci-dessous :

 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];
        }
    }
}

Cliquez sur Build ou utilisez le raccourci Ctrl+B pour construire l'indicateur.

Ajoutez une instance d'indicateur pour le symbole EURUSD.

Vous devriez voir un indicateur Bollinger Bands typique sur le graphique.

Ajouter un nuage aux Bollinger Bands

Maintenant, nous retournons à l'éditeur de code et travaillons ensuite sur l'ajout d'un nuage entre les bandes.

Pour atteindre notre objectif, nous ajoutons l'attribut Cloud à l'indicateur existant. L'attribut Cloud indique à l'indicateur de dessiner un nuage entre les lignes Top et Bottom.

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

Vous pouvez copier le code complet modifié ci-dessous :

 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];
        }
    }
}

Nous reconstruisons l'algorithme, puis vérifions notre indicateur pour voir ce qui a changé.

Vous devriez voir un nuage rouge entre les bandes. Si vous changez la couleur de la ligne Top, la couleur du nuage sera mise à jour automatiquement.

Nous retournons à l'éditeur de code et modifions l'attribut Cloud pour dessiner un nuage uniquement avant la ligne Main (jaune).

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

Reconstruisez l'indicateur, puis vérifiez-le pour confirmer son nouveau look.

Ajouter un nuage au croisement de MA

Nous allons créer un nouvel indicateur et l'utiliser pour démontrer comment des nuages de différentes couleurs peuvent être ajoutés à un graphique. Nous avons l'intention de développer un indicateur de croisement de Moving Average (MA) avec un nuage vert pour les tendances haussières et un nuage rouge pour les tendances baissières.

Répétez les étapes de la section précédente pour créer un nouvel indicateur. Cette fois, le nom de l'indicateur devrait être « MA Cloud ».

Nous commençons à modifier le nouvel indicateur en définissant sa propriété IsOverlay sur True.

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

Ajoutez l'attribut Cloud requis.

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

Ajoutez les lignes de sortie et déclarez les moyennes mobiles.

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;

Répétez l'étape de l'exemple précédent (Bollinger Bands). Initialisez les moyennes mobiles et transmettez les valeurs résultantes aux lignes afin qu'elles soient affichées sur le graphique.

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];

Vous pouvez copier le code complet ci-dessous :

 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];
        }
    }
}

Construisez l'indicateur et ajoutez une instance pour visualiser l'indicateur sur un graphique.

Les couleurs du nuage changent à chaque croisement (intersection) des moyennes mobiles.

Cet article vous a montré comment ajouter des nuages utiles aux indicateurs dans cTrader.

Image title