present
Daftar dan dapatkan diskon $50 untuk pembelian pertama Anda
Trading product for Doji Engulf Indikator, image 1
Doji Engulf
Indikator
3 unduhan
Versi 1.0, Jul 2025
Windows, Mac
3
Instal gratis

Deskripsi

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

public double DojiSize { get; set; }


[Parameter("Rasio Lilin Panjang", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


[Parameter("Gunakan Filter Volume?", DefaultValue = false)]

public bool UseVolumeFilter { get; set; }


[Parameter("Periode Rata-Rata Bergerak Volume", DefaultValue = 24)]

public int VolumeMA { get; set; }


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

public int RSIPeriod { get; set; }


[Parameter("Rasio Sumbu ke Tubuh", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Sinyal 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]; // Tandai Doji pada grafik

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


// Sorot tinggi dan rendah lilin Doji dengan garis padat yang memanjang selama 3 lilin berikutnya

HighlightDojiHighLow(index, timeFrameNumber, label);

}


// Deteksi Divergensi SMT sekarang diterapkan pada semua kerangka waktu

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


// Gambar garis horizontal padat pada tinggi dan rendah lilin Doji yang memanjang selama 3 lilin berikutnya

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;


// Tambahkan nomor kerangka waktu atau teks label di sebelah garis biru

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

}


private void DetectSMTDivergence(int index)

{

// Periksa apakah tinggi atau rendah saat ini membentuk divergensi dengan 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)

{

// Divergensi Bearish: Harga membuat tinggi lebih tinggi, RSI membuat tinggi lebih rendah

if (currentHigh > prevHigh && currentRSI < prevRSI)

{

// Tandai divergensi pada grafik dengan pengenal unik untuk kerangka waktu ini

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

}


// Divergensi Bullish: Harga membuat rendah lebih rendah, RSI membuat rendah lebih tinggi

if (currentLow < prevLow && currentRSI > prevRSI)

{

// Tandai divergensi pada grafik dengan pengenal unik untuk kerangka waktu ini

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;


// Tentukan apakah lilin saat ini memiliki tubuh kecil dan sumbu panjang

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

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


// Tentukan apakah lilin sebelumnya memiliki tubuh kecil dan sumbu panjang

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

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


return currentHasLongWicks || prevHasLongWicks;

}

}

}

Ringkasan

Profil indikator

Ulasan pelanggan

0.0
Ulasan: 0
Ulasan pelanggan
Belum ada ulasan untuk produk ini. Sudah mencobanya? Jadilah pemberi ulasan pertama!

Diskusi

Pertanyaan umum

Produk-produk yang tersedia melalui cTrader Store, termasuk bot trading, indikator, dan plugin, disediakan oleh pengembang pihak ketiga serta hanya ditujukan untuk akses teknis dan informasi. cTrader Store bukan broker dan tidak menyediakan saran investasi, rekomendasi pribadi, atau jaminan apa pun tentang kinerja di masa mendatang.

Produk lain dari penulis ini

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

Anda mungkin juga suka

Indikator
MACD
Prop
+14
Customize the MACD! Choose colors, get real-time tick updates, and see crossover points for enhanced trading precision.
Indikator
CHOCH
Fair Value Gap
+2
Advanced FVG & IFVG indicator with multi-timeframe confluence, CHoCH filtering, and smart mitigation.
Indikator
VWAP
Forex
+13
Custom VWAP Indicator for cTrader
Indikator
Forex
Fibonacci
+2
Enhance your trading with customizable alerts and dynamic visual tools for trendlines, Fibonacci levels, and more.
Indikator
Forex
BTCUSD
+5
Simple ICT Concepts
Indikator
Liquidity Sweep
A complete system for NASDAQ The tool that separates traders who "guess" from traders who operate like a professional.
Indikator
ATR
SMC
+18
Super Wick detects powerful candle rejections: fractal long-wicks, HTF resonance zones, and a WSI gauge.
Indikator
BW_MFI Vizual colors bars
Indikator
ATR
RSI
+6
Market structural patterns , specifically the concepts of Change of Character (ChoCH) 🔄 and Break of Structure (BoS) 💥
Indikator
Forex
GBPUSD
+3
Support & resistance zones with measured hold rates and confidence intervals — evidence, not just lines on a chart.
Indikator
AI
MACD
+8
A precision-engineered indicator designed for traders who demand signal integrity across volatile markets.
Indikator
SMC
Prop
+17
Unlock the true intent of market participants with the Classic Proportional Cumulative Volume Delta CVD!
Indikator
Prop
Forex
+13
Unlock trading precision with QQE! Dual QQE indicators with a Bollinger Bands zero line provide clear buy/sell signals.
Indikator
Forex
Customizable multi-timeframe pivot point indicator for cTrader with alerts, Fibonacci, CPR, and more!
Indikator
RSI
Signal
+2
The QQE indicator is a technical analysis tool designed to identify potential trend changes and trading signals 📈📉
Indikator
SMC
Forex
+5
The only cTrader FVG indicator with Breakaway Gap detection, mitigation tracking, and full multi-asset compatibility.
Indikator
Signal
Order Flow Market Depth Pro | Footprint & DOM
Indikator
Key Levels
Support & Resistance
Professional Opening Range Breakout indicator with live ORB levels and breakout detection.

Harga

3
Instal gratis