ATR Support LineOverview
ATR Support Line is a higher-timeframe-aware overlay that builds a single dynamic support line by anchoring a smoothed price baseline and offsetting it with an Average True Range (ATR) multiple. It is designed to track constructive trends while adapting to current volatility. The tool can render using higher-timeframe (HTF) data with optional closed-bar confirmation to avoid repainting, or live interpolation for more responsive visuals.
Core logic (concepts, not implementation)
• Compute an anchor from price using a selectable moving-average family (SMA / EMA / ZLEMA).
• Measure volatility using ATR and apply a configurable multiplier.
• Form the support line by offsetting the anchor downward by the ATR multiple.
• Timeframe handling: either use the chart timeframe or request an explicit HTF for calculation.
• Rendering modes:
– Closed-bar mode : interpolate inside the previous HTF bar for non-repainting behavior.
– Live mode : interpolate inside the current HTF bar for more timely responsiveness (can visually “breathe” intrabar).
Inputs
• Anchor smoothing: MA type (SMA / EMA / ZLEMA) and anchor length.
• Volatility: ATR length and multiplier.
• Timeframe: optional calculation timeframe (HTF) distinct from the chart timeframe.
• Confirmation: toggle to use closed HTF values (non-repainting) vs. live interpolation.
How to read it
• Price holding above the ATR Support Line indicates constructive conditions; orderly pullbacks toward the line can be normal trend behavior.
• Persistent closes above the line indicate strength; reactions into the line often resolve higher in constructive regimes.
• Persistent closes below the line warn of deterioration; consider reducing risk until price reclaims the level.
• On HTF rendering with closed-bar confirmation, use closes on that HTF for signal confirmation.
• In live mode, treat intrabar pierces as potential noise until confirmed by the close.
Practical use cases
• Trend context: define a trailing “line in the sand” for long-bias frameworks.
• Risk framing: size down or tighten exposure when price loses the support line.
• Confluence: combine with structure (HH/HL vs. LH/LL), volume, or market-wide risk gauges.
• Multi-TF workflow: calculate on HTF for bias, execute on lower TFs for entries/exits.
Best practices
• Align confirmations with the timeframe used for calculation (especially in closed-bar mode).
• Pair with clear invalidation rules (e.g., daily/weekly closes below the line).
• Start with conservative multipliers on noisier assets; adjust ATR length/multiplier to match instrument volatility.
Technical notes
• Non-repainting option : closed-bar HTF mode finalizes values on HTF close; lower-TF plotting uses interpolation only for continuity (no look-ahead).
• Live option : interpolates within the current HTF bar for responsiveness; expect intrabar breathing.
• Works on any time-based chart; results are most interpretable on liquid instruments.
Who it is for
• Traders who want a single, disciplined, volatility-adjusted support line with HTF awareness.
• Systematic users who prefer clear, reproducible rules for trend context and risk boundaries.
Limitations & disclosures
• Closed-source; for educational and analytical use only.
• Not financial advice. Markets involve risk; past performance does not guarantee future results.
Release notes
• Added selectable anchor MA (SMA / EMA / ZLEMA) and explicit HTF calculation with two rendering modes (closed-bar non-repainting vs. live).
• Interpolation refined for smooth visuals while respecting HTF closes in confirmation mode.
Originality & why closed-source
This is not a reimplementation of public open-source scripts. The integration of anchor smoothing choices, volatility offset, HTF calculation, and dual rendering modes (closed-bar non-repainting vs. live interpolation) is designed to maintain trend fidelity with practical control over responsiveness. The interaction of these components is proprietary and the source is closed to protect the implementation.
Integration, not a mashup
ATR Support Line is a single, self-contained framework. It does not merely merge indicators; its components are purpose-built to produce one coherent, volatility-aware, single-line support with a clear reading protocol (hold above = constructive; loss = caution).
Indicator, not a strategy
This publication is an indicator overlay, not a trading strategy. It includes no backtests, position logic, performance claims, or risk assumptions. Use it as analytical context within your own risk management.
Comparison to common tools
Compared to static moving-average baselines or classic volatility bands, ATR Support Line emphasizes (1) a single actionable support level, (2) explicit volatility adjustment via ATR, and (3) HTF-aware rendering with an optional non-repainting confirmation mode.
LINE
VWAP Entry Assistant (v1.0)Description:
Anchored VWAP with a lightweight assistant for VWAP reversion trades.
It shows the distance to VWAP, an estimated hit probability for the current bar, the expected number of bars to reach VWAP, and a recommended entry price.
If the chance of touching VWAP is low, the script suggests an adjusted limit using a fraction of ATR.
The VWAP line is white by default, and a compact summary table appears at the bottom-left.
Educational tool. Not financial advice. Not affiliated with TradingView or any exchange. Always backtest before use.
Event Marking [zidaniee]This is not a technical analysis indicator, but a visual tool designed to mark important global events using vertical lines on your chart.
By placing a single marker at the exact time an event occurred, you can compare how different assets reacted to that global event — before, during, and after it happened.
In the example provided, the marking corresponds to the moment when U.S. President Donald Trump announced a 100% tariff on goods from China, which was immediately reflected in market reactions worldwide.
The indicator includes full customization features for:
• Event label text
• Label size and position
• Line color, style, and width
Enjoy
Daily Vertical LineThis indicator draws vertical lines at a specific time each day, helping you visualize important intraday levels or session opens/closes.
Features:
Customizable time in EST timezone (hour and minute inputs)
Adjustable line color, width, and style (solid, dashed, or dotted)
Automatically draws lines for all historical days
Projects one line into the future for the next occurrence
Works on all intraday timeframes. Future line appears as semi-transparent and dashed to distinguish from historical data.
Current Price (Customizable) by DRtradeCurrent Price Line & Dynamic Label (Fully Customizable)
The ultimate tool for clear, real-time price visualization.
This powerful, lightweight indicator draws a clean horizontal line at the current market price, updating instantly with every price tick. Unlike other current price line scripts, this tool ensures you always see where the price is right now and provides full control over every visual element.
Key Features:
- Real-Time Tracking: The line moves dynamically with price ticks within the current candle, eliminating lag and providing true current market price awareness.
- Line Extension Control: Choose to extend: Left, Right, or Both. Helpful for scalpers and options traders
- Visual Customizations: Color, Style, Size, Width, etc.
- Label Positioning: Left of Candle, Above Candle, or Right of Candle
All customization options are available in the indicator's settings menu.
Ping me with feature reqeusts.
Rsi TrendLines with Breakouts [KoTa]### RSI TrendLines with Breakouts Indicator: Detailed User Guide
The "RSI TrendLines with Breakouts " indicator is a custom Pine Script tool designed for TradingView. It builds on the standard Relative Strength Index (RSI) by adding dynamic trendlines based on RSI pivots (highs and lows) across multiple user-defined periods. These trendlines act as support and resistance levels on the RSI chart, and the indicator detects breakouts when the RSI crosses these lines, generating potential buy (long) or sell (short) signals. It also includes overbought/oversold thresholds and optional breakout labels. Below, I'll provide a detailed explanation in English, covering how to use it, its purpose, advantages and disadvantages, example strategies, and ways to enhance strategies with other indicators.
How to Use the Indicator
- The indicator uses `max_lines_count=500` to handle a large number of lines without performance issues, but on very long charts, you may need to zoom in for clarity.
1. **Customizing Settings**:
The indicator has several input groups for flexibility. Access them via the gear icon next to the indicator's name on the chart.
- **RSI Settings**:
- RSI Length: Default 14. This is the period for calculating the RSI. Shorter lengths (e.g., 7-10) make it more sensitive to recent price changes; longer (e.g., 20+) smooth it out for trends.
- RSI Source: Default is close price. You can change to open, high, low, or other sources like volume-weighted for different assets.
- Overbought Level: Default 70. RSI above this suggests potential overbuying.
- Oversold Level: Default 30. RSI below this suggests potential overselling.
- **Trend Periods**:
- You can enable/disable up to 5 periods (defaults: Period 1=3, Period 2=5, Period 3=10, Period 4=20, Period 5=50). Only enabled periods will draw trendlines.
- Each period detects pivots (highs/lows) in RSI using `ta.pivothigh` and `ta.pivotlow`. Shorter periods (e.g., 3-10) capture short-term trends; longer ones (20-50) show medium-to-long-term momentum.
- Inline checkboxes allow you to toggle display for each (e.g., display_p3=true by default).
- **Color Settings**:
- Resistance/Support Color: Defaults to red for resistance (up-trendlines from RSI highs) and green for support (down-trendlines from RSI lows).
- Labels for breakouts use green for "B" (buy/long) and red for "S" (sell/short).
- **Breakout Settings**:
- Show Prev. Breakouts: If true, displays previous breakout labels (up to "Max Prev. Breakouts Label" +1, default 2+1=3).
- Show Breakouts: Separate toggles for each period (e.g., show_breakouts3). When enabled, dotted extension lines project the trendline forward, and crossovers/crossunders trigger labels like "B3" (breakout above resistance for Period 3) or "S3" (break below support).
- Note: Divergence detection is commented out in the code. If you want to enable it, uncomment the relevant sections (e.g., show_divergence input) and adjust the lookback (default 5 bars) for spotting bullish/bearish divergences between price and RSI.
2. **Interpreting the Visuals**:
- **RSI Plot**: A blue line showing the RSI value (0-100). Horizontal dashed lines at 70 (red, overbought), 30 (green, oversold), and 50 (gray, midline).
- **Trendlines**: Solid lines connecting recent RSI pivots. Green lines (support) connect lows; red lines (resistance) connect highs. Only the most recent line per direction is shown per period to avoid clutter.
- **Breakout Projections**: Dotted lines extend the current trendline forward. When RSI crosses above a red dotted resistance, a "B" label (e.g., "B1") appears above, indicating a potential bullish breakout. Crossing below a green dotted support shows an "S" label below, indicating bearish.
- **Labels**: Current breakouts are bright (green/red); previous ones fade to gray. Use these as signal alerts.
- **Alerts**: The code includes commented-out alert conditions (e.g., for breakouts or RSI crossing levels). Uncomment and set them up in TradingView's alert menu for notifications.
3. **Best Practices**:
- Use on RSI-compatible timeframes (e.g., 1H, 4H, daily) for stocks, forex, or crypto.
- Combine with price chart: Trendlines are on RSI, so check if RSI breakouts align with price action (e.g., breaking a price resistance).
- Test on historical data: Backtest signals using TradingView's replay feature.
- Avoid over-customization initially—start with defaults (Periods 3 and 5 enabled) to understand behavior.
What It Is Used For
This indicator is primarily used for **momentum-based trend analysis and breakout trading on the RSI oscillator**. Traditional RSI identifies overbought/oversold conditions, but this enhances it by drawing dynamic trendlines on RSI itself, treating RSI as a "price-like" chart for trend detection.
- **Key Purposes**:
- **Identifying Momentum Trends**: RSI trendlines show if momentum is strengthening (upward-sloping support) or weakening (downward-sloping resistance), even if price is ranging.
- **Spotting Breakouts**: Detects when RSI breaks its own support/resistance, signaling potential price reversals or continuations. For example, an RSI breakout above resistance in an oversold zone might indicate a bullish price reversal.
- **Multi-Period Analysis**: By using multiple pivot periods, it acts like a multi-timeframe tool within RSI, helping confirm short-term signals with longer-term trends.
- **Signal Generation**: Breakout labels provide entry/exit points, especially in trending markets. It's useful for swing trading, scalping, or confirming trends in larger strategies.
- **Divergence (Optional)**: If enabled, it highlights mismatches between price highs/lows and RSI, which can predict reversals (e.g., bullish divergence: price lower low, RSI higher low).
Overall, it's ideal for traders who rely on oscillators but want more visual structure, like trendline traders applying price concepts to RSI.
Advantages and Disadvantages
**Advantages**:
- **Visual Clarity**: Trendlines make RSI easier to interpret than raw numbers, helping spot support/resistance in momentum without manual drawing.
- **Multi-Period Flexibility**: Multiple periods allow analyzing short- and long-term momentum simultaneously, reducing noise from single-period RSI.
- **Breakout Signals**: Automated detection of breakouts provides timely alerts, with labels and projections for proactive trading. This can improve entry timing in volatile markets.
- **Customization**: Extensive inputs (periods, colors, breakouts) make it adaptable to different assets/timeframes. The stateful management of lines/labels prevents chart clutter.
- **Complementary to Price Action**: Enhances standard RSI by adding trend context, useful for confirming divergences or overbought/oversold trades.
- **Efficiency**: Uses efficient arrays and line management, supporting up to 500 lines for long charts without lagging TradingView.
**Disadvantages**:
- **Lagging Nature**: Based on historical pivots, signals may lag in fast-moving markets, leading to late entries. Shorter periods help but increase whipsaws.
- **False Signals**: In ranging or sideways markets, RSI trendlines can produce frequent false breakouts. It performs better in trending conditions but may underperform without filters.
- **Over-Reliance on RSI**: Ignores volume, fundamentals, or price structure—breakouts might not translate to price moves if momentum decouples from price.
- **Complexity for Beginners**: Multiple periods and settings can overwhelm new users; misconfiguration (e.g., too many periods) leads to noisy charts.
- **No Built-in Risk Management**: Signals lack stop-loss/take-profit logic; users must add these manually.
- **Divergence Limitations**: The basic (commented) divergence detection is simplistic and may miss hidden divergences or require tuning.
In summary, it's powerful for momentum traders but should be used with confirmation tools to mitigate false positives.
Example Strategies
Here are one LONG (buy) and one SHORT (sell) strategy example using the indicator. These are basic; always backtest and use risk management (e.g., 1-2% risk per trade, stop-loss at recent lows/highs).
**LONG Strategy Example: Oversold RSI Support Breakout**
- **Setup**: Use on a daily chart for stocks or crypto. Enable Periods 3 and 5 (short- and medium-term). Set oversold level to 30.
- **Entry**: Wait for RSI to be in oversold (<30). Look for a "B" breakout label (e.g., "B3" or "B5") when RSI crosses above a red resistance trendline projection. Confirm with price forming a higher low or candlestick reversal (e.g., hammer).
- **Stop-Loss**: Place below the recent price low or the RSI support level equivalent in price terms (e.g., 5-10% below entry).
- **Take-Profit**: Target RSI reaching overbought (70) or a 2:1 risk-reward ratio. Exit on a bearish RSI crossunder midline (50).
- **Example Scenario**: In a downtrending stock, RSI hits 25 and forms a support trendline. On a "B5" breakout, enter long. This captures momentum reversals after overselling.
- **Rationale**: Breakout above RSI resistance in oversold signals fading selling pressure, potential for price uptrend.
**SHORT Strategy Example: Overbought RSI Resistance Breakout**
- **Setup**: Use on a 4H chart for forex pairs. Enable Periods 10 and 20. Set overbought level to 70.
- **Entry**: Wait for RSI in overbought (>70). Enter on an "S" breakout label (e.g., "S3" or "S4") when RSI crosses below a green support trendline projection. Confirm with price showing a lower high or bearish candlestick (e.g., shooting star).
- **Stop-Loss**: Above the recent price high or RSI resistance level (e.g., 5-10% above entry).
- **Take-Profit**: Target RSI hitting oversold (30) or a 2:1 risk-reward. Exit on bullish RSI crossover midline (50).
- **Example Scenario**: In an uptrending pair, RSI peaks at 75 with a resistance trendline. On "S4" breakout, enter short. This targets momentum exhaustion after overbuying.
- **Rationale**: Break below RSI support in overbought indicates weakening buying momentum, likely price downturn.
Enhancing Strategy Validity with Other Indicators
To increase the reliability of strategies based on this indicator, combine it with complementary tools for confirmation, filtering false signals, and adding context. This creates multi-indicator strategies that reduce whipsaws and improve win rates. Focus on indicators that address RSI's weaknesses (e.g., lagging, momentum-only). Below are examples of different indicators, how to integrate them, and sample strategies.
1. **Moving Averages (e.g., SMA/EMA)**:
- **How to Use**: Overlay 50/200-period EMAs on the price chart. Use RSI breakouts only in the direction of the trend (e.g., long only if price > 200 EMA).
- **Strategy Example**: Trend-Following Long – Enter on "B" RSI breakout if price is above 200 EMA and RSI > 50. This filters reversals in uptrends. Add MACD crossover for entry timing. Advantage: Aligns momentum with price trend, reducing counter-trend trades.
2. **Volume Indicators (e.g., Volume Oscillator or OBV)**:
- **How to Use**: Require increasing volume on RSI breakouts (e.g., OBV making higher highs on bullish breakouts).
- **Strategy Example**: Volume-Confirmed Short – On "S" breakout, check if volume is rising and OBV breaks its own trendline downward. Enter short only if confirmed. This validates breakouts with real market participation, avoiding low-volume traps.
3. **Other Oscillators (e.g., MACD or Stochastic)**:
- **How to Use**: Use for divergence confirmation or overbought/oversold alignment. For instance, require Stochastic (14,3,3) to also breakout from its levels.
- **Strategy Example**: Dual-Oscillator Reversal Long – Enable divergence in the indicator. Enter on bullish RSI divergence + "B" breakout if MACD histogram flips positive. Exit on MACD bearish crossover. This strengthens reversal signals by cross-verifying momentum.
4. **Price Action Tools (e.g., Support/Resistance or Candlestick Patterns)**:
- **How to Use**: Map RSI trendlines to price levels (e.g., if RSI resistance breaks, check if price breaks a key resistance).
- **Strategy Example**: Price-Aligned Breakout Short – On "S" RSI breakout in overbought, confirm with price breaking below a drawn support line or forming a bearish engulfing candle. Use Fibonacci retracements for targets. This ensures momentum translates to price movement.
5. **Volatility Indicators (e.g., Bollinger Bands or ATR)**:
- **How to Use**: Avoid trades during low volatility (e.g., Bollinger Band squeeze) to filter ranging markets. Use ATR for dynamic stops.
- **Strategy Example**: Volatility-Filtered Long – Enter "B" breakout only if Bollinger Bands are expanding (increasing volatility) and RSI is oversold. Set stop-loss at 1.5x ATR below entry. This targets high-momentum breakouts while skipping choppy periods.
**General Tips for Building Enhanced Strategies**:
- **Layering**: Start with RSI breakout as the primary signal, add 1-2 confirmations (e.g., EMA trend + volume).
- **Backtesting**: Use TradingView's strategy tester to quantify win rates with/without additions.
- **Risk Filters**: Incorporate overall market sentiment (e.g., via VIX) or avoid trading near news events.
- **Timeframe Alignment**: Use higher timeframes for trend (e.g., daily EMA) and lower for entries (e.g., 1H RSI breakout).
- **Avoid Overloading**: Too many indicators cause paralysis; aim for synergy (e.g., trend + momentum + volume).
This indicator is a versatile tool, but success depends on context and discipline. If you need code modifications or specific backtests, provide more details!
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
Multi-Timeframe 20 EMA Horizontal LinesOverview
This Multi-Timeframe 20 EMA indicator provides intelligent trend analysis by displaying your current timeframe EMA alongside relevant higher timeframe EMA levels as horizontal support/resistance lines. On lower timeframes, you see all higher EMA levels for comprehensive multi-timeframe confluence, while on higher timeframes, it filters out lower timeframe noise to maintain focus on macro trends. This allows traders to align short-term entries with long-term market structure, identifying high-probability setups where multiple timeframe EMAs converge while using the current timeframe EMA for precise timing.
Feature
Multi-Timeframe Horizontal EMA Lines
The indicator fetches and displays 20 EMAs from five higher timeframes:
Daily (D): Daily 20 EMA
Weekly (W): Weekly 20 EMA
Monthly (M): Monthly 20 EMA
Quarterly (Q): 3-Month 20 EMA
Half-Yearly (HY): 6-Month 20 EMA
Intelligent Timeframe Filtering
Smart Display Logic: Only shows EMAs from timeframes higher than your current chart timeframe
Prevents Redundancy: Automatically filters out lower timeframe EMAs to avoid clutter
Example: On a 4-hour chart, you'll see Daily, Weekly, Monthly, Quarterly, and Half-Yearly EMAs, but on a Weekly chart, you'll only see Weekly and higher timeframes
Half-Yearly (HY): 6-Month 20 EMA
Shows only current timeframe EMA with half-yearly horizontal line, filtering out all lower timeframes.
Quarterly (Q): 3-Month 20 EMA
Displays current timeframe EMA with quarterly and higher horizontal lines, hiding monthly, weekly, and daily EMAs.
Monthly (M): Monthly 20 EMA
Shows current timeframe EMA with monthly and higher horizontal EMAs, excluding weekly and daily timeframes.
Weekly (W): Weekly 20 EMA
Displays current timeframe EMA with weekly and higher horizontal EMA lines, filtering out daily timeframe.
Daily (D):
Shows current timeframe EMA with all higher timeframe horizontal EMAs (daily, weekly, monthly, quarterly, half-yearly).
Note: Make sure to enable Price-Line in Style Settings after Importing Script.
Auto AI Trendlines [TradingFinder] Clustering & Filtering Trends🔵 Introduction
Auto AI trendlines Clustering & Filtering Trends Indicator, draws a variety of trendlines. This auto plotting trendline indicator plots precise trendlines and regression lines, capturing trend dynamics.
Trendline trading is the strongest strategy in the financial market.
Regression lines, unlike trendlines, use statistical fitting to smooth price data, revealing trend slopes. Trendlines connect confirmed pivots, ensuring structural accuracy. Regression lines adapt dynamically.
The indicator’s ascending trendlines mark bullish pivots, while descending ones signal bearish trends. Regression lines extend in steps, reflecting momentum shifts. As the trend is your friend, this tool aligns traders with market flow.
Pivot-based trendlines remain fixed once confirmed, offering reliable support and resistance zones. Regression lines, adjusting to price changes, highlight short-term trend paths. Both are vital for traders across asset classes.
🔵 How to Use
There are four line types that are seen in the image below; Precise uptrend (green) and downtrend (red) lines connect exact price extremes, while Pivot-based uptrend and downtrend lines use significant swing points, both remaining static once formed.
🟣 Precise Trendlines
Trendlines only form after pivot points are confirmed, ensuring reliability. This reduces false signals in choppy markets. Regression lines complement with real-time updates.
The indicator always draws two precise trendlines on confirmed pivot points, one ascending and one descending. These are colored distinctly to mark bullish and bearish trends. They remain fixed, serving as structural anchors.
🟣 Dynamic Regression Lines
Regression lines, adjusting dynamically with price, reflect the latest trend slope for real-time analysis. Use these to identify trend direction and potential reversals.
Regression lines, updated dynamically, reflect real-time price trends and extend in steps. Ascending lines are green, descending ones orange, with shades differing from trendlines. This aids visual distinction.
🟣 Bearish Chart
A Bullish State emerges when uptrend lines outweigh or match downtrend lines, with recent upward momentum signaling a potential rise. Check the trend count in the state table to confirm, using it to plan long positions.
🟣 Bullish Chart
A Bearish State is indicated when downtrend lines dominate or equal uptrend lines, with recent downward moves suggesting a potential drop. Review the state table’s trend count to verify, guiding short position entries. The indicator reflects this shift for strategic planning.
🟣 Alarm
Set alerts for state changes to stay informed of Bullish or Bearish shifts without constant monitoring. For example, a transition to Bullish State may signal a buying opportunity. Toggle alerts On or Off in the settings.
🟣 Market Status
A table summarizes the chart’s status, showing counts of ascending and descending lines. This real-time overview simplifies trend monitoring. Check it to assess market bias instantly.
Monitor the table to track line counts and trend dominance.
A higher count of ascending lines suggests bullish bias. This helps traders align with the prevailing trend.
🔵 Settings
Number of Trendlines : Sets total lines (max 10, min 3), balancing chart clarity and trend coverage.
Max Look Back : Defines historical bars (min 50) for pivot detection, ensuring robust trendlines.
Pivot Range : Sets pivot sensitivity (min 2), adjusting trendline precision to market volatility.
Show Table Checkbox : Toggles display of a table showing ascending/descending line counts.
Alarm : Enable or Disable the alert.
🔵 Conclusion
The multi slopes indicator, blending pivot-based trendlines and dynamic regression lines, maps market trends with precision. Its dual approach captures both structural and short-term momentum.
Customizable settings, like trendline count and pivot range, adapt to diverse trading styles. The real-time table simplifies trend monitoring, enhancing efficiency. It suits forex, stocks, and crypto markets.
While trendlines anchor long-term trends, regression lines track intraday shifts, offering versatility. Contextual analysis, like price action, boosts signal reliability. This indicator empowers data-driven trading decisions.
Volume Flow OscillatorVolume Flow Oscillator
Overview
The Volume Flow Oscillator is an advanced technical analysis tool that measures buying and selling pressure by combining price direction with volume. Unlike traditional volume indicators, this oscillator reveals the force behind price movements, helping traders identify strong trends, potential reversals, and divergences between price and volume.
Reading the Indicator
The oscillator displays seven colored bands that fluctuate around a zero line:
Three bands above zero (yellow) indicate increasing levels of buying pressure
Three bands below zero (red) indicate increasing levels of selling pressure
The central band represents the baseline volume flow
Color intensity changes based on whether values are positive or negative
Trading Signals
The Volume Flow Oscillator provides several valuable trading signals:
Zero-line crossovers: When multiple bands cross from negative to positive, potential bullish shift; opposite for bearish
Divergences: When price makes new highs/lows but oscillator bands fail to confirm, signals potential reversal
Volume climax: Extreme readings where outer bands stretch far from zero often precede reversals
Trend confirmation: Strong expansion of bands in direction of price movement confirms genuine momentum
Support/resistance: During trends, bands may remain largely on one side of zero, showing continued directional pressure
Customization
Adjust these key parameters to optimize the oscillator for your trading style:
Lookback Length: Controls overall sensitivity (shorter = more responsive, longer = smoother)
Multipliers: Adjust sensitivity spread between bands for different market conditions
ALMA Settings: Fine-tune how the indicator weights recent versus historical data
VWMA Toggle: Enable for additional smoothing in volatile markets
Best Practices
For optimal results, use this oscillator in conjunction with price action and other confirmation indicators. The multi-band approach helps distinguish between minor fluctuations and significant volume events that might signal important market turns.
Auto TrendLines [TradingFinder] Support Resistance Signal Alerts🔵 Introduction
The trendline is one of the most essential tools in technical analysis, widely used in financial markets such as Forex, cryptocurrency, and stocks. A trendline is a straight line that connects swing highs or swing lows and visually indicates the market’s trend direction.
Traders use trendlines to identify price structure, the strength of buyers and sellers, dynamic support and resistance zones, and optimal entry and exit points.
In technical analysis, trendlines are typically classified into three categories: uptrend lines (drawn by connecting higher lows), downtrend lines (formed by connecting lower highs), and sideways trends (moving horizontally). A valid trendline usually requires at least three confirmed touchpoints to be considered reliable for trading decisions.
Trendlines can serve as the foundation for a variety of trading strategies, such as the trendline bounce strategy, valid breakout setups, and confluence-based analysis with other tools like candlestick patterns, divergences, moving averages, and Fibonacci levels.
Additionally, trendlines are categorized into internal and external, and further into major and minor levels, each serving unique roles in market structure analysis.
🔵 How to Use
Trendlines are a key component in technical analysis, used to identify market direction, define dynamic support and resistance zones, highlight strategic entry and exit points, and manage risk. For a trendline to be reliable, it must be drawn based on structural principles—not by simply connecting two arbitrary points.
🟣 Selecting Pivot Types Based on Trend Direction
The first step is to determine the market trend: uptrend, downtrend, or sideways.
Then, choose pivot points that match the trend type :
In an uptrend, trendlines are drawn by connecting low pivots, especially higher lows.
In a downtrend, trendlines are formed by connecting high pivots, specifically lower highs.
It is crucial to connect pivots of the same type and structure to ensure the trendline is valid and analytically sound.
🟣 Pivot Classification
This indicator automatically classifies pivot points into two categories :
Major Pivots :
MLL : Major Lower Low
MHL : Major Higher Low
MHH : Major Higher High
MLH : Major Lower High
These define the primary structure of the market and are typically used in broader structural analysis.
Minor Pivots :
mLL: minor Lower Low
mHL: minor Higher Low
mHH: minor Higher High
mLH: minor Lower High
These are used for drawing more precise trendlines within corrective waves or internal price movements.
Example : In a downtrend, drawing a trendline from an MHH to an mHH creates structural inconsistency and introduces noise. Instead, connect points like MHL to MHL or mLH to mLH for a valid trendline.
🟣 Drawing High-Precision Trendlines
To ensure a reliable trendline :
Use pivots of the same classification (Major with Major or Minor with Minor).
Ensure at least three valid contact points (three touches = structural confirmation).
Draw through candles with the least deviation (choose wicks or bodies based on confluence).
Preferably draw from right to left for better alignment with current market behavior.
Use parallel lines to turn a single trendline into a trendline zone, if needed.
🟣 Using Trendlines for Trade Entries
Bounce Entry: When price approaches the trendline and shows signs of reversal (e.g., a reversal candle, divergence, or support/resistance), enter in the direction of the trend with a logical stop-loss.
Breakout Entry: When price breaks through the trendline with strong momentum and a confirmation (such as a retest or break of structure), consider trading in the direction of the breakout.
🟣 Trendline-Based Risk Management
For bounce entries, the stop-loss is placed below the trendline or the last pivot low (in an uptrend).
For breakout entries, the stop-loss is set behind the breakout candle or the last structural level.
A broken trendline can also act as an exit signal from a trade.
🟣 Combining Trendlines with Other Tools (Confluence)
Trendlines gain much more strength when used alongside other analytical tools :
Horizontal support and resistance levels
Moving averages (such as EMA 50 or EMA 200)
Fibonacci retracement zones
Candlestick patterns (e.g., Engulfing, Pin Bar)
RSI or MACD divergences
Market structure breaks (BoS / ChoCH)
🔵 Settings
Pivot Period : This defines how sensitive the pivot detection is. A higher number means the algorithm will identify more significant pivot points, resulting in longer-term trendlines.
Alerts
Alert :
Enable or disable the entire alert system
Set a custom alert name
Choose how often alerts trigger (every time, once per bar, or on bar close)
Select the time zone for alert timestamps (e.g., UTC)
Each trendline type supports two alert types :
Break Alert : Triggered when price breaks the trendline
React Alert : Triggered when price reacts or bounces off the trendline
These alerts can be independently enabled or disabled for all trendline categories (Major/Minor, Internal/External, Up/Down).
Display :
For each of the eight trendline types, you can control :
Whether to show or hide the line
Whether to delete the previous line when a new one is drawn
Color, line style (solid, dashed, dotted), extension direction (e.g., right only), and width
Major lines are typically thicker and more opaque, while minor lines appear thinner and more transparent.
All settings are designed to give the user full control over the appearance, behavior, and alert system of the indicator, without requiring manual drawing or adjustments.
🔵 Conclusion
A trendline is more than just a line on the chart—it is a structural, strategic, and flexible tool in technical analysis that can serve as the foundation for understanding price behavior and making trading decisions. Whether in trending markets or during corrections, trendlines help traders identify market direction, key zones, and high-potential entry and exit points with precision.
The accuracy and effectiveness of a trendline depend on using structurally valid pivot points and adhering to proper market logic, rather than relying on guesswork or personal bias.
This indicator is built to solve that exact problem. It automatically detects and draws multiple types of trendlines based on actual price structure, separating them into Major/Minor and Internal/External categories, and respecting professional analytical principles such as pivot type, trend direction, and structural location.
Multi Swing Point ConnectionsMulti Swing Point Connections — Tool for custom Highs & Lows structure mapping. This indicator allows to create fully customizable connections between multiple types of swing points, offering advanced visual structure of price dynamics.
Features:
Dynamic Swing Detection using adjustable pivot period.
Connect up to 8 swing relationships, with individual controls for swing points: 🔴 Higher High, 🟠 Lower High, 🔵 Higher Low, 🟢 Lower Low
Countback customization (steps for historical/future reference)
Optional enabling/disabling per connection
Visual Structure Mapping with configurable line color and width.
Perfect for identifying key structure shifts
Mapping trending vs consolidating phases
Building your own internal order flow frameworks
Inputs:
Swing Period: Defines how many bars to the left/right are used to detect pivot highs/lows.
Line Customization: Adjust style, width and color for visual clarity.
Connection Parameters: Select which swing types to connect, and control how far back and forward to look when making the connection.
Connection Examples:
HH to LH - Mapping potential bearish transition. Often signals weakening bullish momentum and a potential bearish shift in structure.
LL to HL - Mapping potential bullish transition. Suggests buyers stepping in earlier and potential bullish momentum building.
HL to LH (or LH to HL) - these can indicate sideways structure — often in consolidating or compressing price action depending on custom steps.
HH to HH (or LL to LL) - Connecting successive HHs or LLs visualizes higher highs in uptrends or lower lows in downtrends — a classic trend-following perspective.
HL to HL (or LH to LH) - Connecting successive HLs (or LHs) can highlight the “internal” structure between impulse legs, often defining minor trend channels or short-term ranges within the larger trend.
Flow Optimized Moving AverageOverview
The Flow Optimized Moving Average (Flow OMA) is an advanced adaptive moving average designed to dynamically adjust smoothing factors based on market efficiency and volatility. By integrating the Efficiency Ratio (ER) with an Adaptive Moving Average (AMA) and leveraging ATR-based bands, this indicator provides traders with a refined tool for identifying trend direction, strength, and potential reversal zones.
Key Features
Adaptive Moving Average (AMA)
Adjusts to price action based on the Efficiency Ratio (ER), reducing lag in trending markets while smoothing noise in ranging conditions.
Efficiency Ratio (ER)
Measures the effectiveness of price movement over a defined lookback period.
Helps in dynamically adjusting the smoothing constant of the AMA.
ATR-Based Volatility Bands
Creates upper and lower dynamic bands based on the Average True Range (ATR).
Expands in high volatility and contracts in low volatility, providing traders with a contextual understanding of price action.
Slope-Based Trend Strength
Normalizes the moving average slope relative to ATR.
Generates a trend strength score, which influences band opacity, making strong trends visually distinguishable.
Dynamic Color Coding
Bullish Trends: Cyan/Turquoise (#00e2ff)
Bearish Trends: Blue (#003ff5)
Neutral Trends: Gray
The transparency of the bands dynamically adjusts based on trend strength.
Fill Zone Effect
The area between the ATR bands is filled with a gradient-like effect, giving a clear visual representation of trend strength and transitions.
Indicator Components
Inputs (User Settings)
ER Lookback Period: Defines how many bars are used in the Efficiency Ratio calculation (default: 10).
Fast & Slow Periods: Control the sensitivity of the Adaptive Moving Average (default: 2 & 30).
ATR Period: Defines the lookback for Average True Range (default: 14).
Band Multiplier: Determines the width of ATR-based bands (default: 1.5).
Slope Average Period: Smooths trend slope for more stable trend assessment (default: 5).
Efficiency Ratio Calculation
Measures how effectively price moves in a straight line compared to its total movement.
A higher ER value suggests strong trend momentum, while a lower value implies consolidation.
Adaptive Moving Average (AMA)
Dynamically adjusts its smoothing factor based on ER.
Uses a smoothing constant that ranges between the fastest and slowest specified values.
Volatility-Based Bands
Constructed using the ATR multiplier.
Expand and contract dynamically in response to market volatility.
Trend Strength & Direction
Computed using the normalized slope of AMA against ATR.
Positive slope = Bullish trend, Negative slope = Bearish trend.
Visual Enhancements
Colored Adaptive MA Line: Changes based on trend direction.
ATR Bands with Gradient Fill: Visual representation of market conditions.
Dynamic Opacity: Highlights trend strength through transparency.
How to Use the Flow OMA Indicator
Trend Identification
When the Adaptive MA is rising and colored cyan, a bullish trend is in play.
When the Adaptive MA is falling and colored blue, a bearish trend is present.
Trend Strength Assessment
A stronger trend results in more opaque band fills, indicating a clear directional bias.
Weaker trends or consolidations result in fainter fills, signaling a loss of momentum.
Reversal Signals
If price touches the upper band in a bullish move and starts reversing, it can indicate potential profit-taking areas.
If price approaches the lower band in a bearish move and rebounds, a short-term reversal may be imminent.
Volatility Insights
Narrow bands indicate low volatility and possible breakout conditions.
Wider bands suggest increased volatility, warning traders of potential price swings.
Best Practices
✅ Combine with Other Indicators
Use RSI, MACD, or Volume Profile for confirmation before executing trades.
✅ Apply to Multiple Timeframes
Works effectively in higher timeframes (1H, 4H, Daily) for trend trading.
Can be utilized in lower timeframes (5m, 15m) for scalping setups.
✅ Adjust Parameters Based on Asset Volatility
Increase ATR Period for stocks with high volatility.
Reduce ATR Multiplier for forex pairs to avoid excessive band width.
The Flow Optimized Moving Average (Flow OMA) is a powerful trend-following tool designed for both swing and intraday traders. Its adaptive nature allows it to efficiently track trends while minimizing false signals. By incorporating dynamic volatility bands and trend-sensitive color coding, this indicator enhances traders' ability to read price action effectively. Whether used standalone or in combination with other indicators, Flow OMA provides a significant edge in trend analysis.
Ultimate Trend SuiteThe Ultimate Trend Suite is a comprehensive trading indicator designed to enhance your market analysis and decision-making process. By integrating multiple technical analysis tools into a single, cohesive package, this indicator provides clear insights into market trends, momentum shifts, volatility conditions, and potential reversal points. It is tailored for traders seeking a deeper understanding of market dynamics without the need to interpret numerous separate indicators.
---
Key Features
The indicator offers a range of features that work together to provide a holistic view of the market:
- Dynamic Trend Line: A responsive trend line that adapts to price movements, highlighting the prevailing market direction. It helps you quickly identify whether the market is in an uptrend, downtrend, or consolidation phase.
- Strength and Weakness Dots: Visual markers indicating potential shifts in market momentum. These dots offer early signals of increasing buying (strength) or selling (weakness) pressure.
- Volatility Squeeze Detection: Identifies periods when the market is experiencing low volatility, which often precedes significant price movements. It alerts you to potential breakout opportunities so you can prepare your trading strategy accordingly.
- Reversal Signals: Highlights potential bullish or bearish reversal points in the market, assisting in spotting possible trend changes early for timely entry or exit decisions.
- Trend Bars: Colours the price bars based on the underlying trend direction, providing an immediate visual representation of market sentiment and simplifying chart analysis.
---
What Is It For?
The Ultimate Trend Suite is designed to simplify market analysis and enhance trading decisions. By consolidating multiple technical indicators into one, it reduces chart clutter and makes it easier to interpret market conditions. It is suitable for day traders, swing traders, and long-term investors across different markets such as forex, stocks, commodities, and cryptocurrencies. The indicator helps identify high-probability trade setups by highlighting key market conditions like trend strength and volatility compression.
---
How to Use
To effectively utilise the Ultimate Trend Suite, it's essential to understand how to interpret its signals and integrate them into your trading strategy.
Interpreting the Dynamic Trend Line
The Dynamic Trend Line adapts to price movements and changes its slope and colour based on market conditions:
- Uptrend Indication: If the Trend Line is sloping upward and possibly changing to a bullish colour, it indicates that the market is in an uptrend. This suggests that buying opportunities may be favorable. Traders might look to enter long positions, expecting prices to continue rising.
- Downtrend Indication: If the Trend Line is sloping downward and possibly changing to a bearish colour, it indicates that the market is in a downtrend. This suggests that selling opportunities or refraining from long positions may be prudent. Traders might consider short positions or protecting existing long positions.
- Consolidation Phase: A sideways-moving Trend Line may indicate a consolidation phase, signaling a lack of clear trend. In such cases, exercising caution and waiting for a breakout is advisable before committing to a new position.
Understanding Strength and Weakness Dots
The Strength and Weakness Dots provide visual cues about potential momentum shifts:
- Strength Dots (Bullish Signals): These appear below the price bars and suggest a potential increase in bullish momentum. When you see these dots, it may be an opportune time to consider entering long positions or adding to existing ones, anticipating that the upward momentum will continue.
- Weakness Dots (Bearish Signals): These appear above the price bars and indicate a potential increase in bearish momentum. These signals may prompt you to consider entering short positions or exiting long positions, expecting that prices may start to decline.
Utilising Volatility Squeeze Detection
The Volatility Squeeze Detection identifies periods of low volatility, which often precedes significant price movements:
- Volatility Squeeze Indication: When a shaded area appears on the chart, it signifies a volatility squeeze. This indicates that the market is experiencing compressed volatility, and a significant price movement may be imminent.
- Preparing for Breakouts: During a volatility squeeze, it's crucial to monitor the market closely for potential breakouts. This period suggests that the market is gathering momentum for a large move in either direction. By combining this information with other indicators or price action analysis, you can anticipate the direction of the breakout and prepare your trading strategy accordingly.
Recognising Reversal Signals
Reversal Signals help identify potential trend changes:
- Bullish Reversal Signal: An "R" symbol appears below a price bar, suggesting that a downtrend may be ending and an upward reversal is possible. You might consider entering a long position or closing a short position, especially if other indicators support this signal. This could be an early indication that buying pressure is increasing.
- Bearish Reversal Signal: An "R" symbol appears above a price bar, indicating that an uptrend may be ending and a downward reversal is possible. In this case, you might consider entering a short position or closing a long position. This suggests that selling pressure is gaining momentum.
Interpreting Trend Bars
Trend Bars provide immediate visual feedback on market sentiment:
- Bullish Trend Bars: Green-coloured bars indicate bullish trends and suggest that upward momentum is present. This visual cue reinforces the signals from the Dynamic Trend Line and Strength Dots, helping you confirm the strength of an uptrend.
- Bearish Trend Bars: Red-coloured bars indicate bearish trends, highlighting downward momentum. This complements signals from the Dynamic Trend Line and Weakness Dots, confirming the strength of a downtrend.
StyleLibraryLibrary "StyleLibrary"
A small library of Pine Script functions that return built-in style variables.
method sizeStyle(size)
Takes a `string` that returns the corresponding built-in size style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
size (string) : A `string` representing a built-in size style: `"Tiny"`, `"Small"`, `"Normal"`, `"Large"`,
`"Huge"`, `"Auto"`.
Returns: The respective built-in size style variable.
method sizeStyle(size)
Takes a `sizeStyle` that returns the corresponding built-in size style variable.
Namespace types: series sizeStyle
Parameters:
size (series sizeStyle) : A `sizeStyle` representing a built-in size style variable.
Returns: The respective built-in size style variable.
method lineStyle(style)
Takes a `string` that returns the corresponding built-in line style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in line style: `"Dashed"`, `"Dotted"`, `"Solid"`.
Returns: The respective built-in line style variable.
method lineStyle(style)
Takes a `lineStyle` that returns the corresponding built-in line style variable.
Namespace types: series lineStyle
Parameters:
style (series lineStyle) : A `lineStyle` representing a built-in line style variable.
Returns: The respective built-in line style variable.
method labelStyle(style)
Takes a `string` that returns the corresponding built-in label style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
style (string) : A `string` representing a built-in label style:
`"Arrow Down"`, `"Arrow Up"`, `"Circle"`, `"Cross"`, `"Diamond"`, `"Flag"`,
`"Label Center"`, `"Label Down"`, `"Label Left"`, `"Label Lower Left"`,
`"Label Lower Right"`, `"Label Right"`, `"Label Up"`, `"Label Upper Left"`,
`"Label Upper Right"`, `"None"`, `"Square"`, `"Text Outline"`, `"Triangle Down"`,
`"Triangle Up"`, `"XCross"`.
Returns: The respective built-in label style variable.
method labelStyle(style)
Takes a `labelStyle` that returns the corresponding built-in label style variable.
Namespace types: series labelStyle
Parameters:
style (series labelStyle) : A `labelStyle` representing a built-in label style variable.
Returns: The respective built-in label style variable.
method fontStyle(font)
Takes a `string` that returns the corresponding built-in font style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
font (string) : A `string` representing a built-in font style: `"Default"`, `"Monospace"`.
Returns: The respective built-in font style variable.
method positionStyle(position)
Takes a `string` that returns the corresponding built-in position style variable.
Namespace types: series string, simple string, input string, const string
Parameters:
position (string) : A `string` representing a built-in position style:
`"Bottom Center", `"Bottom Left", `"Bottom Right", `"Middle Center", `"Middle Left",
`"Middle Right", `"Top Center", `"Top Left", `"Top Right".
Returns: The respective built-in position style variable.
method displayStyle(display)
Takes a `simple string` that returns the corresponding built-in display style variable.
Namespace types: simple string, input string, const string
Parameters:
display (simple string) : A `simple string` representing a built-in display style: `"All"`, `"Data Window"`,
`"None"`, `"Pane"`, `"Price Scale"`, `"Status Line"`.
Returns: The respective built-in display style variable.
Sticky Moving AverageThe Sticky Moving Average is a custom indicator designed to provide a unique smoothing effect by combining different moving averages derived from a single base period. This indicator creates a single line on the chart, representing the average of the following three moving averages:
1. X-period Simple Moving Average (SMA): A traditional moving average that smooths the price data over the full period.
2. X/2-period Simple Moving Average (SMA): A faster-moving average that smooths the price data over half of the base period.
3. X/4-period Exponential Moving Average (EMA): An exponential moving average that gives more weight to recent prices, calculated over one-fourth of the base period.
The result is a moving average that "sticks" to price action by considering both short-term and long-term trends, offering a balanced view of market momentum.
This indicator is ideal for traders looking to gain a nuanced understanding of price movements by incorporating multiple smoothing periods into a single, easy-to-use line. Adjust the `X` value to suit your trading strategy and enjoy the clarity this composite moving average can bring to your charts.
Time Vertical LineThis indicator is designed to plot vertical lines at specified hourly intervals on a trading chart. The indicator includes default settings to draw vertical lines at every hour of the day and provides users with the flexibility to customize up to six additional vertical lines at specified times.
Traders can use the vertical lines to segment the trading day, making it easier to analyze market movements within specific hours.
Customizable lines allow traders to mark important times such as market openings, closings, and economic news releases.
This indicator is a powerful tool for traders who need to keep track of specific times and events during the trading day, providing a clear and customizable visual representation of time on their charts.
The indicator allows you to easily customize the appearance of the 24 default vertical lines that mark each hour of the day. You can change the color by adjusting the Color input, modify the transparency using the Transparency input, and set the line width with the Line Width input.
Each of custom lines can have its own color, transparency, and line width, giving you full control over their appearance. By default, these custom vertical lines are turned off. To activate them, go to the "Style" tab in the settings menu of the indicator.
The time for each vertical line is based on the exchange's timezone. You can set the time for each of the 6 custom vertical lines using decimal notation. For example:
Input 9.1 to display a vertical line at 9:10.
Input 9.15 to display a vertical line at 9:15.
The indicator should only be displayed in time frames less than 15 minutes. Go to "Visibility" in settings for options.
DeleteArrayType█ OVERVIEW
Here are common functions usually delete drawing once array of drawing is recall.
Method is used as in pine script version 5 instead of custom function.
It is an upgrade from DeleteArrayObject , which may not support overload parameter in future.
Library "DeleteArrayType"
TODO: Delete array type especially for drawings
method deleteLabel(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: label.delete()
method deleteLine(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: line.delete()
method deleteLineFill(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: linefill.delete()
method deletePolyLine(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: polyline.delete()
method deleteBox(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: box.delete()
method deleteTable(id)
TODO: Delete array
Namespace types: array
Parameters:
id (array)
Returns: TODO: table.delete()
Earnings Line - EPS Tracker [LevelUp]The LevelUp Earnings Line plots quarterly earning per share (EPS) data providing a visual representation of the earnings trend over time.
Earnings are a foundational concept that can have a significant impact on a stock's longer term performance. With the option to view earnings as a plot versus a table of statistics, you can quickly identify earnings acceleration or deceleration. A steep line upwards from one earnings release to another, or a series of progressively higher EPS values, indicates a strong earnings trajectory. The more pronounced the acceleration, the more likely the company is to outperform the market.
At each quarterly earnings release you can view the details for Reported (non-GAAP), Diluted and Basic EPS by hovering over the plotted symbols on the earnings line.
This indicator uses TradingView's financial functions to request the following EPS data:
▪ Reported (non-GAAP) : this is one of the most popular ways to view earnings information. With non-GAAP, companies often exclude nonrecurring charges such as acquisitions and restructuring costs as these items are often not indicative of a companies overall performance.
▪ Basic : net income minus preferred dividends divided by the average number of common shares outstanding.
▪ Diluted : net income minus preferred dividends divided by the average number of common shares outstanding & convertible preferred shares such as convertible debt, equity options and warrants.
Although the quarterly earnings data is the same across all timeframes, viewing the longer term trend versus the shorter term trend is relevant based on the objectives of the investor. For example, the earnings growth on a monthly chart provides the big picture view, which may span years. This can be helpful for investors interested in more of a buy and hold approach.
The earnings trend on weekly and daily charts has fewer data points simply based on the shorter timeframe. This information is helpful for investors who are more focused on trades that may be weeks or months in length. The momentum and direction of the current earnings trend is of great importance for those looking to ride the current trend.
Summary:
Historical models have shown the best-performing companies have consistent earnings growth. Whether you are looking short or long term, understanding the earnings trend is a key factor in determining the potential price direction.
Key Features:
▪ Choose the EPS to plot: Reported (non-GAAP), Basic or Diluted.
▪ View stats for all EPS types.
▪ Plot on daily, weekly and monthly timeframes.
Move Earnings Line To Main Chart
▪ Click on the indicator name on left side of the chart.
▪ Select the "..." option.
▪ Use the "Move-to" option to change the location of the earnings line.
▪ To hide the EPS scale on the left, select the "..." option.
▪ In "Pin to scale" select the "No scale (fullscreen)" option.
The LevelUp Earnings Line is included the LevelUp Tools suite of TradingView indicators for trend followers.
유료 스크립트
Price Cross Time Custom Range Interactive█ OVERVIEW
This indicator was a time-based indicator and intended as educational purpose only based on pine script v5 functions for ta.cross() , ta.crossover() and ta.crossunder() .
I realised that there is some overlap price with the cross functions, hence I integrate them into Custom Range Interactive with value variance and overlap displayed into table.
This was my submission for Pinefest #1 , I decided to share this as public, I may accidentally delete this as long as i keep as private.
█ INSPIRATION
Inspired by design, code and usage of CAGR. Basic usage of custom range / interactive, pretty much explained here . Credits to TradingView.
█ FEATURES
1. Custom Range Interactive
2. Label can be resize and change color.
3. Label show tooltip for price and time.
4. Label can be offset to improve readability.
5. Table can show price variance when any cross is true.
6. Table can show overlap if found crosss is overlap either with crossover and crossunder.
7. Table text color automatically change based on chart background (light / dark mode).
8. Source 2 is drawn as straight line, while Source 1 will draw as label either above line for crossover, below line for crossunder and marked 'X' if crossing with Source 2's line.
9. Cross 'X' label can be offset to improve readability.
10. Both Source 1 and Source 2 can select Open, Close, High and Low, which can be displayed into table.
█ LIMITATIONS
1. Table is limited to intraday timeframe only as time format is not accurate for daily timeframe and above. Example daily timeframe will give result less 1 day from actual date.
2. I did not include other sources such external source or any built in sources such as hl2, hlc3, ohlc4 and hlcc4.
█ CODE EXPLAINATION
I pretty much create custom function with method which returns tuple value.
method crossVariant(float price = na, chart.point ref = na) =>
cross = ta.cross( price, ref.price)
over = ta.crossover( price, ref.price)
under = ta.crossunder(price, ref.price)
Unfortunately, I unable make the labels into array which i plan to return string value by getting the text value from array label, hence i use label.all and add incremental int value as reference.
series label labelCross = na, labelCross.delete()
var int num = 0
if over
num += 1
labelCross := label.new()
if under
num += 1
labelCross := label.new()
if cross
num += 1
labelCross := label.new()
I realised cross value can be overlap with crossover and crossunder, hence I add bool to enable force overlap and add additional bools.
series label labelCross = na, labelCross.delete()
var int num = 0
if forceOverlap
if over
num += 1
labelCross := label.new()
if under
num += 1
labelCross := label.new()
if cross
num += 1
labelCross := label.new()
else
if cross and over
num += 1
labelCross := label.new()
if cross and under
num += 1
labelCross := label.new()
if cross and not over and not under
num += 1
labelCross := label.new()
█ USAGE / EXAMPLES
Extended Parallel ChannelsThis indicator provides an enhanced version of the popular Parallel Channel tool by allowing channel boundaries to be extended above and below the primary channel. It can also serve as a general tool for drawing parallel lines and grid lines to aid technical analysis.
🟠 Application
There are two primary ways extended channels can provide valuable insights:
🔵 Support and Resistance Levels
When prices break out of a channel, they often encounter strong resistance at approximately the 100% extension point. Breakout traders can utilize the extended channel boundary to place take-profit orders. Meanwhile, reversal traders can look for entry opportunities at this level.
🔵 Grid / Martingale Trading
Grid Trading and Martingale Trading strategies rely heavily on grid lines. This indicator streamlines that process by enabling traders to effortlessly plot grid lines across the chart.
🟠 Instructions
Upon adding the indicator, the user will be prompted to set the channel boundaries by placing three anchor points on the chart. The first two anchors determine one boundary line, while the third anchor determine the other boundary line.
Once the three anchors are positioned, the indicator automatically plots the resulting channel as well as the extended lines. The anchor points are highlighted as movable blue circles, allowing the user to dynamically adjust the channel formation by dragging the anchors to new locations as needed.
Polyline PlusThis library introduces the `PolylinePlus` type, which is an enhanced version of the built-in PineScript `polyline`. It enables two features that are absent from the built-in type:
1. Developers can now efficiently add or remove points from the polyline. In contrast, the built-in `polyline` type is immutable, requiring developers to create a new instance of the polyline to make changes, which is cumbersome and incurs a significant performance penalty.
2. Each `PolylinePlus` instance can theoretically hold up to ~1M points, surpassing the built-in `polyline` type's limit of 10K points, as long as it does not exceed the memory limit of the PineScript runtime.
Internally, each `PolylinePlus` instance utilizes an array of `line`s and an array of `polyline`s. The `line`s array serves as a buffer to store lines formed by recently added points. When the buffer reaches its capacity, it flushes the contents and converts the lines into polylines. These polylines are expected to undergo fewer updates. This approach is similiar to the concept of "Buffered I/O" in file and network systems. By connecting the underlying lines and polylines, this library achieves an enhanced polyline that is dynamic, efficient, and capable of surpassing the maximum number of points imposed by the built-in polyline.
🔵 API
Step 1: Import this library
import algotraderdev/polylineplus/1 as pp
// remember to check the latest version of this library and replace the 1 above.
Step 2: Initialize the `PolylinePlus` type.
var p = pp.PolylinePlus.new()
There are a few optional params that developers can specify in the constructor to modify the behavior and appearance of the polyline instance.
var p = pp.PolylinePlus.new(
// If true, the drawing will also connect the first point to the last point, resulting in a closed polyline.
closed = false,
// Determines the field of the chart.point objects that the polyline will use for its x coordinates. Either xloc.bar_index (default), or xloc.bar_time.
xloc = xloc.bar_index,
// Color of the polyline. Default is blue.
line_color = color.blue,
// Style of the polyline. Default is line.style_solid.
line_style = line.style_solid,
// Width of the polyline. Default is 1.
line_width = 1,
// The maximum number of points that each built-in `polyline` instance can contain.
// NOTE: this is not to be confused with the maximum of points that each `PolylinePlus` instance can contain.
max_points_per_builtin_polyline = 10000,
// The number of lines to keep in the buffer. If more points are to be added while the buffer is full, then all the lines in the buffer will be flushed into the poylines.
// The higher the number, the less frequent we'll need to // flush the buffer, and thus lead to better performance.
// NOTE: the maximum total number of lines per chart allowed by PineScript is 500. But given there might be other places where the indicator or strategy are drawing lines outside this polyline context, the default value is 50 to be safe.
lines_bffer_size = 50)
Step 3: Push / Pop Points
// Push a single point
p.push_point(chart.point.now())
// Push multiple points
chart.point points = array.from(p1, p2, p3) // Where p1, p2, p3 are all chart.point type.
p.push_points(points)
// Pop point
p.pop_point()
// Resets all the points in the polyline.
p.set_points(points)
// Deletes the polyline.
p.delete()
🔵 Benchmark
Below is a simple benchmark comparing the performance between `PolylinePlus` and the native `polyline` type for incrementally adding 10K points to a polyline.
import algotraderdev/polylineplus/2 as pp
var t1 = 0
var t2 = 0
if bar_index < 10000
int start = timenow
var p = pp.PolylinePlus.new(xloc = xloc.bar_time, closed = true)
p.push_point(chart.point.now())
t1 += timenow - start
start := timenow
var polyline pl = na
var points = array.new()
points.push(chart.point.now())
if not na(pl)
pl.delete()
pl := polyline.new(points)
t2 += timenow - start
if barstate.islast
log.info('{0} {1}', t1, t2)
For this benchmark, `PolylinePlus` took ~300ms, whereas the native `polyline` type took ~6000ms.
We can also fine-tune the parameters for `PolylinePlus` to have a larger buffer size for `line`s and a smaller buffer for `polyline`s.
var p = pp.PolylinePlus.new(xloc = xloc.bar_time, closed = true, lines_buffer_size = 500, max_points_per_builtin_polyline = 1000)
With the above optimization, it only took `PolylinePlus` ~80ms to process the same 10K points, which is ~75x the performance compared to the native `polyline`.
Zigzag Chart Points█ OVERVIEW
This indicator displays zigzag based on high and low using latest pine script version 5 , chart.point which using time, index and price as parameters.
Pretty much a strip down using latest pine script function, without any use of library .
This allow pine script user to have an idea of simplified and cleaner code for zigzag.
█ CREDITS
LonesomeTheBlue
█ FEATURES
1. Label can be show / hide including text can be resized.
2. Hover to label, can see tooltip will show price and time.
3. Tooltip will show date and time for hourly timeframe and below while show date only for day timeframe and above.
█ NOTES
1. I admit that chart.point just made the code much more cleaner and save more time. I previously using user-defined type(UDT) which quite hassle.
2. I have no plan to extend this indicator or include alert just I thinking to explore log.error() and runtime.error() , which I may probably release in other publications.
█ HOW TO USE'
Pretty much similar inside mentioned references, which previously I created.
█ REFERENCES
1. Zigzag Array Experimental
2. Simple Zigzag UDT
3. Zig Zag Ratio Simplified
4. Cyclic RSI High Low With Noise Filter
5. Auto AB=CD 1 to 1 Ratio Experimental






















