present
Зарегистрируйтесь и получите скидку $50 на первую покупку
Trading product for Doji Engulf Индикатор, image 1
Doji Engulf
Индикатор
3 скачивания
Версия 1.0, Jul 2025
Windows, Mac
3
Бесплатные установки

Описание

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("Размер додзи", DefaultValue = 0.05, MinValue = 0.01, Step = 0.01)]

public double DojiSize { get; set; }


[Parameter("Коэффициент длинной свечи", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


[Parameter("Использовать фильтр объема?", DefaultValue = false)]

public bool UseVolumeFilter { get; set; }


[Parameter("Период скользящего среднего объема", DefaultValue = 24)]

public int VolumeMA { get; set; }


[Parameter("Период RSI", DefaultValue = 14)]

public int RSIPeriod { get; set; }


[Parameter("Коэффициент фитиля к телу", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Сигнал додзи", 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]; // Отметить додзи на графике

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


// Выделить максимум и минимум свечи додзи сплошными линиями, которые продолжаются на следующие 3 свечи

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// Обнаружение дивергенции SMT теперь применяется ко всем таймфреймам

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


// Нарисовать сплошные горизонтальные линии на максимуме и минимуме свечи додзи, продолжающиеся на следующие 3 свечи

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;


// Добавить номер таймфрейма или текст метки рядом с синей линией

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

}


private void DetectSMTDivergence(int index)

{

// Проверить, образует ли текущий максимум или минимум дивергенцию с 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)

{

// Медвежья дивергенция: цена делает более высокий максимум, RSI делает более низкий максимум

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Отметить дивергенцию на графике с уникальным идентификатором для этого таймфрейма

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

}


// Бычья дивергенция: цена делает более низкий минимум, RSI делает более высокий минимум

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Отметить дивергенцию на графике с уникальным идентификатором для этого таймфрейма

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;


// Определить, имеет ли текущая свеча маленькое тело и длинные фитили

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

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


// Определить, имеет ли предыдущая свеча маленькое тело и длинные фитили

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

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


return currentHasLongWicks || prevHasLongWicks;

}

}

}

Сводка

ИИ-сводка
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.
Профиль индикатора

Отзывы покупателей

0.0
Отзывы: 0
Отзывы покупателей
У этого продукта еще нет отзывов. Уже попробовали его? Поделитесь впечатлениями!

Обсуждение

Частые вопросы

Продукты, доступные в cTrader Store, включая торговых ботов, индикаторы и плагины, предоставляются сторонними разработчиками и доступны исключительно в информационных и технических целях. cTrader Store не является брокером и не предоставляет инвестиционные консультации, персональные рекомендации или какие-либо гарантии будущей доходности.

Больше от этого автора

Индикатор
The Session Golden Hours indicator is designed for serious traders looking to visualize high-probability

Вам также может понравиться

Индикатор
RSI
Stochastic
+2
Composite mean-reversion oscillator merging Z-Score, RSI & Bollinger %B into one clear overbought/oversold signal.
Логотип продукта "VegaXLR - Fibonacci Alerts"
Популярный
4.5
(4)
$20
Индикатор
Forex
Alerts you when price touches Fibonacci levels. Stay organized and trade efficiently!
Индикатор
ADX
Breaker Block
+1
I share with you the Elliott Wave Oscillator. Hernan Nievas, Rosario, Argentina. April 28, 2026.
Индикатор
ATR
RSI
+4
Adaptive Ichimoku with nine-factor confluence scoring, five signal types, smart TP/SL and an MTF panel.
Логотип продукта "Engulfing CandlePRO"
Популярный
4.5
(2)
$19
/
$29
Индикатор
Forex
BTCUSD
+11
Auto-detects Bullish/Bearish Engulfing patterns to spot trend reversals. Real-time alerts, custom colors, all symbols.
Индикатор
Forex
cTrader Auto Support & Resistance detects key levels with Fibonacci analysis and sends real-time trading alerts.
Логотип продукта "CRT Pattern Indicator"
Высокий рейтинг
4.6
(16)
Бесплатно
Индикатор
The CRT indicator helps ICT traders identify candlestick patterns, enhancing analysis of higher timeframe on lower
Индикатор
BOS
CHOCH
+5
Smart Money Concepts Automate your institutional analysis and make decisions with pinpoint precision..
Индикатор
Channel
Imbalance
+2
Adaptive volatility channel based on moving average and standard deviation (σ).
Логотип продукта "Series - FXMaster"
Популярный
4.6
(5)
$19
Индикатор
Forex
Crypto
+3
Consecutive Series Moves — Reveal the True Pulse of Price Action
Индикатор
RSI
RSI Amplified
Индикатор
SMC
NAS100
+5
Rolling Volume Profile MTF with 24H, 7D, 30D profiles and a precise NY Open marker.
Индикатор
Key Levels
Market Structure
+1
Free: Asia / London / NY sessions, ICT killzones and the opening range. One clean, no-repaint cTrader overlay.
Индикатор
ATR
RSI
+4
RSI bands drawn on price, confluence-scored BUY/SELL signals, an ATR stop with three targets
Индикатор
Aggressive
Supertrend
+5
Stop trading with tunnel vision! 🚫 The Heat Map Dashboard is an institutional-grade visual trading assistant
Индикатор
Highlights market sessions & overlaps with real-time range & volume stats – perfect for pro scalpers.
Логотип продукта "ATR Bands"
Популярный
4.7
(4)
$19
Индикатор
ATR
Prop
+13
Enhance trading with ATR Bands! Visualize market volatility using dynamic upper and lower ATR bands for precise decision
Индикатор
ATR
RSI
+5
Multi-factor VWAP mean-reversion signals with ATR bands, volume exhaustion, and RSI gate on cTrader.

Цена

3
Бесплатные установки