Skip to content
ViprasolWE SOLVE INFINITYGet started
Back to Blog

Confluence Checklist: 7 Factors Traders Combine Before Entry

What a confluence in trading is, and a seven-factor pre-entry checklist you can apply by hand or code into a chart table, with a worked example.

Viprasol Tech Team
10 min read
Updated 2026

Confluence Checklist: 7 Factors Traders Combine Before Entry

TLDR

A confluence in trading is a point on the chart where several independent reasons to take a trade line up at the same price and time. A confluence checklist turns that idea into a fixed list of yes-or-no questions you answer before every entry, so that "it looked good" becomes "it met five of seven conditions". This article gives you a seven-factor checklist (higher-timeframe trend, structure level, momentum reset, volatility state, participation, session timing, and reward-to-risk feasibility), explains how to check each one objectively, shows a worked example, and includes a Pine Script v6 utility that displays the checklist on the chart.

What a confluence in trading is, and what it is not

The word comes from geography: a confluence is where rivers meet. In trading it means that evidence from different, independent sources points to the same decision. A moving average, a prior swing low, and a session open all sitting at one price is a confluence. Three oscillators that are all built from the same closing prices and all read "oversold" is not, because they are three views of one fact.

That independence test is the whole discipline. Our pillar article on confluence in trading goes deep on why it matters, how to weight and score factors, and how to code a scoring indicator. This article is the practical companion: a checklist you can print, pin next to your screen, and run in under a minute before you click.

A checklist is not a strategy. It does not tell you where to enter or how to exit. It is a gate between your idea and your order, designed to stop the trades you would regret in review. Most traders who adopt one find that it removes more bad trades than it finds good ones, which is the point.

The seven factors

1. Higher-timeframe trend

Question: Is the trade in the direction of the trend on the timeframe one or two steps above the one I am trading?

Objective check: pick a single definition and keep it. Common choices: the last completed higher-timeframe bar closed above (for longs) or below (for shorts) a 50-period moving average on that timeframe; or the higher timeframe is making higher highs and higher lows over the last N swings. Use the last completed bar, never the forming one, or the answer will change before the bar closes.

Common mistake: checking the higher timeframe only after finding a setup you already like, and then reading it generously.

2. Structure level

Question: Is price at a level that mattered before, rather than in the middle of nowhere?

Objective check: the entry is within a defined distance (for example half of one ATR) of a prior swing high or low, a prior day's high, low or close, a session open, or a level you marked before the session began. The key word is before: levels drawn after price has reacted are hindsight.

Common mistake: counting a moving average as a structure level and also counting the trend defined by that moving average. That is one fact scored twice.

3. Momentum reset

Question: Has momentum pulled back from an extreme, so that I am not buying the top of a thrust?

Objective check: an oscillator such as a 14-period RSI is in a middle band (for example between 40 and 60) after having been higher (for a long) within the last N bars. Or the pullback has retraced a defined fraction of the prior leg.

Common mistake: treating "oversold" as a buy reason in a downtrend. In a strong trend, oscillators stay pinned. The reset factor is only meaningful after factor 1 has been answered.

4. Volatility state

Question: Is the market moving enough for my target to be reachable, but not so much that my stop is noise?

Objective check: current ATR relative to its own average, such as ATR(14) between 0.8 and 1.5 times its 50-bar mean. Below the band, targets based on recent ranges will not be reached; above it, stops sized on normal conditions will be hit by routine fluctuations.

Common mistake: ignoring this factor entirely, then wondering why the same setup works in one month and fails the next.

5. Participation

Question: Is there evidence that other participants are active at this level, rather than me alone?

Objective check: volume on the signal bar above its 20-bar average, or a visible increase in volume as price reached the level. On instruments without reliable volume (some forex feeds), substitute range expansion on the signal bar.

Common mistake: using volume from a single broker's feed on a decentralized market and treating it as the market's volume.

6. Session timing

Question: Am I trading during the hours in which this setup has historically been worth taking?

Objective check: the current bar falls inside a session window you defined in advance, such as the first two hours of the cash session for index futures, or the London and New York overlap for major forex pairs. The window should come from your own testing, not from a rule of thumb.

Common mistake: taking a setup that was validated in the active session during the quiet hours because "it looks the same".

7. Reward-to-risk feasibility

Question: With the stop where the structure says it must go, is there a realistic target at least R times further away?

Objective check: write down the entry, the stop (beyond the structure level plus a buffer) and the first logical target (the next structure level). Compute (target - entry) / (entry - stop). If it is below your minimum, typically 1.5 or 2.0, the trade fails the checklist regardless of how good the other six look.

Common mistake: moving the stop closer to make the ratio work. The stop belongs where the idea is wrong, not where the arithmetic is convenient.

The seven factors compared

FactorWhat it measuresObjective check (example)Independent ofFails most often when
1. Higher-timeframe trendDirection of the larger flowLast completed HTF bar vs HTF 50 EMAEverything on the trading timeframeTrader reads HTF after choosing a side
2. Structure levelLocation relative to past decisionsWithin 0.5 ATR of a pre-marked levelIndicators; depends only on past highs and lowsLevel drawn after the reaction
3. Momentum resetPosition inside the current legRSI(14) in the 40 to 60 band after an extremeLocation and trend, if used after factor 1"Oversold" used against the trend
4. Volatility stateWhether stops and targets are sized to current conditionsATR(14) between 0.8x and 1.5x its 50-bar meanDirection entirelyNot checked at all
5. ParticipationWhether others are active hereVolume above its 20-bar averagePrice-derived factorsUnreliable volume feed
6. Session timingWhether this is the tested windowBar inside a predefined sessionAll chart factorsSetup taken in quiet hours
7. Reward-to-risk feasibilityWhether the trade can pay(Target - entry) / (entry - stop) at or above the minimumSignal quality; it is about geometryStop moved to make the ratio fit

Notice the "independent of" column. Factors 1 and 3 share price as a source, which is why 3 should only be read in the context of 1. Factors 4, 6 and 7 are independent of direction altogether, which makes them the most valuable filters: they remove trades without caring which way you wanted to go.

How to score it

The simplest rule is a count. Each factor is worth one point; you set a minimum, usually five of seven, and factor 7 is a hard requirement rather than a point. A setup scoring six with a reward-to-risk of 1.2 is a pass on six factors and a fail on the checklist.

Resist weighting at the start. The pillar article explains how to test which factors earn a higher weight by removing each one in turn from a backtest and measuring the damage. Until you have done that, equal weights are honest and unequal weights are guesses.

Also resist adding factors. Seven is already more than most traders can check consistently under time pressure; the checklist in the Pine utility below exists partly because people stop running a long checklist by hand after a week.

Worked example: one setup through the checklist

Consider a hypothetical long on a 15-minute chart of an index future during the first hour of the cash session. Numbers are illustrative and chosen to make the arithmetic clear.

  • Factor 1: the last completed 4-hour bar closed above its 50 EMA. Yes.
  • Factor 2: price has pulled back to 5,002, and yesterday's high, marked before the open, is 5,000. ATR(14) on the 15-minute chart is 6 points, so half an ATR is 3 points; 5,002 is within 3 points of 5,000. Yes.
  • Factor 3: RSI(14) has fallen from 71 to 52 during the pullback. Yes.
  • Factor 4: ATR(14) is 6 points and its 50-bar mean is 5 points, so the ratio is 1.2, inside the 0.8 to 1.5 band. Yes.
  • Factor 5: volume on the current bar is below its 20-bar average. No.
  • Factor 6: the bar is inside the first two hours of the cash session. Yes.
  • Factor 7: entry 5,003 on a break of the pullback bar's high; stop 4,996, which is below yesterday's high with a 4-point buffer; first target is the overnight high at 5,018. Risk = 5,003 - 4,996 = 7 points. Reward = 5,018 - 5,003 = 15 points. Ratio = 15 / 7 = 2.14. Yes, against a minimum of 2.0.

Score: six of seven, with the hard requirement met. The trade passes the gate. Whether it wins is unknown; the checklist's job was to confirm that this is the kind of trade you decided in advance to take. If factor 7 had come out at 1.6 because the overnight high was at 5,014, the correct action would have been to pass, not to move the stop to 4,998 to manufacture a 2.0.

Position size then follows from the risk: on a 50,000 account risking 0.5 percent, the risk budget is 250. With a 7-point stop and a micro contract worth 5 per point, risk per contract is 35, so 250 / 35 = 7.14, rounded down to 7 contracts. Our free position size calculator on the tools page does this arithmetic for any instrument.

Pine Script v6: a checklist table on the chart

The script below evaluates factors 1 through 6 automatically on the current bar and takes your planned entry, stop and target as inputs for factor 7. It then shows a two-column table with yes or no per factor and the count. It is a review aid, not a signal generator: it plots nothing that could be mistaken for a buy arrow, and all higher-timeframe values use the last completed bar so the table does not change its answers retroactively.

//@version=6
indicator("Confluence checklist (7 factors)", overlay=true)

htf = input.timeframe("240", "Higher timeframe") emaLen = input.int(50, "HTF EMA length", minval=2) lookback = input.int(20, "Structure lookback (bars)", minval=5) sess = input.session("0930-1130", "Session window") minRR = input.float(2.0, "Minimum reward:risk", step=0.5) entryP = input.float(0.0, "Planned entry") stopP = input.float(0.0, "Planned stop") targetP = input.float(0.0, "Planned target")

// 1 HTF trend: last completed HTF bar vs its EMA (no lookahead) htfClose = request.security(syminfo.tickerid, htf, close[1]) htfEma = request.security(syminfo.tickerid, htf, ta.ema(close, emaLen)[1]) longBias = htfClose > htfEma f1 = longBias // 2 Structure: near the prior swing extreme in the bias direction atr = ta.atr(14) f2 = longBias ? low <= ta.lowest(low, lookback)[1] + 0.5 * atr : high >= ta.highest(high, lookback)[1] - 0.5 * atr // 3 Momentum reset r = ta.rsi(close, 14) f3 = r > 40 and r < 60 // 4 Volatility state atrRatio = atr / ta.sma(atr, 50) f4 = atrRatio >= 0.8 and atrRatio <= 1.5 // 5 Participation f5 = volume > ta.sma(volume, 20) // 6 Session timing f6 = not na(time(timeframe.period, sess)) // 7 Reward-to-risk from planned levels risk = math.abs(entryP - stopP) rr = risk > 0 ? math.abs(targetP - entryP) / risk : 0.0 f7 = rr >= minRR

score = (f1 ? 1 : 0) + (f2 ? 1 : 0) + (f3 ? 1 : 0) + (f4 ? 1 : 0) + (f5 ? 1 : 0) + (f6 ? 1 : 0) + (f7 ? 1 : 0)

var table tbl = table.new(position.top_right, 2, 8, border_width=1) row(int i, string name, bool ok) => table.cell(tbl, 0, i, name, text_color=color.white, bgcolor=color.new(color.gray, 20)) table.cell(tbl, 1, i, ok ? "yes" : "no", text_color=color.white, bgcolor=ok ? color.new(color.green, 20) : color.new(color.red, 20))

if barstate.islast row(0, longBias ? "1 HTF trend (long bias)" : "1 HTF trend (short bias)", f1 or not longBias) row(1, "2 Structure level", f2) row(2, "3 Momentum reset", f3) row(3, "4 Volatility state", f4) row(4, "5 Participation", f5) row(5, "6 Session timing", f6) row(6, "7 R:R " + str.tostring(rr, "#.##"), f7) table.cell(tbl, 0, 7, "Score", text_color=color.white, bgcolor=color.new(color.blue, 20)) table.cell(tbl, 1, 7, str.tostring(score) + " / 7", text_color=color.white, bgcolor=color.new(color.blue, 20))

Three implementation notes. The request.security calls read close[1] and the EMA offset by one bar on the higher timeframe, so the trend answer is based on a bar that has already closed; this is the same confirmed-bar discipline described in our non-repainting indicators guide. The first row is always displayed as passing because it defines the bias direction that factors 2 and 7 are read against; if you want a long-only checklist, replace longBias with a fixed true and the row becomes a real test. And factor 7 depends entirely on what you type in; the table cannot invent a stop for you, which is deliberate.

Using the checklist in review, not just before entry

The second use of a checklist is after the session. For every trade taken, record the score and which factors failed. After a month you will have a table that answers questions intuition cannot: do your losers cluster on trades that failed factor 6? Do trades that passed all seven actually do better than those that passed five? If not, one of your factors is not measuring what you think, and the pillar article's removal test is the next step.

This review habit is also where a checklist becomes a strategy. Once the factors are stable and the score threshold is justified by your own data, the whole thing can be coded as a strategy script and backtested with costs, which is where a discretionary checklist stops being a belief and becomes a tested rule set.

FAQ

What is a confluence in trading, in plain words?

Several independent reasons agreeing on the same trade at the same place and time. The emphasis is on independent: three indicators built from the same price series are one reason, not three.

How many confluence factors should I require?

Start with a count of five from the seven above, with the reward-to-risk factor as a hard requirement. Adjust only after reviewing a month or more of your own scored trades.

Is a confluence checklist the same as a confluence indicator?

A checklist is a procedure you run; an indicator automates part of it. The table script above is a checklist displayed on the chart. A full confluence indicator, like the one in the pillar article, also scores and can feed a strategy.

Can I use this checklist on forex, crypto and stocks?

The structure is the same. The objective checks need adjusting: forex volume is broker-specific, crypto trades continuously so the session factor needs a definition that fits your market, and stocks have an opening auction that makes the first minutes behave differently.

Why does my checklist pass on trades that still lose?

Because a checklist filters for the kind of trade you decided to take; it does not predict the outcome of any one trade. If passing trades lose more often than failing ones over a meaningful sample, a factor is wrong. If they lose sometimes, that is trading.

Where Viprasol fits

Viprasol builds confluence tools as custom indicators for TradingView and MetaTrader: your factors, your definitions, your session windows, with confirmed-bar logic and an optional strategy version for backtesting. If you want the checklist above turned into a scored indicator with alerts, or a scoring model tested against your own trade history, our MT5 indicator development and Pine Script development services are the starting point. Pricing is on the pricing page and you can describe your factors through the contact form.

Risk disclaimer: trading involves substantial risk of loss. This article is educational and is not investment advice; a checklist improves consistency but does not guarantee any outcome.

what is a confluence in tradingconfluence checklistconfluence tradingtrade entry checklistpine scripttechnical analysisrisk reward

External Resources

Share this article:

About the Author

V

Viprasol Tech Team

Custom Software Development Specialists

The Viprasol Tech team specialises in algorithmic trading software, AI agent systems, and SaaS development. With 1000+ projects delivered across MT4/MT5 EAs, fintech platforms, and production AI systems, the team brings deep technical experience to every engagement.

MT4/MT5 EA DevelopmentAI Agent SystemsSaaS DevelopmentAlgorithmic Trading

Ready to Automate Your Trading?

Discuss a custom Expert Advisor with defined strategy rules, risk controls and a testing plan.

Free consultation • No commitment • Response within 24 hours

Viprasol · Trading Software

Need a custom EA or trading bot built?

We build MT4/MT5 Expert Advisors around your strategy, broker and risk requirements. Each project has an agreed scope, testing plan and individual quote.