Vai al contenuto

Come aggiungere cloud agli indicatori cTrader

cTrader Algo ti consente di disegnare cloud tra le linee su un grafico. Tali cloud ti permettono di identificare rapidamente le aree chiave sui grafici e rilevare i cambiamenti nel comportamento del mercato.

In questo articolo e nel video corrispondente, ti mostreremo come aggiungere e personalizzare i cloud negli indicatori.

Aggiungi un indicatore

Un tipico indicatore Bollinger Bands è costituito da una banda superiore, una banda inferiore e una media mobile semplice al centro. Per migliorare l'aspetto dell'indicatore, prevediamo di riempire lo spazio tra le bande con un cloud.

Per creare l'indicatore, apri l'app Algo e vai alla scheda Indicatori. Fai clic sul pulsante Nuovo, digita un nome per l'indicatore, come "Bollinger Bands Cloud", quindi fai clic sul pulsante Crea.

Ora possiamo modificare il codice dell'indicatore. Faremo del nostro esempio un indicatore in sovrimpressione.

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

Quindi aggiungiamo le tre linee di output necessarie per disegnare le Bollinger Bands sul grafico.

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

Dichiariamo il nostro indicatore Bollinger Bands.

1
private BollingerBands _bollingerBands;

Inizializziamo l'indicatore.

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

Popoliamo le linee con i valori dell'indicatore nel metodo Calculate().

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

Puoi copiare il codice completo qui sotto:

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

Fai clic su Build o utilizza la scorciatoia Ctrl+B per compilare l'indicatore.

Aggiungi un'istanza dell'indicatore per il simbolo EURUSD.

Dovresti vedere un tipico indicatore Bollinger Bands sul grafico.

Aggiungi un cloud alle Bollinger Bands

Ora torniamo all'editor di codice e lavoriamo sull'aggiunta di un cloud tra le bande.

Per raggiungere il nostro obiettivo, aggiungiamo l'attributo Cloud all'indicatore esistente. L'attributo Cloud indica all'indicatore di disegnare un cloud tra le linee Top e Bottom.

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

Puoi copiare il codice completo modificato qui sotto:

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

Ricompiliamo l'algoritmo e poi controlliamo il nostro indicatore per vedere cosa è cambiato.

Dovresti vedere un cloud rosso tra le bande. Se modifichi il colore della linea Top, il colore del cloud verrà aggiornato automaticamente.

Torniamo all'editor di codice e modifichiamo l'attributo Cloud per disegnare un cloud solo prima della linea Main (gialla).

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

Ricompila l'indicatore e poi controllalo per confermarne il nuovo aspetto.

Aggiungi cloud all'incrocio delle MA

Creeremo un nuovo indicatore e lo useremo per dimostrare come i cloud con colori diversi possono essere aggiunti a un grafico. Intendiamo sviluppare un indicatore Moving Average (MA) Crossover con un cloud verde per i trend rialzisti e un cloud rosso per i trend ribassisti.

Ripeti i passaggi della sezione precedente per creare un nuovo indicatore. Questa volta, il nome dell'indicatore dovrebbe essere "MA Cloud".

Iniziamo a modificare il nuovo indicatore impostando la sua proprietà IsOverlay su True.

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

Aggiungi l'attributo Cloud richiesto.

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

Aggiungi le linee di output e dichiara le medie mobili.

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;

Ripeti il passaggio dell'esempio precedente (Bollinger Bands). Inizializza le medie mobili e passa i valori risultanti alle linee in modo che vengano visualizzati sul grafico.

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

Puoi copiare il codice completo qui sotto:

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

Compila l'indicatore e aggiungi un'istanza per visualizzare l'indicatore su un grafico.

I colori del cloud cambiano ad ogni incrocio (intersezione) delle medie mobili.

Questo articolo ti ha mostrato come aggiungere cloud utili agli indicatori in cTrader.

Image title