present
Registrati e ricevi uno sconto da $50 sul tuo primo acquisto
Trading product for Doji Engulf Indicatore, image 1
Doji Engulf
Indicatore
3 download
Versione 1.0, Jul 2025
Windows, Mac
3
Installazioni gratuite

Descrizione

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("Dimensione Doji", DefaultValue = 0.05, MinValue = 0.01, Step = 0.01)]

public double DojiSize { get; set; }


[Parameter("Rapporto Candela Lunga", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


[Parameter("Usare Filtro Volume?", DefaultValue = false)]

public bool UseVolumeFilter { get; set; }


[Parameter("Periodo Media Mobile Volume", DefaultValue = 24)]

public int VolumeMA { get; set; }


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

public int RSIPeriod { get; set; }


[Parameter("Rapporto Wick-corpo", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Segnale Doji", 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]; // Segna il Doji sul grafico

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


// Evidenzia il massimo e il minimo della candela Doji con linee solide che si estendono sulle 3 candele successive

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// La rilevazione della divergenza SMT è ora applicata a tutti i timeframe

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


// Disegna linee orizzontali solide al massimo e minimo della candela Doji estese sulle 3 candele successive

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;


// Aggiungi il numero del timeframe o il testo dell'etichetta accanto alla linea blu

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

}


private void DetectSMTDivergence(int index)

{

// Controlla se il massimo o minimo corrente forma una divergenza con l'RSI

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)

{

// Divergenza ribassista: il prezzo fa un massimo più alto, l'RSI fa un massimo più basso

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Segna la divergenza sul grafico con un identificatore unico per questo timeframe

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

}


// Divergenza rialzista: il prezzo fa un minimo più basso, l'RSI fa un minimo più alto

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Segna la divergenza sul grafico con un identificatore unico per questo timeframe

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;


// Determina se la candela corrente ha un corpo piccolo e lunghe ombre

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

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


// Determina se la candela precedente ha un corpo piccolo e lunghe ombre

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

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


return currentHasLongWicks || prevHasLongWicks;

}

}

}

Riepilogo

Riepilogo AI
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.
Profilo indicatore

Recensioni dei clienti

0.0
Recensioni: 0
Recensioni dei clienti
Questo prodotto non ha ancora ricevuto recensioni. L'hai già provato? Fallo sapere agli altri per primo!

Discussioni

Domande frequenti

I prodotti disponibili tramite cTrader Store, inclusi bot di trading, indicatori e plugin, sono forniti da sviluppatori terzi e resi disponibili esclusivamente a scopo informativo e di accesso tecnico. cTrader Store non è un broker e non fornisce consulenze in materia di investimento, raccomandazioni individualizzate o garanzie di risultati futuri.

Altro da questo autore

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

Potrebbe interessarti anche

Indicatore
ADX
ATR
+1
Indicador de Sinais Visuais para Spotcrude (WTI) ou SpotBrent com filtros de tendência, operacional de 10 e 15 minutos.
Indicatore
ZigZag Smart Alert for cTrader Description: ZigZag Smart Alert is a next-generation swing indicator for cTrader, designe
Indicatore
RSI
SMC
+17
RSI, MACD, Stochastic, CCI & Momentum divergence scanner with confluence scoring. Never miss a signal again!
Indicatore
Forex
Signal
+4
Gann Pivot Vision is an innovative analytical tool that combines classic pivot reversal levels and Gann geometry
Indicatore
RSI
Stochastic
+1
Clean StochRSI panel with trend bias, overbought/oversold zones, and tactical long/short trigger levels for cTrader
Indicatore
ADX
ATR
+5
EMA-cross signals scored on six confluence layers, with an ATR stop, three targets and a live panel
Indicatore
Prop
Scalping
Shows bars from different Time Frame on zoom out and hides the current bars. Perfect tool for Multi TF "Market Reply"
Indicatore
Add Slowing to IR Moving Average.
Indicatore
ATR
RSI
+16
This trading game allows you to explore and practice investment strategies in a real-time market data environment.
Indicatore
Prop
Forex
+11
Ultimate Session Tool: Boxes, OR, KZs, PD Levels, Overlaps, Custom Lines & Names, Info Panel! Highly customizable 📉📈
Indicatore
MSS
Volume
+3
Rejection-based volume profile with tiered heat zones, POC levels and a fully draggable anchor on cTrader.
Indicatore
Breakout
Fibonacci
Statistically-grounded trend channels via linear regression — clear trend & reversal zones.
Indicatore
E7 Correlation Dashboard.
Indicatore
ATR
RSI
+4
Adaptive Ichimoku with nine-factor confluence scoring, five signal types, smart TP/SL and an MTF panel.
Indicatore
BOS
MSS
+5
Your entire ICT session map, structure engine, and key levels — No manual work. One indicator. Every session!
Indicatore
ADX
ATR
+5
Ten confluence layers scored on every closed bar, with an anti-chop gate, pivot levels and a live dashboard.
Indicatore
Forex
Real-Time Candlestick Pattern Detection with Custom Alerts & Trend Analysis for cTrader
Indicatore
AI
SMC
+19
ZigZag Pro — Advanced swing detection with ATR threshold, fractal confirmation, and colored segments. Clean market

Prezzo

3
Installazioni gratuite