Support and resistance are price levels where buying or selling pressure has tended to show up in the past. This guide explains what the terms mean, how traders commonly identify and interpret them, why levels break or hold, and how to plot a simple horizontal level in Pine Script v6. It is educational only — no indicator predicts the future, and all trading carries risk of loss.
Support is a price area where, historically, falling prices have tended to slow or pause. Resistance is the mirror image: a price area where rising prices have tended to slow or pause. The labels describe past behaviour, not a guarantee about the future. A level is "support" only because, on the chart you are looking at, price came down to roughly that area and then stopped falling — one or more times.
It helps to think of these as zones rather than exact lines. Markets rarely turn at a single precise price; they tend to react around an area. Drawing a thin line on a chart can create a false sense of precision. Many traders shade a small band instead, because real reactions are messy.
The core idea behind the concept is supply and demand. Near support, enough buyers have previously been willing to step in to absorb selling. Near resistance, enough sellers have previously been willing to take the other side. None of this is predictive — it is a description of where pressure has clustered before, and that clustering can change at any time.
The most common method is visual: look left on the chart and mark the prices where the market has clearly turned or paused more than once. A price that has acted as a turning point several times is, by definition, more obvious — though "more obvious" does not mean "more reliable."
Other reference points traders often watch include prior swing highs and lows, previous session or daily highs and lows, and round numbers (for example, 1.2000 in EUR/USD). Some traders also treat moving averages or tools like pivot points as dynamic levels that shift over time rather than fixed horizontal ones.
Timeframe matters a great deal. A level that looks important on a 5-minute chart may be invisible on the daily, and vice versa. Levels drawn from higher timeframes are watched by more participants simply because more people see them, but that is about attention, not certainty. Whatever the source, a level is just a hypothesis about where pressure might appear — it can be ignored by the market entirely.
Traders often read a level holding as a sign that buyers (at support) or sellers (at resistance) showed up again. They often read a level breaking as a sign that the previous balance of pressure has shifted. These are interpretations of what already happened on the chart, not instructions to act and not forecasts.
A frequently discussed idea is the "role reversal" or "flip": once resistance is clearly broken, some traders watch to see whether that old resistance later behaves like support, and the reverse for a broken support. This is a pattern people describe after the fact; it does not always occur, and there is no fixed rule for how often it does.
The important framing is neutral. A level does not tell you what will happen next. It marks where reactions have occurred before, which is information — not a decision. Two traders can look at the same level and reasonably disagree about what it means. No indicator or drawn level is predictive, and every interpretation can be wrong.
Levels break when the pressure that previously defended them is no longer there. New information, a shift in broader market conditions, or simply more aggressive participants on one side can push price straight through an area that held many times before. The fact that a level held in the past tells you nothing certain about whether it will hold again.
A recurring frustration is the false break (sometimes called a fakeout): price pokes beyond a level, appears to break it, and then snaps back. This happens often enough that many traders treat a single touch beyond a level with caution rather than treating it as confirmation of anything. Some wait for additional evidence — such as price closing beyond the level on their chosen timeframe and staying there — before concluding a break is genuine. Even then, they can be wrong.
The honest takeaway is that support and resistance are descriptive tools with real limits. They organise the chart and frame where reactions have clustered. They do not remove uncertainty, and acting on them carries the same risk of loss as any other approach to the market.
If you use TradingView, you can mark a fixed horizontal level with a few lines of Pine Script v6. The example below plots a single user-defined price as a line on the chart. It is purely a visual aid — it draws where you tell it to and makes no claim about what price will do.
Note one detail that trips people up: the price you pass to hline() must be a constant input value, so the example uses input.float(). (Functions that return a changing series value cannot be used as the hline() price.)
//@version=6
indicator("Simple Level", overlay = true)
// User-defined price level (a constant input value)
levelPrice = input.float(0.0, title = "Level Price")
// Draw the level as a horizontal line
hline(levelPrice, title = "Level", color = color.gray, linestyle = hline.style_dashed)To place the level, add the indicator and type a price in its settings. You can add more hline calls for additional levels. A common next step traders explore is auto-detecting recent swing highs and lows with ta.pivothigh and ta.pivotlow; because those produce changing values, traders typically draw them with line.new or plot rather than hline. Either way, start simple: a script that draws levels is a charting convenience, not a system that knows where the market is going. Whatever you build, remember that no indicator is predictive and all trading carries risk of loss.
Educational only — not financial advice. Trading involves substantial risk of loss.