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;

}

}

}

สรุป

โปรไฟล์อินดิเคเตอร์

รีวิวจากลูกค้า

0.0
รีวิว: 0
รีวิวจากลูกค้า
ยังไม่มีรีวิวสำหรับผลิตภัณฑ์นี้ หากเคยลองแล้ว ขอเชิญมาเป็นคนแรกที่บอกคนอื่น!

การสนทนา

คำถามที่พบบ่อย

ผลิตภัณฑ์ที่มีให้บริการผ่าน cTrader Store รวมถึงบอทการเทรด อินดิเคเตอร์ และปลั๊กอิน มีให้บริการโดยนักพัฒนาบุคคลที่สามและมีไว้เพื่อวัตถุประสงค์ในการเข้าถึงข้อมูลและทางเทคนิคเท่านั้น cTrader Store ไม่ใช่โบรกเกอร์และไม่ได้ให้คำแนะนำการลงทุน คำแนะนำส่วนบุคคล หรือการรับประกันผลการดำเนินงานในอนาคต

เพิ่มเติมจากผู้เขียนคนนี้

อินดิเคเตอร์
The Session Golden Hours indicator is designed for serious traders looking to visualize high-probability

นอกจากนี้คุณยังอาจชอบ

อินดิเคเตอร์
Key Levels
Support & Resistance
Draws a colored High/Low/Open/Close box for any custom time range you set — trade breakouts & retests.
"DayOfWeek - FXMaster" โลโก้
ยอดนิยม
4.6
(3)
$19
อินดิเคเตอร์
Forex
Crypto
+3
Day of Week Indicator for cTrader
อินดิเคเตอร์
Grid
Prop
+14
Visualize trends with Standard Deviation Channel! Display median, and add customizable upper/lower deviation channels.
อินดิเคเตอร์
BOS
CHOCH
+5
MyZTrade High TF candle is a multi-timeframe visualisation tool that overlays completed higher-timeframe candles.
อินดิเคเตอร์
EMA
Supertrend
+4
Dynamic dual MA cloud indicator. Identifies trends, crossovers, and pullback entries in real time for any asset.
อินดิเคเตอร์
ATR
SMC
+19
Smart Liquidity Sweep detector with auto-drawing True Channels and real market structure mapping.
"TrendMagicOptimized" โลโก้
เรตติ้งสูง
4.5
(4)
$19
/
$20
อินดิเคเตอร์
Clean trend indicator using CCI & ATR. Highlights up/down trends with adaptive, no-repaint lines.
อินดิเคเตอร์
Prop
Forex
+12
Lightweight ZigZag tool for clear structure, swing highs/lows and liquidity-based analysis.
อินดิเคเตอร์
Ichimoku Kinkō Hyō with fixed shift to 25 as Ctrader calculate it from 0 and values was wrong for Chikou Span and Kumo.
อินดิเคเตอร์
Bollinger
Jurik Moving Average (Jurik's Moving Average) triple adaptive filter with unique Jurik smoothing and dynamic factor.
"VegaXLR - Fibonacci Alerts" โลโก้
ยอดนิยม
4.5
(4)
$20
อินดิเคเตอร์
Forex
Alerts you when price touches Fibonacci levels. Stay organized and trade efficiently!
อินดิเคเตอร์
CHOCH
Key Levels
+4
Real-time compliance dashboard for prop firm challenges. Tracks daily loss, max drawdown, and profit target.
"Market Cipher B" โลโก้
ยอดนิยม
4.6
(3)
$30
/
$50
อินดิเคเตอร์
AI
ATR
+27
Market Cipher B
อินดิเคเตอร์
It draws a step line that visualize the movement of H4. Particularly effective when trade on lower timeframe.
อินดิเคเตอร์
VWAP
VWAP only timeframe
"Previous Day Low High" โลโก้
ยอดนิยม
5.0
(2)
$40
/
$50
อินดิเคเตอร์
SMC
Prop
+13
Tracks virgin levels. Lines vanish only after a candle closes beyond the high/low on your chosen timeframe.
"[Hamster-Coder] Bollinger Bands" โลโก้
เรตติ้งสูง
4.5
(4)
$19
/
$20
อินดิเคเตอร์
Signal
Breakout
+1
Bolliger Bands + Hamster-Coder™ Timeframe Decoupling
อินดิเคเตอร์
MSS
Inducement
+5
ICT Core is a non-repainting Smart Money Concepts indicator

ราคา

3
ติดตั้งฟรี