Skip to content

Marubozu ​

Marubozu is a single-bar candlestick pattern that has no wicks, representing consistent directional movement. [Discuss] 💬

Loading chart data...
csharp
// C# usage syntax
IReadOnlyList<CandleResult> results =
  bars.ToMarubozu(minBodyPercent);

Parameters ​

paramdescription
minBodyPercent
double
Optional. Minimum body size as a percent of total candle size. Example: 85% would be entered as 85 (not 0.85). Must be between 80 and 100, if specified. Default is 95 (95%).

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 ​

csharp
IReadOnlyList<CandleResult>
  • This method returns a time series of all available indicator values for the bars provided.
  • 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 Match is Match.BullSignal or Match.BearSignal.
  • Price is Close price; however, all OHLCV elements are included in CandleProperties.
  • There is no intrinsic basis or confirmation signal provided for this pattern.

CandleResult ​

propertydescription
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.

enum / valuedescription
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.

propertydescription
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:

csharp
MarubozuList marubozuList = new(minBodyPercent);

// call from your WebSocket or SSE message handler
void OnBarReceived(IBar bar) => marubozuList.Add(bar);

// based on `ICollection<CandleResult>`; fills as the handler runs
IReadOnlyList<CandleResult> results = marubozuList;

Subscribe to a BarHub for advanced streaming scenarios:

csharp
BarHub barHub = new();
MarubozuHub observer = barHub.ToMarubozuHub(minBodyPercent);

// call from your WebSocket or SSE message handler
void OnBarReceived(IBar bar) => barHub.Add(bar);

// results fill as the handler runs
IReadOnlyList<CandleResult> results = observer.Results;

See Buffer lists and Stream hubs for full usage guides.