Based on Xu Jiacao, Naked Candlestick Trading (裸K线交易法)
Pure candlestick-based trading without any indicators — reading raw price action through candle patterns, identifying support and resistance from candle clusters, determining trend direction from candle sequences, and executing entries and exits based purely on candle signals.
Xu Jiacao's central argument: all the information you need to make profitable trading decisions is contained in the candlestick chart itself. Indicators are derivative — they process the same price data that the candles already show. By reading the candles directly, you eliminate lag, conflicting signals, and the false comfort of indicator confirmation.
"The candle tells you everything. Who won the battle — the bulls or the bears. How fiercely they fought. And where the battlefield boundaries are."
A single candlestick encapsulates an entire trading period's story:
The edge in naked candlestick trading comes from:
─── High (upper wick peak)
│
├── Open or Close (top of body)
│ ████████
│ ████████ ← Body (Open to Close range)
│ ████████
├── Close or Open (bottom of body)
│
─── Low (lower wick peak)
Bullish candle: Close > Open (body often green/white)
Bearish candle: Close < Open (body often red/black)
LARGE BODY (body > 70% of total range):
→ Strong conviction. The winner dominated the period.
→ Bullish large body: Buyers in control.
→ Bearish large body: Sellers in control.
MEDIUM BODY (body 30-70% of total range):
→ Moderate conviction. Some struggle between buyers and sellers.
→ Direction still meaningful but with less certainty.
SMALL BODY (body < 30% of total range):
→ Indecision. Neither side achieved dominance.
→ Doji-like. The market is searching for direction.
→ Potential transition point.
LONG UPPER WICK (upper wick > 2x body):
→ Sellers rejected higher prices.
→ Bulls tried but failed. Bearish implication.
→ The longer the upper wick, the stronger the rejection.
LONG LOWER WICK (lower wick > 2x body):
→ Buyers rejected lower prices.
→ Bears tried but failed. Bullish implication.
→ The longer the lower wick, the stronger the rejection.
NO WICKS (Marubozu):
→ Maximum conviction. One side dominated completely.
→ Bullish Marubozu: Opens at low, closes at high. Pure buying.
→ Bearish Marubozu: Opens at high, closes at low. Pure selling.
WIDE RANGE candle (range >> average):
→ High energy. Significant event or sentiment shift.
→ After a trend, may indicate climax or exhaustion.
→ At a key level, indicates strong reaction.
NARROW RANGE candle (range << average):
→ Low energy. Consolidation or indecision.
→ Often precedes a volatility expansion (breakout).
→ Inside bars (high/low within prior bar) are a specific form.
│
├─┐ Small body (at top of range)
│ │
│
│ Long lower wick (at least 2x body)
│
─
─
│ Long upper wick
│
│
├─┐ Small body (at bottom of range)
─
├──────┐
│██████│ Full body, no wicks
│██████│
│██████│
├──────┘
─── Open = Close = High
│
│ Long lower wick
│
─── Low
─
│ Long upper wick (at least 2x body)
│
│
├─┐ Small body (at bottom of range)
─
─
├─┐ Small body (at top of range)
│
│ Long lower wick
│
─
├──────┐
│██████│ Full body, no wicks (opens at high, closes at low)
│██████│
│██████│
├──────┘
─── High
│
│ Long upper wick
│
─── Open = Close = Low
Prior candle: Current candle:
├─┐ ├─────┐
│█│ │ │ ← Current body completely engulfs prior body
│█│ │ │
├─┘ │ │
├─────┘
Day 1 (bearish): Day 2 (bullish):
├─────┐
│█████│ ├───┐
│█████│ │ │
│█████│ ←─ Day 2 │ │ opens below Day 1 low
├─────┘ closes │ │ closes above Day 1 midpoint
above ├───┘
midpoint
Tweezer Bottom:
Two candles with the same (or nearly same) low.
First candle: bearish. Second candle: bullish.
The matching lows create a support level from two separate tests.
Tweezer Top:
Two candles with the same high.
First candle: bullish. Second candle: bearish.
The matching highs create a resistance level from two separate tests.
Day 1 (large body): Day 2 (small body, inside Day 1):
├─────────┐ ├───┐
│█████████│ │███│ ← Entirely within Day 1's body
│█████████│ ├───┘
│█████████│
├─────────┘
Day 1 Day 2 (gap down) Day 3
├─────┐ ├─┐ ├─────┐
│█████│ │ │ │ │
│█████│ ├─┘ │ │
│█████│ │ │
├─────┘ ├─────┘
(Bearish) (Small body/doji) (Bullish)
├───┐
│ │
├───┐ │ │
│ │ ├───┘
│ │
├───┘
(1) (2) (3)
Three Inside Up:
Candle 1: Large bearish candle
Candle 2: Bullish harami (inside Candle 1)
Candle 3: Bullish candle closing above Candle 1's high
→ Confirmed bullish reversal
Three Inside Down:
Candle 1: Large bullish candle
Candle 2: Bearish harami (inside Candle 1)
Candle 3: Bearish candle closing below Candle 1's low
→ Confirmed bearish reversal
Without indicators, support and resistance are identified purely from price history — where candles have previously reversed, stalled, or clustered.
SUPPORT is found at:
1. Prior swing lows:
→ Price bounced upward from this level before.
→ Multiple bounces = stronger support.
2. Long lower wicks clustered at the same level:
→ Multiple candles with long lower wicks at the same price
indicate repeated buying at that level.
3. Consolidation zones (candle clusters):
→ Areas where many candles traded within a narrow range.
→ The bottom of the consolidation is support.
→ The more candles in the cluster, the stronger the level.
4. Prior resistance that was broken (role reversal):
→ Old resistance becomes new support after a breakout.
→ Test of old resistance as new support is a high-probability long entry.
RESISTANCE is found at:
1. Prior swing highs:
→ Price reversed downward from this level before.
2. Long upper wicks clustered at the same level:
→ Repeated selling at the same price.
3. Consolidation zone upper boundary:
→ The top of a candle cluster is resistance.
4. Prior support that was broken (role reversal):
→ Old support becomes new resistance after a breakdown.
FUNCTION assess_sr_strength(level, price_history):
score = 0
# How many times has this level been tested?
touches = count_touches(level, price_history, tolerance=0.5%)
score += MIN(touches, 5) # Cap at 5 points
# How recently was it tested?
recency = bars_since_last_touch(level, price_history)
IF recency < 20:
score += 2 # Recent tests are more relevant
ELIF recency < 50:
score += 1
# Was volume high at this level? (if volume is used)
IF volume_at_level(level) > average_volume * 1.5:
score += 1
# Is this a round number?
IF is_round_number(level):
score += 1 # Psychological significance
# Role reversal (former support now resistance, or vice versa)
IF role_reversal(level, price_history):
score += 2
RETURN score # Higher = stronger level
UPTREND characteristics:
1. Higher swing highs: Each peak is higher than the previous peak.
2. Higher swing lows: Each trough is higher than the previous trough.
3. Bullish candles dominate: More green/white candles than red/black.
4. Bullish candle bodies are larger than bearish candle bodies.
5. Pullbacks are shallow and brief (small bearish candles, small retracements).
6. Advances are steep and sustained (large bullish candles, multiple in sequence).
DOWNTREND characteristics:
1. Lower swing highs.
2. Lower swing lows.
3. Bearish candles dominate.
4. Bearish candle bodies are larger than bullish candle bodies.
5. Rallies are shallow and brief.
6. Declines are steep and sustained.
RANGE characteristics:
1. Swing highs at approximately the same level.
2. Swing lows at approximately the same level.
3. Mixed candle types with no clear dominance.
4. Both bullish and bearish candles are similar in size.
5. Price oscillates between support and resistance.
FUNCTION assess_trend_strength(candles, lookback=20):
bullish_count = 0
bearish_count = 0
bullish_body_sum = 0
bearish_body_sum = 0
FOR each candle IN candles[-lookback:]:
body = ABS(candle.close - candle.open)
IF candle.close > candle.open:
bullish_count += 1
bullish_body_sum += body
ELSE:
bearish_count += 1
bearish_body_sum += body
# Trend direction
IF bullish_count > bearish_count * 1.3 AND bullish_body_sum > bearish_body_sum * 1.5:
trend = "STRONG_UPTREND"
ELIF bullish_count > bearish_count:
trend = "WEAK_UPTREND"
ELIF bearish_count > bullish_count * 1.3 AND bearish_body_sum > bullish_body_sum * 1.5:
trend = "STRONG_DOWNTREND"
ELIF bearish_count > bullish_count:
trend = "WEAK_DOWNTREND"
ELSE:
trend = "RANGE"
RETURN trend
UPTREND ENDING signals:
1. Bearish engulfing at a swing high (especially at resistance)
2. Evening star pattern
3. Shooting star with extreme volume
4. Swing high FAILS to exceed prior swing high (lower high)
5. Swing low BREAKS below prior swing low (lower low)
6. Increasing frequency of bearish candles with growing body sizes
DOWNTREND ENDING signals:
1. Bullish engulfing at a swing low (especially at support)
2. Morning star pattern
3. Hammer with extreme volume
4. Swing low FAILS to go below prior swing low (higher low)
5. Swing high BREAKS above prior swing high (higher high)
6. Increasing frequency of bullish candles with growing body sizes
SETUP:
- Confirmed uptrend (higher highs, higher lows)
- Price pulls back toward a support level (prior resistance, prior consolidation zone)
SIGNAL:
- Bullish reversal candle at the support level
- Examples: Hammer, bullish engulfing, morning star, piercing pattern
ENTRY:
- Buy on close of the reversal candle, OR
- Buy on open of the next candle if the reversal candle closes bullish
STOP:
- Below the low of the reversal candle (tight stop)
- Below the support level (wider stop, higher survival rate)
TARGET:
- Prior swing high (conservative)
- Next resistance level (moderate)
- Trailing exit using candle signals (aggressive — hold until a bearish reversal candle appears)
SETUP:
- Price consolidating in a narrow range (multiple candles with small bodies)
- Clear upper boundary (resistance) and lower boundary (support)
- Candle range is contracting (volatility squeeze)
SIGNAL:
- A large bullish candle breaks above resistance with a strong body close above the level
- OR a large bearish candle breaks below support
ENTRY:
- On the close of the breakout candle
- OR on the next candle's open if the breakout candle closes convincingly
STOP:
- Below the consolidation range (for bullish breakout)
- Above the consolidation range (for bearish breakout)
TARGET:
- Measured move: width of the consolidation range, projected from breakout point
- Next significant S/R level
SETUP:
- Price has reached a major support or resistance level
- The level has been tested multiple times (strong level)
- The trend approaching the level shows signs of exhaustion
SIGNAL:
- Strong reversal candle pattern at the level:
At support: Hammer, bullish engulfing, morning star
At resistance: Shooting star, bearish engulfing, evening star
ENTRY:
- On the close of the reversal pattern completion candle
- Aggressive: Enter on the reversal candle itself
- Conservative: Wait for a confirmation candle (next candle continues in reversal direction)
STOP:
- Beyond the key level (below support for longs, above resistance for shorts)
TARGET:
- Opposite boundary of the range (if in a range)
- Next S/R level in the reversal direction
At Support At Resistance In Open Space
Bullish Reversal HIGH PROB (skip) LOW PROB
Bearish Reversal (skip) HIGH PROB LOW PROB
Breakout Up MODERATE HIGH PROB MODERATE
Breakout Down HIGH PROB MODERATE MODERATE
HIGH PROB = Full position size
MODERATE = Half position size or wait for confirmation
LOW PROB = Skip the trade
(skip) = Contradicts the context — do not trade
TIGHT STOP:
Long: Below the low of the entry candle (or signal candle)
Short: Above the high of the entry candle (or signal candle)
→ Higher risk of being stopped out, but smaller loss per trade
STANDARD STOP:
Long: Below the nearest support level (identified from candle clusters)
Short: Above the nearest resistance level
→ Better survival rate, larger potential loss
WIDE STOP (swing trading):
Long: Below the most recent swing low
Short: Above the most recent swing high
→ Best survival rate, largest potential loss
→ Position size must be reduced to keep dollar risk constant
FUNCTION trailing_stop_by_candles(position, new_candle):
IF position.direction == "LONG":
# Trail below the low of the most recent completed candle
# Only raise the stop, never lower it
new_stop = new_candle.low - (0.1 * new_candle.range)
IF new_stop > position.current_stop:
position.current_stop = new_stop
# Alternative: Trail below the lowest low of the last N candles
recent_low = MIN([c.low FOR c IN last_n_candles(3)])
IF recent_low > position.current_stop:
position.current_stop = recent_low
ELIF position.direction == "SHORT":
new_stop = new_candle.high + (0.1 * new_candle.range)
IF new_stop < position.current_stop:
position.current_stop = new_stop
Instead of a fixed target, exit when the candles tell you to:
EXIT LONG when:
1. A strong bearish reversal candle appears (shooting star, bearish engulfing)
at or near a resistance level
2. Three consecutive bearish candles (Three Black Crows)
3. A bearish candle with a body larger than any recent bullish candle
(sellers suddenly overpowering buyers)
4. Price fails to make a new swing high (momentum fading)
EXIT SHORT when:
1. A strong bullish reversal candle appears at support
2. Three consecutive bullish candles
3. A bullish candle with a body larger than any recent bearish candle
4. Price fails to make a new swing low
Although the system is "naked" (no indicators), Xu acknowledges that volume provides valuable confirmation that the candles alone cannot:
VOLUME CONFIRMATION RULES:
Breakout candle + HIGH volume → Breakout is more likely genuine
Breakout candle + LOW volume → Breakout may be a false breakout (trap)
Reversal candle + HIGH volume → Reversal is strong (institutional participation)
Reversal candle + LOW volume → Reversal is weak (may fail)
Trend continuation + RISING volume → Trend is healthy
Trend continuation + DECLINING volume → Trend is weakening
VOLUME CLIMAX: Volume spikes to 3x+ the recent average
At the end of an uptrend:
→ Bearish climax. Final burst of buying (capitulation of shorts).
→ Often coincides with a shooting star or bearish engulfing.
→ High probability of reversal.
At the end of a downtrend:
→ Bullish climax. Final burst of selling (capitulation of longs).
→ Often coincides with a hammer or bullish engulfing.
→ High probability of reversal.
STEP 1: Monthly/Weekly chart
→ Identify the major trend and key S/R levels.
→ This sets the "big picture" context.
STEP 2: Daily chart
→ Identify the intermediate trend direction.
→ Identify the nearest S/R levels.
→ Look for candle patterns at these levels.
STEP 3: 4-hour or 1-hour chart (trading timeframe)
→ Time entries and exits.
→ Look for reversal patterns within the daily trend context.
→ Place stops based on the trading timeframe candle structure.
HIGHEST PROBABILITY TRADES:
Monthly trend: UP
Weekly trend: UP
Daily signal: Bullish reversal candle at support
→ All timeframes aligned. Take full position size.
MODERATE PROBABILITY:
Monthly trend: UP
Weekly trend: Pulling back (still UP long-term)
Daily signal: Bullish reversal candle at support
→ Two timeframes aligned. Take reduced position size.
LOW PROBABILITY:
Monthly trend: UP
Weekly trend: DOWN
Daily signal: Bullish reversal candle at support
→ Counter-trend trade. Take small position or skip.
A key concept: multiple small-timeframe candles combine into a single larger-timeframe candle.
Example: Two consecutive daily candles
Day 1: Open $100, High $105, Low $98, Close $103 (bullish)
Day 2: Open $103, High $110, Low $102, Close $108 (bullish)
Two-day combined candle:
Open $100, High $110, Low $98, Close $108
→ A strong bullish candle with a large body and small wicks.
→ This is what a 2-day chart would show.
Implication: If daily candles look ambiguous, combine them mentally
to see the larger picture. Two small bullish candles may form one
large bullish candle when aggregated — revealing clarity that
the individual candles obscured.
BULL TRAP:
- Price breaks above resistance with a bullish candle.
- Traders buy the breakout.
- Price immediately reverses back below resistance.
- Breakout buyers are trapped with losses.
IDENTIFICATION:
- Breakout candle has a long upper wick (buyers could not hold the level).
- Next candle is bearish and closes back below resistance.
- Volume on the breakout is low (no institutional participation).
DEFENSE:
- Wait for a CLOSE above resistance, not just an intraday breach.
- Look for a second candle that confirms the breakout (closes above).
- Use a stop just below the breakout level.
BEAR TRAP:
- Price breaks below support with a bearish candle.
- Traders sell short.
- Price immediately reverses back above support.
- Short sellers are trapped.
IDENTIFICATION:
- Breakdown candle has a long lower wick.
- Next candle is bullish and closes back above support.
- Volume on the breakdown is low.
DEFENSE:
- Wait for a CLOSE below support.
- Look for follow-through confirmation.
- Tight stop above the support level.
PROBLEM: Long wicks at S/R levels can be either:
(a) Rejection of the level → Good signal
(b) Testing the level → More testing to come, no immediate reversal
SOLUTION:
- Look for MULTIPLE candles with long wicks at the same level.
- The more candles that show rejection at the level, the stronger the signal.
- A single wick is tentative. Three wicks at the same level is conviction.
Price tells you everything. The candlestick chart contains all the information needed for trading decisions. Indicators are derivatives of price and add lag without adding insight.
Every candle is a battle report. The body shows who won (bulls or bears). The wicks show how far each side pushed. The range shows the intensity of the battle.
Context determines meaning. A hammer at a major support level is a high-probability buy signal. The same hammer in the middle of nowhere is meaningless. Always read patterns within their context of trend and support/resistance.
Support and resistance emerge from price itself. Where candles have previously reversed, clustered, or shown long wicks — these are the levels that matter. No indicator can identify these levels better than the candles themselves.
Trend is visible in candle sequences. Higher highs and higher lows with dominant bullish candles = uptrend. No moving average needed. The candles themselves define the trend.
Confirmation over anticipation. Wait for the pattern to complete. A hammer is not a buy signal until it closes. An engulfing pattern is not confirmed until the engulfing candle completes. Patience prevents false entries.
Multiple timeframe alignment increases probability. A bullish signal on the daily chart within a weekly uptrend near a monthly support level is far more powerful than a signal on any single timeframe.
Traps are opportunities if you recognize them. Bull traps and bear traps are painful for those caught, but they provide powerful reversal signals for those who read them correctly.
Volume is the one permissible "indicator." While the system is naked, volume confirmation adds genuine independent information. High volume at reversals and breakouts confirms institutional participation.
Simplicity is the ultimate sophistication. A clean chart with no indicators forces you to truly read the market. This direct engagement with price action develops a trading intuition that no indicator-laden chart can provide.
"Strip away the indicators. Strip away the news. Strip away the opinions. What remains is the candle — and the candle is truth."