指标

Strategia Bystrego - Swing Break + FVG + EMA 200 + Entry AlertsBYSTRY STRATEGY — SWING BREAKOUT, FAIR VALUE GAP AND EMA 200 FILTER
Overview
This strategy is designed specifically for the 2-minute chart and is intended for short-term trading on Nasdaq and Gold.
The system combines:
• Confirmed Swing High and Swing Low levels
• Break of Structure confirmation
• The first Fair Value Gap formed after the breakout
• A 50% Fair Value Gap retracement entry
• EMA 200 trend confirmation
• Previous Day, Previous Week and Asian Session liquidity filters
• Fixed Take Profit and Stop Loss levels
• Entry alerts generated only after the position is actually filled
The strategy does not open a position immediately after a structure breakout. It waits for the first valid Fair Value Gap and places a limit order at the midpoint of that imbalance.
TIMEFRAME
The strategy is designed exclusively for the 2-minute timeframe.
If the script is added to a different timeframe, it will generate an error and will not operate.
SUPPORTED MARKETS
The strategy contains two predefined market configurations:
NASDAQ
• Take Profit: 50 points
• Stop Loss: 50 points
GOLD
• Take Profit: 10 points
• Stop Loss: 10 points
The strategy uses a fixed 1:1 reward-to-risk ratio.
MARKET STRUCTURE
The strategy detects confirmed Swing High and Swing Low levels using pivot calculations.
Default pivot settings:
• Two candles on the left side
• Two candles on the right side
A Swing High or Swing Low becomes valid only after the required number of candles on the right side has closed.
LONG BREAK OF STRUCTURE
A bullish Break of Structure occurs when:
1. A confirmed Swing High exists.
2. The current candle closes above the Swing High.
3. The previous candle closed at or below that Swing High.
4. The strategy is not already in a trade.
5. There is no active pending order.
6. Long positions are enabled.
7. The price is above the EMA 200.
SHORT BREAK OF STRUCTURE
A bearish Break of Structure occurs when:
1. A confirmed Swing Low exists.
2. The current candle closes below the Swing Low.
3. The previous candle closed at or above that Swing Low.
4. The strategy is not already in a trade.
5. There is no active pending order.
6. Short positions are enabled.
7. The price is below the EMA 200.
FAIR VALUE GAP
After a valid Break of Structure, the strategy searches for the first Fair Value Gap.
By default, the Fair Value Gap must appear within three candles after the breakout. This value can be changed in the strategy settings.
Bullish Fair Value Gap:
A bullish Fair Value Gap is detected when the current candle’s low is above the high from two candles earlier.
Bullish FVG condition:
Current Low > High two candles earlier
Bearish Fair Value Gap:
A bearish Fair Value Gap is detected when the current candle’s high is below the low from two candles earlier.
Bearish FVG condition:
Current High < Low two candles earlier
ENTRY PRICE
The entry is placed at the 50% midpoint of the first valid Fair Value Gap.
Bullish entry:
Entry = Bullish FVG midpoint
Bearish entry:
Entry = Bearish FVG midpoint
The strategy uses a limit order. Therefore, the position is opened only when the market retraces back to the calculated entry price.
EMA 200 TREND FILTER
The EMA 200 is used as the main trend filter.
Long positions are allowed only when:
• The breakout candle closes above the EMA 200.
• The Fair Value Gap is formed while the price remains above the EMA 200.
• The planned limit entry is above the EMA 200.
• The market does not lose the EMA 200 while the limit order is pending.
Short positions are allowed only when:
• The breakout candle closes below the EMA 200.
• The Fair Value Gap is formed while the price remains below the EMA 200.
• The planned limit entry is below the EMA 200.
• The market does not move back above the EMA 200 while the limit order is pending.
The purpose of this filter is to prevent positions from being opened against the dominant 2-minute trend.
LIQUIDITY FILTER
Before placing a limit order, the strategy checks whether an important liquidity level is located between the planned entry and the Take Profit.
The following levels are monitored:
• Previous Day High
• Previous Day Low
• Previous Week High
• Previous Week Low
• Asian Session High
• Asian Session Low
A long setup is rejected when one of the following levels is located between the entry and Take Profit:
• Previous Day High
• Previous Week High
• Asian Session High
A short setup is rejected when one of the following levels is located between the entry and Take Profit:
• Previous Day Low
• Previous Week Low
• Asian Session Low
The purpose of this filter is to avoid entering directly into a nearby liquidity level that could stop or reverse the price before the target is reached.
PENDING ORDER CANCELLATION
A pending limit order can be cancelled when:
• The order has not been filled within the selected number of candles.
• The EMA 200 trend condition is no longer valid.
• A new liquidity level blocks the path to the target.
• The price reaches the theoretical Take Profit before retracing to the entry.
• The planned entry moves to the wrong side of the EMA 200.
The default pending order lifetime is 30 candles.
POSITION MANAGEMENT
The strategy allows only one active position at a time.
Pyramiding is disabled.
After the entry is filled, the strategy automatically places:
• A fixed Take Profit order
• A fixed Stop Loss order
The Take Profit and Stop Loss are calculated from the actual average position entry price.
ENTRY ALERTS
Alerts are generated only after the position is actually opened.
The strategy does not send an entry alert when:
• A Swing High or Swing Low appears.
• A Break of Structure appears.
• A Fair Value Gap appears.
• A pending limit order is created.
The alert is sent only when the limit order is filled and the strategy position changes from zero to either long or short.
The alert message includes:
• Direction
• Symbol
• Timeframe
• Entry price
• Take Profit
• Stop Loss
• EMA 200 filter confirmation
VISUAL ELEMENTS
The strategy can display:
• Confirmed Swing High levels
• Confirmed Swing Low levels
• EMA 200
• Previous Day High and Low
• Previous Week High and Low
• Asian Session High and Low
• Fair Value Gap area
• Profit area
• Risk area
• Entry level
• Take Profit level
• Stop Loss level
• Break of Structure markers
• Diagnostic rejection markers
IMPORTANT LIMITATIONS
This strategy does not predict future market direction.
The EMA 200 is a trend filter, but it does not eliminate false breakouts or losing positions.
The system may perform poorly during:
• Low-volume consolidation
• Rapidly changing market conditions
• Major economic announcements
• Whipsaw conditions around the EMA 200
• Sessions with limited liquidity
• Markets with unusually high volatility
Historical results do not guarantee future performance.
Real trading results may differ from backtest results because of commissions, spread, slippage, latency and differences between simulated and real order execution.
This strategy is provided for educational and research purposes only. It does not constitute financial or investment advice. 策略

Pocket Pivot (Kacher/Morales) - Customsdasd//@version=6
indicator("Pocket Pivot (Kacher/Morales) - Custom", overlay=true)
// ─────────────────────────────────────
// SETTINGS
// ─────────────────────────────────────
smaLength = input.int(
10,
title="SMA Length",
minval=1
)
maxOffset = input.float(
4.0,
title="Max % Offset from SMA",
minval=0.1,
step=0.1
)
lookback = input.int(
10,
title="Lookback Period (Trading Days)",
minval=1
)
// ─────────────────────────────────────
// SMA
// ─────────────────────────────────────
smaValue = ta.sma(close, smaLength)
// ─────────────────────────────────────
// BUY / SELL VOLUME
// Approximation:
// Bullish candle = Buy Volume
// Bearish candle = Sell Volume
// ─────────────────────────────────────
buyVolume = close > open ? volume : 0.0
sellVolume = close < open ? volume : 0.0
// ─────────────────────────────────────
// HIGHEST SELL VOLUME
// Previous 10 candles only
// Current candle is NOT included
// ─────────────────────────────────────
highestSellVolume = ta.highest(
sellVolume ,
lookback
)
// ─────────────────────────────────────
// PRICE DISTANCE FROM SMA
// ─────────────────────────────────────
percentOffset = math.abs(
close - smaValue
) / smaValue * 100
// Price is close enough to SMA
priceNearSMA = percentOffset <= maxOffset
// ─────────────────────────────────────
// POCKET PIVOT CONDITION
// ─────────────────────────────────────
volumeCondition = buyVolume > highestSellVolume
pocketPivot = volumeCondition and priceNearSMA
// ─────────────────────────────────────
// PLOT SMA
// ─────────────────────────────────────
plot(
smaValue,
title="SMA",
color=color.teal,
linewidth=2
)
// ─────────────────────────────────────
// MARK POCKET PIVOT
// ─────────────────────────────────────
plotshape(
pocketPivot,
title="Pocket Pivot",
style=shape.labelup,
location=location.belowbar,
color=color.green,
text="PP",
textcolor=color.white,
size=size.small
)
// ─────────────────────────────────────
// ALERT
// ─────────────────────────────────────
alertcondition(
pocketPivot,
title="Pocket Pivot Detected",
message="Pocket Pivot detected on {{ticker}}"
)//@version=6
indicator("Pocket Pivot (Kacher/Morales) - Custom", overlay=true)
// ─────────────────────────────────────
// SETTINGS
// ─────────────────────────────────────
smaLength = input.int(
10,
title="SMA Length",
minval=1
)
maxOffset = input.float(
4.0,
title="Max % Offset from SMA",
minval=0.1,
step=0.1
)
lookback = input.int(
10,
title="Lookback Period (Trading Days)",
minval=1
)
// ─────────────────────────────────────
// SMA
// ─────────────────────────────────────
smaValue = ta.sma(close, smaLength)
// ─────────────────────────────────────
// BUY / SELL VOLUME
// Approximation:
// Bullish candle = Buy Volume
// Bearish candle = Sell Volume
// ─────────────────────────────────────
buyVolume = close > open ? volume : 0.0
sellVolume = close < open ? volume : 0.0
// ─────────────────────────────────────
// HIGHEST SELL VOLUME
// Previous 10 candles only
// Current candle is NOT included
// ─────────────────────────────────────
highestSellVolume = ta.highest(
sellVolume ,
lookback
)
// ─────────────────────────────────────
// PRICE DISTANCE FROM SMA
// ─────────────────────────────────────
percentOffset = math.abs(
close - smaValue
) / smaValue * 100
// Price is close enough to SMA
priceNearSMA = percentOffset <= maxOffset
// ─────────────────────────────────────
// POCKET PIVOT CONDITION
// ─────────────────────────────────────
volumeCondition = buyVolume > highestSellVolume
pocketPivot = volumeCondition and priceNearSMA
// ─────────────────────────────────────
// PLOT SMA
// ─────────────────────────────────────
plot(
smaValue,
title="SMA",
color=color.teal,
linewidth=2
)
// ─────────────────────────────────────
// MARK POCKET PIVOT
// ─────────────────────────────────────
plotshape(
pocketPivot,
title="Pocket Pivot",
style=shape.labelup,
location=location.belowbar,
color=color.green,
text="PP",
textcolor=color.white,
size=size.small
)
// ─────────────────────────────────────
// ALERT
// ─────────────────────────────────────
alertcondition(
pocketPivot,
title="Pocket Pivot Detected",
message="Pocket Pivot detected on {{ticker}}"
) 指标

指标

指标

指标

指标

指标

jrhMultORB+CLjrhMultORB_Checklist — Documentation
Non-destructive fork of the real jrhMultORB indicator. Every original input, calculation, marker, and alert is untouched — this version adds one new group ("Execution Checklist") and a second table wired directly to jrhMultORB's actual internal state, so the checklist can never disagree with the chart markers the way a separate/standalone recreation could.
What's New vs. the Original jrhMultORB
Only one new input group was added:
Setting What it controls
Show Checklist Table Master on/off for the new table
Position Where it renders (Top Right / Top Left / Bottom Right / Bottom Left)
Text Size Tiny / Small / Normal / Large
Everything else — Opening Range, Custom Range, Breakout Signals, Targets, Bull/Bear Target levels, Session Moving Average, Trend & Momentum, the original Info Table, and Style — is 100% identical to your source file.
Execution Checklist Table — Row Reference
OR Levels
Locked Opening Range high–low (orh–orl) once the OR session ends. Shows "forming..." while still building.
Day Bias / ADX
Same two readouts as your original Info Table:
• Bullish / Bearish / Neutral — day_dir, comparing this session's OR midpoint to the previous session's
• ADX value — same adxVal as the ADX row in your Info Table
Breakout Up / Breakout Down
Reflects upSignalUsed / downSignalUsed directly — "Fired this session" or "Not yet".
Retest (Up) / Retest (Down)
The core entry-decision row, reading waitRetestUp/waitRetestDown, retest_up/retest_down, and rtUpOutcome/rtDownOutcome directly from the real script:
Status Meaning Action
Not yet (from Breakout row) No breakout Wait
Armed - awaiting retest of ORH/ORL Breakout fired, watching for the retest touch Wait
RTC - continuation confirmed Retest candle closed back through the level Entry signal in the breakout direction
RTF - retest failed Retest candle closed back inside the range Don't enter continuation; watch the opposite Rev/Fade row
Retest window expired (stale) No touch within your Max Bars to Wait Void
Includes (N bars ago), computed from waitRetestUpBar/waitRetestDownBar — the actual bar index your real script arms the retest watch on. This tells you whether an RTC/RTF is live or historical context.
Rev/Fade (after Up-fail) / (after Dn-fail)
Only activates after the matching Retest shows RTF. Reads waitRevFadeLong/waitRevFadeShort and revLong/fadeLong/revShort/fadeShort directly:
Status Meaning
— Not armed
Armed - watching ORL/ORH for reversal/fade Watching the opposite level after an RTF
REV - reversed through ORL/ORH, fresh short/long Opposite level closed through — new opportunity in the new direction
FADE - rejected at ORL/ORH, range holding Opposite level touched but rejected — range is holding
Also includes (N bars ago), from waitRevFadeLongBar/waitRevFadeShortBar.
Signal vs Bias Check
Compares a confirmed RTC direction against day_dir (the same Day Bias shown two rows up — not a separate ADX-based proxy):
Display Meaning
No conflict No confirmed RTC yet, or it agrees with Day Bias
⚠ Confirmed LONG vs Bearish Day Bias RTC long confirmed while Day Bias reads Bearish
⚠ Confirmed SHORT vs Bullish Day Bias RTC short confirmed while Day Bias reads Bullish
A caution flag, not a stop signal — it's a cue to size down, tighten stops, or be skeptical of extended targets, not an automatic skip.
Important Usage Notes
• Retest/Rev-Fade rows are historical snapshots. They hold whatever text they last resolved to until the next OR session resets them — always check the (N bars ago) tag before treating a status as a live signal.
• Day Bias / ADX recalculates live, so it can visibly diverge from an older Retest status as the session progresses.
• All checklist state resets automatically at the start of each new OR session (or_start), same as your original script's own state.
• This checklist reads your actual script's internal variables — it cannot disagree with the breakout/retest/REV/FADE markers drawn on the chart, since both come from the same calculation.
• Still no automatic stop/target/position-size calc — pair with your own risk rules, same as before.
指标

指标

指标

指标

Liquidity Breakout MatrixLIQUIDITY BREAKOUT MATRIX (LBM)
www.tradingview.com
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW
Liquidity Breakout Matrix is an original consolidation-and-breakout mapping tool. It automatically detects the phases where a market stops trending and coils inside a tight liquidity pocket, draws that pocket as a structured channel on the chart, monitors the participation building up inside it, and then marks the exact bar where price resolves out of it.
Every channel it draws is a container of resting orders. The upper edge of a consolidation is where sell-side liquidity accumulates. The lower edge is where buy-side liquidity accumulates. Price does not stay inside these pockets forever — it eventually resolves through one side, and that resolution is what LBM is built to isolate and time.
The indicator is fully self-adapting. It does not use fixed pip values, fixed point distances or hard-coded thresholds anywhere in its detection logic, so the same settings behave consistently on gold, indices, FX pairs, crypto, futures and equities, on any timeframe from seconds to monthly.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY THIS INDICATOR WAS CREATED
Three specific problems motivated this build.
1. Most consolidation tools only see the range after it has already broken.
Manual range drawing is subjective, and simple "highest high / lowest low of the last N bars" boxes are drawn on every bar regardless of whether the market is actually consolidating. What was needed was a detector that identifies a genuine volatility contraction as a discrete event, waits for it to complete, and only then maps the exact bars that formed it.
2. Breakout signals fire far too often on single wicks.
A large portion of range breaks are liquidity grabs: a wick pierces the boundary, sweeps resting stops, and the candle closes back inside. A tool that treats every touch as a breakout produces constant false signals. LBM needed a confirmation model that ignores pure wick penetration by default.
3. Volume-based tools break completely on spot FX, CFD and metals feeds.
A very large number of brokers and data feeds publish no traded volume at all. Most volume-dependent indicators respond to this by printing blank values, broken numbers or an error notice, which makes half the tool useless on exactly the instruments many traders watch. LBM needed an activity engine that always resolves to something usable, and that is honest about what it is using.
The result is a single tool that maps compression, measures the participation inside it, and marks the resolution — on any instrument, with or without a volume feed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS — FULL METHODOLOGY
1. THE COMPRESSION INDEX (0–100)
This is the core engine. It blends two independent and deliberately different readings of market contraction.
Reading A — structural dispersion.
Raw price is first normalized into a 0–1 position inside its own rolling high/low range over the Normalization Lookback. This converts price into a pure structural coordinate: 1 means price sits at the top of its recent range, 0 means the bottom, 0.5 means the middle. The standard deviation of that normalized coordinate is then measured over the Dispersion Length. This tells you how much price is actually travelling within its own structure. A market that is grinding sideways produces a low dispersion value even if the instrument itself is volatile in absolute terms.
Reading B — raw volatility decay.
Independently, a fast ATR is compared against a slow ATR. When recent true range is shrinking relative to the longer baseline, the ratio falls. This catches volatility drying up even when structural position is still drifting.
Combining them.
Each reading is converted into a rolling percentile rank over the Percentile Window, which places the current value against its own recent history rather than against an arbitrary fixed number. This is what makes the tool instrument-agnostic and timeframe-agnostic. The two ranks are then blended using the Dispersion Weight and inverted, producing the Compression Index:
- High Compression Index → the market is coiling
- Low Compression Index → the market is expanding
The live value is always visible in the info panel.
2. THE SQUEEZE STATE MACHINE
The Compression Index alone is not a signal. It feeds a state machine.
While the index holds above the Compression Threshold, the script counts how many consecutive bars the squeeze has lasted. When the index drops back below the threshold, the squeeze is considered released. At that moment the duration is checked against Minimum Range Bars. If the coil was too short to be meaningful it is discarded and nothing is drawn. This filter is what keeps the chart clean — brief one or two bar pauses never become channels.
3. CHANNEL CONSTRUCTION
When a valid squeeze completes, the channel is built retroactively over exactly the bars the coil lasted — not over a fixed lookback. The script walks back through that specific window and extracts:
- Main channel body — from the highest high to the lowest low of the coil, drawn as a shaded box
- Upper edge zone — a red band sized by ATR beneath the top of the channel. This is the supply pocket, where sell-side liquidity is resting
- Lower edge zone — a green band sized by ATR above the bottom. This is the demand pocket, where buy-side liquidity is resting
- Equilibrium line — a dashed line at the exact 50% of the channel
The edge zone size is capped as a fraction of the total range, so a wide channel never ends up with edge bands that swallow the whole box.
While price remains trapped inside, the channel keeps extending to the right in real time. When price resolves, the channel freezes at the breakout bar and stays on the chart, so the full history of every pocket the market built remains readable.
4. UNIVERSAL ACTIVITY ENGINE
This is the component that keeps the participation side of the tool alive on every market. It resolves a usable per-bar activity series in a strict priority order.
Priority 1 — Real chart volume.
If the feed publishes genuine traded volume, that is used and the panel reports "Chart volume (real)".
Priority 2 — External reference symbol.
You may point the indicator at another symbol that trades the same underlying asset on a venue that does publish volume — for example a futures contract or a major exchange pair. That symbol's volume is requested on the chart timeframe and used as the activity series. The panel reports "External symbol (real)".
Priority 3 — Synthetic Activity.
If neither is available, the script builds its own participation proxy. It measures each bar's true range relative to a baseline ATR to get a relative activity reading, then weights that by candle body efficiency — the proportion of the bar's range that was converted into directional body rather than rejected wick. A bar that travels far and closes with conviction registers as heavy participation; a bar that travels far but closes back where it started registers as lighter, because most of that movement was rejected.
This is explicitly a participation estimate, not traded volume, and the panel always labels it "Synthetic (estimated)" so nothing is ever presented as real exchange data.
Whichever source is resolved, it is then split into estimated buy and sell pressure using where each candle closed inside its own range: a close near the high assigns most of that bar's activity to buyers, a close near the low assigns most to sellers, and a mid-range close splits it.
5. FLOW OVERLAY INSIDE THE CHANNEL
Inside each channel, the per-bar buy/sell split is plotted as columns around the equilibrium line, so you can see which side was accumulating during the coil rather than only where price ended up.
- Comparison mode — estimated buy pressure plotted upward, estimated sell pressure plotted downward
- Total mode — a symmetric column of total activity, coloured by which side dominated
- Delta mode — only the net difference, upward when buyers led, downward when sellers led
A tag on each channel prints the total estimated buy and sell activity accumulated across the entire consolidation.
6. BREAKOUT ENGINE
A breakout is registered when price resolves outside the channel body.
With Body Confirmed Breakout enabled (the default), the midpoint of the candle body must clear the boundary. A wick alone is not enough. This single filter removes a large share of liquidity-grab false signals, because a sweep that reverses will leave the body inside the channel.
With it disabled, the close alone triggers the signal, which produces earlier but noisier entries.
On a valid break the channel freezes and an arrow prints — ▲ for an upside resolution, ▼ for a downside resolution.
7. PRESSURE GAUGE
While a channel is still unresolved, a vertical red-to-green gauge is projected to the right of price, spanning the channel's own height, with a ◀ pointer. The pointer position reflects where the net accumulated flow of that specific channel sits between its own extremes — effectively, who is currently winning inside the pocket. Above 50% means buyers have accumulated more; below 50% means sellers have.
8. INFO PANEL
The panel reports, in real time:
- Activity Source — exactly which of the three sources is currently in use, so you always know whether you are reading real volume or an estimate
- Compression — the live Compression Index out of 100
- State — whether the market is currently Coiling (with the bar count so far) or Expanding
- Active Channel — the price boundaries of the channel currently in play, or "none"
- Pressure — the current buyer percentage inside the active channel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO READ IT ON THE CHART
- Shaded box — a completed consolidation, a liquidity pocket
- Red band at the top — supply zone, resting sell-side orders
- Green band at the bottom — demand zone, resting buy-side orders
- Dashed centre line — equilibrium of the range
- Columns inside the box — estimated buy pressure above the line, sell pressure below it
- Tag on the box — total estimated buy / sell activity for that whole consolidation
- Green ▲ arrow — price resolved upward out of that channel
- Red ▼ arrow — price resolved downward out of that channel
- Gauge on the right — live pressure balance inside the channel that has not resolved yet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRACTICAL USE
Reading the structure.
Treat each channel as a pool of trapped orders rather than as a support/resistance pair. The market built that pocket for a reason: it is where positions accumulated. The resolution direction tells you which side of that pocket got run.
Taking the resolution.
The straightforward application is to act on the arrow, in the direction of the break, using the opposite edge zone of the broken channel as the invalidation level. That edge is structurally meaningful — if price returns all the way through the channel to the far side, the breakout thesis is dead.
Failed resolutions.
A break that immediately returns inside the channel is a failed resolution and is often the more powerful signal. Liquidity was taken on one side and rejected; these frequently run hard toward the opposite edge instead. Watching for this behaviour on a frozen channel is one of the higher-quality uses of the tool.
Using the flow.
When the flow overlay shows one side clearly dominating during the coil, and price then resolves in that same direction, the two agree and the resolution has participation behind it. When the coil shows heavy buying but price resolves downward, that is a distribution signature — buyers were absorbed. Read this as context, not as a standalone signal.
Using compression.
A rising Compression Index with the state showing "Coiling" and a growing bar count tells you a channel is being built right now, before it is drawn. This is your advance warning that a resolution is being set up.
Timeframe stacking.
Because the engine is percentile-based, it works identically on higher timeframes. Mapping the channel on a higher timeframe and taking the resolution on a lower one is a natural workflow.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
COMPRESSION ENGINE
- Sensitivity Preset — High, Medium, Low or Custom. High produces more channels on faster charts, Low isolates only the heaviest compressions. Custom unlocks the manual threshold and minimum-bar inputs below.
- Normalization Lookback — the range used to map price into its 0–1 structural position.
- Dispersion Length — bars used to measure how much normalized price is travelling.
- Percentile Window — the rolling window that current compression is ranked against.
- Compression Threshold — the level the index must hold above for a squeeze to be active. Higher means fewer, tighter channels.
- Minimum Range Bars — coils shorter than this are discarded entirely.
- Dispersion Weight — blends between structural dispersion (1.0) and raw ATR contraction (0.0).
- Fast / Slow ATR Length — the two legs of the volatility-decay reading.
- Maximum Range Bars — caps how far back a single channel can be reconstructed.
CHANNEL AND ZONES
- Keep Channel After Breakout — on by default, broken channels stay frozen on the chart so you keep the full history. Turn it off if you only want the currently active pocket visible.
- Edge Zone Size (x ATR) — thickness of the supply and demand bands.
- Edge Zone Max (x Range) — caps those bands as a fraction of the channel height.
- Show Equilibrium Line — the dashed 50% line.
- Max Channels On Chart — how many historical channels are retained before the oldest are removed.
BREAKOUT ENGINE
- Body Confirmed Breakout — on by default, requires the candle body midpoint to clear the edge, so wick sweeps are ignored.
- Wait For Bar Close — confirms breakouts only on closed bars, removing all intrabar flicker.
UNIVERSAL ACTIVITY ENGINE
- Activity Source — Auto, Chart Volume Only, External Symbol, or Synthetic Estimate. Auto is recommended.
- External Volume Symbol — optional reference symbol for instruments whose own feed has no volume.
- Synthetic Baseline ATR — the baseline length the synthetic proxy normalizes against.
- Show Info Panel — toggles the panel.
FLOW OVERLAY
- Show Flow Inside Channel, Flow Mode (Comparison / Total / Delta), Flow Column Height, Flow Column Width, Max Flow Columns Per Channel, Show Buy/Sell Tag.
PRESSURE GAUGE
- Show Pressure Gauge, Gauge Offset, Gauge Width.
STYLE
- Full colour control over the channel body, border, upper and lower edge zones, equilibrium line, bullish and bearish colours, channel tag text, and the info panel background and text.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
Three alert conditions are included:
- Bullish Breakout — price resolved above a channel
- Bearish Breakout — price resolved below a channel
- New Channel — a new consolidation has been mapped
Alert messages carry the ticker and timeframe automatically.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REPAINTING STATEMENT
Channels are created only after a squeeze has been confirmed as finished, and once a channel freezes on a breakout it never moves again. Historical channels and historical arrows are fixed.
Breakout evaluation runs on live bars by default so you see the signal as it develops; enable Wait For Bar Close if you want breakouts confirmed strictly on closed bars with no intrabar movement.
The optional external activity symbol is requested on the chart timeframe with invalid symbols ignored and no lookahead.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HONEST LIMITATIONS
- The Synthetic Activity source is a participation estimate derived from price behaviour, not traded volume. It is a reasonable proxy for relative activity and it is labelled as an estimate everywhere it is used, but it should never be interpreted as real order flow. Where a genuine volume feed exists, use it.
- The estimated buy/sell split assigns activity by close position within the bar's range. This is a standard estimation approach and it is directionally useful, but it cannot see actual aggressor side. No indicator built on standard OHLCV can.
- Consolidation detection is a lagging-by-design process: a channel is only drawn once the coil has finished, because the completed coil is what defines the boundaries. The Compression Index in the panel is the leading component and moves in real time.
- No indicator predicts direction. This tool maps structure and marks resolutions. Risk management remains entirely the responsibility of the trader.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AUTHOR VERIFICATION
- Script Name: Liquidity Breakout Matrix
- Short Title: LBM
- Author: Forex_Market_Insights
- Original Developer: Forex_Market_Insights
- Copyright: © Forex_Market_Insights
- Pine Version: v6
- Script Type: Overlay indicator
- Build: 2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DECLARATION OF ORIGINALITY
I, Forex_Market_Insights, declare that this script is an original implementation written from scratch by me.
Every calculation block in this indicator — the Compression Index composite, the squeeze state machine, the retroactive channel construction, the ATR edge-zone model with range capping, the Universal Activity Engine and its three-tier resolution logic, the synthetic participation proxy, the estimated buy/sell split, the flow overlay scaling, the pressure gauge normalization and the body-confirmed breakout filter — was designed, coded and tested by Forex_Market_Insights.
This script does not copy, port, decompile, translate or re-skin any other author's published or protected code. Where the underlying market concepts are common technical analysis knowledge — volatility contraction, consolidation ranges, supply and demand edges, range breakouts, volume distribution within a range — they are expressed here through my own formulas and my own code architecture, which differ materially from any third-party implementation.
No built-in indicator is simply re-wrapped under a new name, and no open-source script is republished as my own work. Standard Pine built-in functions are used only as low-level mathematical primitives inside my own composite engine, in the same way any developer uses a language's standard library.
The full commented source, including this declaration, is contained in the script header.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
This tool is published for market study and educational purposes only. It is not financial advice, not a solicitation to trade, and no signal it produces is a guarantee of any outcome. Past behaviour of any pattern does not predict future results. All trading decisions and all risk taken are entirely your own responsibility.
www.tradingview.com
指标

Institutional Breakouts ChannelInstitutional Breakouts Channel
www.tradingview.com
**Institutional Breakouts Channel** is a professional market structure and breakout analysis indicator designed to help traders identify institutional accumulation, distribution, breakout opportunities, trend continuation, and dynamic support/resistance levels in real time. Instead of relying on a single technical calculation, the indicator combines adaptive price channels, volatility analysis, trend filtering, market structure evaluation, breakout validation, and institutional bias calculations into one comprehensive trading framework.
The primary objective of this indicator is to simplify institutional price behavior by converting complex market movements into an easy-to-read visual environment. It continuously evaluates trend direction, price compression, breakout probability, channel expansion, momentum strength, and market volatility while displaying these conditions directly on the chart.
Institutional Breakouts Channel is designed for traders who want a clean chart without sacrificing analytical depth. It automatically adapts to changing market conditions and remains effective across Forex, Stocks, Indices, Commodities, Metals, Futures, Cryptocurrency, and other TradingView-supported markets.
Unlike traditional breakout indicators that simply highlight when price exceeds previous highs or lows, Institutional Breakouts Channel attempts to evaluate the quality of every breakout using multiple internal conditions before confirming market direction.
---
# What is this Indicator?
Institutional Breakouts Channel is a dynamic trend-following and breakout confirmation indicator that visualizes institutional trading activity through adaptive price channels.
The indicator continuously builds a flexible channel around market price while analyzing:
• Institutional buying pressure
• Institutional selling pressure
• Trend continuation
• Trend exhaustion
• Breakout probability
• Volatility expansion
• Momentum acceleration
• Market structure changes
Instead of showing static support and resistance levels, the channel constantly adjusts itself according to current market conditions, making it suitable for both trending and ranging environments.
The indicator is designed to provide traders with a complete overview of market behavior without requiring multiple separate indicators.
---
# How Does the Indicator Work?
Institutional Breakouts Channel continuously evaluates market data candle by candle.
Its internal calculations monitor the interaction between price movement, volatility, momentum, channel width, trend strength, and market structure.
The adaptive channel automatically expands when volatility increases and contracts when price enters consolidation.
When price begins to accumulate energy inside the channel, the indicator identifies the possibility of an upcoming breakout.
If multiple internal conditions confirm that institutional buying pressure is increasing, the channel gradually shifts into a bullish environment.
Similarly, when selling pressure dominates, the channel transitions into a bearish environment.
The indicator avoids reacting to every minor market fluctuation by applying additional filters designed to reduce unnecessary noise and improve signal quality.
As market conditions evolve, every component of the indicator updates automatically in real time without requiring manual intervention.
---
# What Does the Indicator Display?
Institutional Breakouts Channel combines multiple analytical components into one complete trading environment.
### Dynamic Institutional Price Channel
The indicator draws an adaptive upper and lower channel that continuously follows institutional price movement.
The channel automatically changes shape according to market volatility and trend strength.
---
### Bullish and Bearish Trend Zones
The background channel visually distinguishes bullish and bearish market conditions.
Bullish environments are displayed using supportive colors while bearish environments highlight potential selling pressure.
These visual zones help traders quickly recognize the dominant market direction.
---
### Breakout Detection
The indicator continuously monitors price interaction with the adaptive channel.
Whenever price attempts to escape consolidation, the indicator evaluates whether the move qualifies as a genuine breakout or a potential false breakout.
---
### Breakout Confirmation Levels
Support and resistance areas generated from institutional calculations are displayed automatically.
These levels assist traders in identifying:
• Breakout locations
• Retest opportunities
• Trend continuation zones
• Reversal areas
---
### Institutional Bias Analysis
The indicator calculates the current institutional bias based on multiple internal market conditions.
Possible market states include:
• Bullish
• Bearish
• Neutral
• Accumulation
• Distribution
This helps traders understand the dominant market sentiment.
---
### Market Structure Evaluation
Institutional Breakouts Channel continuously evaluates higher highs, lower highs, higher lows, lower lows, and structural shifts.
This allows traders to understand whether the current market is strengthening or weakening.
---
### Trend Strength Analysis
Rather than simply identifying trend direction, the indicator estimates trend quality.
This helps traders differentiate between:
• Weak trends
• Healthy trends
• Strong institutional trends
• Exhausted trends
---
### Momentum Monitoring
The indicator tracks the acceleration and deceleration of market momentum.
Momentum analysis helps traders determine whether the current breakout is likely to continue or lose strength.
---
### Volatility Analysis
ATR-based calculations estimate current market volatility.
The channel automatically adapts to changing volatility without requiring manual adjustment.
---
### Higher Timeframe Confirmation
Additional higher timeframe analysis helps traders align lower timeframe entries with larger market trends.
This improves overall market context.
---
### Dynamic Support and Resistance
Instead of static horizontal levels, the indicator continuously updates support and resistance according to institutional market behavior.
These levels evolve alongside price.
---
### Institutional Dashboard
The integrated dashboard summarizes important market information including:
• Institutional Bias
• Trend Direction
• Trend Strength
• Momentum
• Breakout Score
• Breakout State
• Breakout Pressure
• Channel Status
• ATR Volatility
• Market Structure
• Dynamic Resistance
• Dynamic Support
• Higher Timeframe Bias
• Last Signal
• Last Retest
• Risk Estimate
• Liquidity Status
• Overall Institutional Score
This dashboard provides a quick overview of current market conditions without requiring additional indicators.
---
# Purpose of the Indicator
The primary purpose of Institutional Breakouts Channel is to simplify institutional market analysis while helping traders identify high-quality breakout opportunities.
Rather than overwhelming users with multiple technical indicators, everything is consolidated into one integrated analytical framework.
The indicator was designed to help traders:
• Identify institutional trend direction.
• Detect potential breakout opportunities.
• Monitor volatility changes.
• Recognize market accumulation.
• Recognize market distribution.
• Follow trend continuation.
• Avoid low-quality breakouts.
• Analyze market structure.
• Improve decision-making using objective market data.
---
# Markets Supported
Institutional Breakouts Channel has been designed to operate across virtually every liquid financial market available on TradingView.
These include:
• Forex
• Cryptocurrency
• Stocks
• Indices
• Commodities
• Precious Metals
• Futures
• CFDs
• ETFs
The adaptive calculations automatically adjust to different market behaviors without requiring separate versions.
---
# Timeframe Compatibility
The indicator is fully compatible with all TradingView chart timeframes, including:
• 1 Minute
• 3 Minute
• 5 Minute
• 15 Minute
• 30 Minute
• 1 Hour
• 2 Hour
• 4 Hour
• Daily
• Weekly
• Monthly
Because the calculations are adaptive, the indicator scales naturally across lower and higher timeframes.
---
# How to Interpret the Indicator
The easiest way to understand Institutional Breakouts Channel is by viewing it as a complete institutional trading environment rather than a simple signal generator.
When the channel begins expanding alongside increasing momentum and strengthening trend conditions, the market is generally entering a stronger directional phase.
When the channel contracts, volatility decreases, and breakout pressure weakens, the market may be entering consolidation.
The dashboard should be interpreted as a confirmation tool rather than a standalone trading system. Strong institutional alignment across multiple metrics generally provides greater confidence than relying on any single value.
The adaptive support and resistance levels can also serve as potential reaction zones where traders may monitor price behavior for continuation or rejection.
As with any technical analysis tool, Institutional Breakouts Channel is most effective when combined with disciplined risk management, proper market context, and sound trading practices.
---
# Author Verification & Original Implementation Declaration
**Author Verification**
This indicator has been independently researched, designed, engineered, and implemented by **Forex_Market_Insights**. Every component of the script has been developed as part of an original analytical framework focused on institutional market behavior, adaptive breakout analysis, dynamic channel construction, and real-time trend evaluation.
---
**Original Implementation Verification**
The published implementation represents an original Pine Script development created specifically for **Institutional Breakouts Channel**. The architecture, internal calculations, visualization methods, dashboard design, adaptive channel logic, breakout evaluation process, market structure interpretation, volatility handling, and overall workflow have been independently implemented as part of this project.
---
**Declaration**
© **Forex_Market_Insights**
All analytical concepts, implementation methods, visualization techniques, script architecture, calculations, dashboard presentation, and indicator workflow contained within this publication are presented as an original implementation created by **Forex_Market_Insights**.
This script is intended solely for educational and analytical purposes. It does not constitute financial or investment advice. Trading financial markets involves substantial risk, and users remain fully responsible for their own trading decisions, risk management, and capital allocation.
www.tradingview.com 指标

指标

指标

Combined Market Breadth Table Overview
Combined Market Breadth Table is an overlay indicator that brings key market breadth data directly onto your chart in a clean, compact visual display. It tracks the percentage of stocks trading above major moving averages across two of the most heavily watched benchmarks: the Nasdaq 100 (NDX) and the S&P 500 (SPX).
Instead of clogging your screen with multiple lower-pane indicators, this script compiles short-term, medium-term, and long-term breadth metrics into a single table anchored to the top-right corner of your chart.
Key Features
Multi-Timeframe Moving Average Tracking: Displays the percentage of stocks trading above their 200-day, 50-day, 20-day, and 5-day moving averages simultaneously.
Dual-Index Comparison: Tracks both the Nasdaq 100 (NDX) and S&P 500 (SPX) side-by-side to easily spot divergence between tech heavyweights and the broader market.
Color-Coded Rows: Each moving average timeframe uses a distinct, color-coded text palette for quick scanning:
🟡 200-Day (Yellow): Macro / long-term structural trend.
🔵 50-Day (Blue): Intermediate trend.
🟢 20-Day (Green): Short-term trend.
🟠 5-Day (Orange): Ultra-short-term / momentum pulse.
Non-Intrusive Design: Renders only on the latest bar inside a dark, framed table box in the top-right corner, leaving your price action uncluttered.
指标

Sprung Ladder Signals v1//@version=6
indicator("Sprung Ladder Signals v1", "SLS", overlay=true)
// ---------- Inputs (set from the gear icon, no code edits needed) ----------
shelf = input.float(0.0, "Sprung Ladder shelf level (0 = off)")
springWindow = input.int(3, "Spring reclaim window (bars)", minval=1)
lvl1 = input.float(0.0, "Alert level 1 (0 = off)")
lvl2 = input.float(0.0, "Alert level 2 (0 = off)")
hlLen = input.int(2, "Higher-low pivot strength", minval=1)
hiLen = input.int(20, "Session-high lookback (bars)", minval=5)
// ---------- Webhook payload helper ----------
f_fire(ev) =>
alert('{"event":"' + ev + '","symbol":"' + syminfo.ticker + '","tf":"' + timeframe.period + '","price":' + str.tostring(close) + ',"t":' + str.tostring(timenow) + '}', alert.freq_once_per_bar_close)
// ---------- SWEEP: pokes below a defended shelf, closes back above ----------
sweep = shelf > 0 and low < shelf and close > shelf
var float sweepHigh = na
var int sweepBar = na
if sweep
sweepHigh := high
sweepBar := bar_index
// ---------- ta.* calls hoisted to globals so they run every bar (fixes CW10002) ----------
crossSweepHigh = ta.crossover(close, sweepHigh)
pl = ta.pivotlow(low, hlLen, hlLen)
recentHigh = ta.highest(high, hiLen)
crossRecent = ta.crossover(close, recentHigh)
crossLvl1 = ta.cross(close, lvl1)
crossLvl2 = ta.cross(close, lvl2)
// ---------- SPRING: reclaim of the sweep bar's high within the window ----------
spring = not na(sweepBar) and (bar_index - sweepBar) <= springWindow and crossSweepHigh
if spring
sweepBar := na
// ---------- HL_RECLAIM: shallow pullback holds above prior pivot low, breaks recent high ----------
var float lastPivotLow = na
if not na(pl)
lastPivotLow := pl
hlReclaim = not na(lastPivotLow) and low > lastPivotLow and crossRecent
// ---------- Visuals ----------
plotshape(sweep, "SWEEP", shape.triangleup, location.belowbar, color.orange, size=size.small)
plotshape(spring, "SPRING", shape.labelup, location.belowbar, color.green, size=size.small)
plotshape(hlReclaim, "HL_RECLAIM", shape.diamond, location.belowbar, color.aqua, size=size.tiny)
plot(shelf > 0 ? shelf : na, "Shelf", color.new(color.yellow, 30), 2, plot.style_linebr)
// ---------- Fire webhooks (one TV alert: 'Any alert() function call') ----------
if sweep
f_fire("SWEEP")
if spring
f_fire("SPRING")
if hlReclaim
f_fire("HL_RECLAIM")
if lvl1 > 0 and crossLvl1
f_fire("LEVEL1_HIT")
if lvl2 > 0 and crossLvl2
f_fire("LEVEL2_HIT") 指标

指标

MACD PRO + Filtro + Genesis//@version=6
indicator("MACD PRO + Filtro + Delay", overlay=true)
// ======================
// 🔧 INPUTS
// ======================
source = close
fastLen = input.int(12, "Fast")
slowLen = input.int(26, "Slow")
signalLen = input.int(9, "Signal")
delay = input.int(1, "Delay (velas após cruzamento)", minval=0, maxval=5)
emaFilterLen = input.int(100, "EMA Tendência")
// ======================
// 📊 MACD
// ======================
= ta.macd(source, fastLen, slowLen, signalLen)
// ======================
// 📈 FILTRO DE TENDÊNCIA
// ======================
ema = ta.ema(close, emaFilterLen)
trendBuy = close > ema
trendSell = close < ema
// ======================
// 🔀 CRUZAMENTOS
// ======================
buyCross = ta.crossover(macd, signal)
sellCross = ta.crossunder(macd, signal)
// ======================
// ⏱️ DELAY (controle de vela)
// ======================
buySignal = buyCross
sellSignal = sellCross
// ======================
// ✅ CONFIRMAÇÃO DE CANDLE
// ======================
candleBuy = close > open
candleSell = close < open
// ======================
// 🎯 SINAL FINAL (FILTROS)
// ======================
finalBuy = buySignal and trendBuy and candleBuy
finalSell = sellSignal and trendSell and candleSell
// ======================
// 📍 PLOTAGEM
// ======================
plotshape(finalBuy,
title="Compra",
style=shape.triangleup,
location=location.belowbar,
color=color.lime,
size=size.small,
text="BUY")
plotshape(finalSell,
title="Venda",
style=shape.triangledown,
location=location.abovebar,
color=color.red,
size=size.small,
text="SELL")
// ======================
// 📉 EMA NO GRÁFICO
// ======================
plot(ema, "EMA 200", color=color.orange)
// ======================
// 🔔 ALERTAS
// ======================
alertcondition(finalBuy, "Compra", "Sinal de COMPRA confirmado")
alertcondition(finalSell, "Venda", "Sinal de VENDA confirmado" 指标

指标

指标

SIL Momentum & Participation EngineThe **SIL Momentum & Participation Engine** is an oscillator designed to answer three questions:
1. Is there directional force?
2. Is volume participating in the move?
3. Is the price movement efficient?
It does not generate entries, BUY/SELL signals, stop-losses, or targets.
### MOM — Momentum
The thick main line combines three speeds of the Elder Force Index:
- Fast EFI reacts quickly.
- Medium EFI stabilizes the reading.
- Slow EFI measures persistent force.
Interpretation:
- Above the neutral zone: bullish force.
- Below the neutral zone: bearish force.
- Inside the neutral zone: insufficient or undefined force.
- Rising: positive acceleration.
- Falling: negative acceleration.
Its color also reflects movement efficiency:
- Bright green/red: efficient directional movement.
- Faded green/red: direction exists, but efficiency is weak.
- Grey: neutral momentum.
### PART — Participation
The thinner line is derived from a transformed Accumulation/Distribution calculation.
It indicates whether volume participation supports the movement:
- Positive: bullish participation.
- Negative: bearish participation.
- Near zero: weak or balanced participation.
With confirmation coloring enabled:
- Cyan: participation confirms bullish momentum.
- Orange: participation confirms bearish momentum.
- Grey: Momentum and Participation disagree or are in transition.
### M-AVG — Momentum Average
The thin white line is a short moving average of Momentum.
It does not determine direction. It helps reveal acceleration and deceleration:
- MOM moving away from M-AVG: force is accelerating.
- MOM approaching M-AVG: force is weakening.
- MOM crossing M-AVG: relative velocity has changed, not necessarily the trend.
### KER — Efficiency
The Kaufman Efficiency Ratio measures how directly price is moving.
- High KER: clean and efficient movement.
- Medium KER: usable movement with some noise.
- Low KER: substantial internal movement with little net progress.
KER does not define direction. By default, it changes the color or transparency of the MOM line. Its separate diagnostic line is optional.
### `+σ` and `−σ` Bands
These are statistical bands calculated around Momentum:
- MOM inside the bands: normal recent behavior.
- MOM approaching a band: relatively strong momentum.
- MOM crossing a band: unusual expansion.
- Narrow bands: compression.
- Wide bands: increased momentum variability.
Crossing a band is not automatically a reversal signal. It may indicate strong continuation.
### Energy Field
The green or red shaded area between Momentum and its statistical average represents directional acceleration:
- Stronger shading: Momentum is gaining energy.
- Fading shading: Momentum is decelerating.
- Green: bullish energy.
- Red: bearish energy.
## Typical readings
**Healthy bullish continuation**
```text
MOM positive and rising
PART positive
High KER
Green energy increasing
```
**Healthy bearish continuation**
```text
MOM negative and falling
PART negative
High KER
Red energy increasing
```
**Movement without participation**
```text
MOM directional
PART neutral or opposite
```
Price is moving, but volume participation does not confirm it.
**Loss of force**
```text
MOM remains directional
MOM approaches M-AVG
Energy fades
KER begins to decline
```
The movement continues, but it is becoming less efficient.
**Choppy conditions**
```text
MOM repeatedly crosses zero
PART changes direction frequently
Low KER
Weak energy
```
The central idea is:
> `MOM` shows force, `PART` shows whether volume participates, and `KER` shows whether the movement is efficient.
It is a context and confirmation tool, not an entry system. 指标
