Ana içeriğe geç

Sembol duyarlılığı

SymbolSentiment arayüzü ve SymbolSentimentUpdatedEventArgs sınıfı, API aracılığıyla gerçek zamanlı piyasa duyarlılığı verilerine erişmenizi sağlar. Herhangi bir sembol için:

  • Symbol.Sentiment.BuyPercentage, alış aktivitesinin toplam yüzdesini sağlarken, Symbol.Sentiment.SellPercentage satış aktivitesinin toplam yüzdesini döndürür.
  • SymbolSentimentUpdatedEventArgs, duyarlılık güncelleme olayları için bir veri taşıyıcısıdır. Bu sınıf, ilgili sembol için güncellenmiş duyarlılık verilerine erişmenizi sağlar.

Uyarı

Sembol duyarlılığı API nesneleri yalnızca .NET 6 algoritmalarında desteklenir ve bulutta veya cTrader CLI'da çalışmaz.

İpucu

Karar vermeyi geliştirmek, kârlı işlemlerin olasılığını artırmak ve risk yönetimini güçlendirmek için piyasa duyarlılığı verilerini otomatik işlem stratejilerine entegre edin.

Sembol duyarlılığı API nesneleri, algoritmalarda aşağıdakileri yapmak için kullanılabilir:

Özellik veya işlem Örnekler
Duyarlılık odaklı işlem yapma Duyarlılık yanlılığı ile işlem yapma
Aşırı duyarlılığa karşı işlem yapma
Duyarlılığı mumlarla birleştirme
Duyarlılık farklılaşmasında çıkış
Uyarlanabilir risk yapılandırması Gürültülü işlemleri filtreleme
İşlemleri duyarlılıkla ölçeklendirme
Stratejiyi piyasa aktivitesine göre kısıtlama
Zarar durdur seviyesini duyarlılığa göre ayarlama
İzleme ve analiz Duyarlılık tabanlı uyarılar oluşturma
Duyarlılık ısı haritası stratejisi çalıştırma
Duyarlılık aracılığıyla kırılmaları tespit etme
Gösterge sinyallerini doğrulama

Not

Duyarlılık verileri yalnızca gerçek zamanlı olarak mevcut olduğundan, geçmiş veya depolanmış veri bulunmadığından geriye dönük test veya optimizasyon için kullanılamaz.

Duyarlılık odaklı işlem yapma

Duyarlılık yanlılığı ile işlem yapma

İşlemlere girmeden önce trend yanlılığını onaylamak veya yalnızca duyarlılık yönle eşleşiyorsa işlem yapmak için bir cBot programlayabilirsiniz. Örneğin, duyarlılığın en az %70'i yükseliş yönlüyse cBot bir alış işlemi gerçekleştirir ve %70'i düşüş yönlüyse bir satış işlemi gerçekleştirir.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
protected override void OnBar()
{
    if (Symbol.Sentiment.BuyPercentage > 70)
    {
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000);
    }
    else if (Symbol.Sentiment.SellPercentage > 70)
    {
        ExecuteMarketOrder(TradeType.Sell, "EURUSD", 10000);
    }
}

Aşırı duyarlılığa karşı işlem yapma

Güçlü duyarlılık konsensüsüne karşı işlemlere giren bir cBot düşünün. Algoritmada tersine dönüş yaklaşımı, kalabalığın genellikle aşırı noktalarda yanlış olduğunu varsayar veya trader'ların çok yüksek bir oranı tek bir tarafta olduğunda piyasanın dönmeye hazır olabileceğine inanır. Örneğin, trader'ların %80'inden fazlası alış yapıyorsa, cBot bir tersine dönüş bekleyerek bir satış işlemi gerçekleştirir. Çoğu satış yaparken de aynı mantık geçerlidir.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
protected override void OnBar()
{
    if (Symbol.Sentiment.BuyPercentage > 80)
    {
        // Everyone is buying. Consider selling
        ExecuteMarketOrder(TradeType.Sell, "EURUSD", 10000);
    }
    else if (Symbol.Sentiment.SellPercentage > 80)
    {
        // Everyone is selling. Consider buying
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000);
    }
}

Duyarlılığı mumlarla birleştirme

Hem piyasa duyarlılığı hem de mum yönü uyuştuğunda hareket etmesi için bir cBot yapılandırabilirsiniz. Yükseliş yönlü bir mum alırsa ve duyarlılık %60'ın üzerinde yükseliş yönlüyse, cBot alış yapar. Mum düşüş yönlüyse ve duyarlılık uyuşuyorsa, cBot satış yapar. Bu yaklaşım, zayıf sinyalleri filtrelemek ve yanlış girişlerden kaçınmak için size yardımcı olur.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
protected override void OnBar()
{
    bool bullishCandle = Bars.LastBar.Close > Bars.LastBar.Open;
    if (bullishCandle && Symbol.Sentiment.BuyPercentage > 60)
    {
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000);
    }

    bool bearishCandle = Bars.LastBar.Close < Bars.LastBar.Open;
    if (bearishCandle && Symbol.Sentiment.SellPercentage > 60)
    {
        ExecuteMarketOrder(TradeType.Sell, "EURUSD", 10000);
    }
}

Duyarlılık farklılığına göre çıkış

Bir cBot, duyarlılık artık pozisyonunuzu desteklemediğinde işlemlerden çıkmanıza yardımcı olabilir. Örneğin, bir alış pozisyonu tutuyorsanız ve duyarlılık %60'ın üzerinde düşüşe dönerse, cBot bunu kapatır. Duyarlılık yükselişe geçtiğinde satış işlemleri için de aynısını yapar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
protected override void OnBar()
{
    foreach (var position in Positions)
    {
        if (position.TradeType == TradeType.Buy && Symbol.Sentiment.SellPercentage > 60)
            ClosePosition(position);
        if (position.TradeType == TradeType.Sell && Symbol.Sentiment.BuyPercentage > 60)
            ClosePosition(position);
    }
}

Uyarlanabilir risk yapılandırması

Gürültülü işlemleri filtrele

Net bir duyarlılık eğilimi olmadığında işlem yapmaktan kaçınan bir cBot geliştirebilirsiniz. Örneğin, duyarlılık neredeyse eşit bölünmüşse ve fark %10'un altındaysa, cBot işlemi atlar. Bu kurulum, gürültüyü filtreler ve sizi kararsız piyasalardan korur.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
protected override void OnBar()
{
    var diff = Math.Abs(Symbol.Sentiment.BuyPercentage - Symbol.Sentiment.SellPercentage);

    if (diff < 10)
    {
        // Sentiment is too neutral. Avoid trading
        return;
    }

    // Continue strategy logic here
}

Duyarlılığa göre işlemleri ölçeklendir

Duyarlılığın tek bir yöne ne kadar güçlü eğildiğine bağlı olarak pozisyon büyüklüğünü ayarlamak için bir cBot kurabilirsiniz. Örneğin, yükseliş duyarlılığı düşüş duyarlılığını büyük bir farkla geride bırakırsa, cBot işlem hacmini artırır. Duyarlılık nötre yakınsa, cBot daha küçük işlem yapar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
protected override void OnBar()
{
    double sentimentStrength = Math.Abs(Symbol.Sentiment.BuyPercentage - Symbol.Sentiment.SellPercentage);
    long volume = (long)(10000 * (sentimentStrength / 100.0)); // Adjust volume dynamically

    if (Symbol.Sentiment.BuyPercentage > Symbol.Sentiment.SellPercentage)
    {
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000);
    }
    else
    {
        ExecuteMarketOrder(TradeType.Sell, "EURUSD", 10000);
    }
}

Piyasa etkinliğine göre stratejiyi kısıtla

Stratejiniz, duyarlılık kalabalık bir piyasa belirtileri gösterdiğinde işlem yapmayı duraklatmak üzere ayarlanabilir. Örneğin, trader'ların %90'ından fazlası alım veya satım yapıyorsa, cBot piyasanın tersine dönme olasılığı yüksekken bir pozisyona girmekten kaçınmak için işlem yapmayı durdurur.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
protected override void OnBar()
{
    if (Symbol.Sentiment.BuyPercentage > 90 || Symbol.Sentiment.SellPercentage > 90)
    {
        Print("Extreme sentiment detected. Halting trading temporarily.");
        return;
    }

    // Continue normal trading logic
}

Duyarlılığa göre zarar durdur ayarla

Bir cBot'a duyarlılık gücünü ölçmesini ve uygun zarar durdur büyüklüğüyle yanıt vermesini öğretebilirsiniz. Örneğin, yükseliş duyarlılığı %80'i aştığında, cBot 20 pip'lik daha sıkı bir zarar durdur kullanır. Duyarlılık daha az güvenliyse, cBot daha fazla hareket alanı sağlamak için 50 pip'lik daha geniş bir zarar durdur ayarlar.

1
2
3
4
5
6
7
8
protected override void OnBar()
{
    double stopLossPips = Symbol.Sentiment.BuyPercentage > 80 ? 20 : 50;
    if (Symbol.Sentiment.BuyPercentage > Symbol.Sentiment.SellPercentage)
    {
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000, "buy", stopLossPips, null);
    }
}

İzleme ve analiz

Duyarlılık tabanlı uyarılar oluştur

Duyarlılığı gerçek zamanlı olarak izleyen ve aşırı seviyelere ulaşıldığında sizi uyaran bir cBot düşünün. Örneğin, alış duyarlılığı %90'ı aşarsa, cBot bir yükseliş uyarısı kaydeder veya yazdırır. Satış duyarlılığı aynı eşiği geçerse, aşırı düşüş hakkında sizi bilgilendirir.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// This method handles the SymbolSentiment_Updated event
// It is triggered whenever the symbol sentiment data is updated
private void SymbolSentiment_Updated(SymbolSentimentUpdatedEventArgs obj)
{
    if (obj.Sentiment.BuyPercentage > 90)
        Print("Extreme bullish sentiment detected!");

    if (obj.Sentiment.SellPercentage > 90)
        Print("Extreme bearish sentiment detected!");
}

Duyarlılık ısı haritası stratejisi çalıştır

Birden fazla varlıkta duyarlılık taraması yapan ve en iyi işlem fırsatlarını belirleyen bir cBot düşünün. Örneğin, cBot mevcut tüm semboller arasında döngü yapar ve alış ve satış yüzdelerini yazdırır, ardından en aşırı yükseliş veya düşüş duyarlılığına sahip olanlara odaklanabilirsiniz.

1
2
3
4
5
6
7
8
protected override void OnStart()
{
    var symbols = Symbols.GetSymbols();
    foreach (var sym in symbols)
    {
        Print($"{sym.Name} - Buy %: {sym.Sentiment.BuyPercentage}, Sell %: {sym.Sentiment.SellPercentage}");
    }
}

Duyarlılık aracılığıyla kırılmaları tespit et

Bir cBot, duyarlılıktaki hızlı değişiklikleri bir kırılma veya artan piyasa oynaklığının potansiyel bir işareti olarak tespit etmek için programlanabilir. Örneğin, alış duyarlılığı %15'ten fazla artar veya düşerse, cBot bu ani yükselişi oynak bir hareketin erken bir göstergesi olarak kaydeder.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Field to store the previous buy percentage value
private double previousBuy;

protected override void OnStart()
{
    previousBuy = Symbol.Sentiment.BuyPercentage;

    // Subscribe to the sentiment updated event
    // This will trigger the SymbolSentiment_Updated method whenever sentiment data is updated    
    Symbol.Sentiment.Updated += SymbolSentiment_Updated;
}

// obj is an instance of SymbolSentimentUpdatedEventArgs, which carries the updated sentiment data
private void SymbolSentiment_Updated(SymbolSentimentUpdatedEventArgs obj)
{
    double change = Math.Abs(obj.Sentiment.BuyPercentage - previousBuy);
    if (change > 15)
        Print("Spike in sentiment detected. Breakout or heightened volatility coming soon");

    previousBuy = obj.Sentiment.BuyPercentage;
}

Gösterge sinyallerini doğrula

Yalnızca göstergelere güvenmek yerine, cBot'unuzu hem gösterge hem de duyarlılık koşulları uyumlu olduğunda hareket edecek şekilde programlayarak stratejinizi geliştirebilirsiniz. Örneğin, RSI aşırı satım gösterdiğinde ve duyarlılık %70'in üzerinde yükseliş gösterdiğinde, cBot alış yapar. RSI aşırı alım sinyali verdiğinde ve duyarlılık %70'in üzerinde düşüş gösterdiğinde, cBot satış yapar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
private RelativeStrengthIndex rsi;

protected override void OnStart()
{
    rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);
}

protected override void OnBar()
{
    if (rsi.Result.LastValue < 30 && Symbol.Sentiment.BuyPercentage > 70)
    {
        ExecuteMarketOrder(TradeType.Buy, "EURUSD", 10000);
    }

    if (rsi.Result.LastValue > 70 && Symbol.Sentiment.SellPercentage > 70)
    {
        ExecuteMarketOrder(TradeType.Sell, "EURUSD", 10000);
    }
}