P
PipsGrowth

Key Takeaways

Success Rate:68%
Difficulty:Beginner
R:R Ratio:1:2
Timeframe:H1
šŸŽÆ

Support/Resistance Trading

Range TradingBeginner

A fundamental strategy that identifies horizontal price levels where buying or selling pressure has historically been strong enough to reverse price direction.

Market Psychology

Support and resistance levels form because traders remember past price levels and act accordingly. Buyers step in at support expecting bounces, while sellers emerge at resistance expecting reversals.

šŸ“ˆStrategy Visualization

Buy at support, sell at resistance with confirmation

SignalEntrySLTP
Resistance
Support

In-Depth Strategy Guide

Support and resistance trading is the foundation of technical analysis. Support is a price level where buying pressure is strong enough to prevent further declines, while resistance is where selling pressure caps advances.

The strength of a level depends on multiple factors: number of touches, the volume at each touch, how far price moved after each touch, and how recently the level was tested. More touches generally strengthen a level, though each touch also weakens it slightly.

Round numbers like 1.3000, 1.3500 often act as psychological S/R levels because humans prefer round numbers. Previous day/week highs and lows are also powerful because many traders watch these levels.

When trading S/R, always wait for confirmation. A rejection candle (pin bar, engulfing pattern) at the level significantly increases your odds of success. Never blindly buy into support without seeing price reject the level.

Code Examples

pythonPython S/R Level Detection
import pandas as pd
import numpy as np

def find_sr_levels(df, window=10, threshold=3):
    """Find support and resistance levels from price data."""
    levels = []
    
    # Find pivot highs and lows
    df['pivot_high'] = df['high'][(df['high'].shift(1) < df['high']) & 
                                   (df['high'].shift(-1) < df['high'])]
    df['pivot_low'] = df['low'][(df['low'].shift(1) > df['low']) & 
                                 (df['low'].shift(-1) > df['low'])]
    
    # Group nearby pivots into levels
    pivots = pd.concat([df['pivot_high'].dropna(), df['pivot_low'].dropna()])
    pivots = pivots.sort_values()
    
    for price in pivots:
        # Count touches near this price
        touches = len(pivots[abs(pivots - price) < price * 0.001])
        if touches >= threshold:
            levels.append(price)
    
    return sorted(set(levels))

This function finds pivot points and groups them into S/R levels based on how many times price touched that area.

mql5MQL5 S/R Level Detection
//+------------------------------------------------------------------+
//| Find nearest support and resistance                              |
//+------------------------------------------------------------------+
void FindSRLevels(double &support, double &resistance, int lookback = 100)
{
    double currentPrice = Close[0];
    support = 0;
    resistance = DBL_MAX;
    
    for(int i = 1; i < lookback; i++)
    {
        // Check for swing lows (support)
        if(Low[i] < Low[i-1] && Low[i] < Low[i+1])
        {
            if(Low[i] < currentPrice && Low[i] > support)
                support = Low[i];
        }
        
        // Check for swing highs (resistance)
        if(High[i] > High[i-1] && High[i] > High[i+1])
        {
            if(High[i] > currentPrice && High[i] < resistance)
                resistance = High[i];
        }
    }
}

This MQL5 function finds the nearest support below and resistance above current price by scanning for swing points.

Related Indicators

šŸ“„ Entry Rules

1

Identify at least 2-3 previous touches at a price level

2

Wait for price to approach the level with decreasing momentum

3

Look for rejection candle patterns (pin bar, doji, engulfing)

4

Enter after confirmation candle closes

šŸ“¤ Exit Rules

1

Target the opposite side of the range

2

Exit if level is broken with volume

3

Take partial profits at mid-range

4

Use previous swing highs/lows as targets

šŸ›”ļø Risk Management

Stop Placement

Place stops beyond the S/R level with buffer for false breaks

Level Strength

More touches = stronger level, but also more likely to break

Risk Control

Risk 1-2% per trade, reduce size near major news

Indicators Used

Horizontal Lines

Mark key support and resistance levels

Volume Profile

Identify high-volume price zones

RSI

Confirm overbought/oversold at key levels

Best Timeframes

H1H4D1

Best Market Conditions

Ranging/consolidating markets
When major trends are absent
Asian session (lower volatility)

Common Mistakes to Avoid

Drawing too many levels (analysis paralysis)
Not waiting for price action confirmation
Trading breakouts as bounces
Ignoring the overall trend context

Pro Tips

šŸ’”Round numbers often act as psychological S/R levels
šŸ’”Daily and weekly levels are stronger than intraday ones
šŸ’”The first test of a level is usually the strongest
šŸ’”Combine with candlestick patterns for higher probability
Last updated: February 8, 2026

Educational Disclaimer

This content is for educational purposes only and does not constitute financial or investment advice. Trading involves significant risk and you may lose your capital. Always consult a licensed financial advisor before making investment decisions.

Frequently Asked Questions

Support/Resistance Trading | Trading Strategies