Doji
Doji is a single-bar candlestick pattern where open and close price are virtually identical, representing market indecision. [Discuss] 💬
// C# usage syntax
IReadOnlyList<CandleResult> results =
bars.ToDoji(maxPriceChangePercent);Parameters
| param | type | description |
|---|---|---|
maxPriceChangePercent | double | Optional. Maximum absolute percent difference in open and close price. Example: 0.3% would be entered as 0.3 (not 0.003). Must be between 0 and 0.5 percent, if specified. Default is 0.1 (0.1%). |
Historical price bars requirements
You must have at least one historical bar; however, more is typically provided since this is a chartable candlestick pattern.
bars is a collection of generic TBar historical price bars. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.
Response
IReadOnlyList<CandleResult>- This method returns a time series of all available indicator values for the
barsprovided. - It always returns the same number of elements as there are in the historical price bars.
- It does not return a single incremental indicator value.
- The candlestick pattern is indicated on dates where
MatchisMatch.Neutral. PriceisCloseprice; however, all OHLCV elements are included inCandleProperties.- There is no intrinsic basis or confirmation signal provided for this pattern.
CandleResult
| property | type | description |
|---|---|---|
Timestamp | DateTime | Date from evaluated TBar |
Price | decimal | Price of the most relevant OHLC candle element when a signal is present |
Match | Match | Indicates a matching signal type for this candlestick pattern |
Candle | CandleProperties | Characteristics of the candle body and wicks |
Match
When a candlestick pattern is recognized, it produces a matching signal. In some cases, an intrinsic confirmation is also available after the signal. In cases where previous bars were used to identify a pattern, they are indicated as the basis for the signal. This enum can also be referenced as an int value. Documentation for each candlestick pattern will indicate whether confirmation and/or basis information is produced.
| type | int | description |
|---|---|---|
Match.BullConfirmed | 200 | Confirmation of a prior bull signal |
Match.BullSignal | 100 | Bullish signal |
Match.BullBasis | 10 | Bars supporting a bullish signal |
Match.Neutral | 1 | Signal for non-directional patterns |
Match.None | 0 | No match |
Match.BearBasis | -10 | Bars supporting a bearish signal |
Match.BearSignal | -100 | Bearish signal |
Match.BearConfirmed | -200 | Confirmation of a prior bear signal |
CandleProperties
The CandleProperties record class extends the basic Bar type with calculated properties.
| property | type | description |
|---|---|---|
Timestamp | DateTime | Close date |
Open | decimal | Open price |
High | decimal | High price |
Low | decimal | Low price |
Close | decimal | Close price |
Volume | decimal | Volume |
Size | decimal | High-Low |
Body | decimal | |Open-Close| |
UpperWick | decimal | Upper wick size |
LowerWick | decimal | Lower wick size |
BodyPct | double | Body/Size |
UpperWickPct | double | UpperWick/Size |
LowerWickPct | double | LowerWick/Size |
IsBullish | bool | Close>Open direction |
IsBearish | bool | Close<Open direction |
Utilities
See Utilities and helpers for more information.
Streaming
Use the buffer-style List<T> when you need incremental calculations without a hub:
DojiList dojiList = new(maxPriceChangePercent);
foreach (IBar bar in bars) // simulating stream
{
dojiList.Add(bar);
}
// based on `ICollection<CandleResult>`
IReadOnlyList<CandleResult> results = dojiList;Subscribe to a BarHub for advanced streaming scenarios:
BarHub barHub = new();
DojiHub observer = barHub.ToDojiHub(maxPriceChangePercent);
foreach (IBar bar in bars) // simulating stream
{
barHub.Add(bar);
}
IReadOnlyList<CandleResult> results = observer.Results;See Buffer lists and Stream hubs for full usage guides.