Doji Engulf
Gösterge
3 i̇ndirmeler
Sürüm 1.0, Jul 2025
Windows, Mac
3
Ücretsiz yüklemeler

Açıklama

using cAlgo.API;

using cAlgo.API.Indicators;

using cAlgo.API.Internals;

using System;


namespace cAlgo.Indicators

{

[Indicator(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]

public class DojiStrategyIndicator : Indicator

{

[Parameter("Doji boyutu", DefaultValue = 0.05, MinValue = 0.01, Step = 0.01)]

public double DojiSize { get; set; }


[Parameter("Uzun Mum Oranı", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


[Parameter("Hacim Filtresi Kullanılsın mı?", DefaultValue = false)]

public bool UseVolumeFilter { get; set; }


[Parameter("Hacim Hareketli Ortalama Periyodu", DefaultValue = 24)]

public int VolumeMA { get; set; }


[Parameter("RSI Periyodu", DefaultValue = 14)]

public int RSIPeriod { get; set; }


[Parameter("Fitil-Gövde Oranı", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Doji Sinyali", Color = Colors.Orange, PlotType = PlotType.Points, Thickness = 2)]

public IndicatorDataSeries DojiSignal { get; set; }


protected override void Initialize()

{

if (UseVolumeFilter)

volumeMA = Indicators.MovingAverage(MarketSeries.TickVolume, VolumeMA, MovingAverageType.Simple);


rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, RSIPeriod);

}


public override void Calculate(int index)

{

double body = MarketSeries.Close[index] - MarketSeries.Open[index];

double range = MarketSeries.High[index] - MarketSeries.Low[index];

double abody = Math.Abs(body);

double ratio = abody / range;


bool isDoji = abody <= range * DojiSize;

bool goStar = isDoji && (!UseVolumeFilter || MarketSeries.TickVolume[index] > volumeMA.Result[index]);


if (goStar && IsHigherTimeFrame(out int timeFrameNumber, out string label))

{

DojiSignal[index] = MarketSeries.Close[index]; // Dojiyi grafikte işaretle

Chart.DrawIcon("Doji" + TimeFrame.ToString() + index, ChartIconType.Diamond, index, MarketSeries.Close[index], Color.Orange);


// Doji mumunun yüksek ve düşük seviyelerini sonraki 3 mum boyunca uzanan dolu çizgilerle vurgula

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// SMT Uyumsuzluk tespiti artık tüm zaman dilimlerine uygulanıyor

DetectSMTDivergence(index);

}


private bool IsHigherTimeFrame(out int timeFrameNumber, out string label)

{

timeFrameNumber = 0;

label = string.Empty;


if (TimeFrame == TimeFrame.Minute15)

{

timeFrameNumber = 15;

label = "0.25";

return true;

}

else if (TimeFrame == TimeFrame.Minute30)

{

timeFrameNumber = 30;

label = "0.5";

return true;

}

else if (TimeFrame == TimeFrame.Minute45)

{

timeFrameNumber = 45;

label = "0.75";

return true;

}

else if (TimeFrame == TimeFrame.Hour)

{

timeFrameNumber = 1;

label = "1";

return true;

}

else if (TimeFrame == TimeFrame.Hour2)

{

timeFrameNumber = 2;

label = "48";

return true;

}

else if (TimeFrame == TimeFrame.Hour4)

{

timeFrameNumber = 4;

label = "4";

return true;

}

else if (TimeFrame == TimeFrame.Daily)

{

timeFrameNumber = 24;

label = "24";

return true;

}

else if (TimeFrame == TimeFrame.Weekly)

{

timeFrameNumber = 168;

label = "W";

return true;

}

else if (TimeFrame == TimeFrame.Monthly)

{

timeFrameNumber = 720;

label = "M";

return true;

}


return false;

}


private void HighlightDojiHighLow(int dojiIndex, int timeFrameNumber, string label)

{

double dojiHigh = MarketSeries.High[dojiIndex];

double dojiLow = MarketSeries.Low[dojiIndex];


// Doji mumunun yüksek ve düşük seviyelerinde sonraki 3 mum boyunca uzanan dolu yatay çizgiler çiz

Chart.DrawTrendLine("DojiHighLine" + TimeFrame.ToString() + dojiIndex, dojiIndex, dojiHigh, dojiIndex + 3, dojiHigh, Color.Blue, 2, LineStyle.Solid).IsInteractive = true;

Chart.DrawTrendLine("DojiLowLine" + TimeFrame.ToString() + dojiIndex, dojiIndex, dojiLow, dojiIndex + 3, dojiLow, Color.Red, 2, LineStyle.Solid).IsInteractive = true;


// Mavi çizginin yanına zaman dilimi numarası veya etiket metni ekle

Chart.DrawText("TimeFrameHigh" + TimeFrame.ToString() + dojiIndex, label, dojiIndex + 3, dojiHigh, Color.Green).IsInteractive = true;

}


private void DetectSMTDivergence(int index)

{

// Mevcut yüksek veya düşük seviyenin RSI ile uyumsuzluk oluşturup oluşturmadığını kontrol et

double currentHigh = MarketSeries.High[index];

double currentLow = MarketSeries.Low[index];


double prevHigh = MarketSeries.High[index - 1];

double prevLow = MarketSeries.Low[index - 1];


double currentRSI = rsi.Result[index];

double prevRSI = rsi.Result[index - 1];


bool isWickDivergence = IsWickDivergence(index, currentHigh, currentLow, prevHigh, prevLow);


if (isWickDivergence)

{

// Ayı Uyumsuzluğu: Fiyat daha yüksek bir zirve yapar, RSI daha düşük bir zirve yapar

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Bu zaman dilimi için benzersiz bir tanımlayıcı ile uyumsuzluğu grafikte işaretle

Chart.DrawIcon("BearishDivergence" + TimeFrame.ToString() + index, ChartIconType.DownArrow, index, currentHigh, Color.Red);

}


// Boğa Uyumsuzluğu: Fiyat daha düşük bir dip yapar, RSI daha yüksek bir dip yapar

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Bu zaman dilimi için benzersiz bir tanımlayıcı ile uyumsuzluğu grafikte işaretle

Chart.DrawIcon("BullishDivergence" + TimeFrame.ToString() + index, ChartIconType.UpArrow, index, currentLow, Color.Green);

}

}

}


private bool IsWickDivergence(int index, double currentHigh, double currentLow, double prevHigh, double prevLow)

{

double currentBody = Math.Abs(MarketSeries.Close[index] - MarketSeries.Open[index]);

double currentRange = currentHigh - currentLow;


double prevBody = Math.Abs(MarketSeries.Close[index - 1] - MarketSeries.Open[index - 1]);

double prevRange = prevHigh - prevLow;


// Mevcut mumun küçük gövdesi ve uzun fitilleri olup olmadığını belirle

bool currentHasLongWicks = (currentHigh - MarketSeries.Close[index]) > currentBody * WickToBodyRatio &&

(MarketSeries.Open[index] - currentLow) > currentBody * WickToBodyRatio;


// Önceki mumun küçük gövdesi ve uzun fitilleri olup olmadığını belirle

bool prevHasLongWicks = (prevHigh - MarketSeries.Close[index - 1]) > prevBody * WickToBodyRatio &&

(MarketSeries.Open[index - 1] - prevLow) > prevBody * WickToBodyRatio;


return currentHasLongWicks || prevHasLongWicks;

}

}

}

Özet

Gösterge profili

Müşteri değerlendirmeleri

0.0
Değerlendirmeler: 0
Müşteri değerlendirmeleri
Bu ürün için henüz bir değerlendirme yok. Ürünü denediniz mi? O zaman ona dair görüşlerini paylaşan ilk kişi olun!

Tartışma

SSS

cTrader Store üzerinden erişilebilen işlem botları, göstergeler ve eklentiler gibi ürünler, üçüncü taraf sağlayıcılar tarafından sağlanır ve yalnızca bilgilendirme ve teknik erişim amaçlarıyla sunulur. cTrader Store bir broker değildir ve yatırım tavsiyesi, kişisel öneriler vermez veya gelecekteki performansı garanti etmez.

Bu oluşturanın diğer ürünleri

Gösterge
The Session Golden Hours indicator is designed for serious traders looking to visualize high-probability

Şunları da beğenebilirsiniz

Gösterge
MACD
Prop
+14
Customize the MACD! Choose colors, get real-time tick updates, and see crossover points for enhanced trading precision.
Gösterge
SMC
Prop
+14
Right-anchored cTrader Volume Profile with VAH/VAL/POC, LVZ, top volume+EMA, themes, and fast, readable visuals.
Gösterge
MSS
Key Levels
+4
Maps session ranges, previous highs/lows, equilibrium and premium/discount zones on your cTrader chart.
Gösterge
This indicator can be used to: change color, shape size, position, change font, increase or decrease, and other function
Gösterge
VWAP
Free Volume Profile v2.0
Gösterge
Prop
ZigZag
+5
All-in-One ICT/SMC Institutional Framework — Ranges, Structure, Liquidity, Fibonacci & Time Engine.
Gösterge
AI
ATR
+27
🔮 Smart Bar Predictor - Professional Volatility Forecasting Indicator
Gösterge
Prop
Forex
+13
Supertrend - Multi-Timeframe Indicator
Gösterge
News Filter
External Data
+3
Real-time financial news and economic calendar overlay for cTrader with smart alerts
Gösterge
Forex
Crypto
+4
Spot powerful 3-candle reversal patterns like Morning/Evening Star and Soldiers/Crows at key swing highs and lows
Gösterge
Area of Interest with the power of AI to detect the market interest.
Gösterge
RSI
SMC
+17
RSI, MACD, Stochastic, CCI & Momentum divergence scanner with confluence scoring. Never miss a signal again!
Gösterge
ATR
BOS
+4
Based on market structure and draws liquidity zones, institutional flows, and consolidation ranges. Smart Money Concepts
Gösterge
Signal
USDJPY
See USD demand in one line—Composite OBV fuses six major FX pairs into a clear momentum gauge.
Gösterge
Forex
Crypto
+3
FREE Global Trading Sessions Indicator
Gösterge
MACD
Forecast future prices using historical MACD trends. Features a probability fan for smart entries and dynamic targets.
Gösterge
BOS
CHOCH
+1
Maps unmitigated SMC swing points. Draws infinite structure lines until price touches them, labeling BOS & CHoCH breaks.
Gösterge
Prop
VWAP
+5
VWAP is a powerful tool for intraday traders

Fiyat

3
Ücretsiz yüklemeler