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

public double DojiSize { get; set; }


[Parameter("Long Candle Ratio", DefaultValue = 0.7, MaxValue = 1, Step = 0.1)]

public double LongCandleRatio { get; set; }


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

public bool UseVolumeFilter { get; set; }


[Parameter("Volume Moving Average Period", DefaultValue = 24)]

public int VolumeMA { get; set; }


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

public int RSIPeriod { get; set; }


[Parameter("Wick-to-Body Ratio", DefaultValue = 2.5, MinValue = 1.0, Step = 0.1)]

public double WickToBodyRatio { get; set; }


private MovingAverage volumeMA;

private RelativeStrengthIndex rsi;


[Output("Doji Signal", 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

これも好きかも

インジケーター
BOS
CHOCH
+5
MyZTrade High TF candle is a multi-timeframe visualisation tool that overlays completed higher-timeframe candles.
「Swing Points」ロゴ
トップ評価
4.5
(6)
$19
インジケーター
AI
SMC
+15
Multi-Timeframe Swing Points Indicator for cTrader that identifies swing highs and lows on both the current timeframe.
インジケーター
Breakout
Institutional Flow Radar scans the chart for abnormal volume events and classifies them into two groups: Capital &Public
インジケーター
MACD
Forex
+5
🚀 MACD Pro Trader – Advanced MACD with buy/sell signals, custom MAs & color-coded histograms for smarter trading! 📈🔥
インジケーター
BOS
Fair Value Gap
+1
ICT Quarterly Theory indicator — color-coded Q1–Q4 session zones with smart entry signals and real-time alerts.
インジケーター
This indicator is a valuable tool for traders looking to identify significant opening price level of any asset.
インジケーター
BOS
CHOCH
+3
Identifies HH, HL, LH, and LL swing points using fractals. Essential for Smart Money Concepts and price action.
インジケーター
ATR
RSI
+5
Delta RSI Candle Pro, the indicator that transforms ordinary candlesticks into powerful momentum visualizers.
インジケーター
Instant‑setup RSI scalper—designed for turbulent markets.
インジケーター
BOS
CHOCH
+5
A professional-grade cTrader indicator for traders following the Inner Circle Trader (ICT) methodology.
インジケーター
MCDX is a powerful and innovative indicator.
インジケーター
Forex
cTrader ZigZag Alerts: Precision Swing Detection, Alerts, and Fibonacci.
インジケーター
ATR
BTCUSD
+8
🎯 Identifies specific reversal patterns formed by exactly three consecutive candles.
インジケーター
Smart Signal Reversal Trend + Patterns
インジケーター
Imbalance
Inside Bar
+3
A clean and powerful Smart Money Concepts tool combining Fair Value Gaps, Previous Daily High/Low, Inside/Outside bar
インジケーター
Prop
Forex
+14
Automatically plots Fibonacci retracement levels using the highest and lowest points of a customizable time range
インジケーター
BOS
EMA
+5
Directional volume heatmap: see if a price zone was built on buying or selling, not just how much.
インジケーター
Indices
Commodities
The Advanced CCI & EMA Indicator combines the CCI with 40 & 80 EMA logic to generate precise arrows signaling direction

価格

3
無料インストール