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]; // Mark the Doji on the chart

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


// Highlight the high and low of the Doji candle with solid lines that extend over the next 3 candles

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// SMT Divergence detection is now applied to all time frames

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


// Draw solid horizontal lines at the high and low of the Doji candle extending over the next 3 candles

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;


// Add time frame number or label text next to the blue line

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

}


private void DetectSMTDivergence(int index)

{

// Check if the current high or low forms a divergence with the 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)

{

// Bearish Divergence: Price makes a higher high, RSI makes a lower high

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Mark the divergence on the chart with a unique identifier for this time frame

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

}


// Bullish Divergence: Price makes a lower low, RSI makes a higher low

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Mark the divergence on the chart with a unique identifier for this time frame

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;


// Determine if the current candle has a small body and long wicks

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

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


// Determine if the previous candle has a small body and long wicks

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

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


return currentHasLongWicks || prevHasLongWicks;

}

}

}

الملخص

ملف تعريف المؤشر

تقييمات العملاء

0.0
التقييمات: 0
تقييمات العملاء
لا توجد تقييمات لهذا المنتج حتى الآن. هل جرَّبته بالفعل؟ كن أول من يخبر الآخرين!

مناقشة

الأسئلة الشائعة

يتم توفير المنتجات المتاحة من خلال cTrader Store، بما في ذلك روبوتات التداول والمؤشرات والإضافات، من قبل مطوري الطرف الثالث وإتاحتها لأغراض الوصول المعلوماتي والفني فقط. cTrader Store ليس وسيطًا ولا يقدم نصائح استثمارية أو توصيات شخصية أو أي ضمان للأداء المستقبلي.

المزيد من هذا المؤلف

مؤشر
The Session Golden Hours indicator is designed for serious traders looking to visualize high-probability

قد يعجبك أيضًا

مؤشر
ATR
Channel
+3
Catch trend with precision. BUY/SELL arrows, real-time dashboard, sound alerts and ATRchannel. Works on all markets.
شعار "ADT_bigCandles"
الأعلى تقييمًا
4.7
(4)
$20
/
$40
مؤشر
ATR
Prop
Outside Candle Detector: Highlights major candles/zones with ATR filter & pattern labels. By Avydel Talbo, prop trader.
مؤشر
Highlights market sessions & overlaps with real-time range & volume stats – perfect for pro scalpers.
شعار "Market Structure Shift"
الأعلى تقييمًا
4.2
(4)
$19
/
$35
مؤشر
Prop
Forex
+11
Market Structure Shift – Professional Market Structure Oscillator
مؤشر
ATR
Prop
+13
Pro VSA tool with 3 modes: Fixed Ratios, Standard Deviation & Contextual VSA.
مؤشر
ATR
EMA
+5
The indicator displays potential reversal zones (support/resistance) on the chart based on the average range (High–Low)
مؤشر
Chaikin money flow's primary purpose is to distinguish between periods of accumulation and distribution of a security.
مؤشر
Prop
Forex
+4
A precision-crafted indicator that compares current volume to its historical average for the same time of day.
مؤشر
ATR
Channel
Reversal Trap Probability Bands plots a dynamic volatility envelope around price & automatically detects "trap" reversal
مؤشر
Forex
Enhance your trading strategy with automated detection and alerts for key chart patterns.
مؤشر
Advanced customizable volume-profile indicator with buy/sell levels, delta analysis, multi-TF support and vivid gradient
مؤشر
BOS
CHOCH
+5
MyZTrade High TF candle is a multi-timeframe visualisation tool that overlays completed higher-timeframe candles.
مؤشر
SMC
Prop
+15
Automatic Elliott Wave Detection with Professional Filters
مؤشر
BOS
EMA
+5
Directional volume heatmap: see if a price zone was built on buying or selling, not just how much.
مؤشر
Key Levels
Market Structure
+1
HTF Candle Projector displays the current Higher Timeframe candle (4H or 1H) as a real projected candle LIVE..
مؤشر
BOS
Fibonacci
+4
Automatically draws major trading sessions, killzones, and SMC daily liquidity targets directly on your cTrader charts.
مؤشر
Market Structure
Stop guessing which trading session you in, with Sessions indicator sessions are in your finger tips like a pro
مؤشر
Simple MACD Histogram with color-coded rising (green) and falling (red) momentum bars.

السعر

3
التثبيتات المجانية