Volume by PriceDescription:
This Pine Script v6 indicator displays a chart that multiplies the volume by the closing price for each bar. It's often referred to as "monetary volume" or "traded value." This allows for the visualization of monetary activity on a price chart.
Technical Insights:
- Calculation: The indicator simply multiplies the volume of each bar (volume) by its closing price (close).
- Display: The result is plotted as a line in a separate pane below the main price chart. The height of the line at each point represents the product of the volume and the closing price at that time.
- Interpretation:
- Spikes in Volume * Price: Indicate significant monetary activity. This can signal strong interest in the asset at that price level.
- Low Volume * Price: Suggests a lack of interest or conviction.
- Divergences: If volume * price increases while the price decreases (or vice versa), it may signal a weakening of the current trend.
How to Use:
1. Identify Areas of Interest: Look for significant spikes in the volume * price chart. These areas may coincide with key support or resistance levels.
2. Confirm Trends: A price movement upwards (or downwards) accompanied by an increase in volume * price strengthens the validity of that trend.
3. Spot Divergences: Pay attention to situations where the volume * price does not confirm the price movement. This could indicate a potential reversal.
4. Combine with Other Indicators: Use this indicator in conjunction with other technical analysis tools (moving averages, RSI, MACD, etc.) for a more comprehensive view.
Potential Applications:
- Breakout Confirmation: A breakout of a price level (support or resistance) accompanied by increased volume * price is a stronger signal than a breakout with low volume.
- Identifying High Activity Zones: This indicator can help pinpoint price levels where a lot of trading has occurred, potentially indicating future support/resistance areas.
- Analyzing Market Participation: High volume * price suggests strong participation, while low volume * price indicates a lack of interest.
- Detecting Divergences: Divergences between volume * price and price can signal potential trend reversals.
- Momentum Trading: Combined with other momentum indicators, it can help identify entry and exit points.
Important Notes:
- This indicator is based on the closing price. It does not take into account the highs and lows of each bar.
- Volume * price is an analysis tool, not a standalone trading system. It should be used in conjunction with other indicators and strategies.
- The interpretation of volume * price may vary depending on the market and the time frame being analyzed.
Feel free to adapt this description to your own style and needs. You can also add concrete examples or screenshots to illustrate its use.
Indicators and strategies
ADR% Extension Levels from SMA 50I created this indicator inspired by RealSimpleAriel (a swing trader I recommend following on X) who does not buy stocks extended beyond 4 ADR% from the 50 SMA and uses extensions from the 50 SMA at 7-8-9-10-11-12-13 ADR% to take profits with a 20% position trimming.
RealSimpleAriel's strategy (as I understood it):
-> Focuses on leading stocks from leading groups and industries, i.e., those that have grown the most in the last 1-3-6 months (see on Finviz groups and then select sector-industry).
-> Targets stocks with the best technical setup for a breakout, above the 200 SMA in a bear market and above both the 50 SMA and 200 SMA in a bull market, selecting those with growing Earnings and Sales.
-> Buys stocks on breakout with a stop loss set at the day's low of the breakout and ensures they are not extended beyond 4 ADR% from the 50 SMA.
-> 3-5 day momentum burst: After a breakout, takes profits by selling 1/2 or 1/3 of the position after a 3-5 day upward move.
-> 20% trimming on extension from the 50 SMA: At 7 ADR% (ADR% calculated over 20 days) extension from the 50 SMA, takes profits by selling 20% of the remaining position. Continues to trim 20% of the remaining position based on the stock price extension from the 50 SMA, calculated using the 20-period ADR%, thus trimming 20% at 8-9-10-11 ADR% extension from the 50 SMA. Upon reaching 12-13 ADR% extension from the 50 SMA, considers the stock overextended, closes the remaining position, and evaluates a short.
-> Trailing stop with ascending SMA: Uses a chosen SMA (10, 20, or 50) as the definitive stop loss for the position, depending on the stock's movement speed (preferring larger SMAs for slower-moving stocks or for long-term theses). If the stock's closing price falls below the chosen SMA, the entire position is closed.
In summary:
-->Buy a breakout using the day's low of the breakout as the stop loss (this stop loss is the most critical).
--> Do not buy stocks extended beyond 4 ADR% from the 50 SMA.
--> Sell 1/2 or 1/3 of the position after 3-5 days of upward movement.
--> Trim 20% of the position at each 7-8-9-10-11-12-13 ADR% extension from the 50 SMA.
--> Close the entire position if the breakout fails and the day's low of the breakout is reached.
--> Close the entire position if the price, during the rise, falls below a chosen SMA (10, 20, or 50, depending on your preference).
--> Definitively close the position if it reaches 12-13 ADR% extension from the 50 SMA.
I used Grok from X to create this indicator. I am not a programmer, but based on the ADR% I use, it works.
Below is Grok from X's description of the indicator:
Script Description
The script is a custom indicator for TradingView that displays extension levels based on ADR% relative to the 50-period Simple Moving Average (SMA). Below is a detailed description of its features, structure, and behavior:
1. Purpose of the Indicator
Name: "ADR% Extension Levels from SMA 50".
Objective: Draw horizontal blue lines above and below the 50-period SMA, corresponding to specific ADR% multiples (4, 7, 8, 9, 10, 11, 12, 13). These levels represent potential price extension zones based on the average daily percentage volatility.
Overlay: The indicator is overlaid on the price chart (overlay=true), so the lines and SMA appear directly on the price graph.
2. Configurable Inputs
The indicator allows users to customize parameters through TradingView settings:
SMA Length (smaLength):
Default: 50 periods.
Description: Specifies the number of periods for calculating the Simple Moving Average (SMA). The 50-period SMA serves as the reference point for extension levels.
Constraint: Minimum 1 period.
ADR% Length (adrLength):
Default: 20 periods.
Description: Specifies the number of days to calculate the moving average of the daily high/low ratio, used to determine ADR%.
Constraint: Minimum 1 period.
Scale Factor (scaleFactor):
Default: 1.0.
Description: An optional multiplier to adjust the distance of extension levels from the SMA. Useful if levels are too close or too far due to an overly small or large ADR%.
Constraint: Minimum 0.1, increments of 0.1.
Tooltip: "Adjust if levels are too close or far from SMA".
3. Main Calculations
50-period SMA:
Calculated with ta.sma(close, smaLength) using the closing price (close).
Serves as the central line around which extension levels are drawn.
ADR% (Average Daily Range Percentage):
Formula: 100 * (ta.sma(dhigh / dlow, adrLength) - 1).
Details:
dhigh and dlow are the daily high and low prices, obtained via request.security(syminfo.tickerid, "D", high/low) to ensure data is daily-based, regardless of the chart's timeframe.
The dhigh / dlow ratio represents the daily percentage change.
The simple moving average (ta.sma) of this ratio over 20 days (adrLength) is subtracted by 1 and multiplied by 100 to obtain ADR% as a percentage.
The result is multiplied by scaleFactor for manual adjustments.
Extension Levels:
Defined as ADR% multiples: 4, 7, 8, 9, 10, 11, 12, 13.
Stored in an array (levels) for easy iteration.
For each level, prices above and below the SMA are calculated as:
Above: sma50 * (1 + (level * adrPercent / 100))
Below: sma50 * (1 - (level * adrPercent / 100))
These represent price levels corresponding to a percentage change from the SMA equal to level * ADR%.
4. Visualization
Horizontal Blue Lines:
For each level (4, 7, 8, 9, 10, 11, 12, 13 ADR%), two lines are drawn:
One above the SMA (e.g., +4 ADR%).
One below the SMA (e.g., -4 ADR%).
Color: Blue (color.blue).
Style: Solid (style=line.style_solid).
Management:
Each level has dedicated variables for upper and lower lines (e.g., upperLine1, lowerLine1 for 4 ADR%).
Previous lines are deleted with line.delete before drawing new ones to avoid overlaps.
Lines are updated at each bar with line.new(bar_index , level, bar_index, level), covering the range from the previous bar to the current one.
Labels:
Displayed only on the last bar (barstate.islast) to avoid clutter.
For each level, two labels:
Above: E.g., "4 ADR%", positioned above the upper line (style=label.style_label_down).
Below: E.g., "-4 ADR%", positioned below the lower line (style=label.style_label_up).
Color: Blue background, white text.
50-period SMA:
Drawn as a gray line (color.gray) for visual reference.
Diagnostics:
ADR% Plot: ADR% is plotted in the status line (orange, histogram style) to verify the value.
ADR% Label: A label on the last bar near the SMA shows the exact ADR% value (e.g., "ADR%: 2.34%"), with a gray background and white text.
5. Behavior
Dynamic Updating:
Lines update with each new bar to reflect new SMA 50 and ADR% values.
Since ADR% uses daily data ("D"), it remains constant within the same day but changes day-to-day.
Visibility Across All Bars:
Lines are drawn on every bar, not just the last one, ensuring visibility on historical data as well.
Adaptability:
The scaleFactor allows level adjustments if ADR% is too small (e.g., for low-volatility symbols) or too large (e.g., for cryptocurrencies).
Compatibility:
Works on any timeframe since ADR% is calculated from daily data.
Suitable for symbols with varying volatility (e.g., stocks, forex, cryptocurrencies).
6. Intended Use
Technical Analysis: Extension levels represent significant price zones based on average daily volatility. They can be used to:
Identify potential price targets (e.g., take profit at +7 ADR%).
Assess support/resistance zones (e.g., -4 ADR% as support).
Measure price extension relative to the 50 SMA.
Trading: Useful for strategies based on breakouts or mean reversion, where ADR% levels indicate reversal or continuation points.
Debugging: Labels and ADR% plot help verify that values align with the symbol’s volatility.
7. Limitations
Dependence on Daily Data: ADR% is based on daily dhigh/dlow, so it may not reflect intraday volatility on short timeframes (e.g., 1 minute).
Extreme ADR% Values: For low-volatility symbols (e.g., bonds) or high-volatility symbols (e.g., meme stocks), ADR% may require adjustments via scaleFactor.
Graphical Load: Drawing 16 lines (8 upper, 8 lower) on every bar may slow the chart for very long historical periods, though line management is optimized.
ADR% Formula: The formula 100 * (sma(dhigh/dlow, Length) - 1) may produce different values compared to other ADR% definitions (e.g., (high - low) / close * 100), so users should be aware of the context.
8. Visual Example
On a chart of a stock like TSLA (daily timeframe):
The 50 SMA is a gray line tracking the average trend.
Assuming an ADR% of 3%:
At +4 ADR% (12%), a blue line appears at sma50 * 1.12.
At -4 ADR% (-12%), a blue line appears at sma50 * 0.88.
Other lines appear at ±7, ±8, ±9, ±10, ±11, ±12, ±13 ADR%.
On the last bar, labels show "4 ADR%", "-4 ADR%", etc., and a gray label shows "ADR%: 3.00%".
ADR% is visible in the status line as an orange histogram.
9. Code: Technical Structure
Language: Pine Script @version=5.
Inputs: Three configurable parameters (smaLength, adrLength, scaleFactor).
Calculations:
SMA: ta.sma(close, smaLength).
ADR%: 100 * (ta.sma(dhigh / dlow, adrLength) - 1) * scaleFactor.
Levels: sma50 * (1 ± (level * adrPercent / 100)).
Graphics:
Lines: Created with line.new, deleted with line.delete to avoid overlaps.
Labels: Created with label.new only on the last bar.
Plots: plot(sma50) for the SMA, plot(adrPercent) for debugging.
Optimization: Uses dedicated variables for each line (e.g., upperLine1, lowerLine1) for clear management and to respect TradingView’s graphical object limits.
10. Possible Improvements
Option to show lines only on the last bar: Would reduce visual clutter.
Customizable line styles: Allow users to choose color or style (e.g., dashed).
Alert for anomalous ADR%: A message if ADR% is too small or large.
Dynamic levels: Allow users to specify ADR% multiples via input.
Optimization for short timeframes: Adapt ADR% for intraday timeframes.
Conclusion
The script creates a visual indicator that helps traders identify price extension levels based on daily volatility (ADR%) relative to the 50 SMA. It is robust, configurable, and includes debugging tools (ADR% plot and labels) to verify values. The ADR% formula based on dhigh/dlow
Anchored Darvas Box## ANCHORED DARVAS BOX
---
### OVERVIEW
**Anchored Darvas Box** lets you drop a single timestamp on your chart and build a Darvas-style consolidation zone forward from that exact candle. The indicator freezes the first user-defined number of bars to establish the range, verifies that price respects that range for another user-defined number of bars, then waits for the first decisive breakout. The resulting rectangle captures every tick of the accumulation phase and the exact moment of expansion—no manual drawing, complete timestamp precision.
---
### HISTORICAL BACKGROUND
Nicolas Darvas’s 1950s box theory tracked institutional accumulation by hand-drawing rectangles around tight price ranges. A trade was triggered only when price escaped the rectangle.
The anchored version preserves Darvas’s logic but pins the entire sequence to a user-chosen candle: perfect for analysing a market open, an earnings release, FOMC minute, or any other catalytic bar.
---
### ALGORITHM DETAIL
1. **ANCHOR BAR**
*You provide a timestamp via the settings panel.* The script waits until the chart reaches that bar and records its index as **startBar**.
2. **RANGE DEFINITION — BARS 1-7**
• `rangeHigh` = highest high of bars 1-7 plus optional tolerance.
• `rangeLow` = lowest low of bars 1-7 minus optional tolerance.
3. **RANGE VALIDATION — BARS 8-14**
• Price must stay inside ` `.
• Any violation aborts the test; no box is created.
4. **ARMED STATE**
• If bars 8-14 hold the range, two live guide-lines appear:
– **Green** at `rangeHigh`
– **Red** at `rangeLow`
• The script is now “armed,” waiting indefinitely for the first true breakout.
5. **BREAKOUT & BOX CREATION**
• **Up breakout** =`high > rangeHigh` → rectangle drawn in **green**.
• **Down breakout**=`low < rangeLow` → rectangle drawn in **red**.
• Box extends from **startBar** to the breakout bar and never updates again.
• Optional labels print the dollar and percentage height of the box at its left edge.
6. **OPTIONAL COOLDOWN**
• After the box is painted the script can stay silent for a user-defined number of bars, letting you study the fallout without another range immediately arming on top of it.
---
### INPUT PARAMETERS
• **ANCHOR TIME** – Precise yyyy-mm-dd HH:MM:SS that seeds the sequence.
• **BARS TO DEFINE RANGE** – Default 7; affects both definition and validation windows.
• **OPTIONAL TOLERANCE** – Absolute price buffer to ignore micro-wicks.
• **COOLDOWN BARS AFTER BREAKOUT** – Pause length before the indicator is allowed to re-anchor (set to zero to disable).
• **SHOW BOX DISTANCE LABELS** – Toggle to print Δ\$ and Δ% on every completed box.
---
### USER WORKFLOW
1. Add the indicator, open settings, and set **ANCHOR TIME** to the candle you care about (e.g., “2025-04-23 09:30:00” for NYSE open).
2. Watch live as the script:
– Paints the seven-bar range.
– Draws validation lines.
– Locks in the box on breakout.
3. Use the box boundaries as structural stops, targets, or context for further trades.
---
### PRACTICAL APPLICATIONS
• **OPENING RANGE BREAKOUTS** – Anchor at the first second of the session; capture the initial 7-bar range and trade the first clean break.
• **EVENT STUDIES** – Anchor at a news candle to measure immediate post-event volatility.
• **VOLUME PROFILE FUSION** – Combine the anchored box with VPVR to see if the breakout occurs at a high-volume node or a low-liquidity pocket.
• **RISK DISCIPLINE** – Stop-loss can sit just inside the opposite edge of the anchored range, enforcing objective risk.
---
### ADVANCED CUSTOMISATION IDEAS
• **MULTIPLE ANCHORS** – Clone the indicator and anchor several boxes (e.g., London open, New York open).
• **DYNAMIC WINDOW** – Switch the 7-bar fixed length to a volatility-scaled length (ATR percentile).
• **STRATEGY WRAPPER** – Turn the indicator into a `strategy{}` script and back-test anchored boxes on decades of data.
---
### FINAL THOUGHTS
Anchored Darvas Boxes give you Darvas’s timeless range-break methodology anchored to any candle of interest—perfect for dissecting openings, economic releases, or your own bespoke “important” bars with laboratory precision.
Gold Bollinger Bands Strategy [1H]Bollinger Bands in TradingView. This strategy enters:
Long when the price closes below the lower Bollinger Band (suggesting oversold).
Short when the price closes above the upper Bollinger Band (suggesting overbought).
It exits when the price returns to the middle band.
iLoggerLibrary "iLogger"
Logger Library based on types and methods.
method init(this)
init will initialize logger table and log stream array
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method getLogger(level)
Namespace types: series LogLevel
Parameters:
level (series LogLevel)
method setPage(this, pageNumber)
setPage will set current page number of logs to display
Namespace types: Logger
Parameters:
this (Logger) : Logger object
pageNumber (int) : - Page number of logs to display
Returns: void
method nextPage(this)
nextPage will incremement page number to display on screen
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method previousPage(this)
previousPage will decrement page number to display on screen
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method log(this, level, message)
log will record message to be logged and repopulate logs displayed
Namespace types: Logger
Parameters:
this (Logger) : Logger object
level (series LogLevel) : logging level. Can be `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, `CRITICAL`. Logs only if log level is higher than Loggers minimul log level set
message (string) : log message to be recorded
Returns: void
method trace(this, message)
trace will record message to be logged with level 'TRACE'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method debug(this, message)
debug will record message to be logged with level 'DEBUG'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method info(this, message)
info will record message to be logged with level 'INFO'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method warn(this, message)
warn will record message to be logged with level 'WARN'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method error(this, message)
error will record message to be logged with level 'ERROR'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method fatal(this, message)
fatal will record message to be logged with level 'FATAL'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
Log
Log Object holding log entry
Fields:
level (series LogLevel) : Logging level
message (series string) : Logging message
bartime (series int) : bar time at which log is recorded
bar (series int) : bar index at which log is recorded
Logger
Logger object which can be used for logging purposes
Fields:
position (series string) : position on chart where logs can be shown. Valid values are table position values. Make sure that the script does not have any other table at this position
pageSize (series int) : size of each page of logs which can be shown on UI. Default is 10
maxEntries (series int) : max size logs to be stored
pageNumber (series int) : current page number of logs to display on chart
textSize (series string) : size of text on debug table to be shown. default is size.small. Other options - size.tiny, size.normal, size.large, size.huge, size.auto
textColor (series color) : text color of debug messages. Default is color.white
showOnlyLast (series bool) : If set, shows the logs derived only from last bar. Default is true
minimumLevel (series LogLevel) : Minimum level of logs to be considered for logging.
realTime (series bool) : Print logs based on real time bar. This should be set to true for debugging indicators and false for debugging strategies.
debugTable (series table) : table containing debug messages. It will be set in init method. Hence no need to pass this in constructor
logs (array) : Array of Log containing logging messages. It will be set in init method. Hence no need to pass this in constructor
Top & Bottom Search ~ Experimental Top & Bottom Search ~ Experimental
This script is designed to identify potential market reversal zones using a combination of classic candlestick patterns (Piercing Line & Dark Cloud Cover) and trend confirmation tools like EMA positioning and optional RSI filters.
Core Features:
Detects Piercing Line and Dark Cloud Cover patterns.
Optional EMA filter to confirm bullish or bearish alignment.
Optional RSI filter to confirm oversold or overbought conditions.
Visual plot of the selected EMA (customizable thickness & color).
Clean and toggleable inputs for user flexibility.
Customizable Settings:
Enable/disable EMA confirmation.
Enable/disable RSI confirmation.
Choose whether to display the EMA on the chart.
Adjust EMA period, RSI thresholds, and candle visuals.
Note:
This is an experimental tool, best used as a supplement to your existing analysis. Not every signal is a guaranteed reversal—this script aims to highlight potential turning points that deserve closer attention.
I HIGHLY recommend using this in coherence with many other indicators in a robust system of indicators that meet your desired time frames and signal periods.
NOTES*
1.) An alternative way to view this indicator is as a "Piercing & Dark Cloud Candle Indicator/Strategy w/ EMA & RSI Logic - Either EMA or RSI Logics are Optional."
2.) When toggling between the RSI and EMA Filters, the default is set to RSI filter applied, however you cannot have both RSI signals and EMA filters on the chart at the same time, it can only be one or the other. So be aware that if you have EMA filter ON and select RSI filter, it will only be displaying the RSI filtered outputs. The ONLY WAY to see the EMA filtered outputs is to only have the EMA filter box checked and NOT the RIS filter box.
3.) Clarity: The display image above for the indicator is with only the RSI filter setting on. EMA filter is an option as well that I recommend considering when conducting trades/analysis.
Session VWAPBeautiful Session VWAP with line breaks and a trend fill. Couldn't find any that provide this level of anchor customizability/clean session breaks so I made my own. Can go up to +/-3σ by default, but you can also put in a custom multiplier set.
Highlight Large Candles// 🔍 Highlight Large Candles Indicator
// 🇬🇧 This indicator highlights candles where the full candle size (high - low) exceeds a user-defined percentage of the opening price (e.g., 1%).
// 🟠 When detected, the candle is colored orange and a label appears showing:
// - Body size
// - Upper wick size
// - Lower wick size
// - Open → Close distance (in price and %)
//
// 🔧 The minimum candle size threshold can be customized in the Settings.
// Ideal for identifying strong momentum or breakout candles.
MA 7/25/99 tool using 3 MAs: 7, 25, and 99. Candle colors highlight bullish and bearish conditions relative to MA7. Designed for crypto traders looking for clean and fast setups."
Impulse FinderPine Script v6, Copyright © 2025, Einhornhunter
The Impulse Finder uses the Elder Impulse System to color candles based on EMA and MACD, identifying bullish (green), bearish (red), or neutral (blue) market conditions. It overlays candles without transparency and offers an option to display only the candle body. Detects cross points for trend changes.
Inputs: MA Period (13), MACD Fast (12), Slow (26), Signal (9), Display Body Only (false).
Auto Trend Channel + Buy/Sell AlertsThis indicator automatically detects trend channels using a linear regression line, and dynamically plots upper and lower channel boundaries based on standard deviation. It helps traders identify potential Buy and Sell zones with clear visual signals and customizable alerts.
💡 How It Works:
🧠 Regression-Based Channel: Calculates the central trend line using ta.linreg() over a user-defined length.
📏 Dynamic Boundaries: Upper and lower channel lines are offset by a multiplier of the standard deviation for precision volatility tracking.
✅ Buy Signals: Triggered when price crosses above the lower boundary — potential bounce entry.
❌ Sell Signals: Triggered when price crosses below the upper boundary — potential reversal exit.
🔔 Alerts Enabled: Get real-time alerts when price touches the channel lines.
SPY 0DTE Scalper - Auto AlertsTimeframes:
Main chart: 1-minute (for precision entries)
Confirmations: 3-minute or 5-minute (to avoid fakeouts)
Indicators I Use:
VWAP – Orange line → Institutional fair value
EMA 9 – Green line → Short-term momentum
EMA 21 – Red line → Trend filter
Custom Pullback Signal Script – Marks buy/sell/pullback signals with labels (triangles)
Above VWAP = Bullish Bias
Below VWAP = Bearish Bias
Institutions treat this as the "fair price" — so I do too.
EMA 9 (Green):
If price hugs or bounces off EMA 9 = 🔥 strong continuation move.
I use this as my guide for momentum.
EMA 21 (Red):
Great for trend confirmation.
Above EMA 21 = Trend building to the upside.
Below EMA 21 = Weakness or possible reversal.
💸 Step 3: How I Read the Signals
✅ BUY Signal:
Price breaks above VWAP with volume 1.5x+ average
Candle must close strong (not a wickfest)
EMA 9 becomes my trailing stop for the move
🚨 SELL Signal:
Price breaks below VWAP with strong volume
Clean body close below → momentum shift to the downside
EMA 9 again = trailing resistance guide
🔵 Pullback Long (Blue Triangle Under Candle):
Bullish continuation entry
Price pulls back to EMA 9 or 21, but stays above VWAP
Low-risk re-entry after a breakout
🟣 Pullback Short (Purple Triangle Above Candle):
Bearish continuation entry
Price retraces into EMA 9, but stays below VWAP & EMA 21
Ideal for catching second legs after breakdowns
reversalchartpatternsLibrary "reversalchartpatterns"
User Defined Types and Methods for reversal chart patterns - Double Top, Double Bottom, Triple Top, Triple Bottom, Cup and Handle, Inverted Cup and Handle, Head and Shoulders, Inverse Head and Shoulders
method delete(this)
Deletes the drawing components of ReversalChartPatternDrawing object
Namespace types: ReversalChartPatternDrawing
Parameters:
this (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object
Returns: current ReversalChartPatternDrawing object
method delete(this)
Deletes the drawing components of ReversalChartPattern object. In turn calls the delete of ReversalChartPatternDrawing
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: current ReversalChartPattern object
method lpush(this, obj, limit, deleteOld)
Array push with limited number of items in the array. Old items are deleted when new one comes and exceeds the limit
Namespace types: array
Parameters:
this (array) : array object
obj (ReversalChartPattern) : ReversalChartPattern object which need to be pushed to the array
limit (int) : max items on the array. Default is 10
deleteOld (bool) : If set to true, also deletes the drawing objects. If not, the drawing objects are kept but the pattern object is removed from array. Default is false.
Returns: current ReversalChartPattern object
method draw(this)
Draws the components of ReversalChartPatternDrawing
Namespace types: ReversalChartPatternDrawing
Parameters:
this (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object
Returns: current ReversalChartPatternDrawing object
method draw(this)
Draws the components of ReversalChartPatternDrawing within the ReversalChartPattern object.
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: current ReversalChartPattern object
method scan(zigzag, patterns, errorPercent, shoulderStart, shoulderEnd, allowedPatterns, offset)
Scans zigzag for ReversalChartPattern occurences
Namespace types: zg.Zigzag
Parameters:
zigzag (Zigzag type from Trendoscope/Zigzag/11) : ZigzagTypes.Zigzag object having array of zigzag pivots and other information on each pivots
patterns (array) : Existing patterns array. Used for validating duplicates
errorPercent (float) : Error threshold for considering ratios. Default is 13
shoulderStart (float) : Starting range of shoulder ratio. Used for identifying shoulders, handles and necklines
shoulderEnd (float) : Ending range of shoulder ratio. Used for identifying shoulders, handles and necklines
allowedPatterns (array) : array of int containing allowed pattern types
offset (int) : Offset of zigzag to consider only confirmed pivots
Returns: int pattern type
method createPattern(zigzag, patternType, patternColor, properties, offset)
Create Pattern from ZigzagTypes.Zigzag object
Namespace types: zg.Zigzag
Parameters:
zigzag (Zigzag type from Trendoscope/Zigzag/11) : ZigzagTypes.Zigzag object having array of zigzag pivots and other information on each pivots
patternType (int) : Type of pattern being created. 1 - Double Tap, 2 - Triple Tap, 3 - Cup and Handle, 4 - Head and Shoulders
patternColor (color) : Color in which the patterns are drawn
properties (ReversalChartTradeProperties)
offset (int)
Returns: ReversalChartPattern object created
method getName(this)
get pattern name of ReversalChartPattern object
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: string name of the pattern
method getDescription(this)
get consolidated description of ReversalChartPattern object
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: string consolidated description
method init(this)
initializes the ReversalChartPattern object and creates sub object types
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: ReversalChartPattern current object
ReversalChartPatternDrawing
Type which holds the drawing objects for Reversal Chart Pattern Types
Fields:
patternLines (array type from Trendoscope/Drawing/2) : array of Line objects representing pattern
entry (Line type from Trendoscope/Drawing/2) : Entry price Line
targets (array type from Trendoscope/Drawing/2)
stop (Line type from Trendoscope/Drawing/2) : Stop price Line
patternLabel (Label type from Trendoscope/Drawing/2)
ReversalChartTradeProperties
Trade properties of ReversalChartPattern
Fields:
riskAdjustment (series float) : Risk Adjustment for calculation of stop
useFixedTarget (series bool) : Boolean flag saying use fixed target type wherever possible. If fixed target type is not possible, then risk reward/fib ratios are used for calculation of targets
variableTargetType (series int) : Integer value which defines whether to use fib based targets or risk reward based targets. 1 - Risk Reward, 2 - Fib Ratios
variableTargetRatios (array) : Risk reward or Fib Ratios to be used for calculation of targets when fixed target is not possible or not enabled
entryPivotForWm (series int) : which Pivot should be considered as entry point for WM patterns. 0 refers to the latest breakout pivot where as 5 refers to initial pivot of the pattern
ReversalChartPattern
Reversal Chart Pattern master type which holds the pattern components, drawings and trade details
Fields:
pivots (array type from Trendoscope/Zigzag/11) : Array of Zigzag Pivots forming the pattern
patternType (series int) : Defines the main type of pattern 1 - Double Tap, 1 - Triple Tap, 3 - Cup and Handle, 4 - Head and Shoulders, 5- W/M Patterns, 6 - Full Trend, 7 - Half Trend
patternColor (series color) : Color in which the pattern will be drawn on chart
properties (ReversalChartTradeProperties)
drawing (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object which holds the drawing components
trade (Trade type from Trendoscope/TradeTracker/1) : TradeTracker.Trade object holding trade components
网格风控信号//@version=5
indicator("网格风控信号", overlay=true)
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)
macd = ta.ema(close, 12) - ta.ema(close, 26)
signal = ta.ema(macd, 9)
trendUp = emaFast > emaSlow and macd > signal
trendDown = emaFast < emaSlow and macd < signal
alertcondition(trendUp, title="暂停卖出", message='{"action":"disable"}')
alertcondition(trendDown, title="暂停买入", message='{"action":"disable_buy"}')
NR4/NR7 + Refined Trend FilterThis version allows the candle to pull toward the 10 EMA without disqualifying the trend—but keeps things on a bullish leash.
Setup Score Check Final AlertTotal Score
Significance
0–6 points
No trade – "Instinct instead of system"
7–12 points
C-Setup – only small test size
13–17 points
B-Setup – entry with caution
18–21 points
A-Setup – fully feasible
RSI-WMA + EMA Trend Filter | SL/TP DynamicA Simple Edge in Trending Markets
Base on RSI & WMA (RSI) Cross with EMA for trend filter.
Session-Based +/-% LinesSimple Script Just to Draw Lines Above 0.09 and Below 0.09 % based on Close Price
cktraderpro LSMA BlastLSMA Multi-Timeframe Indicator
The LSMA Multi-Timeframe Indicator is a powerful tool designed to enhance trend analysis by incorporating Least Squares Moving Average (LSMA) calculations across multiple timeframes. This indicator displays LSMA values from the 1-minute, 5-minute, 15-minute, and 1-hour charts, allowing traders to gain deeper insight into the overall trend structure and potential areas of support or resistance.
By visualizing LSMA across different timeframes, traders can:
✅ Identify Key Support & Resistance – Higher timeframe LSMA levels often act as strong barriers where price reacts.
✅ Enhance Trend Confirmation – A confluence of LSMAs pointing in the same direction strengthens confidence in a trend.
✅ Spot Reversals & Trend Shifts Early – Watching lower timeframe LSMAs in relation to higher ones can signal potential shifts before they fully develop.
This indicator is ideal for traders looking to align short-term entries with longer-term trend dynamics, providing an edge in both intraday and swing trading strategies.
Swing Trade EMA StrategyJust a good old EMA5 cross up/down EMA15 system ; great with EMA200 Trend Filter. Simple as that.
BetterVolumeAvgEste Script esta destinado a mostrar las barras de volume and un promedio de venta y compra de precio en cada vela. Basicamente este tambien contiene una media para poder ver la compra o venta usando este script. Los creditos son para el Programador @sonnyparlin solo que es una version en los traders de habla hispana
This script is intended to display volume bars and an average of the buy and sell price for each candle. It also basically contains an average so you can see the buy or sell using this script. Credit goes to programmer @sonnyparlin (Thank you Sir), but this is a version for Spanish-speaking traders.
.
EMA Trend Pro: Dynamic Clouds & ColorsEMA Trend Pro is your ultimate trend companion, built for traders who want clarity, precision, and confidence in their entries.
This script fuses dynamic EMA cloud zones with breakout and pullback signals — giving you real-time insights into market structure and momentum. Whether you're trading crypto, forex, stocks, or futures, EMA Trend Pro adapts to your style.
🔧 Key Features:
✅ EMA Stack Clouds with Folding Sensitivity (9/21/48/200)
✅ Bullish / Bearish trend labels with real-time dashboard
✅ Volume strength analysis (High, Normal, Low)
✅ Breakout signal alerts (momentum-based)
✅ Pullback signal alerts (trend resumption)
✅ Fully customizable: EMA lengths, signal visibility, cloud opacity
✅ Works across all assets and timeframes
🛠️ Designed for scalping, swing trading, and intraday setups.
🔔 Built-in alerts make automation seamless — no guesswork.
💡 Usage Tips:
Use clouds and trend labels to identify structure and bias
Trade breakouts when EMAs align and volume confirms
Look for pullbacks into the EMA zone and enter on resumption
📅 Market Hours Filter: Keeps signals relevant during core trading hours (9:30 AM–4 PM ET).
👤 Developed by @glapougbaegarmondeh
🧠 Version 1.0 | 📆 Released: April 24, 2025