present
Registrieren Sie sich und erhalten Sie $50 Rabatt auf Ihren ersten Kauf
Trading product for Doji Engulf Indikator, image 1
Doji Engulf
Indikator
3 downloads
Version 1.0, Jul 2025
Windows, Mac
3
Kostenlose Installationen

Beschreibung

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-GrĂ¶ĂŸe", DefaultValue = 0.05, MinValue = 0.01, Step = 0.01)]

public double DojiSize { get; set; }


[Parameter("VerhÀltnis langer Kerzen", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


[Parameter("Volumenfilter verwenden?", DefaultValue = false)]

public bool UseVolumeFilter { get; set; }


[Parameter("Periode des gleitenden Volumendurchschnitts", DefaultValue = 24)]

public int VolumeMA { get; set; }


[Parameter("RSI-Periode", DefaultValue = 14)]

public int RSIPeriod { get; set; }


[Parameter("Docht-zu-Körper-VerhÀltnis", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Doji-Signal", 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]; // Markiere den Doji im Chart

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


// Hebe das Hoch und Tief der Doji-Kerze mit durchgehenden Linien hervor, die sich ĂŒber die nĂ€chsten 3 Kerzen erstrecken

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// SMT-Divergenz-Erkennung wird jetzt auf alle Zeitrahmen angewendet

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


// Zeichne durchgehende horizontale Linien am Hoch und Tief der Doji-Kerze, die sich ĂŒber die nĂ€chsten 3 Kerzen erstrecken

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;


// FĂŒge neben der blauen Linie die Zeitrahmennummer oder den Label-Text hinzu

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

}


private void DetectSMTDivergence(int index)

{

// PrĂŒfe, ob das aktuelle Hoch oder Tief eine Divergenz mit dem RSI bildet

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)

{

// BÀrische Divergenz: Preis macht ein höheres Hoch, RSI macht ein niedrigeres Hoch

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Markiere die Divergenz im Chart mit einer eindeutigen Kennung fĂŒr diesen Zeitrahmen

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

}


// Bullische Divergenz: Preis macht ein niedrigeres Tief, RSI macht ein höheres Tief

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Markiere die Divergenz im Chart mit einer eindeutigen Kennung fĂŒr diesen Zeitrahmen

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;


// Bestimme, ob die aktuelle Kerze einen kleinen Körper und lange Dochte hat

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

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


// Bestimme, ob die vorherige Kerze einen kleinen Körper und lange Dochte hat

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

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


return currentHasLongWicks || prevHasLongWicks;

}

}

}

Zusammenfassung

AI summary
Doji Engulf is a technical indicator designed for use on multiple higher timeframes including 1 hour, 4 hours, and daily charts. It identifies Doji candlestick patterns—candles with small bodies relative to their range—and validates these signals by checking volume filters and relative strength index (RSI) conditions. The indicator marks detected Doji candles on the chart with orange diamond icons and highlights their high and low prices with solid horizontal lines extending over subsequent candles. It also detects Smart Money Technique (SMT) divergences by comparing price highs and lows with RSI values, marking bullish and bearish divergences with green up arrows and red down arrows respectively. Parameters allow customization of Doji size, candle body ratios, volume filtering, volume moving average period, RSI period, and wick-to-body ratio. The indicator supports multiple timeframes from 15 minutes up to monthly, adapting its analysis accordingly. It provides visual cues directly on the trading chart to assist traders in identifying potential reversal or continuation signals based on Doji patterns and divergence analysis.
Indikatorprofil

Kundenbewertungen

0.0
Bewertungen: 0
Kundenbewertungen
Bisher gibt es keine Bewertungen fĂŒr dieses Produkt. Haben Sie es schon ausprobiert? Dann können Sie die erste Person sein, die andere darĂŒber informiert!

Diskussion

HĂ€ufig gestellte Fragen (FAQ)

Über den cTrader Store verfĂŒgbare Produkte, einschließlich Handelsbots, Indikatoren und Plugins, werden von externen Entwicklern bereitgestellt und nur zu Informations- und technischen Zugriffszwecken verfĂŒgbar gemacht. cTrader Store ist kein Broker und erbringt keine Anlageberatung, persönlichen Empfehlungen oder eine Garantie fĂŒr zukĂŒnftige Performance.

Mehr von diesem Autor

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

Das könnte Sie auch noch interessieren

Indikator
EMA
Volume
+4
Advanced volume‑profile tool with delta, HVN/LVN zones, and precise POC‑based trade signals.
Indikator
RSI
MACD
+7
The ZigZag indicator is a technical analysis tool primarily used to identify key price reversal points.
Indikator
Prop
Forex
+7
Adaptive Median Filter calculates price median to eliminate noise and extreme values.
Indikator
Prop
Forex
+5
Basic & FREE. Plots New York Initial Balance (NY local time) and projects IB High, IB Low, and midline.
Indikator
ATR
MSS
+5
Advanced market structure and institutional cycle mapper with visual reference cards and entry alerts
Indikator
Market Structure
Support & Resistance
Auto-centers price when it moves beyond threshold. Adjustable zoom. Works on any chart type. Never lose price again.
Indikator
Parabolic SAR Alert - Trend reversal alerts with smart signals & custom alerts.
„KANDIKA HEAT MAP“-Logo
Beste Ratings
4.6
(5)
$19
Indikator
Color-Based Market Pressure & Volatility Visualizer The Kandika Heatmap Indicator
Indikator
XAUUSD
Professional Volume Profile Indicator - Shows volume distribution, POC, Value Areas & Buy/Sell pressure.
Indikator
BOS
Fibonacci
+5
🕐 ICT Killzones with live session High/Low levels that stop extending the moment price sweeps them. Clean, fast, daily
Indikator
ATR
The Tenkan-ATR Indicator is a powerful and innovative indicator for Traders. SALE OFF!!!
Indikator
Volume
Order Block
+4
Volume Profile with fixed period, custom range and buy/sell pressure.
Indikator
RSI
RSI on the main chart with 45/55 momentum levels, overbought/oversold levels, averaged RSI, and multi-timeframe support.
Indikator
SMC
Grid
+19
Smart fractals + auto Fibonacci + dynamic S/R zones with HTF confluence & Bull/Bear bias panel. Institutional-grade.
Indikator
RSI
Signal
+2
Identifies trends with moving averages & volatility. Base levels = bullish 🐂 or bearish đŸ» signals. Reversals detected!
Indikator
Forex
Crypto
+5
Experience a new approach with amplitude-based momentum analysis. Smart Trend Detection That Adapts to Market Volatility
„IVB 2.0“-Logo
Beste Ratings
4.6
(5)
$19
Indikator
IVB 2.0 is an indicator that works on the strategy of imbalance of the maximum volatility box of indices
Indikator
MSS
Volume
+3
Rejection-based volume profile with tiered heat zones, POC levels and a fully draggable anchor on cTrader.

Preis

3
Kostenlose Installationen