Ana içeriğe geç

Teknik göstergelerin programlı yönetimi

Trader'lar genellikle manuel işlem yapma ve otomatik işlem yardımcılarının, özellikle de özel göstergelerin bir kombinasyonuna güvenirler. Ancak, birçok durumda, bu yardımcılar birbirlerinden tamamen habersizdir ve birbirlerinin eylemlerine ve çıktılarına tepki veremezler.

Neyse ki, cTrader grafik göstergelerini programlı olarak yönetmek için uygun bir yol sunar. Bu özelliği kullanarak, kullanıcıların bir grafiğe eklediği göstergelerden veri okuyan dinamik asistanlar oluşturabilirsiniz.

Ayrıca, bir algoritmanın belirli koşullara bağlı olarak gösterge ayarlarını eklemesini, kaldırmasını veya değiştirmesini sağlayabilir, böylece kullanıcılarınıza daha fazla değer sunabilir ve para kazanmak için yeni yollar açabilirsiniz.

Bu API kılavuzu, grafik göstergelerini farklı koşullarda programlı olarak nasıl yönetebileceğinizi açıklar.

Grafik göstergesi yönetimi bir dakikada!

  • Grafik göstergelerini programlı olarak yöneterek, belirli koşullara bağlı olarak gösterge ayarlarını (örneğin, çizgi kalınlığı) ayarlayabilirsiniz.
  • cBot'lar, bir grafiğe manuel olarak eklediğiniz herhangi bir göstergeye erişebilir, verilerini okuyabilir ve buna göre işlem yapabilir.
  • Algoritmalarınız, göstergeleri grafiklere otomatik olarak ekleyebilir veya kaldırabilir, bu da size zaman kazandırır.
  • Grafik göstergelerini programlı olarak yönetmek, tüm özel göstergeler için mümkündür.

Göstergeleri programlı olarak ekleme ve kaldırma

Aşağıdaki yöntemi çağırarak erişiminiz olan herhangi bir göstergeyi kolayca ekleyebilirsiniz.

1
ChartIndicator ChartIndicators.Add(string name, params object[] parameterValues)

Yöntem, gösterge adını ilk parametre olarak alır ve ardından o göstergenin tüm parametrelerini sırayla alır (örneğin, "Simple Moving Average", "High", 25).

Not

Yöntem, erişiminiz olan herhangi bir göstergenin adını kabul edecektir.

Not

Herhangi bir DataSeries parametresi, yöntem argümanlarında dizeler olarak belirtilmelidir.

Not

Bazı parametreler belirtilmezse, yöntem varsayılan değerleri kullanacaktır. Bazı parametreler geçersizse, yöntem algoritmanız için OnException işleyicisini çağıracaktır.

Yöntem yürütüldükten sonra, istenen gösterge hemen bir grafiğe eklenecek ve yöntemin döndürdüğü değeri kullanarak onu yönetebileceksiniz. Örneğin, ChartIndicators.Remove() yöntemini çağırarak kaldırabilirsiniz.

1
2
3
var newIndicator = ChartIndicators.Add("Simple Moving Average", "High", 25);
...
ChartIndicators.Remove(newIndicator);

İşte Average True Range (ATR) değeri belirli bir eşiği her aştığında, özel bir Bollinger Bands göstergesini bir grafiğe eklemek için her iki yöntemi de kullanan basit bir cBot. ATR değeri eşiğin altına düşerse, gösterge kaldırılır.

 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.None)]
    public class ChartIndicatorsTest : Robot
    {

        private AverageTrueRange _aTR;
        private ChartIndicator _customBollingerBands;

        protected override void OnStart()
        {
            _aTR = Indicators.AverageTrueRange(14, MovingAverageType.Exponential);
            ChartIndicators.Add("Average True Range");
        }

        protected override void OnBar()
        {
            if (_aTR.Result[Bars.Count - 1] >= 0.0002) 
            {
                _bollingerBands = ChartIndicators.Add("Custom BB");
            } else if (_bollingerBands != null)
            {
                ChartIndicators.Remove(_bollingerBands);
            }
        }

    }
}

Göstergelerin ayarlarını değiştirme

ChartIndicator arayüzü, aşağıdaki özellikler aracılığıyla tüm ana gösterge ayarlarına doğrudan erişim sağlar:

  • ChartIndicator.Type, bir göstergenin türünü alır.
  • ChartIndicator.Parameters, tüm gösterge parametrelerinin bir listesini alır.
  • Lines, bir gösterge tarafından çıktı verilen tüm çizgilerin bir listesini alır.

Göstergeler görsel yardımcılar olduğundan, piyasa koşullarına bağlı olarak ayarlarını değiştirerek onları geliştirebilirsiniz. Aşağıdaki gösterge tam olarak bunu yapmaya çalışır.

 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
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 ColourMovingAverage : Indicator
    {

        private MovingAverage _fastMA;
        private ChartIndicator _chartMA;
        private const int __lineThickness = 4;


        protected override void Initialize()
        {
            _fastMA = Indicators.MovingAverage(Bars.OpenPrices, 10, MovingAverageType.Exponential);
            _chartMA = ChartIndicators.Add("Exponential Moving Average", "Open", 10);
        }

        public override void Calculate(int index)
        {
            var line = _chartMA.Lines[0];

            if (Symbol.Bid > _fastMA.Result[index]) 
            {
                line.Color = Color.Green;
                line.Thickness = __lineThickness;
            } else 
            {
                line.Color = Color.Red;
                line.Thickness = __lineThickness;
            }
        }
    }
}

Bir sembolün mevcut fiyatının Exponential Moving Average'ın üzerinde veya altında olmasına bağlı olarak, gösterge çizgisi renk ve kalınlık değiştirir. Bazı durumlarda (örneğin, değişen trendlere hızlı tepki verme), ek görsel yardım tüm farkı yaratabilir.

Ek olayları işleme

ChartsIndicators arayüzü, grafik göstergelerini programlı olarak yönetmek için işleyebileceğiniz çeşitli olayları da sunar:

  • IndicatorAdded, her yeni gösterge bir grafiğe eklendiğinde tetiklenir.
  • IndicatorRemoved, her gösterge bir grafikten kaldırıldığında tetiklenir.
  • IndicatorModified, bir göstergenin ayarları her ayarlandığında tetiklenir.

Bu olaylar, eklenti geliştiricileri için değerlidir. Eklentiler aracılığıyla, bir kullanıcının göstergeleri eklemesine, kaldırmasına veya değiştirmesine bağlı olarak içeriklerini değiştiren cTrader kullanıcı arayüzünün yeni öğelerini oluşturabilirsiniz.

Farklı modlarda gösterge yönetimi

İşte gösterge yönetiminin farklı cTrader modları ve araçlarında nasıl çalıştığı.

Mod/araç Nasıl işler?
Görsel olmayan geriye dönük test ChartIndicators aracılığıyla eklenen tüm göstergeler, geriye dönük test bittiğinde grafikte gösterilecektir.
Görsel geriye dönük test ve Piyasayı Yeniden Oynat Her şey amaçlandığı gibi gerçek zamanlı çalışır.
Optimizasyon Tüm işlemler çalışacak ancak geriye dönük test bittiğinde grafikte hiçbir değişiklik yapılmayacaktır.
cTrader CLI Tüm işlemler amaçlandığı gibi çalışır ancak hiçbir grafikte değişiklik yapılmaz.

Grafik göstergelerini programlı olarak yönetmek, göstergelerle çalışmayı geliştiren veya basitleştiren algoritmalar sunmak isteyen herhangi bir geliştirici için idealdir. Bu özellikten yararlanarak, kullanıcılarınıza yüksek kaliteli ve değerli ürünler sunabilirsiniz.

Image title