AI Liquidity Confirmation Framework [Signals + RR]Updated Indicator using AI Reasoning to give buy/sell indicators. Updated v2 model
Göstergeler ve stratejiler
[ST] Flow CandlesThis indicator does not generate buy or sell signals.
It translates the current market state into colors, allowing for fast and clean visual reading.
The logic is simple:
RSI + slope → show how the market is moving right now (flow).
Relative volume → indicates how much conviction is behind that movement.
LSVI (relative volatility) → defines when continuation is allowed, avoiding entries during chaotic volatility expansions.
Color interpretation:
Gray → neutral market / no clear asymmetry.
Neon green → strong bullish trend, confirmed by volume.
Strong red → strong bearish trend, confirmed by volume.
Gold → continuation allowed after a spike
(volatility compression + flow still active).
This indicator was designed to work alongside SMC, Liquidity and FVG, acting as a flow and timing reader, not as an automatic entry system.
SMC shows where.
Volume shows effort.
Colors show flow.
Gold shows timing.
Breakout LevelsBreakout Levels - User Guide
Overview
The Breakout Levels indicator automatically detects and displays significant breakout candles across multiple timeframes. A breakout occurs when price makes a strong, decisive move - identified by candles with unusually large bodies relative to average volatility.
These breakout levels often act as future support/resistance zones, making them valuable reference points for trading decisions.
What is a Breakout?
A breakout is detected when a candle's body size (the distance between open and close) is significantly larger than normal. By default, the script looks for candles that are 2x the ATR (Average True Range) or larger.
Example:
If the 14-period ATR is $5, a candle with a $10+ body would qualify as a breakout
These represent strong, committed moves by the market
The script marks the high of bullish breakouts and the low of bearish breakouts
Settings Guide
Timeframes
Toggle which timeframes to monitor for breakouts:
Show Daily Breakouts - Green/Red levels from daily chart breakouts
Show 4H Breakouts - 4-hour timeframe breakouts
Show 1H Breakouts - 1-hour timeframe breakouts
Show 15M Breakouts - 15-minute timeframe breakouts
Tip: When running on a 15-minute chart, you can see breakouts from all higher timeframes simultaneously.
Lookback (How Far Back to Display)
Controls how many bars back to show levels for each timeframe:
TimeframeDefaultWhat it Means15M50 bars~12.5 hours of breakout history1H200 bars~8 days of breakout history4H250 bars~42 days of breakout historyDaily300 bars~300 days (nearly 1 year)
Why adjust this?
Increase to see more historical levels (may clutter chart)
Decrease to focus only on recent breakouts
Older levels are still stored, just not displayed
Detection Settings
Breakout Candle Size (x ATR)
Default: 2.0
Range: 1.0 to 5.0
What it does: Multiplier for what qualifies as a "big" candle
SettingSensitivityUse Case1.0-1.5Very sensitiveCatches more breakouts, but may include false moves2.0Balanced (default)Good mix of quality and quantity3.0-5.0Very selectiveOnly the most explosive moves
Recommendation: Start with 2.0 and adjust based on your market and trading style.
Visual Settings
Bullish Breakout Color
Default: Green with 60% transparency
Marks levels where price broke upward strongly
Bearish Breakout Color
Default: Red with 60% transparency
Marks levels where price broke downward strongly
Show Labels
Toggle labels on/off
Labels display: BO
Example: "4H BO 150.25"
Turn OFF for cleaner charts when you just want the lines
How to Use This Indicator
1. Identify Key Breakout Zones
Breakout levels often become magnets where price returns later:
Former resistance (where price broke up) becomes future support
Former support (where price broke down) becomes future resistance
2. Look for Confluence
When multiple timeframe breakouts cluster near the same price:
15M + 1H + 4H breakouts all near $150 = strong level
More confluence = more significant level
3. Watch for Retests
After a breakout, price often returns to test that level:
Bullish breakout retest from above = potential long entry
Bearish breakout retest from below = potential short entry
4. Combine with Other Analysis
Use breakout levels alongside:
Your own support/resistance analysis
Volume profiles
Fibonacci levels
Candlestick patterns at these levels
Practical Examples
Example 1: Clean Breakout and Retest
Daily candle closes up with a huge body (2.5x ATR)
Green line drawn at the high of that candle
Price pulls back 3 days later and bounces exactly off that green line
Trade opportunity: Long entry at the retest with stop below
Example 2: Failed Breakout
4H bearish breakout draws a red line at the low
Price immediately reverses back above the level
Signal: The breakout was false - consider this a stop hunt zone
Example 3: Multi-Timeframe Confluence
Daily breakout at $100
4H breakout at $100.50
1H breakout at $99.80
Strong cluster zone: $99.80-$100.50 becomes a major decision point
Best Practices
DO:
✅ Start with default settings (2.0x ATR, default lookbacks)
✅ Use on a 15-minute chart to see all timeframes
✅ Look for price reactions at these levels before trading
✅ Combine with volume - breakouts with high volume are more reliable
✅ Turn off labels when chart gets too busy
DON'T:
❌ Treat every line as guaranteed support/resistance
❌ Set breakout multiplier too low (<1.5) - creates noise
❌ Ignore the context - check what's happening in the broader market
❌ Trade blindly at these levels without confirmation
Troubleshooting
"Too many lines on my chart"
Reduce the lookback settings
Turn off some timeframes (maybe just show Daily + 4H)
Increase the breakout multiplier to 2.5 or 3.0
"Not showing any levels"
Lower the breakout multiplier to 1.5
Increase lookback settings
Check that at least one timeframe toggle is ON
Verify the market had actual volatility during the period
"Labels are cluttering the chart"
Turn off "Show Labels" in settings
Lines will remain, labels disappear
Technical Notes
ATR Period: 14 (industry standard, not adjustable in this version)
Max Lines: 500 (Pine Script limitation)
Duplicate Filter: Levels within 0.3% of ATR are considered duplicates and filtered
Chart Type: Works on any chart timeframe, optimized for 15-minute
Asset Type: Works on stocks, forex, crypto, futures
Summary
The Breakout Levels indicator gives you a systematic way to identify where strong, committed market moves occurred. These levels often act as future decision points. Use them as reference zones to watch for price reactions, not as automatic trade signals.
Quick Start:
Add indicator to a 15-minute chart
Leave default settings (2.0x ATR)
Watch how price interacts with the levels over the next few days
Adjust sensitivity based on your observations
Happy trading! 📈
Market Bias Dashboard (SPY/QQQ/IWM) + Strength Bias (v6)A script to auto plot PDH/PDL/PMH/PML as well as the option to toggle ORB and VWAP with a dashboard that tracks IWM/QQQ/SPY bias based on price in relation to these options along with whatever 3 EMAs you want to use.
Two Bar ATR Flip
This strategy was generated entirely from a natural language prompt, without a single line of code written or edited by a human developer.
Using CodaPro’s AI engine, the logic, structure, syntax, and alerts were all fully constructed by ARiS — OpenAI’s trading code architect integrated into the CodaPro workflow.
The result is a regime-based trend strategy that uses ATR trailing bands to detect directional flips, confirmed with a two-bar hold filter, and automatically routes alerts to brokers for live execution.
It is engineered with clean logic flow, risk-calibrated sizing, and automated broker payloads — suitable for immediate deployment or as a modular base for advanced quant systems.
Core Components:
1. ATR Flip Engine (Regime Detection)
SuperTrend-style band logic with hl2 ± ATR * multiplier.
Directional regime flips are tracked and locked using persistent variables.
Flip triggers are validated only on strong crossovers.
2. 2-Bar Confirmation Filter
Ensures regime flips persist for 2 full bars before allowing entries.
Eliminates transient noise and early reversals.
3. Dynamic Risk-Based Position Sizing
Uses equity-based % risk to calculate size based on ATR-derived stop distance.
No static contracts — size adjusts dynamically per market volatility.
4. Entry/Exit Logic
Entry logic supports long/short with full reversal logic (strategy.close_all() on flip).
SL and TP are derived from current ATR and auto-adjust per entry bar.
5. Broker Integration Payloads
Alerts include JSON payloads for enter and exit-all, with multiplier precision.
Ready for webhook integration with brokers like Tradovate or IBKR.
6. Visual Aids
Flip and confirmation signals are plotted for visual debugging.
Regime background colors (lime/red) for rapid context.
Trailing stoplines plotted dynamically based on trend.
Automation Notes:
Alerts built using alert.freq_once_per_bar_close
Full compatibility with webhook delivery systems
Designed for deterministic behavior: process_orders_on_close = true
Original Prompt Used by the user and generated by CodaPro.ai - ARiS
"Build a Pine Script strategy that flips between long and short using an ATR trailing stop.
Add a 2-bar confirmation after each flip before entering a position.
Include dynamic position sizing based on risk % and ATR stop distance.
Add take profit and stop loss based on ATR.
Generate broker payloads for entry and exit as webhook alerts."
Laguerre RSI (Fractals Energy) [v6]This write-up explores the **Laguerre RSI (LRSI)**, a sophisticated technical indicator pioneered by **John F. Ehlers**. Unlike the standard RSI, which often suffers from "lag" or excessive noise, the Laguerre RSI uses a four-pole filter to provide a smoother, more responsive curve that stays in overbought or oversold zones longer during strong trends.
The following analysis focuses on the interplay between the **Alpha (Gamma)** and the **Gamma Bandwidth**, specifically looking for "Alpha Exceeding" events to identify market coiling and exhaustion.
---
## 1. The Core Concept: Ehlers’ Laguerre Transform
Traditional indicators use a fixed look-back period (e.g., 14 periods). John Ehlers introduced the Laguerre Transform to allow for a more efficient way of filtering data using a very small amount of data.
In the provided code, the key variable is **Alpha** (derived from **Fractals Energy/Gamma**). This value determines the "speed" of the indicator.
* **Low Alpha:** High damping, smoother but slower.
* **High Alpha:** Low damping, faster and more reactive.
---
## 2. The Gamma Bandwidth: Coiling and Energy
The "Gamma Band" (the purple shaded area in your script, typically between and ) represents the "neutral" zone for market fractal energy.
### Market Coiling (Compression)
When the **Alpha (Gamma) line** climbs **above the Gamma Upper Bound** (e.g., ):
* This indicates the market is moving into a state of **high fractal efficiency** or "straight-line" movement.
* However, when Alpha is pinned high, it often signals **Coiling**. The market is burning through its energy efficiently, but it is reaching a state of "ordered" exhaustion.
* **The Interpretation:** The price is trending strongly, but the lack of "chaos" suggests a trend maturity is approaching.
### Alpha Exceeding the Bands (Exhaustion)
When the Alpha line spikes significantly outside the bands while the LRSI line (blue or pink) is pinned at the extremes (1.0 or 0.0), we observe **Exhaustion**.
* **Bullish Exhaustion:** LRSI is (Blue) and Alpha exceeds the upper band. The trend is so efficient that it has no room left to accelerate. A "reversion to the mean" or a period of "choppiness" (increasing fractal chaos) is likely.
* **Bearish Exhaustion:** LRSI is (Pink) and Alpha exceeds the upper band. This shows a vertical drop that is unsustainable in the long term.
---
## 3. Signal Mechanics: The "Hook"
The most potent signal occurs when the Alpha line begins to **descend back into the Gamma Bandwidth** while the LRSI line crosses the OB/OS levels.
| Signal Component | Market Condition | Actionable Insight |
| --- | --- | --- |
| **Alpha > 0.59** | High Efficiency / Coiling | Trend is strong, but watch for the "bend." |
| **Alpha < 0.41** | High Complexity / Choppiness | Market is trendless; energy is being stored for the next move. |
| **LRSI Cross < 0.8** | Bearish Reversal | Trend exhaustion confirmed; exit longs or enter shorts. |
| **LRSI Cross > 0.2** | Bullish Reversal | Mean reversion confirmed; exit shorts or enter longs. |
---
## 4. Summary of the Methodology
By integrating **Fractals Energy** (Gamma) directly into the Alpha of the Laguerre RSI, this version of Ehlers’ work allows the indicator to adapt its own speed based on the market’s complexity.
When Alpha exceeds the bands, it is a warning that the "clean" move is coming to an end. The market is "coiled" tight; the subsequent break back into the purple band signifies that the trend has lost its linear efficiency and is returning to a state of chaos—often resulting in a price reversal or significant consolidation.
> **Credit:** All mathematical foundations of the Laguerre Transform and the RSI implementation are credited to **John F. Ehlers**.
---
Would you like me to create a visual guide or table specifically for the **Fractal Energy** values and how they correlate to specific market phases?
DTS Momentum Dot Plot (MACD / STOCH / RSI)This comes from Treyding Stocks Famous Dot Plot, but for think or swim. When the green and red dots align, then it is a good opportunity for a buy or sell. It is the MACD, MACD Histogram, Fast Stochastic, the slow stochastic and the RSI, t
You can also add alerts when all lines turn green or red!
Enjoy!
The Blessed Trader Ph. | Double EMA + RSI (20) Strategy v1.0📊 The Blessed Trader Ph.
Double EMA + RSI (20) Strategy — v1.0
1️⃣ Strategy Overview
This is a trend-following breakout strategy designed to:
Catch strong directional moves
Filter out weak trades using momentum confirmation
Control risk with ATR-based stop-loss and take-profit
It works best in trending markets such as:
Crypto (BTC, ETH, altcoins)
Forex (major & minor pairs)
Indices (NAS100, US30, SPX)
2️⃣ Indicators Used
🔹 Double EMA Channel
EMA 20 High → Dynamic resistance
EMA 20 Low → Dynamic support
These two EMAs create a price channel:
Break above → bullish strength
Break below → bearish weakness
Unlike a single EMA on close, using High & Low EMAs helps:
Reduce fake breakouts
Confirm real price expansion
🔹 RSI (20)
Measures momentum strength
RSI > 50 → bullish momentum
RSI < 50 → bearish momentum
RSI is used only as a filter, not as an overbought/oversold signal.
🔹 ATR (14)
Measures market volatility
Used to calculate:
Stop Loss (1.5 × ATR)
Take Profit (3.0 × ATR)
This makes the strategy:
Adaptive to any market
Effective across timeframes
3️⃣ Trade Rules (Very Important)
✅ BUY (LONG) Conditions
A buy trade is opened only when all conditions are met:
Price closes above EMA 20 High
RSI (20) is above 50
Candle is confirmed (bar close)
➡️ This means:
“Price has broken resistance with strong momentum.”
❌ SELL / EXIT Conditions
The long trade is closed when:
Price closes below EMA 20 Low
RSI (20) is below 50
➡️ This signals:
“Trend strength is weakening or reversing.”
🛑 Stop Loss & 🎯 Take Profit
Stop Loss = Entry − (ATR × 1.5)
Take Profit = Entry + (ATR × 3.0)
Risk–Reward ≈ 1 : 2
This protects capital and lets winners run.
4️⃣ Why This Strategy Works
✔ Trades with the trend
✔ Avoids ranging markets
✔ Uses confirmation, not prediction
✔ Non-repainting (bar close only)
✔ Works on any timeframe
5️⃣ 🔥 Why Heikin Ashi Candles Improve Results
What are Heikin Ashi candles?
Heikin Ashi candles smooth price action by averaging price data instead of using raw OHLC values.
Benefits for THIS strategy:
✅ 1. Cleaner Trend Detection
Fewer false EMA breakouts
Smoother closes above EMA High
Stronger continuation signals
✅ 2. Reduced Whipsaws
RSI stays more stable
Fewer fake buy signals during consolidation
✅ 3. Better Trade Holding
Keeps you in trends longer
Avoids early exits caused by noise
6️⃣ How to Use Heikin Ashi with This Strategy
On TradingView:
Open your chart
Click Candles
Select Heikin Ashi
Apply the strategy
📌 Important Tip
EMAs & RSI will now be calculated using Heikin Ashi data
This is ideal for trend-following, not scalping ranges
7️⃣ Best Settings & Recommendations
⏱ Timeframes
5m / 15m → Crypto & Forex intraday
1H / 4H → Swing trading
Daily → Position trading
📈 Market Conditions
Best in strong trends
Avoid low-volatility ranges
🎯 Pro Tip
Combine with:
Higher-timeframe trend bias
Session filter (London / New York)
Volume confirmation
8️⃣ Final Advice from
🙏 The Blessed Trader Ph.
“This strategy doesn’t predict — it confirms.
Be patient. Wait for clean Heikin Ashi closes.
Trade less, but trade better.”
VRVP Clone + Multi-POC -- PerroGordoVRVP Clone + Multi-POC
Overview
VRVP Clone + Multi-POC replicates TradingView's native Visible Range Volume Profile with several practical enhancements. The indicator displays volume distribution across price levels for the visible chart range, which is useful for identifying high-volume nodes, support/resistance zones, and areas of price acceptance.
The main differentiator from the built-in VRVP is support for multiple Point of Control (POC) lines with an intelligent peak detection algorithm. Instead of just showing the single highest-volume level, you can identify distinct volume clusters across different price zones.
Features
Dynamic Visible Range
Recalculates automatically on scroll or zoom
Analyzes only visible bars
Profile width scales proportionally to view
Multiple POC Detection (1-8 levels)
Volume Nodes Mode: Peak detection algorithm finds local volume maxima across distinct price clusters
Highest Rows Mode: Traditional approach - top N rows by raw volume
Configurable minimum separation between nodes to prevent bunching
Individual colors for each POC level
Volume Display Modes
Up/Down: Split bars showing buy vs. sell volume with black outlines for visual separation
Total: Single bar colored by dominant direction
Delta: Net volume (buy minus sell)
Delta Intensity: Gradient coloring indicating buyer/seller dominance strength per row
Value Area
Configurable percentage (default 70%)
VAH and VAL lines with customizable styles
Separate colors for volume inside vs. outside the Value Area
Positioning Options
Left or Right placement
Adjustable profile width as percentage of visible range
Row configuration via "Number of Rows" or "Ticks Per Row"
Additional Features
Statistics table showing bars analyzed, total volume, up/down percentages, price vs POC
POC price labels on chart
Line style options (Solid, Dashed, Dotted)
+++++
How It Works
Volume from each bar is distributed across price rows based on the bar's high-low range. The allocation is proportional - if a bar spans 3 rows with 60% overlap on one row, that row receives 60% of the bar's volume.
Volume Nodes Mode identifies local peaks in the distribution (rows where volume exceeds both neighbors), then selects the highest peaks while enforcing minimum separation. This surfaces distinct support/resistance clusters rather than stacking all POC lines in a single high-volume area.
+++++
Settings
Inputs
Setting - Description
Rows Layout - "Number of Rows" or "Ticks Per Row"
Row Size - Number of rows (24-200) or ticks per row
Volume - "Up/Down", "Total", "Delta", or source selection
Value Area % - Percentage of volume for Value Area (default 70%)
Profile Width % - Width as percentage of visible bars
Placement - "Right" or "Left" side of chart
Enhancements
Setting - Description
Number of POCs | 1-8 POC lines |
POC Mode - "Volume Nodes" (peak detection) or "Highest Rows" (traditional)
Min Node Separation - Minimum rows between nodes (0 = auto-calculate)
Delta Intensity Mode - Gradient coloring by dominance
Show Stats Table - Display analysis statistics
Style
Setting - Description
Up/Down Volume Colors - Buy/sell volume colors
Value Area Colors - Colors for VA regions
POC/VAH/VAL Colors - Line colors and styles
POC 2-8 Colors - Colors for additional POC levels
+++++
Applications
Support/Resistance Identification
High-volume nodes tend to act as price magnets. Multiple POCs reveal layered S/R zones that aren't visible with a single POC.
Fair Value Reference
The Value Area represents where 70% of volume traded. Price tends to revert to this zone.
Volume Gap Analysis
Low-volume areas between POCs indicate prices that were rejected quickly - potential breakout or breakdown levels.
Market Structure
Multiple POCs across price levels show where the market has found acceptance, useful for distinguishing range-bound conditions from trending moves.
+++++
Practical Notes
Volume Nodes mode with 3-5 POCs works well for identifying distinct S/R clusters
Higher row counts give more granular analysis on lower timeframes
Delta Intensity mode quickly shows buyer/seller dominance at each level without the visual noise of split bars
If POCs are too clustered, increase Min Node Separation; if too spread out, decrease it or set to 0 for auto
The stats table vs POC comparison is useful for quick directional bias assessment
+++++
Requirements
Any instrument with volume data
Works well on futures, forex, and liquid equities
Pine Script v6
+++++
Version History
v1.1
- Added Volume Nodes mode with peak detection
- Expanded to 8 POC levels
- Added Min Node Separation setting
- Fixed POC label positioning for left placement
- Added black outlines to Up/Down volume bars
v1.0
- Initial release replicating VRVP with multi-POC enhancement
- Delta Intensity mode
- Statistics table
CBT w/15m Dashboard InfoThe same 10ema indicator, but now putting an indication in the dashboard showing where price is on the 15m compared to the 10 ema and the cloud.
EMA Slope - RSI Indicator# EMA Slope - RSI Indicator
## Script Description (for Publishing Page)
**EMA Slope - RSI Indicator** combines normalized EMA slope momentum analysis with RSI divergence detection and momentum comparison to create a visual signal indicator with five distinct signal types. The indicator's originality lies in its unique "No Trade Zone" (NTZ) concept applied to slope momentum, combined with centered RSI format for direct comparison, and multiple complementary signal methods that work together to identify both trend-following and reversal opportunities across different market conditions.
**Core Concept - EMA Slope Normalization:** Calculates rate of change of long MA (default 160 EMA) by comparing current value to N bars ago (default 3 bars). Raw slope difference normalized to -100 to +100 scale using 500-bar rolling range: normalizedSlope = 100 * (longMA - longMA ) / (highest(maDF, 500) - lowest(maDF, 500)). Creates consistent momentum oscillator comparable across price levels and timeframes.
**No Trade Zone (NTZ) Logic:** NTZ (±8 default) creates neutral zone where slope momentum is too weak for reliable signals. Indicator only triggers NTZ Cross signals when slope crosses out of threshold zone, ensuring signals occur only when momentum is sufficiently strong.
**Centered RSI Format (RSI-50):** Traditional RSI (0-100 range) difficult to compare with slope. This indicator uses centered RSI = (RSI - 50), creating -50 to +50 range zero-centered on same scale as normalized slope. Enables direct visual and mathematical comparison between RSI and slope momentum, enabling Slope-RSI exhaustion detection and RSI-Slope Oscillator signals.
**Component Integration:** Five signal types target different market conditions. NTZ Cross and Acceleration target trend-following when momentum strong. RSI Divergence and Slope-RSI Divergence target reversals when price/momentum diverge. RSI-Slope Oscillator targets momentum alignment when RSI and slope converge. Multi-method approach provides signals across trending, reversing, and ranging markets.
### 📊 Technical Calculations
**Slope Normalization:** maDF = longMA - longMA , normalized: maDf = 100 * maDF / (highest(maDF, 500) - lowest(maDF, 500)), ranges -100 to +100.
**Acceleration Detection:** maAcce = abs(maDf - maDf ) * smoothBars * 2, normalized: maAcc = 50 * maAcce / highest(maAcce, 200). Values above threshold (35 display, 40 signals) indicate sudden momentum shifts. Visualized as colored circles: cyan (bullish), red (bearish).
**RSI Calculation:** rsi = sma(rsi(source, length), smoothing), centered: cRsi = rsi - 50 (ranges -50 to +50). Smoothed using SMA (default 3 bars) to reduce noise.
**RSI Divergence:** Uses pivot high/low detection on smoothed RSI. Pivot lookback = 16 - sensitivityInput (inverse: sensitivity 6 = 10-bar lookback, sensitivity 10 = 6-bar lookback). Compares price pivots (actual high/low including wicks) against RSI pivots. Bullish: priceLowerLow AND rsiHigherLow. Bearish: priceHigherHigh AND rsiLowerHigh. Stores multiple previous pivots (default 8 max) for comparison.
**Slope-RSI Exhaustion:** Compares normalized slope against centered RSI on same scale. Bearish: slope accelerating up (delta > 0, slope > NTZ) BUT RSI declining (cRsi < cRsi AND cRsi < cRsi ). Bullish: slope accelerating down (delta < 0, slope < -NTZ) BUT RSI rising. Gap threshold (default 10.0 points) filters noise. Visualized with dashed lines and gap labels.
**RSI-Slope Oscillator:** State machine tracks cross events (rsiSlopeCrossUp = cRsi > maDf AND cRsi <= maDf ), waits for confirmation: both RSI and slope heading same direction. Long: RSI crosses above slope AND both heading UP. Short: RSI crosses below slope AND both heading DOWN. Useful for range-bound markets.
**Stretch Filter:** maPercentDiff = (longMA - shortMA) / shortMA * 100. Blocks long signals if longMA > shortMA by threshold (overextended up). Blocks short signals if shortMA > longMA by threshold (overextended down). Default 0.45% prevents signals when MAs too far apart.
**Delta Calculation:** Measures change in normalized slope between bars. Timeframe mode: compares current confirmed slope with previous confirmed (more reliable, slight delay). Standard mode: compares current with previous bar (faster, may use unconfirmed). Minimum threshold (default 3.4) filters weak momentum changes.
**Trailing Stop (Blackflag FTS Swingarm):** Uses Wilder's MA of true range. Modified mode: trueRange = max(HiLo, HRef, LRef) with enhanced gap handling. Unmodified: standard true range. Trailing stop calculated based on ATR factor and price trend direction. Separate settings for divergence signals (wider stops, grace periods).
### 🚀 Signal Types and Conditions
**1. NTZ Cross Signals:** Long: Slope crosses above +NTZ (default +8) AND positive delta ≥ threshold (default 3.4) AND stretch filter allows AND optional trend confirmation (short MA > long MA). Short: Slope crosses below -NTZ AND negative delta ≥ threshold AND filters allow. Exit: Slope re-enters NTZ OR reverses direction for confirmation bars OR trailing stop.
**2. Acceleration Signals:** Long: Acceleration ≥ threshold (default 40) AND slope above NTZ AND positive delta sufficient AND filters allow. Short: Acceleration ≥ threshold AND slope below -NTZ AND negative delta sufficient AND filters allow. Visual: Colored circles (cyan bullish, red bearish). Works independently to catch sudden momentum bursts.
**3. RSI Divergence Signals:** Bullish: Price lower low while smoothed RSI higher low, detected via pivot comparison (default up to 8 pivots). Bearish: Price higher high while RSI lower high. Optional Slope-RSI confirmation. Visual: Purple lines (bearish), lime lines (bullish). Exit: Divergence-specific trailing stop (wider ATR, grace period).
**4. Slope-RSI Divergence Signals:** Bullish: Slope accelerating down (negative delta, slope < -NTZ) BUT RSI rising over lookback AND gap exceeds threshold (default 10.0 points). Bearish: Slope accelerating up (positive delta, slope > NTZ) BUT RSI declining AND gap exceeds threshold. Visual: Orange triangles (bullish exhaustion), yellow triangles (bearish exhaustion) with dashed lines. Exit: Divergence-specific trailing stop.
**5. RSI-Slope Oscillator Signals:** Long: RSI crosses above slope AND both heading upward. Short: RSI crosses below slope AND both heading downward. State machine tracks cross then confirms direction. Exit: Opposite oscillator condition (allows reversal) OR trailing stop after grace period.
### 📖 How to Use
**Adding to Chart:** TradingView → Indicators → Search "EMA Slope - RSI Indicator" → Add (displays in separate pane below price).
**Visual Elements:** Colored area = normalized EMA slope (Green = bullish above NTZ, Red = bearish below -NTZ, Gray = NTZ zone). Blue line = Centered RSI (-50 to +50). Colored circles = Acceleration (Cyan = bullish, Red = bearish). Green triangles (↑) = Long signals (bottom). Red triangles (↓) = Short signals (top). Orange X = Exit signals. Dashed lines = NTZ boundaries. Purple/Lime lines = RSI divergences. Orange/Yellow triangles = Slope-RSI exhaustion. Table (top-right) = Current Slope, RSI, Gap values.
**Parameter Configuration:** MA Settings: Short 40 (stretch filter), Long 160 (slope), Types: SMA/EMA/DEMA/TEMA/WMA/VWMA/SMWMA/SWMA/HMA. Ratios: 20/80 (fast), 40/160 (standard), 50/200 (slow). Core: NTZ Threshold 8 (5-6 more signals, 10-12 stronger), Min Delta 3.4 (5-10 stronger, 1-3 sensitive), Max Stretch 0.45% (0.3% conservative, 1.0% permissive, 0 disable), Use Timeframe Delta true (confirmed bar vs previous bar). RSI: Length 14, Smoothing 3, Source close. Divergence: Sensitivity 6 (higher = more sensitive, 6 = 10-bar lookback, 10 = 6-bar lookback), Max Peaks 8 (2-15 range), Show Divergences true. Slope-RSI: Lookback 4 (2-10, higher = conservative), Min Gap 10.0 pts (0-100, higher = strong only, 0 disable), Show Exhaustion true. Signal Enables: NTZ Cross true, Acceleration true, RSI Divergence false, Slope-RSI Divergence true, RSI-Slope Oscillator true, Require Slope-RSI Confirmation false. Exit: Confirmation Bars 4 (0-10, 0 immediate, 2-4 filters false), Show Trailing Stop true, Trail Type Modified/Unmodified, ATR Period 10, ATR Factor 4.0 (2-3 tight, 4 standard, 5-6 wide), Divergence Grace 3 bars, Divergence ATR 4.0 (recommend 5-8), Oscillator Grace 3 bars, Oscillator ATR 4.0.
**Alerts:** Right-click indicator pane → Add Alert → Choose condition (Long/Short Entry/Exit) → Configure notifications.
**Interpreting Signals:** Trending Markets: Focus NTZ Cross and Acceleration, higher NTZ (10-12) for stronger signals, use trend confirmation. Reversal Opportunities: Enable RSI Divergence and Slope-RSI Divergence, look for exhaustion markers and divergence lines, use wider stops. Range-Bound: Enable RSI-Slope Oscillator, signals when RSI and slope align, allows position reversal. Multi-Timeframe: Higher TF for trend, lower TF for timing, stronger when aligned. Market Adjustments: Crypto 20/80 MA, NTZ 6-7, Delta 4-5 | Forex 40/160 MA, NTZ 8, Delta 3.4 | Stocks 50/200 MA, NTZ 10-12, Delta 2-3.
### 📈 Use Cases
Day Trading (5m-15m, fast MAs 20/80), Swing Trading (1h-4h, standard 40/160), Position Trading (4h-Daily, slow 50/200), Trend Following (NTZ Cross/Acceleration in trends), Reversal Trading (RSI Divergence/Slope-RSI at reversals), Range Trading (RSI-Slope Oscillator in choppy markets), Momentum Analysis (Centered RSI and normalized slope comparison), Trend Exhaustion Detection (Slope-RSI exhaustion markers).
### ⚠️ Important Disclaimer
**THIS IS NOT FINANCIAL ADVICE**
This indicator is for educational and informational purposes only. Trading involves substantial risk of loss and is not suitable for all investors. Past performance does not guarantee future results. No guarantee of accuracy - signals may be false. Not professional financial advice - consult a qualified advisor. Use only as part of comprehensive analysis. Always use proper risk management. Combine with other analysis techniques before making trading decisions. Indicator signals don't guarantee profitable trades. You are solely responsible for trading decisions and risk management. By using this indicator, you acknowledge understanding the risks and that you use it at your own risk. Never invest more than you can afford to lose. Works on all markets: Crypto, Forex, Stocks, Commodities, Futures
## Short Description (for Script Header - 200-300 chars)
Visual signal indicator combining normalized EMA slope momentum (No Trade Zone concept) with centered RSI format for direct comparison. Five signal types: NTZ momentum crosses, acceleration bursts, price-RSI divergences, slope-RSI exhaustion reversals, and RSI-slope oscillator alignment. Includes stretch filter, exit confirmation bars, and trailing stop exits with separate settings per signal type.
## Tags (for Publishing)
EMA, Moving Average, Slope, Momentum, No Trade Zone, NTZ, Indicator, Technical Analysis, RSI, Relative Strength Index, Centered RSI, RSI-50, Divergence, Slope-RSI, Exhaustion, RSI-Slope Oscillator, Normalized Comparison, Stretch Filter, Trend Confirmation, Exit Confirmation, Trailing Stop, Alerts, Signals, Visual Signals, Entry Signals, Exit Signals, Crypto, Forex, Stocks, Futures, Swing Trading, Day Trading, Reversal Trading, Range Trading, Momentum Analysis
## Category
**Indicators** → **Momentum**
Previous HLC Single ChoiceThis indicator allows traders to visualize the High, Low, and Close (HLC) levels of a previous timeframe directly on their current chart. By plotting these key levels from a higher timeframe, traders can identify significant support and resistance zones, potential breakout levels, and the overall market context without needing to switch back and forth between different chart intervals.
How it Works
The script utilizes the request.security() function to fetch the High, Low, and Close data from the previous completed bar of a user-selected timeframe.
Unlike static multi-timeframe indicators that might clutter the chart with too many lines, this script is designed for simplicity and flexibility. It uses the input.timeframe functionality, allowing you to select any standard or custom timeframe available on TradingView (e.g., 4-hour, Daily, Weekly, 3-Month, 12-Month) via a simple dropdown menu.
Once a timeframe is selected, the indicator plots three distinct lines:
Green Line: The High of the previous timeframe.
Red Line: The Low of the previous timeframe.
Orange Line: The Close of the previous timeframe.
Usage Examples
These levels often act as dynamic support and resistance.
Breakouts: A move above the previous timeframe's High can signal bullish strength.
Breakdowns: A drop below the previous timeframe's Low can signal bearish weakness.
Ranges: The space between the High and Low often defines the trading range for the current session.
Screenshots
Ethereum (1D Chart / 6M Levels):
Here we see the 6-Month High, Low, and Close plotted on a Daily chart. Note how the previous 6-month levels frame the long-term trend.
Silver (2h Chart / 1W Levels):
This example shows Silver on a 2-hour chart with Weekly levels. This is useful for intraday traders looking for weekly pivots.
EURUSD (30m Chart / 480m Levels):
A granular look at the Euro on a 30-minute chart using an 8-hour (480m) timeframe overlay. This helps identify mid-session reversals.
Apple (1D Chart / 3M Levels):
Apple stock on a Daily chart with Quarterly (3-Month) levels, highlighting major structural levels for swing trading.
Settings
Choose Timeframe: Select the specific timeframe you wish to overlay (Default is 3 Months).
Disclaimer
This script is for educational and informational purposes only. It DOES NOT constitute financial advice. Past performance is not indicative of future results. Always do your own research and risk management before trading.
arraysLibrary "arrays"
Supplementary array methods.
method delete(arr, index)
remove int object from array of integers at specific index
Namespace types: array
Parameters:
arr (array) : int array
index (int) : index at which int object need to be removed
Returns: void
method delete(arr, index)
remove float object from array of float at specific index
Namespace types: array
Parameters:
arr (array) : float array
index (int) : index at which float object need to be removed
Returns: float
method delete(arr, index)
remove bool object from array of bool at specific index
Namespace types: array
Parameters:
arr (array) : bool array
index (int) : index at which bool object need to be removed
Returns: bool
method delete(arr, index)
remove string object from array of string at specific index
Namespace types: array
Parameters:
arr (array) : string array
index (int) : index at which string object need to be removed
Returns: string
method delete(arr, index)
remove color object from array of color at specific index
Namespace types: array
Parameters:
arr (array) : color array
index (int) : index at which color object need to be removed
Returns: color
method delete(arr, index)
remove chart.point object from array of chart.point at specific index
Namespace types: array
Parameters:
arr (array) : chart.point array
index (int) : index at which chart.point object need to be removed
Returns: void
method delete(arr, index)
remove line object from array of lines at specific index and deletes the line
Namespace types: array
Parameters:
arr (array) : line array
index (int) : index at which line object need to be removed and deleted
Returns: void
method delete(arr, index)
remove label object from array of labels at specific index and deletes the label
Namespace types: array
Parameters:
arr (array) : label array
index (int) : index at which label object need to be removed and deleted
Returns: void
method delete(arr, index)
remove box object from array of boxes at specific index and deletes the box
Namespace types: array
Parameters:
arr (array) : box array
index (int) : index at which box object need to be removed and deleted
Returns: void
method delete(arr, index)
remove table object from array of tables at specific index and deletes the table
Namespace types: array
Parameters:
arr (array) : table array
index (int) : index at which table object need to be removed and deleted
Returns: void
method delete(arr, index)
remove linefill object from array of linefills at specific index and deletes the linefill
Namespace types: array
Parameters:
arr (array) : linefill array
index (int) : index at which linefill object need to be removed and deleted
Returns: void
method delete(arr, index)
remove polyline object from array of polylines at specific index and deletes the polyline
Namespace types: array
Parameters:
arr (array) : polyline array
index (int) : index at which polyline object need to be removed and deleted
Returns: void
method popr(arr)
remove last int object from array
Namespace types: array
Parameters:
arr (array) : int array
Returns: int
method popr(arr)
remove last float object from array
Namespace types: array
Parameters:
arr (array) : float array
Returns: float
method popr(arr)
remove last bool object from array
Namespace types: array
Parameters:
arr (array) : bool array
Returns: bool
method popr(arr)
remove last string object from array
Namespace types: array
Parameters:
arr (array) : string array
Returns: string
method popr(arr)
remove last color object from array
Namespace types: array
Parameters:
arr (array) : color array
Returns: color
method popr(arr)
remove last chart.point object from array
Namespace types: array
Parameters:
arr (array) : chart.point array
Returns: void
method popr(arr)
remove and delete last line object from array
Namespace types: array
Parameters:
arr (array) : line array
Returns: void
method popr(arr)
remove and delete last label object from array
Namespace types: array
Parameters:
arr (array) : label array
Returns: void
method popr(arr)
remove and delete last box object from array
Namespace types: array
Parameters:
arr (array) : box array
Returns: void
method popr(arr)
remove and delete last table object from array
Namespace types: array
Parameters:
arr (array) : table array
Returns: void
method popr(arr)
remove and delete last linefill object from array
Namespace types: array
Parameters:
arr (array) : linefill array
Returns: void
method popr(arr)
remove and delete last polyline object from array
Namespace types: array
Parameters:
arr (array) : polyline array
Returns: void
method shiftr(arr)
remove first int object from array
Namespace types: array
Parameters:
arr (array) : int array
Returns: int
method shiftr(arr)
remove first float object from array
Namespace types: array
Parameters:
arr (array) : float array
Returns: float
method shiftr(arr)
remove first bool object from array
Namespace types: array
Parameters:
arr (array) : bool array
Returns: bool
method shiftr(arr)
remove first string object from array
Namespace types: array
Parameters:
arr (array) : string array
Returns: string
method shiftr(arr)
remove first color object from array
Namespace types: array
Parameters:
arr (array) : color array
Returns: color
method shiftr(arr)
remove first chart.point object from array
Namespace types: array
Parameters:
arr (array) : chart.point array
Returns: void
method shiftr(arr)
remove and delete first line object from array
Namespace types: array
Parameters:
arr (array) : line array
Returns: void
method shiftr(arr)
remove and delete first label object from array
Namespace types: array
Parameters:
arr (array) : label array
Returns: void
method shiftr(arr)
remove and delete first box object from array
Namespace types: array
Parameters:
arr (array) : box array
Returns: void
method shiftr(arr)
remove and delete first table object from array
Namespace types: array
Parameters:
arr (array) : table array
Returns: void
method shiftr(arr)
remove and delete first linefill object from array
Namespace types: array
Parameters:
arr (array) : linefill array
Returns: void
method shiftr(arr)
remove and delete first polyline object from array
Namespace types: array
Parameters:
arr (array) : polyline array
Returns: void
method push(arr, val, maxItems)
add int to the end of an array with max items cap. Objects are removed from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : int array
val (int) : int object to be pushed
maxItems (int) : max number of items array can hold
Returns: int
method push(arr, val, maxItems)
add float to the end of an array with max items cap. Objects are removed from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : float array
val (float) : float object to be pushed
maxItems (int) : max number of items array can hold
Returns: float
method push(arr, val, maxItems)
add bool to the end of an array with max items cap. Objects are removed from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : bool array
val (bool) : bool object to be pushed
maxItems (int) : max number of items array can hold
Returns: bool
method push(arr, val, maxItems)
add string to the end of an array with max items cap. Objects are removed from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : string array
val (string) : string object to be pushed
maxItems (int) : max number of items array can hold
Returns: string
method push(arr, val, maxItems)
add color to the end of an array with max items cap. Objects are removed from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : color array
val (color) : color object to be pushed
maxItems (int) : max number of items array can hold
Returns: color
method push(arr, val, maxItems)
add chart.point to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : chart.point array
val (chart.point) : chart.point object to be pushed
maxItems (int) : max number of items array can hold
Returns: chart.point
method push(arr, val, maxItems)
add line to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : line array
val (line) : line object to be pushed
maxItems (int) : max number of items array can hold
Returns: line
method push(arr, val, maxItems)
add label to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : label array
val (label) : label object to be pushed
maxItems (int) : max number of items array can hold
Returns: label
method push(arr, val, maxItems)
add box to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : box array
val (box) : box object to be pushed
maxItems (int) : max number of items array can hold
Returns: box
method push(arr, val, maxItems)
add table to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : table array
val (table) : table object to be pushed
maxItems (int) : max number of items array can hold
Returns: table
method push(arr, val, maxItems)
add linefill to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : linefill array
val (linefill) : linefill object to be pushed
maxItems (int) : max number of items array can hold
Returns: linefill
method push(arr, val, maxItems)
add polyline to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
Namespace types: array
Parameters:
arr (array) : polyline array
val (polyline) : polyline object to be pushed
maxItems (int) : max number of items array can hold
Returns: polyline
method unshift(arr, val, maxItems)
add int to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : int array
val (int) : int object to be unshift
maxItems (int) : max number of items array can hold
Returns: int
method unshift(arr, val, maxItems)
add float to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : float array
val (float) : float object to be unshift
maxItems (int) : max number of items array can hold
Returns: float
method unshift(arr, val, maxItems)
add bool to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : bool array
val (bool) : bool object to be unshift
maxItems (int) : max number of items array can hold
Returns: bool
method unshift(arr, val, maxItems)
add string to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : string array
val (string) : string object to be unshift
maxItems (int) : max number of items array can hold
Returns: string
method unshift(arr, val, maxItems)
add color to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : color array
val (color) : color object to be unshift
maxItems (int) : max number of items array can hold
Returns: color
method unshift(arr, val, maxItems)
add chart.point to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : chart.point array
val (chart.point) : chart.point object to be unshift
maxItems (int) : max number of items array can hold
Returns: chart.point
method unshift(arr, val, maxItems)
add line to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : line array
val (line) : line object to be unshift
maxItems (int) : max number of items array can hold
Returns: line
method unshift(arr, val, maxItems)
add label to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : label array
val (label) : label object to be unshift
maxItems (int) : max number of items array can hold
Returns: label
method unshift(arr, val, maxItems)
add box to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : box array
val (box) : box object to be unshift
maxItems (int) : max number of items array can hold
Returns: box
method unshift(arr, val, maxItems)
add table to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : table array
val (table) : table object to be unshift
maxItems (int) : max number of items array can hold
Returns: table
method unshift(arr, val, maxItems)
add linefill to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : linefill array
val (linefill) : linefill object to be unshift
maxItems (int) : max number of items array can hold
Returns: linefill
method unshift(arr, val, maxItems)
add polyline to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
Namespace types: array
Parameters:
arr (array) : polyline array
val (polyline) : polyline object to be unshift
maxItems (int) : max number of items array can hold
Returns: polyline
method isEmpty(arr)
checks if an int array is either null or empty
Namespace types: array
Parameters:
arr (array) : int array
Returns: bool
method isEmpty(arr)
checks if a float array is either null or empty
Namespace types: array
Parameters:
arr (array) : float array
Returns: bool
method isEmpty(arr)
checks if a string array is either null or empty
Namespace types: array
Parameters:
arr (array) : string array
Returns: bool
method isEmpty(arr)
checks if a bool array is either null or empty
Namespace types: array
Parameters:
arr (array) : bool array
Returns: bool
method isEmpty(arr)
checks if a color array is either null or empty
Namespace types: array
Parameters:
arr (array) : color array
Returns: bool
method isEmpty(arr)
checks if a chart.point array is either null or empty
Namespace types: array
Parameters:
arr (array) : chart.point array
Returns: bool
method isEmpty(arr)
checks if a line array is either null or empty
Namespace types: array
Parameters:
arr (array) : line array
Returns: bool
method isEmpty(arr)
checks if a label array is either null or empty
Namespace types: array
Parameters:
arr (array) : label array
Returns: bool
method isEmpty(arr)
checks if a box array is either null or empty
Namespace types: array
Parameters:
arr (array) : box array
Returns: bool
method isEmpty(arr)
checks if a linefill array is either null or empty
Namespace types: array
Parameters:
arr (array) : linefill array
Returns: bool
method isEmpty(arr)
checks if a polyline array is either null or empty
Namespace types: array
Parameters:
arr (array) : polyline array
Returns: bool
method isEmpty(arr)
checks if a table array is either null or empty
Namespace types: array
Parameters:
arr (array) : table array
Returns: bool
method isNotEmpty(arr)
checks if an int array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : int array
Returns: bool
method isNotEmpty(arr)
checks if a float array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : float array
Returns: bool
method isNotEmpty(arr)
checks if a string array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : string array
Returns: bool
method isNotEmpty(arr)
checks if a bool array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : bool array
Returns: bool
method isNotEmpty(arr)
checks if a color array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : color array
Returns: bool
method isNotEmpty(arr)
checks if a chart.point array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : chart.point array
Returns: bool
method isNotEmpty(arr)
checks if a line array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : line array
Returns: bool
method isNotEmpty(arr)
checks if a label array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : label array
Returns: bool
method isNotEmpty(arr)
checks if a box array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : box array
Returns: bool
method isNotEmpty(arr)
checks if a linefill array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : linefill array
Returns: bool
method isNotEmpty(arr)
checks if a polyline array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : polyline array
Returns: bool
method isNotEmpty(arr)
checks if a table array is not null and has at least one item
Namespace types: array
Parameters:
arr (array) : table array
Returns: bool
method flush(arr)
remove all int objects in an array
Namespace types: array
Parameters:
arr (array) : int array
Returns: int
method flush(arr)
remove all float objects in an array
Namespace types: array
Parameters:
arr (array) : float array
Returns: float
method flush(arr)
remove all bool objects in an array
Namespace types: array
Parameters:
arr (array) : bool array
Returns: bool
method flush(arr)
remove all string objects in an array
Namespace types: array
Parameters:
arr (array) : string array
Returns: string
method flush(arr)
remove all color objects in an array
Namespace types: array
Parameters:
arr (array) : color array
Returns: color
method flush(arr)
remove all chart.point objects in an array
Namespace types: array
Parameters:
arr (array) : chart.point array
Returns: chart.point
method flush(arr)
remove and delete all line objects in an array
Namespace types: array
Parameters:
arr (array) : line array
Returns: line
method flush(arr)
remove and delete all label objects in an array
Namespace types: array
Parameters:
arr (array) : label array
Returns: label
method flush(arr)
remove and delete all box objects in an array
Namespace types: array
Parameters:
arr (array) : box array
Returns: box
method flush(arr)
remove and delete all table objects in an array
Namespace types: array
Parameters:
arr (array) : table array
Returns: table
method flush(arr)
remove and delete all linefill objects in an array
Namespace types: array
Parameters:
arr (array) : linefill array
Returns: linefill
method flush(arr)
remove and delete all polyline objects in an array
Namespace types: array
Parameters:
arr (array) : polyline array
Returns: polyline
bing_CountLibrary "Count"
method comparisonCheck(value1, op, value2)
Namespace types: series int, simple int, input int, const int
Parameters:
value1 (int)
op (string)
value2 (int)
libSchedulerTLDR: This is a lightweight, easy-to-use way to throttle sections of Pinescript v6 scripts, the same as you'd use barstate.isconfirmed or barstate.islast. You can use this for enormous efficiency gains, provided you design your script to handle updates on differing intervals rather than computing everything on each cycle. Usage is easy:
```
import showmethegrail/libScheduler/1 as libScheduler
i_tf_fetch = input.enum(libScheduler.Timeframes.C, "Fetch Interval",
tooltip="Do things just once every interval, default=once per chart timeframe.")
var scheduler = libScheduler.Scheduler.new().init()
if scheduler.every(i_tf_fetch)
// Do stuff
```
That's it. If you need to know more, the code is well-commented.
Combine this with sensible caching, and you can right-size the compute-heavy sections of your script, for better stability and managed use of Pinescript compute quotas. You'll need to know the proper use of var and varip to make the most of this, but I found this effectively replaced a lot of boilerplate in throttling my own scripts.
Sound software engineering, made Pinescript-level easy. That's all.
Ultimate 20x MA Hub [MTF/SMA/EMA]Ultimate 20x MA Hub
This is an all-in-one Moving Average aggregator designed to overcome the indicator limit and keep your chart clean. It allows you to plot up to 20 different Moving Averages within a single indicator instance, with full Multi-Timeframe (MTF) support.
Key Features:
20 Lines in 1 Script: Manage all your MAs in one place.
Multi-Timeframe (MTF): Each line can have its own independent timeframe. For example, you can view a Daily 200 SMA while trading on a 15-minute chart.
SMA & EMA Support: Freely switch between Simple and Exponential Moving Averages for each line.
No Repainting: The MTF logic uses barmerge.gaps_on to ensure historical data does not repaint, providing a realistic backtest view.
Custom Styling: Supports different line widths and styles (e.g., dotted lines (circles) for specific MAs).
Default Configuration (Trend Setup):
MA 1: Daily (1D) 30 SMA — Blue Line (Short-term daily trend)
MA 2: Weekly (1W) 50 SMA — White Dotted Line (Medium-term weekly support/resistance)
MA 3: Weekly (1W) 200 SMA — Red Thick Line (Major long-term bull/bear divider)
MA 4 to MA 20 are disabled by default but can be enabled in the settings.
How to use: Go to the indicator settings to enable more lines, change periods, or select different timeframes (e.g., "D" for Daily, "W" for Weekly).
NY Opening Range [LuckyAlgo]
This custom ORM (Opening Range Move) indicator is designed as a tool for traders who focus not just on where a range is, but on the magnitude of the expansion following the initial morning volatility.
Here is a summary of the indicator and how it differentiates itself from standard Opening Range Breakout (ORB) tools.
Indicator Summary
The script captures the high and low of the market during the first 30 minutes of the NY session (09:30–10:00 AM EST). Once this range is set, it tracks the "Expansion Move" - the point distance from the range's boundary to the current session's high or low. It visualizes this through color-coded zones, dynamic labels at the session extremes, and a statistical table that benchmarks today's volatility against the recent past.
What specific questions does this indicator answer?
While most indicators tell you "the range is broken," this indicator answers quantitative questions vital for trade management:
1. "How far has the market stretched relative to the breakout?"
The indicator provides the exact point distance (+/-) from the range high/low. This helps you determine if the move is just beginning or if it has already extended significantly.
2. "Is the current move 'normal' or an outlier?"
By using the Stats Table, you can see if the current 40-point move on NQ is typical or if the average move over the last 10 days is actually 80 points. This prevents you from "fading" a move that still has average room to grow, or taking a "pro-trend" trade when the market is already exhausted.
3. "Where is the session extreme located?"
The inclusion of the dashed High of Day (HOD) and Low of Day (LOD) lines with attached labels tells you exactly where the "Move" calculation is peaking. If the HOD line hasn't moved for two hours, you know the bullish expansion has stalled.
4. "When is the data no longer relevant?"
Because of the 17:00 EST reset logic, the indicator answers the "end of day" question for futures traders. It stops measuring at the settlement/close of the electronic session, ensuring your charts are clean for the overnight (Globex) session or ready for the next morning.
Technical Advantage
Most scripts use a single "point in time" to reset. This script uses a Trading Window logic, which is much more robust. If a bar is missing at exactly 17:00 due to low volume or a data glitch, the indicator won't "break" or keep drawing old lines - it understands the entire window of time it is allowed to exist in.
Credit to @LuxAlgo for his initial Opening Range Breakout indicator used as a base to develop this version.
VWP TPO Single PrintsPrint Market Profile TPOs single print.
In Market Profile, Single Prints are price levels where the market moved so rapidly that only a single TPO (Time Price Opportunity) exists for the entire trading session.
## What They Represent
Single prints are a sign of extreme imbalance and aggressive initiative activity.
* Speed: They show that the "Other Timeframe" (OTF) participants (large institutional traders) entered the market with such conviction that they drove the price through a range without allowing for two-way trade.
* Lack of Value: Because so little time was spent there, no "value" was established. The market essentially skipped those prices in a rush to find a new area of balance
The "start" of a single print zone often acts as a strong barrier. If the market returns to that level, aggressive participants often defend it to keep the trend alive.
Single prints represent an "unfinished auction." Markets have a tendency to eventually return to these zones to "repair" the profile and trade more thoroughly through those prices.






















