Ana içeriğe geç

cTrader göstergelerine bulutlar nasıl eklenir

cTrader Algo, bir grafikteki çizgiler arasına bulutlar çizmenizi sağlar. Bu tür bulutlar, grafiklerdeki önemli alanları hızlı bir şekilde belirlemenize ve piyasa davranışındaki değişimleri tespit etmenize olanak tanır.

Bu makalede ve ilgili videosunda, göstergelere nasıl bulut ekleneceğini ve bulutların nasıl özelleştirileceğini göstereceğiz.

Gösterge ekle

Tipik bir Bollinger Bands göstergesi, bir üst bant, bir alt bant ve ortada bir Simple Moving Average'dan oluşur. Göstergenin görünümünü iyileştirmek için bantlar arasındaki boşluğu bir bulutla doldurmayı planlıyoruz.

Göstergeyi oluşturmak için Algo uygulamasını açın ve Göstergeler sekmesine gidin. Yeni düğmesine tıklayın, gösterge için "Bollinger Bands Bulutu" gibi bir ad yazın ve ardından Oluştur düğmesine tıklayın.

Artık gösterge kodunu değiştirebiliriz. Örneğimizi bir bindirme göstergesi yapacağız.

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

Ardından, grafiğe Bollinger Bands çizmek için gereken üç çıktı çizgisini ekliyoruz.

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

Bollinger Bands göstergemizi tanımlıyoruz.

1
private BollingerBands _bollingerBands;

Göstergeyi başlatın.

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

Calculate() yönteminde çizgileri gösterge değerleriyle doldurun.

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

Aşağıdaki kodun tamamını kopyalayabilirsiniz:

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

Göstergeyi oluşturmak için Oluştur'a tıklayın veya Ctrl+B kısayolunu kullanın.

EURUSD sembolü için bir gösterge örneği ekleyin.

Grafikte tipik bir Bollinger Bands göstergesi görmelisiniz.

Bollinger Bands'e bulut ekleyin

Şimdi, kod düzenleyiciye geri dönüyoruz ve bantlar arasına bir bulut ekleme üzerinde çalışıyoruz.

Amacımıza ulaşmak için mevcut göstergeye Cloud özniteliğini ekliyoruz. Cloud özniteliği, göstergeye Top ve Bottom çizgileri arasına bir bulut çizmesini emreder.

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

Değiştirilmiş kodun tamamını aşağıdan kopyalayabilirsiniz:

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

Algoritmayı yeniden oluştururuz ve ardından neyin değiştiğini görmek için göstergemizi kontrol ederiz.

Bantlar arasında kırmızı bir bulut görmelisiniz. Top çizgisinin rengini değiştirirseniz, bulut rengi otomatik olarak güncellenecektir.

Kod düzenleyiciye geri dönüyoruz ve Cloud özniteliğini yalnızca Main (sarı) çizgisinden önce bir bulut çizmek üzere değiştiriyoruz.

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

Göstergeyi yeniden oluşturun ve ardından yeni görünümünü onaylamak için kontrol edin.

MA kesişimine bulut ekleyin

Yeni bir gösterge oluşturacak ve farklı renklerde bulutların bir grafiğe nasıl eklenebileceğini göstermek için kullanacağız. Yükseliş trendleri için yeşil bulutlu ve düşüş trendleri için kırmızı bulutlu bir Moving Average (MA) Kesişim göstergesi geliştirmeyi amaçlıyoruz.

Yeni bir gösterge oluşturmak için önceki bölümdeki adımları tekrarlayın. Bu sefer gösterge adı "MA Bulutu" olmalıdır.

Yeni göstergeyi IsOverlay özelliğini True olarak ayarlayarak değiştirmeye başlıyoruz.

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

Gerekli Cloud özniteliğini ekleyin.

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

Çıktı çizgilerini ekleyin ve Moving Averages'ı tanımlayın.

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;

Önceki örnekteki adımı tekrarlayın (Bollinger Bands). Moving Averages'ı başlatın ve ortaya çıkan değerleri çizgilere aktarın, böylece grafikte görüntülenirler.

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

Aşağıdaki kodun tamamını kopyalayabilirsiniz:

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

Göstergeyi oluşturun ve grafikte görüntülemek için bir örnek ekleyin.

Bulut renkleri, Moving Averages'ın her kesişiminde (çakışmasında) değişir.

Bu makale, cTrader'daki göstergelere nasıl kullanışlı bulutlar ekleyeceğinizi gösterdi.

Image title