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
+2
The full SMC suite: structure BOS CHoCH MSS , FVG, liquidity, order blocks & a 0 to100 confluence score. No repaint.
インジケーター
ATR
SMC
+15
Plot ATR-based SL and 1R/2R/3R TPs instantly for any trade, with clear R-multiple risk mapping.
インジケーター
AI
ATR
+27
The "Market Temperature" Moving Average -Turn Your MA Into a Live Market Temperature Line
「ZigZag」ロゴ
トップ評価
4.3
(6)
無料
インジケーター
ATR
RSI
+7
ZigZag filters noise, spots trends, patterns, pivots, aiding analysis, trade management, and confirmations. 📉📈
インジケーター
Signal
This Fair Value Gap (FVG) indicator is a technical analysis on multi-timeframe.
インジケーター
MACD
Forecast future prices using historical MACD trends. Features a probability fan for smart entries and dynamic targets.
インジケーター
RSI
Forex
+4
New version of one of my favorites includes Fibonacci and moving average convergence divergence lines
インジケーター
SMC
Forex
+5
Pinpoint FVGs, track fills and see mitigation stats — trade imbalances with clarity and confidence.
インジケーター
ATR
BOS
+3
Fair Value Gaps with Multi-Timeframe.
インジケーター
Volume
Key Levels
+1
Order book indicator .Don't trade against the flow. Trade with the truth!
インジケーター
cTreder Smart SMA
インジケーター
Prop
Forex
+7
The Parabolic SAR, or "Stop and Reverse," is a dynamic technical analysis tool.
インジケーター
ATR
Channel
+1
Bollinger Bands Advanced Squeeze & Breakout System, Real-Time On-Chart Dashboard, Auto-Squeeze Detector, Dual-Band Cloud
インジケーター
Prop
Forex
+12
Half Trend Cloud
インジケーター
AI
Forex
+7
Signal Strike is a professional trading indicator delivers clear, high‑confidence entry signals directly on your chart
インジケーター
ADX
EMA
+4
A multi-timeframe dashboard for cTrader that scores trend direction, momentum, and strength across M15, H1, H4, and D1.
インジケーター
ATR
RSI
+19
Multi-timeframe heatmap scoring Direction, Strength & Volatility at a glance!
インジケーター
Forex
Customizable Dynamic Fibonacci Channels and Smart Alerts

価格

3
無料インストール