CDL_MORNINGSTAR (Morning Star)¶
Overview¶
The Morning Star is a three-candle bullish reversal pattern that appears at the bottom of a downtrend, signaling a potential trend change. Named after the planet Venus that appears before sunrise, this pattern represents the "dawn" of a new uptrend. The pattern consists of a long bearish candle, followed by a small-bodied candle (star) that gaps down, and completed by a long bullish candle that closes well into the first candle's body.
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
open |
Array | Required | Array of opening prices |
high |
Array | Required | Array of high prices |
low |
Array | Required | Array of low prices |
close |
Array | Required | Array of closing prices |
penetration |
Float | 0.3 | Minimum penetration into first candle's body (30%) |
Parameter Details¶
Note: Array elements should be ordered from oldest to newest (chronological order)
OHLC Arrays - All four price arrays must have the same length - Minimum 3 candles required for pattern detection - More historical data provides better context for trend analysis
penetration - Controls how far the third candle must close into the first candle's body - Default 0.3 means 30% penetration required - Higher values (0.5) create stricter, more reliable signals - Lower values (0.2) create more frequent but potentially less reliable signals
Usage¶
Basic Usage¶
require 'sqa/tai'
open = [50.0, 49.0, 47.5, 47.0, 48.5]
high = [50.5, 49.5, 48.0, 47.5, 49.5]
low = [49.5, 47.0, 46.5, 46.5, 47.5]
close = [49.0, 47.5, 47.0, 47.2, 49.0]
pattern = SQA::TAI.cdl_morningstar(open, high, low, close)
puts "Morning Star signal: #{pattern.last}"
# Output: 100 (bullish pattern detected) or 0 (no pattern)
With Trend Analysis¶
require 'sqa/tai'
# Historical price data showing downtrend
open = [55.0, 54.0, 53.0, 52.0, 51.0, 50.0, 49.0, 47.5, 47.0, 48.5]
high = [55.5, 54.5, 53.5, 52.5, 51.5, 50.5, 49.5, 48.0, 47.5, 49.5]
low = [54.0, 53.0, 52.0, 51.0, 50.0, 49.5, 47.0, 46.5, 46.5, 47.5]
close = [54.0, 53.0, 52.0, 51.0, 50.0, 49.0, 47.5, 47.0, 47.2, 49.0]
pattern = SQA::TAI.cdl_morningstar(open, high, low, close)
# Check for pattern at end of downtrend
if pattern.last == 100
puts "BULLISH REVERSAL: Morning Star detected"
puts "First candle (bearish): Close #{close[-3]}"
puts "Star candle (small): Close #{close[-2]}"
puts "Third candle (bullish): Close #{close[-1]}"
puts "Potential entry: #{close.last}"
puts "Stop loss: #{low[-3..1].min}"
end
Understanding the Pattern¶
What It Measures¶
The Morning Star pattern measures: - Reversal Potential: Shift from selling pressure to buying pressure - Market Psychology: Transition from bearish sentiment to bullish sentiment - Support Formation: Price finding a bottom and rejecting lower levels - Momentum Shift: Bears losing control, bulls gaining strength
The pattern answers: "Is the downtrend exhausted and ready to reverse?"
Pattern Structure¶
The Morning Star consists of three distinct candles:
- First Candle (Bearish):
- Long red/black candle continuing the downtrend
- Represents final selling pressure
-
Confirms the existing bearish momentum
-
Second Candle (Star):
- Small-bodied candle (can be any color)
- Gaps down from the first candle's close
- Indecision candle showing momentum loss
-
Can be a doji, spinning top, or small real body
-
Third Candle (Bullish):
- Long green/white candle
- Closes well above the star candle
- Penetrates at least 30% into the first candle's body
- Confirms the reversal with strong buying pressure
Pattern Characteristics¶
- Type: Three-candle bullish reversal pattern
- Trend Context: Must appear in a downtrend
- Reliability: High (especially with confirmation)
- Frequency: Moderately rare (appears 1-2% of the time)
- Best Timeframes: Daily, 4-hour charts (less reliable on very short timeframes)
Interpretation¶
Signal Values¶
The pattern returns specific signal values:
- +100: Perfect Morning Star pattern detected
- Three-candle sequence complete
- All criteria met (gap, penetration, candle sizes)
-
Bullish reversal signal
-
0: No pattern detected
- Pattern criteria not met
- Continue monitoring for pattern formation
Pattern Recognition Criteria¶
A valid Morning Star requires:
- Downtrend Context: Must occur after a price decline
- First Candle: Long bearish candle (large real body)
- Gap Down: Second candle gaps below first candle's close
- Small Body: Second candle has small real body (< 30% of first candle)
- Gap Up: Third candle gaps above second candle
- Bullish Close: Third candle closes into first candle's body (>30% penetration)
- Long Body: Third candle has substantial real body
Signal Interpretation¶
Strong Signals (High Probability): - Pattern appears after extended downtrend (20+ days) - Second candle is a doji (maximum indecision) - Third candle closes above the midpoint of first candle - Pattern confirmed by high volume on third candle - Support level nearby confirms the reversal zone
Moderate Signals: - Standard pattern with 30-50% penetration - Second candle is small-bodied but not a doji - Moderate volume increase on third candle
Weak Signals (Use Caution): - Pattern appears early in downtrend - Minimal penetration (<30%) - Third candle's body is relatively small - No volume confirmation
Trading Signals¶
Buy Signals¶
Primary Entry Signal: When Morning Star pattern completes with +100 signal:
- Confirmation Entry: Wait for next candle to close above the third candle's high
- Aggressive Entry: Enter at close of third candle
- Conservative Entry: Wait for pattern confirmation with RSI > 30 or above key support
Example Scenario:
Stock in downtrend from $60 to $47 over 3 weeks.
Morning Star forms:
- Day 1: Close $47 (long red candle)
- Day 2: Close $46.80 (small doji, gaps down)
- Day 3: Close $48.50 (long green candle, 50% penetration)
Entry: $48.50-$49.00
Stop Loss: $46.20 (below pattern low)
Target 1: $51.00 (recent resistance)
Target 2: $54.00 (Fibonacci retracement)
Risk/Reward: 1:2.5
Confirmation Requirements¶
Strengthen the signal with:
- Volume Confirmation: Volume increases on third candle (20%+ above average)
- RSI Confirmation: RSI crossing above 30 from oversold territory
- Support Level: Pattern forms at known support or previous resistance
- Trend Indicators: MACD showing bullish divergence or crossover
- Next Candle: Following candle closes higher, confirming bullish momentum
False Signal Recognition¶
Avoid these weak patterns:
- Shallow Penetration: Third candle barely enters first candle's body
- Small Third Candle: Bullish candle lacks conviction (small body)
- No Gap: Second candle doesn't gap away from first or third
- Resistance Overhead: Strong resistance level immediately above pattern
- Weak Volume: No volume increase on the reversal candle
Best Practices¶
Optimal Use Cases¶
Morning Star works best in:
- Market Conditions: After extended downtrends with exhausted selling
- Timeframes: Daily charts (most reliable), 4-hour charts (good), 1-hour charts (less reliable)
- Asset Classes: Stocks and forex (excellent), cryptocurrencies (good but volatile)
- Volatility: Normal to low volatility environments (high volatility creates false signals)
Combining with Other Indicators¶
Recommended combinations:
- With Trend Indicators: Confirm downtrend with 50/200-day SMA before pattern
- With Oscillators: RSI oversold (<30) adds confirmation to reversal
- With Volume: Volume spike on third candle validates buying pressure
- With Support/Resistance: Pattern at key support level significantly more reliable
Common Pitfalls¶
What to avoid:
- Trading Without Context: Pattern must occur in established downtrend, not consolidation
- Ignoring Volume: Low volume patterns have higher failure rates
- Premature Entry: Entering before third candle completes risks invalidation
- Missing Overhead Resistance: Check for nearby resistance that could stop the rally
- Over-trading: Morning Stars are relatively rare; don't force the pattern
Risk Management Guidelines¶
Proper risk management:
- Stop Loss Placement: Below the low of the three-candle pattern (typically second candle)
- Position Sizing: Risk 1-2% of capital per trade
- Profit Targets:
- First target: Recent swing high or resistance level (1.5-2R)
- Second target: Major resistance or Fibonacci level (2.5-3R)
- Trailing Stop: After 1:1 reward, trail stop to breakeven
Practical Example¶
Complete trading scenario with Morning Star:
require 'sqa/tai'
# Real-world downtrend scenario
historical_data = {
open: [62.0, 60.5, 59.0, 57.5, 56.0, 54.5, 53.0, 51.5, 50.0, 48.5, 47.0, 46.8, 47.5],
high: [62.5, 61.0, 59.5, 58.0, 56.5, 55.0, 53.5, 52.0, 50.5, 49.0, 47.5, 47.5, 48.5],
low: [60.0, 59.0, 57.5, 56.0, 54.5, 53.0, 51.5, 50.0, 48.5, 47.0, 45.5, 45.8, 46.5],
close: [60.5, 59.0, 57.5, 56.0, 54.5, 53.0, 51.5, 50.0, 48.5, 47.0, 45.8, 46.0, 48.0]
}
# Calculate pattern
pattern = SQA::TAI.cdl_morningstar(
historical_data[:open],
historical_data[:high],
historical_data[:low],
historical_data[:close]
)
# Calculate supporting indicators
rsi = SQA::TAI.rsi(historical_data[:close], period: 14)
sma_50 = SQA::TAI.sma(historical_data[:close], period: 10) # Using shorter period for example
# Analyze the signal
if pattern.last == 100
current_price = historical_data[:close].last
pattern_low = historical_data[:low][-3..-1].min
first_candle_high = historical_data[:high][-3]
puts "=" * 50
puts "MORNING STAR PATTERN DETECTED"
puts "=" * 50
# Pattern details
puts "\nPattern Structure:"
puts "1st Candle (Bearish): O:#{historical_data[:open][-3]} C:#{historical_data[:close][-3]}"
puts "2nd Candle (Star): O:#{historical_data[:open][-2]} C:#{historical_data[:close][-2]}"
puts "3rd Candle (Bullish): O:#{historical_data[:open][-1]} C:#{historical_data[:close][-1]}"
# Confirmation checks
puts "\nConfirmation Analysis:"
puts "✓ Downtrend established: Price down from #{historical_data[:close][0]} to #{pattern_low}"
puts "✓ RSI: #{rsi.last.round(2)} #{'(OVERSOLD - Strong confirmation)' if rsi.last < 35}"
puts "✓ Pattern penetration: #{((historical_data[:close][-1] - historical_data[:close][-3]).abs / (historical_data[:open][-3] - historical_data[:close][-3]).abs * 100).round(1)}%"
# Trading recommendation
puts "\nTrading Setup:"
puts "Entry Price: #{current_price} (on close of 3rd candle)"
puts "Stop Loss: #{(pattern_low * 0.995).round(2)} (below pattern low)"
puts "Target 1: #{first_candle_high.round(2)} (top of first candle)"
puts "Target 2: #{(first_candle_high * 1.05).round(2)} (extended target)"
risk = current_price - (pattern_low * 0.995)
reward_1 = first_candle_high - current_price
reward_2 = (first_candle_high * 1.05) - current_price
puts "\nRisk/Reward Analysis:"
puts "Risk per share: $#{risk.round(2)}"
puts "Reward to Target 1: $#{reward_1.round(2)} (#{(reward_1/risk).round(2)}:1)"
puts "Reward to Target 2: $#{reward_2.round(2)} (#{(reward_2/risk).round(2)}:1)"
puts "\nRecommendation: #{(reward_1/risk) > 2 ? 'STRONG BUY' : 'MODERATE BUY'}"
puts "=" * 50
else
puts "No Morning Star pattern detected. Continue monitoring."
end
Related Indicators¶
Similar Patterns¶
- Evening Star: Bearish counterpart to Morning Star. Use Evening Star at top of uptrends, Morning Star at bottom of downtrends.
- Morning Doji Star: Variation with doji as second candle. More reliable but less frequent than standard Morning Star.
- Three White Soldiers: Another bullish reversal but requires three consecutive bullish candles.
Complementary Indicators¶
- RSI: Use to confirm oversold conditions. Morning Star with RSI <30 is highly reliable.
- MACD: Bullish MACD crossover with Morning Star provides strong confirmation.
- Volume (OBV): Rising volume on third candle confirms buying pressure.
Pattern Family¶
Morning Star belongs to the Star pattern family: - Morning Star: Bullish reversal at downtrend bottom - Evening Star: Bearish reversal at uptrend top - Doji Star: Variations with doji candles (stronger indecision) - Abandoned Baby: Rare variation with gaps on both sides of star
Advanced Topics¶
Multi-Timeframe Analysis¶
Strengthen Morning Star signals with multiple timeframes:
- Higher Timeframe (Weekly): Confirm overall downtrend context
- Trading Timeframe (Daily): Identify Morning Star pattern
- Lower Timeframe (4H): Fine-tune entry after pattern confirmation
Example: Morning Star on daily chart after 3-month downtrend + 4-hour chart showing bullish momentum = very high probability setup.
Market Regime Adaptation¶
Morning Star reliability varies by market condition:
- Bear Markets: Most reliable (60-70% success rate). Downtrends provide ideal context.
- Bull Markets: Less reliable (45-55% success rate). Downtrends are shallow corrections.
- Ranging Markets: Moderate reliability (50-60%). Watch for true trend exhaustion vs. consolidation.
- High Volatility: Lower reliability. Gaps and long candles are common, creating false patterns.
Statistical Validation¶
Morning Star performance metrics:
- Success Rate: 60-65% when properly confirmed (50-55% without confirmation)
- Average Gain: 5-8% within 1-2 weeks of pattern completion
- Risk/Reward: Typically 1:2 to 1:3 with proper stop loss placement
- False Signal Rate: 35-40%, higher in ranging or volatile markets
- Best Markets: Most reliable in stocks and forex, less reliable in crypto
References¶
- Nison, Steve. "Japanese Candlestick Charting Techniques" (1991) - Original English publication of candlestick patterns
- Bulkowski, Thomas. "Encyclopedia of Candlestick Charts" (2008) - Statistical analysis of pattern performance
- Morris, Gregory L. "Candlestick Charting Explained" (2006) - Comprehensive pattern interpretation guide
- StockCharts: Morning Star Pattern
- Investopedia: Morning Star Candlestick