Simple Turnover (Enhanced v2)📊 Simple Turnover (Enhanced)
🔹 Overview
The Simple Turnover Indicator calculates a stock’s turnover by combining both price and volume, and then compares it against quarterly highs. This helps traders quickly gauge whether market participation in a move is strong enough to confirm a breakout, or weak and likely to be false.
Unlike volume alone, turnover considers both traded volume and price level, giving a truer reflection of capital flow in/out of a stock.
________________________________________
🔹 Formulae Used
1. Average Price (SMA)
AvgPrice=SMA(Close,n)
2. Average Volume (SMA)
AvgVol=SMA(Volume,n)
3. Turnover (Raw)
Turnover raw=AvgPrice × AvgVol
4. Unit Adjustment
• If Millions → Turnover = Turnover raw × 10^−6
• If Crores → Turnover = Turnover raw × 10^−7
• If Raw → Turnover = Turnover raw
5. Quarterly High Turnover (qHigh)
Within each calendar quarter (Jan–Mar, Apr–Jun, Jul–Sep, Oct–Dec), we track the maximum turnover seen:
qHigh=max (Turnover within current quarter)
________________________________________
🔹 Visualization
• Bars → Color follows price candle:
o Green if Close ≥ Open
o Red if Close < Open
• Blue Line → Rolling Quarterly High Turnover (qHigh)
________________________________________
🔹 Strategy Use Case
The Simple Turnover Indicator is most effective for confirming true vs false breakouts.
• A true breakout should be supported by increasing turnover, showing real capital backing the move.
• A false breakout often occurs with weak or declining turnover, suggesting lack of conviction.
📌 Example Strategy (3H timeframe):
1. Identify a demand zone using your preferred supply-demand indicator.
2. From this demand zone, monitor turnover bars.
3. A potential long entry is validated when:
o The current turnover bar is at least 20% higher than the previous one or two bars.
o Example setting: SMA length = 5 (i.e., turnover = 5-bar average close × 5-bar average volume).
4. This confirms strong participation in the move, increasing probability of a sustained breakout.
________________________________________
🔹 Disclaimer
⚠️ This indicator/strategy does not guarantee 100% accurate results.
It is intended to improve the probability of identifying true breakouts.
The actual success of the strategy will depend on price action, market momentum, and prevailing market conditions.
Always use this as a supporting tool along with broader trading analysis and risk management.
חפש סקריפטים עבור "4月10日A股市场分析"
Irrationality Index by CRYPTO_ADA_BTC"The market can be irrational longer than you can stay solvent" ~ John Maynard Keynes
This indicator, the Irrationality Index, measures how far the current market price has deviated from a smoothed estimate of its "fair value," normalized for recent volatility. It provides traders with a visual sense of when the market may be behaving irrationally, without giving direct buy or sell signals.
How it works:
1. Fair Value Calculation
The indicator estimates a "fair value" for the asset using a combination of a long-term EMA (exponential moving average) and a linear regression trend over a configurable period. This fair value serves as a smoothed baseline for price, balancing trend-following and mean-reversion.
2. Volatility-Adjusted Z-Score
The deviation between price and fair value is measured in standard deviations of recent log returns:
Z = (log(price) - log(fairValue)) / volatility
This standardization accounts for different volatility environments, allowing comparison across assets.
3. Irrationality Score (0–100)
The Z-score is transformed using a logistic mapping into a 0–100 scale:
- 50 → price near fair value (rational zone)
- >75 → high irrationality, price stretched above fair value
- >90 → extreme irrationality, unsustainable extremes
- <25 → high irrationality, price stretched below fair value
- <10 → extreme bearish irrationality
4. Price vs Fair Value (% deviation)
The indicator plots the percentage difference between price and fair value:
pctDiff = (price - fairValue) / fairValue * 100
- Positive values → Percentage above fair value (optimistic / overvalued)
- Negative values → Percentage below fair value (pessimistic / undervalued)
Visuals:
- Irrationality (%) Line (0–100) shows irrationality level.
- Background Colors: Yellow= high bullish irrationality, Green= extreme bullish irrationality, Orange= high bearish irrationality, Red= extreme bearish irrationality.
- Price - FairValue (%) plot: price deviation vs fair value (%), Colored green above 0 and red below 0.
- Label: display actual price, estimated fair value, and Z-score for the latest bar.
- Alerts: configurable thresholds for high and extreme irrationality.
How to read it:
- 50 → Market trading near fair value.
- >75 / >90 → Price may be irrationally high; risk of pullback increases.
- <25 / <10 → Price may be irrationally low; potential rebound zones, but trends can continue.
- Price - FairValue (%) plot → visual guide for % price stretch relative to fair value.
Notes / Warnings:
- Measures relative deviation, not fundamental value!
- High irrationality scores do not automatically indicate trades; markets can remain can be irrational longer than you can stay solvent .
- Best used with other tools: momentum, volume, divergence, and multi-timeframe analysis.
Supertrend DashboardOverview
This dashboard is a multi-timeframe technical indicator dashboard based on Supertrend. It combines:
Trend detection via Supertrend
Momentum via RSI and OBV (volume)
Volatility via a basic candle-based metric (bs)
Trend strength via ADX
Multi-timeframe analysis to see whether the trend is bullish across different timeframes
It then displays this info in a table on the chart with colors for quick visual interpretation.
2️⃣ Inputs
Dashboard settings:
enableDashboard: Toggle the dashboard on/off
locationDashboard: Where the table appears (Top right, Bottom left, etc.)
sizeDashboard: Text size in the table
strategyName: Custom name for the strategy
Indicator settings:
factor (Supertrend factor): Controls how far the Supertrend lines are from price
atrLength: ATR period for Supertrend calculation
rsiLength: Period for RSI calculation
Visual settings:
colorBackground, colorFrame, colorBorder: Control dashboard style
3️⃣ Core Calculations
a) Supertrend
Supertrend is a trend-following indicator that generates bullish or bearish signals.
Logic:
Compute ATR (atr = ta.atr(atrLength))
Compute preliminary bands:
upperBand = src + factor * atr
lowerBand = src - factor * atr
Smooth bands to avoid false flips:
lowerBand := lowerBand > prevLower or close < prevLower ? lowerBand : prevLower
upperBand := upperBand < prevUpper or close > prevUpper ? upperBand : prevUpper
Determine direction (bullish / bearish):
dir = 1 → bullish
dir = -1 → bearish
Supertrend line = lowerBand if bullish, upperBand if bearish
Output:
st → line to plot
bull → boolean (true = bullish)
b) Buy / Sell Trigger
Logic:
bull = ta.crossover(close, supertrend) → close crosses above Supertrend → buy signal
bear = ta.crossunder(close, supertrend) → close crosses below Supertrend → sell signal
trigger → checks which signal was most recent:
trigger = ta.barssince(bull) < ta.barssince(bear) ? 1 : 0
1 → Buy
0 → Sell
c) RSI (Momentum)
rsi = ta.rsi(close, rsiLength)
Logic:
RSI > 50 → bullish
RSI < 50 → bearish
d) OBV / Volume Trend (vosc)
OBV tracks whether volume is pushing price up or down.
Manual calculation (safe for all Pine versions):
obv = ta.cum( math.sign( nz(ta.change(close), 0) ) * volume )
vosc = obv - ta.ema(obv, 20)
Logic:
vosc > 0 → bullish
vosc < 0 → bearish
e) Volatility (bs)
Measures how “volatile” the current candle is:
bs = ta.ema(math.abs((open - close) / math.max(high - low, syminfo.mintick) * 100), 3)
Higher % → stronger candle moves
Displayed on dashboard as a number
f) ADX (Trend Strength)
= ta.dmi(14, 14)
Logic:
adx > 20 → Trending
adx < 20 → Ranging
g) Multi-Timeframe Supertrend
Timeframes: 1m, 3m, 5m, 10m, 15m, 30m, 1H, 2H, 4H, 12H, 1D
Logic:
for tf in timeframes
= request.security(syminfo.tickerid, tf, f_supertrend(ohlc4, factor, atrLength))
array.push(tf_bulls, bull_tf ? 1.0 : 0.0)
bull_tf ? 1.0 : 0.0 → converts boolean to number
Then we calculate user rating:
userRating = (sum of bullish timeframes / total timeframes) * 10
0 → Strong Sell, 10 → Strong Buy
4️⃣ Dashboard Table Layout
Row Column 0 (Label) Column 1 (Value)
0 Strategy strategyName
1 Technical Rating textFromRating(userRating) (color-coded)
2 Current Signal Buy / Sell (based on last Supertrend crossover)
3 Current Trend Bullish / Bearish (based on Supertrend)
4 Trend Strength bs %
5 Volume vosc → Bullish/Bearish
6 Volatility adx → Trending/Ranging
7 Momentum RSI → Bullish/Bearish
8 Timeframe Trends 📶 Merged cell
9-19 1m → Daily Bullish/Bearish for each timeframe (green/red)
5️⃣ Color Logic
Green shades → bullish / trending / buy
Red / orange → bearish / weak / sell
Yellow → neutral / ranging
Example:
dashboard_cell_bg(1, 1, colorFromRating(userRating))
dashboard_cell_bg(1, 2, trigger ? color.green : color.red)
dashboard_cell_bg(1, 3, superBull ? color.green : color.red)
Makes the dashboard visually intuitive
6️⃣ Key Logic Flow
Calculate Supertrend on current timeframe
Detect buy/sell triggers based on crossover
Calculate RSI, OBV, Volatility, ADX
Request Supertrend on multiple timeframes → convert to 1/0
Compute user rating (percentage of bullish timeframes)
Populate dashboard table with colors and values
✅ The result: You get a compact, fast, multi-timeframe trend dashboard that shows:
Current signal (Buy/Sell)
Current trend (Bullish/Bearish)
Momentum, volatility, and volume cues
Trend across multiple timeframes
Overall technical rating
It’s essentially a full trend-strength scanner directly on your chart.
Mongoose Global Conflict Risk Index v1Overview
The Mongoose Global Conflict Risk Index v1 is a multi-asset composite indicator designed to track the early pricing of geopolitical stress and potential conflict risk across global markets. By combining signals from safe havens, volatility indices, energy markets, and emerging market equities, the index provides a normalized 0–10 score with clear bias classifications (Neutral, Caution, Elevated, High, Shock).
This tool is not predictive of headlines but captures when markets are clustering around conflict-sensitive assets before events are widely recognized.
Methodology
The indicator calculates rolling rate-of-change z-scores for eight conflict-sensitive assets:
Gold (XAUUSD) – classic safe haven
US Dollar Index (DXY) – global reserve currency flows
VIX (Equity Volatility) – S&P 500 implied volatility
OVX (Crude Oil Volatility Index) – energy stress gauge
Crude Oil (CL1!) – WTI front contract
Natural Gas (NG1!) – energy security proxy, especially Europe
EEM (Emerging Markets ETF) – global risk capital flight
FXI (China ETF) – Asia/China proxy risk
Rules:
Safe havens and vol indices trigger when z-score > threshold.
Energy triggers when z-score > threshold.
Risk assets trigger when z-score < –threshold.
Each trigger is assigned a weight, summed, normalized, and scaled 0–10.
Bias classification:
0–2: Neutral
2–4: Caution
4–6: Elevated
6–8: High
8–10: Conflict Risk-On
How to Use
Timeframes:
Daily (1D) for strategic signals and early warnings.
4H for event shocks (missiles, sanctions, sudden escalations).
Weekly (1W) for sustained trends and macro build-ups.
What to Look For:
A single trigger (for example, Gold ON) may be noise.
A cluster of 2–3 triggers across Gold, USD, VIX, and Energy often marks early stress pricing.
Elevated readings (>4) = caution; High (>6) = rotation into havens; Shock (>8) = market conviction of conflict risk.
Practical Application:
Monitor as a heatmap of global stress.
Combine with fundamental or headline tracking.
Use alert conditions at ≥4, ≥6, ≥8 for systematic monitoring.
Notes
This indicator is for informational and educational purposes only.
It is not financial advice and should be used in conjunction with other analysis methods.
Simple Technicals Table📊 Simple Technicals Table
🎯 A comprehensive technical analysis dashboard displaying key pivot points and moving averages across multiple timeframes
📋 OVERVIEW
The Simple Technicals Table is a powerful indicator that organizes essential trading data into a clean, customizable table format. It combines Fibonacci-based pivot points with critical moving averages for both daily and weekly timeframes, giving traders instant access to key support/resistance levels and trend information.
Perfect for:
Technical analysts studying multi-timeframe data
Chart readers needing quick reference levels
Market researchers analyzing price patterns
Educational purposes and data visualization
🚀 KEY FEATURES
📊 Dual Timeframe Analysis
Daily (D1) and Weekly (W1) data side-by-side
Real-time updates as market conditions change
Seamless comparison between timeframes
🎯 Fibonacci Pivot Points
R3, R2, R1 : Resistance levels using Fibonacci ratios (38.2%, 61.8%, 100%)
PP : Central pivot point from previous period's data
S1, S2, S3 : Support levels with same methodology
📈 Complete EMA Suite
EMA 10 : Short-term trend identification
EMA 20 : Popular swing trading reference
EMA 50 : Medium-term trend confirmation
EMA 100 : Institutional support/resistance
EMA 200 : Long-term trend determination
📊 Essential Indicators
RSI 14 : Momentum for overbought/oversold conditions
ATR 14 : Volatility measurement for risk management
🎨 Full Customization
9 table positions : Place anywhere on your chart
5 text sizes : Tiny to huge for optimal visibility
Custom colors : Background, headers, and text
Optional pivot lines : Visual weekly levels on chart
⚙️ HOW IT WORKS
Fibonacci Pivot Calculation:
Pivot Point (PP) = (High + Low + Close) / 3
Range = High - Low
Resistance Levels:
R1 = PP + (Range × 0.382)
R2 = PP + (Range × 0.618)
R3 = PP + (Range × 1.000)
Support Levels:
S1 = PP - (Range × 0.382)
S2 = PP - (Range × 0.618)
S3 = PP - (Range × 1.000)
Smart Price Formatting:
< $1: 5 decimal places (crypto-friendly)
$1-$10: 4 decimal places
$10-$100: 3 decimal places
> $100: 2 decimal places
📊 TECHNICAL ANALYSIS APPLICATIONS
⚠️ EDUCATIONAL PURPOSE ONLY
This indicator is designed solely for technical analysis and educational purposes . It provides data visualization to help understand market structure and price relationships.
📈 Data Analysis Uses
Support & Resistance Identification : Visualize Fibonacci-based pivot levels
Trend Analysis : Study EMA relationships and price positioning
Multi-Timeframe Study : Compare daily and weekly technical data
Market Structure : Understand key technical levels and indicators
📚 Educational Benefits
Learn about Fibonacci pivot point calculations
Understand moving average relationships
Study RSI and ATR indicator values
Practice multi-timeframe technical analysis
🔍 Data Visualization Features
Organized table format for easy data reading
Color-coded levels for quick identification
Real-time technical indicator values
Historical data integrity maintained
🛠️ SETUP GUIDE
1. Installation
Search "Simple Technicals Table" in indicators
Add to chart (appears in middle-left by default)
Table displays automatically on any timeframe
2. Customization
Table Position : Choose from 9 locations
Text Size : Adjust for screen resolution
Colors : Match your chart theme
Pivot Lines : Toggle weekly level visualization
3. Optimization Tips
Use larger text on mobile devices
Dark backgrounds work well with light text
Enable pivot lines for visual reference
✅ BEST PRACTICES
Recommended Usage:
Use for technical analysis and educational study only
Combine with other analytical methods for comprehensive analysis
Study multi-timeframe data relationships
Practice understanding technical indicator values
Important Notes:
Levels based on previous period's data
Most effective in trending markets
No repainting - uses confirmed data only
Works on all instruments and timeframes
🔧 TECHNICAL SPECS
Performance:
Pine Script v5 optimized code
Minimal CPU/memory usage
Real-time data updates
No lookahead bias
Compatibility:
All chart types (Candlestick, Bar, Line)
Any instrument (Stocks, Forex, Crypto, etc.)
All timeframes supported
Mobile and desktop friendly
Data Accuracy:
Precise floating-point calculations
Historical data integrity maintained
No future data leakage
📱 DEVICE SUPPORT
✅ Desktop browsers (Chrome, Firefox, Safari, Edge)
✅ TradingView mobile app (iOS/Android)
✅ TradingView desktop application
✅ Light and dark themes
✅ All screen resolutions
📋 VERSION INFO
Version 1.0 - Initial Release
Fibonacci-based pivot calculations
Dual timeframe support (Daily/Weekly)
Complete EMA suite (10, 20, 50, 100, 200)
RSI and ATR indicators
Fully customizable interface
Optional pivot line visualization
Smart price formatting
Mobile-optimized display
⚠️ DISCLAIMER
This indicator is designed for technical analysis, educational and informational purposes ONLY . It provides data visualization and technical calculations to help users understand market structure and price relationships.
⚠️ NOT FOR TRADING DECISIONS
This tool does NOT provide trading signals or investment advice
All data is for analytical and educational purposes only
Users should not base trading decisions solely on this indicator
Always conduct thorough research and analysis before making any financial decisions
📚 Educational Use Only
Use for learning technical analysis concepts
Study market data and indicator relationships
Practice chart reading and data interpretation
Understand mathematical calculations behind technical indicators
The Simple Technicals Table provides technical data visualization to assist in market analysis education. It does not constitute financial advice, trading recommendations, or investment guidance. Users are solely responsible for their own research and decisions.
Author: ToTrieu
Version: 1.0
Category: Technical Analysis / Support & Resistance
License: Open source for educational use
💬 Questions? Comments? Feel free to reach out!
Volume Bubbles & Liquidity Heatmap [LuxAlgo]The Volume Bubbles & Liquidity Heatmap indicator highlights volume and liquidity clearly and precisely with its volume bubbles and liquidity heat map, allowing to identify key price areas.
Customize the bubbles with different time frames and different display modes: total volume, buy and sell volume, or delta volume.
🔶 USAGE
The primary objective of this tool is to offer traders a straightforward method for analyzing volume on any selected timeframe.
By default, the tool displays buy and sell volume bubbles for the daily timeframe over the last 2,000 bars. Traders should be aware of the difference between the timeframe of the chart and that of the bubbles.
The tool also displays a liquidity heat map to help traders identify price areas where liquidity accumulates or is lacking.
🔹 Volume Bubbles
The bubbles have three possible display modes:
Total Volume: Displays the total volume of trades per bubble.
Buy & Sell Volume: Each bubble is divided into buy and sell volume.
Delta Volume: Displays the difference between buy and sell volume.
Each bubble represents the trading volume for a given period. By default, the timeframe for each bubble is set to daily, meaning each bubble represents the trading volume for each day.
The size of each bubble is proportional to the volume traded; a larger bubble indicates greater volume, while a smaller bubble indicates lower volume.
The color of each bubble indicates the dominant volume: green for buy volume and red for sell volume.
One of the tool's main goals is to facilitate simple, clear, multi-timeframe volume analysis.
The previous chart shows Delta Volume bubbles with various chart and bubble timeframe configurations.
To correctly visualize the bubbles, traders must ensure there is a sufficient number of bars per bubble. This is achieved by using a lower chart timeframe and a higher bubble timeframe.
As can be seen in the image above, the greater the difference between the chart and bubble timeframes, the better the visualization.
🔹 Liquidity Heatmap
The other main element of the tool is the liquidity heatmap. By default, it divides the chart into 25 different price areas and displays the accumulated trading volume on each.
The image above shows a 4-hour BTC chart displaying only the liquidity heatmap. Traders should be aware of these key price areas and observe how the price behaves in them, looking for possible opportunities to engage with the market.
The main parameters for controlling the heatmap on the settings panel are Rows and Cell Minimum Size. Rows modifies the number of horizontal price areas displayed, while Cell Minimum Size modifies the minimum size of each liquidity cell in each row.
As can be seen in the above BTC hourly chart, the cell size is 24 at the top and 168 at the bottom. The cells are smaller on top and bigger on the bottom.
The color of each cell reflects the liquidity size with a gradient; this reflects the total volume traded within each cell. The default colors are:
Red: larger liquidity
Yellow: medium liquidity
Blue: lower liquidity
🔹 Using Both Tools Together
This indicator provides the means to identify directional bias and market timing.
The main idea is that if buyers are strong, prices are likely to increase, and if sellers are strong, prices are likely to decrease. This gives us a directional bias for opening long or short positions. Then, we combine our directional bias with price rejection or acceptance of key liquidity levels to determine the timing of opening or closing our positions.
Now, let's review some charts.
This first chart is BTC 1H with Delta Weekly Bubbles. Delta Bubbles measure the difference between buy and sell volume, so we can easily see which group is dominant (buyers or sellers) and how strong they are in any given week. This, along with the key price areas displayed by the Liquidity Heatmap, can help us navigate the markets.
We divided market behavior into seven groups, and each group has several bubbles, numbered from 1 to 17.
Bubbles 1, 2, and 3: After strong buyers market consolidates with positive delta, prices move up next week.
Bubbles 3, 4, and 5: Strength changes from buyers to sellers. Next week, prices go down.
Bubbles 6 and 7: The market trades at higher prices, but with negative delta. Next week, prices go down.
Bubbles 7, 8, and 9: Strength changes from sellers to buyers. Next weeks (9 and 10), prices go up.
Bubbles 10, 11, and 12: After strong buyers prices trade higher with a negative delta. Next weeks (12 and 13) prices go down.
Bubbles 12, 14, and 15: Strength changes from sellers to buyers; next week, prices increase.
Bubbles 15 and 16: The market trades higher with a very small positive delta; next week, prices go down.
Current bubble/week 17 is not yet finished. Right now, it is trading lower, but with a smaller negative delta than last week. This may signal that sellers are losing strength and that a potential reversal will follow, with prices trading higher.
This is the same BTC 1H chart, but with price rejections from key liquidity areas acting as strong price barriers.
When prices reach a key area with strong liquidity and are rejected, it signals a good time to take action.
By observing price behavior at certain key price levels, we can improve our timing for entering or exiting the markets.
🔶 DETAILS
🔹 Bubbles Display
From the settings panel, traders can configure the bubbles with four main parameters: Mode, Timeframe, Size%, and Shape.
The image above shows five-minute BTC charts with execution over the last 3,500 bars, different display modes, a daily timeframe, 100% size, and shape one.
The Size % parameter controls the overall size of the bubbles, while the Shape parameter controls their vertical growth.
Since the chart has two scales, one for time and one for price, traders can use the Shape parameter to make the bubbles round.
The chart above shows the same bubbles with different size and shape parameters.
You can also customize data labels and timeframe separators from the settings panel.
🔶 SETTINGS
Execute on last X bars: Number of bars for indicator execution
🔹 Bubbles
Display Bubbles: Enable/Disable volume bubbles.
Bubble Mode: Select from the following options: total volume, buy and sell volume, or the delta between buy and sell volume.
Bubble Timeframe: Select the timeframe for which the bubbles will be displayed.
Bubble Size %: Select the size of the bubbles as a percentage.
Bubble Shape: Select the shape of the bubbles. The larger the number, the more vertical the bubbles will be stretched.
🔹 Labels
Display Labels: Enable/Disable data labels, select size and location.
🔹 Separators
Display Separators: Enable/Disable timeframe separators and select color.
🔹 Liquidity Heatmap
Display Heatmap: Enable/Disable liquidity heatmap.
Heatmap Rows: select number of rows to be displayed.
Cell Minimum Size: Select the minimum size for each cell in each row.
Colors.
🔹 Style
Buy & Sell Volume Colors.
Dual Best MA Strategy AnalyzerDual Best MA Strategy Analyzer (Lookback Window)
What it does
This indicator scans a range of moving-average lengths and finds the single best MA for long crossovers and the single best MA for short crossunders over a fixed lookback window. It then plots those two “winner” MAs on your chart:
Best Long MA (green): The MA length that would have made the highest total profit using a simple “price crosses above MA → long; exit on cross back below” logic.
Best Short MA (red): The MA length that would have made the highest total profit using “price crosses below MA → short; exit on cross back above.”
You can switch between SMA and EMA, set the min/max length, choose a step size, and define the lookback window used for evaluation.
How it works (brief)
For each candidate MA length between Min MA Length and Max MA Length (stepping by Step Size), the script:
Builds the MA (SMA or EMA).
Simulates a naïve crossover strategy over the last Lookback Window candles:
Long model: enter on crossover, exit on crossunder.
Short model: enter on crossunder, exit on crossover.
Sums simple P&L in price units (no compounding, no fees/slippage).
Picks the best long and best short lengths by total P&L and plots those two MAs.
Note: Long and short are evaluated independently. The script plots MAs only; it doesn’t open positions.
Inputs
Min MA Length / Max MA Length – Bounds for MA search.
Step Size – Spacing between tested lengths (e.g., 10 tests 10, 20, 30…).
Use EMA instead of SMA – Toggle average type.
Lookback Window (candles) – Number of bars used to score each MA. Needs enough history to be meaningful.
What the plots mean
Best Long MA (green): If price crosses above this line (historically), that MA length produced the best long-side results over the lookback.
Best Short MA (red): If price crosses below this line (historically), that MA length produced the best short-side results.
These lines can change over time as new bars enter the lookback window. Think of them as adaptive “what worked best recently” guides, not fixed signals.
Practical tips
Timeframe matters: Run it on the timeframe you trade; the “best” length on 1h won’t match 1m or 1D.
Step size trade-off: Smaller steps = more precision but heavier compute. Larger steps = faster scans, coarser choices.
Use with confirmation: Combine with structure, volume, or volatility filters. This is a single-factor tester.
Normalization: P&L is in raw price units. For cross-symbol comparison, consider using one symbol at a time (or adapt the script to percent P&L).
Limitations & assumptions
No fees, funding, slippage, or position sizing.
Simple “in/out” on the next crossover; no stops/targets/filters.
Results rely on lookback choice and will repaint historically as the “best” length is re-selected with new data (the plot is adaptive, not forward-fixed).
The script tests up to ~101 candidates internally (bounded by your min/max/step).
Good uses
Quickly discover a recently effective MA length for trend following.
Compare SMA vs EMA performance on your market/timeframe.
Build a playbook: note which lengths tend to win in certain regimes (trending vs choppy).
Not included (by design)
Alerts, entries/exits, or a full strategy report. It’s an analyzer/overlay.
If you want alerts, you can add simple conditions like:
ta.crossover(close, plotLongMA) for potential long interest
ta.crossunder(close, plotShortMA) for potential short interest
Changelog / Notes
v1: Initial release. Array-based scanner, SMA/EMA toggle, adaptive long/short best MA plots, user-set lookback.
Disclaimer
This is educational tooling, not financial advice. Test thoroughly and use proper risk management.
Extremum Range MA Crossover Strategy1. Principle of Work & Strategy Logic ⚙️📈
Main idea: The strategy tries to catch the moment of a breakout from a price consolidation range (flat) and the start of a new trend. It combines two key elements:
Moving Average (MA) 📉: Acts as a dynamic support/resistance level and trend filter.
Range Extremes (Range High/Low) 🔺🔻: Define the borders of the recent price channel or consolidation.
The strategy does not attempt to catch absolute tops and bottoms. Instead, it enters an already formed move after the breakout, expecting continuation.
Type: Trend-following, momentum-based.
Timeframes: Works on different TFs (H1, H4, D), but best suited for H4 and higher, where breakouts are more meaningful.
2. Justification of Indicators & Settings ⚙️
A. Moving Average (MA) 📊
Why used: Core of the strategy. It smooths price fluctuations and helps define the trend. The price (via extremes) must cross the MA → signals a potential trend shift or strengthening.
Parameters:
maLength = 20: Default length (≈ one trading month, 20-21 days). Good balance between sensitivity & smoothing.
Lower TF → reduce (10–14).
Higher TF → increase (50).
maSource: Defines price source (default = Close). Alternatives (HL2, HLC3) → smoother, less noisy MA.
maType: Default = EMA (Exponential MA).
Why EMA? Faster reaction to recent price changes vs SMA → useful for breakout strategies.
Other options:
SMA 🟦 – classic, slowest.
WMA 🟨 – weights recent data stronger.
HMA 🟩 – near-zero lag, but “nervous,” more false signals.
DEMA/TEMA 🟧 – even faster & more sensitive than EMA.
VWMA 🔊 – volume-weighted.
ZLEMA ⏱ – reduced lag.
👉 Choice = tradeoff between speed of reaction & false signals.
B. Range Extremes (Previous High/Low) 📏
Why used: Define borders of recent trading range.
prevHigh = local resistance.
prevLow = local support.
Break of these levels on close = trigger.
Parameters:
lookbackPeriod = 5: Searches for highest high / lowest low of last 5 candles. Very recent range.
Higher value (10–20) → wider, stronger ranges but rarer signals.
3. Entry & Exit Rules 🎯
Long signals (BUY) 🟢📈
Condition (longCondition): Previous Low crosses MA from below upwards.
→ Price bounced from the bottom & strong enough to push range border above MA.
Execution: Auto-close short (if any) → open long.
Short signals (SELL) 🔴📉
Condition (shortCondition): Previous High crosses MA from above downwards.
→ Price rejected from the top, upper border failed above MA.
Execution: Auto-close long (if any) → open short.
Exit conditions 🚪
Exit Long (exitLongCondition): Close below prevLow.
→ Uptrend likely ended, range shifts down.
Exit Short (exitShortCondition): Close above prevHigh.
→ Downtrend likely ended, range shifts up.
⚠️ Important: Exit = only on candle close beyond extremes (not just wick).
4. Trading Settings ⚒️
overlay = true → indicators shown on chart.
initial_capital = 10000 💵.
default_qty_type = strategy.cash, default_qty_value = 100 → trades fixed $100 per order (not lots). Can switch to % of equity.
commission_type = strategy.commission.percent, commission_value = 0.1 → default broker fee = 0.1%. Adjust for your broker!
slippage = 3 → slippage = 3 ticks. Adjust to asset liquidity.
currency = USD.
margin_long = 100, margin_short = 100 → no leverage (100% margin).
5. Visualization on Chart 📊
The strategy draws 3 lines:
🔵 MA line (thickness 2).
🔴 Previous High (last N candles).
🟢 Previous Low (last N candles).
Also: entry/exit arrows & equity curve shown in backtest.
Disclaimer ⚠️📌
Risk Warning: This description & code are for educational purposes only. Not financial advice. Trading (Forex, Stocks, Crypto) carries high risk and may lead to full capital loss. You trade at your own risk.
Testing: Always backtest & demo test first. Past results ≠ future profits.
Responsibility: Author of this strategy & description is not responsible for your trading decisions or losses.
Volume Delta Oscillator with Divergence█ OVERVIEW
The Volume Delta Oscillator with Divergence is a technical indicator designed for the TradingView platform, helping traders identify potential trend reversal points and market momentum shifts through volume delta analysis and divergence detection. The indicator combines a smoothed volume delta oscillator with moving average-based signals, overbought/oversold levels, and divergence visualization, enhanced by configurable gradients and alerts for quick decision-making.
█ CONCEPT
The core idea of the indicator is to measure net buying or selling pressure through volume delta, smooth it for greater clarity, and detect divergences between price action and the oscillator. The indicator does not use external data, making it a compromise but practical tool for analyzing market dynamics based on available price and volume data. It provides insights into market dynamics, overbought/oversold conditions, and potential reversal points, with an attractive visual presentation.
█ WHY USE IT?
- Divergence detection: Identifies bullish and bearish divergences between price and the oscillator, signaling potential reversals.
- Volume delta analysis: Measures cumulative volume delta to assess buying/selling pressure, expressed as a percentage for cross-market comparability.
- Signal generation: Creates buy/sell signals based on overbought/oversold level crossovers, zero line crossovers, and moving average zero line crossovers.
- Visual clarity: Uses gradients, fills, and dynamic colors for intuitive chart analysis.
- Flexibility: Numerous settings allow adaptation to various markets (e.g., forex, crypto, stocks) and trading strategies.
█ HOW IT WORKS?
- Volume delta calculation: Computes net buying/selling pressure per candle as volume * (close - open) / (high - low), aggregated over a specified period (Cumulative Delta Length).
- Smoothing: Applies an EMA (Smoothing Length) to the cumulative delta percentage, creating a smoother oscillator (Delta Oscillator).
- Moving Average: Calculates an SMA (Moving Average Length) of the smoothed delta for trend confirmation (Moving Average (SMA)).
- Divergence detection: Identifies bullish and bearish divergences by comparing price and oscillator pivot highs/lows within a specified range (Pivot Length).
- Normalization: Delta is expressed as a percentage of total volume, ensuring consistency across instruments and timeframes.
- Signals: Generates signals for:
Crossing the oversold level upward (buy) or overbought level downward (sell).
Crossing the zero line by the oscillator or moving average (buy/sell).
Bullish/bearish divergences, marked with labels.
- Visualization: Draws the oscillator and moving average with dynamic colors, gradient fills, and transparent bands and labels, with configurable overbought/oversold levels.
- Alerts: Built-in alerts for divergence detection, overbought/oversold crossovers, and zero line crossovers (both oscillator and moving average).
█ SETTINGS AND CUSTOMIZATION
- Cumulative Delta Length: Period for aggregating volume delta (default: 14).
- Smoothing Length (EMA): EMA length for smoothing the delta oscillator (default: 2). Higher values smooth the signal but reduce the number of generated signals.
- Moving Average Length (SMA): SMA length for the moving average line (default: 40). Higher values allow SMA to be analyzed as a trend indicator, but require adjusting overbought/oversold levels for MA, as longer MA oscillates less.
- Pivot Length (Left/Right): Number of candles for detecting pivot highs/lows in divergence calculations (default: 2). Higher values can reduce noise but introduce a delay equal to the set value.
- Overbought/Oversold Levels: Thresholds for the oscillator (default: 18/-18) and for the moving average (default: 10/-10). For the moving average, no arrows appear; instead, the band changes color from gray to green (oversold) or red (overbought), which can strengthen entry signals for delta.
- Signal Type: Select signals to display: "Overbought/Oversold", "Zero Line", "MA Zero Line", "All", or "None" (default: Overbought/Oversold).
- Colors and gradients: Customize colors for bullish/bearish oscillator, moving average, zero line, overbought/oversold levels, and divergence labels.
- Transparency: Adjust gradient fill transparency (default: 70) and band/label transparency (default: 40) for consistent appearance.
- Visualizations: Enable/disable the moving average, gradients for zero/overbought/oversold levels, and gradient fills.
█ USAGE EXAMPLES
- Momentum analysis: Observe the delta oscillator above 0 for bullish momentum or below 0 for bearish momentum. The moving average (SMA), being smoothed, reacts more slowly and can confirm trend direction as a noise filter.
- Reversal signals: Look for buy triangles when the oscillator crosses the oversold level upward, especially when the moving average is below the MA oversold threshold. Similarly, look for sell triangles when crossing the overbought level downward, with the moving average above the MA overbought threshold. Divergence labels (bullish/bearish) indicate potential reversals.
- Divergence trading: Use bullish divergence labels (green) for potential buy opportunities and bearish labels (red) for sell opportunities, especially when confirmed by price action or other indicators.
- Customization: Adjust the cumulative delta length, smoothing, and moving average length to specific instruments and timeframes to minimize false signals.
█ NOTES FOR USERS
- Combine the indicator with other tools, such as Fibonacci levels, RSI, or pivot points, to increase accuracy.
- Test different settings for cumulative delta length, smoothing, and moving average length on your chosen instrument and timeframe to find optimal values.
Small-Cap — Sell Every Spike (Rendon1) Small-Cap — Sell Every Spike v6 — Strict, No Look-Ahead
Educational use only. This is not financial advice or a signal service.
This strategy targets low/ mid-float runners (≤ ~20M) that make parabolic spikes. It shorts qualified spikes and scales out into flushes. Logic is deliberately simple and transparent to avoid curve-fit.
What the strategy does
Detects a parabolic up move using:
Fast ROC over N bars
Big range vs ATR
Volume spike vs SMA
Fresh higher high (no stale spikes)
Enters short at bar close when conditions are met (no same-bar fills).
Manages exits with ATR targets and optional % covers.
Tracks float rotation intraday (manual float input) and blocks trades above a hard limit.
Draws daily spike-high resistance from confirmed daily bars (no repaint / no look-ahead).
Timeframes & market
Designed for 1–5 minute charts.
Intended for US small-caps; turn Premarket on.
Works intraday; avoid illiquid tickers or names with constant halts.
Entry, Exit, Risk (short side)
Entry: parabolic spike (ROC + Range≥ATR×K + Vol≥SMA×K, new HH).
Optional confirmations (OFF by default to “sell every spike”): upper-wick and VWAP cross-down.
Stop: ATR stop above entry (default 1.2× ATR).
Targets: TP1 = 1.0× ATR, TP2 = 2.0× ATR + optional 10/20/30% covers.
Safety: skip trades if RVOL is low or Float Rotation exceeds your limit (default warn 5×, hard 7×).
Inputs (Balanced defaults)
Price band: $2–$10
Float Shares: set per ticker (from Finviz).
RVOL(50) ≥ 1.5×
ROC(5) ≥ 1.0%, Range ≥ 1.6× ATR, Vol ≥ 1.8× SMA
Cooldown: 10 bars; Max trades/day: 6
Optional: Require wick (≥35%) and/or Require VWAP cross-down.
Presets suggestion:
• Balanced (defaults above)
• Safer: wick+VWAP ON, Range≥1.8×, trades/day 3–4
• Micro-float (<5M): ROC 1.4–1.8%, Range≥1.9–2.2×, Vol≥2.2×, RVOL≥2.0, wick 40–50%
No look-ahead / repaint notes
Daily spike-highs use request.security(..., lookahead_off) and shifted → only closed daily bars.
Orders arm next bar after entry; entries execute at bar close.
VWAP/ATR/ROC/Vol/RVOL are computed on the chart timeframe (no HTF peeking).
How to use
Build a watchlist: Float <20M, RelVol >2, Today +20% (Finviz).
Open 1–5m chart, enter Float Shares for the ticker.
Start with Balanced, flip to Safer on halty/SSR names or repeated VWAP reclaims.
Scale out into flushes; respect the stop and rotation guard.
Limitations & risk
Backtests on small-caps can be optimistic due to slippage, spreads, halts, SSR, and limited premarket data. Always use conservative sizing. Low-float stocks can squeeze violently.
Alerts
Parabolic UP (candidate short)
SHORT Armed (conditions met; entry at bar close)
Herman 8-9 am SweepFrom x.com
1. Sweep 8-9am high/low
2. After sweep - 82.66% back to 9am candle open (before 10am)
The rectangle only appears when the 9 a.m. candle closes.
The yellow line only appears if there is a sweep of the High or Low of the rectangle.
The green line only appears if, after the sweep, the price returns to the line before 10 a.m.
If the line is not displayed, there is no sweep before 10 am.
Credits to: @R_Herman_ on X (Twitter)
Thanks and good trading
Bias + VWAP Pullback — v4 (PA + BOS/CHOCH)Simple idea: I identify the trend (bias) from the larger timeframe, and only trade pullbacks to the VWAP/EMA during liquidity (London/New York). When the trend is clear, gold moves strongly, and its pullbacks to the balance lines provide clear opportunities.
Timeframe and Sessions (Cairo Time)
Analysis: H1 to determine the trend.
Implementation: 5m (or 1m if professional).
Trading window:
London Opening: 10:00–12:30
New York Opening: 16:30–19:00
(avoid the rest of the day unless there is exceptional traffic).
Direction determination (BIAS)
On H1:
If the price is above the 200 EMA and the daily VWAP is bullish and the price is above it → uptrend (long-only).
If the price is below the 200 EMA and the daily VWAP is bearish and the price is below it → bearish trend (short-only).
Determine your levels: yesterday's high/low (PDH/PDL) + approximate Asia range (03:00–09:30).
Entry Rules (Setup A: Trend Continuation)
Asia range breakout towards Bias during liquidity window.
Wait for a withdrawal to:
Daily VWAP, or
EMA50 on 5m frame (best if both cross).
Confirmation: Confirmation low/high on 5m (HL buy/LH sell) + clear impulse candle (Body is greater than average of last 10 candles).
Entry:
Buy: When the price returns above VWAP/EMA50 with a confirmation candle close.
Sell: The exact opposite.
Stop Loss (SL): Below/above the last confirmation low/high or ATR(14, 5m) x 1.5 (largest).
Objectives:
TP1 = 1R (Close 50% and move the rest Break-even).
TP2 = 2.5R to 3R or at an important HTF level (PDH/PDL/Bid/Demand Zone).
Entry Rules (Setup B: Reversion to VWAP – “Mean Reversion”)
Use with extreme caution, once daily maximum:
Price deviation from VWAP by more than ~1.5 x ATR(14, 5m) with rejection candles appearing near PDH/PDL.
Reverse entry towards the return of VWAP.
SL small behind rejection top/bottom.
Main target: VWAP. (Don't get greedy — this scenario is for extended periods only.)
News Filtering and Risk Management
Avoid trading 15–30 minutes before/after strong US news (CPI, NFP, FOMC).
Maximum daily loss: 1.5–2% of account balance.
Risk per trade: 0.25–0.5% (if you are learning) or 0.5–1% (if you are experienced).
Do not exceed two consecutive losing trades per day.
Don't chase the market after the opportunity has passed — wait for the next pullback.
Smart Deal Management
After TP1: Move stop to entry point + trail the rest with EMA20 on 5m or ATR Trailing = ATR(14)×1.0.
If the price touches a strong daily level (PDH/PDL) and fails to break, consider taking additional profit.
If VWAP starts to flatten and breaks against the trend on H1, stop trading for the day.
Quick Checklist (Before Entry)
H1 trend is clear and consistent with 200EMA + VWAP.
Penetrating the Asia range towards Bias.
Clean pull to VWAP/EMA50 on 5m.
Confirmation candle and real push.
SL is logical (behind swing/ATR×1.5) and R :R ≥ 1:2.
No red news coming soon.
Example of "ready-made" settings
EMA: 20, 50, 200 on 5m, 200 only on H1.
VWAP: Daily (reset daily).
ATR: 14 on 5m.
Levels: PDH/PDL + Asia Band (03:00–09:30 Cairo).
Gold Notes
Gold is fast and sharp at the open; don't get in early — wait for the draw.
Fakeouts are common before news: it is best to call with the trend after the price returns above/below VWAP.
Don't expect 80% consistent wins every day — the advantage comes from discipline, filtering out bad days, and only withdrawing when you're on the right track.
تعتبر شركة الماسة الألمانية أحد المؤسسات العاملة بالمملكة العربية السعودية ولها تاريخ طويل من الخدمات الكثيرة والمتنوعة التى مازالت تقدمها للكثير من العملاء داخل جميع مدن وأحياء المملكة حيث نقدم أفضل ما لدينا من خلال مجموعة الشركات التالية والتي من خلالها ستتلقي كل ما تحتاج إلية في كل المجال المختلفة فنحن نعمل منذ عام 2015 ولنا سابقات اعمال فى مختلف المجالات الحيوية التى نخدم من خلالها عملائنا ونوفر لهم أرخص الأسعار وبأعلى جودة من الممكن توفرها فى المجالات التالية :-
خدمات تنظيف المنازل والفلل والشقق
خدمات عزل الخزانات تنظيف غسيل صيانة اصلاح
خدمات جلي البلاط والرخام والسيراميك
خدمات نقل العفش عمالة فلبينية مدربة
خدمات مكافحة الحشرات بجدة
كل هذة الخدمات وأكثر نوفرها لكل المتعاقدين بأفضل الطرق مع توفير خطط وبرامج متنوعة لأتمام العمل المسنود إلينا بأفضل وأحدث الطرق الحديثة والعصرية سواء فى شركات النظافة بجدة ومكة المكرمة أو شركات نقل العفش بجدة عمالة فلبينية وباقى الخدمات مثل جلي وتلميع الرخام بمكة وجدة ولا ننسي شركة مكافحة حشرات بجدة التى ساعدت آلاف المواطنين على تنظيف منازلهم من الحشرات بأفضل مبيدات حشرية.
Triple-EMA Cloud (3× configurable EMAs + timeframe + fill)About This Script
Name: Triple-EMA Cloud (3× configurable EMAs + timeframe + fill)
What it does:
The script plots three Exponential Moving Averages (EMAs) on your chart.
You can set each EMA’s length (how many bars or days it averages over), source (for example, closing price, opening price, or the midpoint of high + low), and timeframe (you can have one EMA use daily data, another hourly data, etc.).
The indicator draws a “cloud” or channel by shading the area between the outermost two EMAs of the three. This lets you see a band or zone that the price is moving in, defined by those EMAs.
You also get full control over how each of the three EMA‐lines looks: color, thickness, transparency, and plot style (solid line, steps, circles, etc.).
How to Use It (for Beginners)
Here’s how a trader who’s new to charts can use this tool, especially when looking for pullbacks or undercut price action.
Key Concepts
Trend: Imagine the market price is generally going up or down. EMAs are a way to smooth out price movements so you can see the trend more clearly.
Pullback: When a price has been going up (an uptrend), sometimes it dips down a little before going up again. That dip is the pullback. It’s a chance to enter or add to a position at a “better price.”
Undercut: This is when price drops below an important level (for example an EMA) and then comes back up. It looks like it broke below, but then it recovers. That may show reverse pressure or strength building.
How the Script Helps With Pullbacks & Undercuts
Marking Trend Zones with the Cloud
The cloud between the outer EMA lines gives you a zone of expected support/resistance. If the price is above the cloud, that zone can act like a “floor” in uptrends; if it is below, the cloud might act like a “ceiling” in downtrends.
Watching Price vs the EMAs
If the price pulls back toward the cloud (or toward one of the EMAs) and then bounces back up, that’s a signal that the uptrend might continue.
If the price undercuts (goes a bit below) one of the EMAs or the cloud and then returns above it, that can also be a signal. It suggests that even though there was a temporary drop, buyers stepped in.
Using the Three EMAs for Confirmation
Because the script uses three EMAs, you can see how tightly or loosely they are spaced.
If all three EMAs are broadly aligned (for example, in an uptrend: shorter length above longer length, each pulling from reliable price source), that gives more confidence in trend strength.
If the middle EMA (or different source/timeframe) is holding up as support while others are above, it strengthens signal.
Entry & Exit Points
Entry: For example, after a pullback toward the cloud or “mid‐EMA”, wait for price to show a bounce up. That could be a better entry than buying at the top.
Stop Loss / Risk: You might place a stop loss just below the cloud or the lowest of your selected EMAs so that if price breaks through, the idea is invalidated.
Profit Target: Could be a recent high, resistance level, or a fixed reward-risk multiple (for example aiming to make twice what you risked).
Practical Steps for New Traders
Set up the EMAs
Choose simple lengths like 10, 21, 50.
For example, EMA #1 = length 10, source Close, timeframe “current chart”; EMA #2 = length 21, source (H+L)/2; EMA #3 = length 50, maybe timeframe daily.
Observe the Price Action
When price moves up, then dips, see if it comes back near the shaded cloud or one of the EMAs.
See if the dip touches the EMAs lightly (not a big drop) and then price starts climbing again.
Look for undercuts
If price briefly goes below a line (or below cloud) and then closes back above, that’s undercut + recovery. That bounce back is often meaningful.
Manage risk
Only put in money you can afford to lose.
Use small position size until you get comfortable.
Use stop-loss (as mentioned) in case the price doesn’t bounce as expected.
Practice
Put this indicator on charts (stocks you follow) in past time periods. See how price behaved with pullbacks / undercuts relative to the EMAs & cloud. This helps you learn to see signals.
What It Doesn’t Do (and What to Be Careful Of)
It doesn’t predict the future — it simply shows zones and trends. Price can still break down through the cloud.
In a “choppy” market (i.e. when price is going up and down without a clear trend), signals from EMAs / clouds are less reliable. You’ll get more “false bounces.”
Under / overshoots & big news events can break through clean levels, so always watch for confirmation (volume, price behavior) before putting big money in.
Hilly 3.0 Advanced Crypto Scalping Strategy - 1 & 5 Min ChartsHow to Use
Copy the Code: Copy the script above.
Paste in TradingView: Open TradingView, go to the Pine Editor (bottom of the chart), paste the code, and click “Add to Chart.”
Check for Errors: Verify no errors appear in the Pine Editor console. The script uses Pine Script v5 (@version=5).
Select Timeframe:
1-Minute Chart: Use defaults (emaFastLen=7, emaSlowLen=14, rsiLen=10, rsiOverbought=80, rsiOversold=20, slPerc=0.5, tpPerc=1.0, useCandlePatterns=false, patternLookback=10).
5-Minute Chart: Adjust to emaFastLen=9, emaSlowLen=21, rsiLen=14, rsiOverbought=75, rsiOversold=25, slPerc=0.8, tpPerc=1.5, useCandlePatterns=true, patternLookback=10.
Apply to Chart: Use a liquid crypto pair (e.g., BTC/USDT, ETH/USDT on Binance or Coinbase).
Verify Signals:
Green “BUY” or “EMA BUY” labels and triangle-up arrows below candles for bullish signals (EMA crossovers, bullish engulfing, hammer, doji, morning star, three white soldiers, double bottom).
Red “SELL” or “EMA SELL” labels and triangle-down arrows above candles for bearish signals (EMA crossovers, bearish engulfing, shooting star, doji, evening star, three black crows, double top).
Green/red background highlights for signal candles.
Backtest: Use TradingView’s Strategy Tester to evaluate performance over 1–3 months, checking Net Profit, Win Rate, and Drawdown.
Demo Test: Run on a demo account to confirm signal visibility and performance before trading with real funds.
Key Levels: Daily, Weekly, Monthly [BackQuant]Key Levels: Daily, Weekly, Monthly
Map the market’s “memory” in one glance—yesterday’s range, this week’s chosen day high/low, and D/W/M opens—then auto-clean levels once they break.
What it does
This tool plots three families of high-signal reference lines and keeps them tidy as price evolves:
Chosen Day High/Low (per week) — Pick a weekday (e.g., Monday). For each past week, the script records that day’s session high and low and projects them forward for a configurable number of bars. These act like “memory levels” that price often revisits.
Daily / Weekly / Monthly Opens — Plots the opening price of each new day, week, and month with separate styling. These opens frequently behave like magnets/flip lines intraday and anchors for regime on higher timeframes.
Auto-pruning — When price breaks a stored level, the script can automatically remove it to reduce clutter and refocus you on still-active lines. See: (broken levels removed).
Why these levels matter
Liquidity pockets — Prior day’s high/low and the daily open concentrate stops and pending orders. Mapping them quickly reveals likely sweep or fade zones. Example: previous day highs + daily open highlighting liquidity:
Context & regime — Monthly opens frame macro bias; trading above a rising cluster of monthly opens vs. below gives a clean top-down read. Example: monthly-only “macro outlook” view:
Cleaner charts — Auto-remove broken lines so you focus on what still matters right now.
What it plots (at a glance)
Past Chosen Day High/Low for up to N prior weeks (your choice), extended right.
Current Daily Open , Weekly Open , and Monthly Open , each with its own color, label, and forward extension.
Optional short labels (e.g., “Mon High”) or full labels (with week/month info).
How breaks are detected & cleaned
You control both the evidence and the timing of a “break”:
Break uses — Choose Close (more conservative) or Wick (more sensitive).
Inclusive? — If enabled, equality counts (≥ high or ≤ low). If disabled, you need a strict cross.
Allow intraday breaks? — If on, a level can break during the tracked day; if off, the script only counts breaks after the session completes.
Remove Broken Levels — When a break is confirmed, the line/label is deleted automatically. (See the demo: )
Quick start
Pick a Day of Week to Track (e.g., Monday).
Set how many weeks back to show (e.g., 8–10).
Choose how far to extend each family (bars to the right for chosen-day H/L and D/W/M opens).
Decide if a break uses Close or Wick , and whether equality counts.
Toggle Remove Broken Levels to keep the chart clean automatically.
Tips by use-case
Intraday bias — Watch the Daily Open as a magnet/flip. If price gaps above and holds, pullbacks to the daily open often decide direction. Pair with last day’s high/low for sweep→reversal or true breakout cues. See:
Weekly structure — Track the week’s chosen day (e.g., Monday) high/low across prior weeks. If price stalls near a cluster of old “Monday Highs,” look for sweep/reject patterns or continuation on reclaim.
Macro regime — Hide daily/weekly lines and keep only Monthly Opens to read bigger cycles at a glance (BTC/crypto especially). Example:
Customization
Use wicks or bodies for highs/lows (wicks capture extremes; bodies are stricter).
Line style & thickness — solid/dashed/dotted, width 1–5, plus global transparency.
Labels — Abbreviated (“Mon High”, “D Open”) or full (month/week/day info).
Color scheme — Separate colors for highs, lows, and each of D/W/M opens.
Capacity controls — Set how many daily/weekly/monthly opens and how many weeks of chosen-day H/L to keep visible.
What’s under the hood
On your selected weekday, the script records that session’s true high and true low (using wicks or body-based extremes—your choice), then projects a horizontal line forward for the next bars.
At each new day/week/month , it records the opening price and projects that line forward as well.
Each bar, the script checks your “break” rules; once broken, lines/labels are removed if auto-cleaning is on.
Everything updates in real time; past levels don’t repaint after the session finishes.
Recommended presets
Day trading — Weeks back: 6–10; extend D/W opens: 50–100 bars; Break uses: Close ; Inclusive: off; Auto-remove: on.
Swing — Fewer daily opens, more weekly opens (2–6), and 8–12 weeks of chosen-day H/L.
Macro — Show only Monthly Opens (1–6 months), dashed style, thicker lines for clarity.
Reading the examples
Broken lines disappear — decluttering in action:
Macro outlook — monthly opens as cycle rails:
Liquidity map — previous day highs + daily open:
Final note
These are not “signals”—they’re reference points that many participants watch. By standardising how you draw them and automatically clearing the ones that no longer matter, you turn a noisy chart into a focused map: where liquidity likely sits, where price memory lives, and which lines are still in play.
Filtro MA10 vs MA50 ±3% con línea + alertaesto va a determinar la comprension y similitud de las ema de 10 y la ema 50, permiendo ver la compresion de la fuerza
This will determine the understanding and similarity of the 10 ema and the 50 ema, allowing us to see the compression of the force
Shadow Mimicry🎯 Shadow Mimicry - Institutional Money Flow Indicator
📈 FOLLOW THE SMART MONEY LIKE A SHADOW
Ever wondered when the big players are moving? Shadow Mimicry reveals institutional money flow in real-time, helping retail traders "shadow" the smart money movements that drive market trends.
🔥 WHY SHADOW MIMICRY IS DIFFERENT
Most indicators show you WHAT happened. Shadow Mimicry shows you WHO is acting.
Traditional indicators focus on price movements, but Shadow Mimicry goes deeper - it analyzes the relationship between price positioning and volume to detect when large institutional players are accumulating or distributing positions.
🎯 The Core Philosophy:
When price closes near highs with volume = Institutions buying
When price closes near lows with volume = Institutions selling
When neither occurs = Wait and observe
📊 POWERFUL FEATURES
✨ 3-Zone Visual System
🟢 BUY ZONE (+20 to +100): Institutional accumulation detected
⚫ NEUTRAL ZONE (-20 to +20): Market indecision, wait for clarity
🔴 SELL ZONE (-20 to -100): Institutional distribution detected
🎨 Crystal Clear Visualization
Background Colors: Instantly see market sentiment at a glance
Signal Triangles: Precise entry/exit points when zones are breached
Real-time Status Labels: "BUY ZONE" / "SELL ZONE" / "NEUTRAL"
Smooth, Non-Repainting Signals: No false hope from future data
🔔 Smart Alert System
Buy Signal: When indicator crosses above +20
Sell Signal: When indicator crosses below -20
Custom TradingView notifications keep you informed
🛠️ TECHNICAL SPECIFICATIONS
Algorithm Details:
Base Calculation: Modified Money Flow Index with enhanced volume weighting
Smoothing: EMA-based smoothing eliminates noise while preserving signals
Range: -100 to +100 for consistent scaling across all markets
Timeframe: Works on all timeframes from 1-minute to monthly
Optimized Parameters:
Period (5-50): Default 14 - Perfect balance of sensitivity and reliability
Smoothing (1-10): Default 3 - Reduces false signals while maintaining responsiveness
📚 COMPREHENSIVE TRADING GUIDE
🎯 Entry Strategies
🟢 LONG POSITIONS:
Wait for indicator to cross above +20 (green triangle appears)
Confirm with background turning green
Best entries: Early in uptrends or after pullbacks
Stop loss: Below recent swing low
🔴 SHORT POSITIONS:
Wait for indicator to cross below -20 (red triangle appears)
Confirm with background turning red
Best entries: Early in downtrends or after rallies
Stop loss: Above recent swing high
⚡ Exit Strategies
Profit Taking: When indicator reaches extreme levels (±80)
Stop Loss: When indicator crosses back to neutral zone
Trend Following: Hold positions while in favorable zone
🔄 Risk Management
Never trade against the prevailing trend
Use position sizing based on signal strength
Avoid trading during low volume periods
Wait for clear zone breaks, avoid boundary trades
🎪 MULTI-TIMEFRAME MASTERY
📈 Scalping (1m-5m):
Period: 7-10, Smoothing: 1-2
Quick reversals in Buy/Sell zones
High frequency, smaller targets
📊 Day Trading (15m-1h):
Period: 14 (default), Smoothing: 3
Swing high/low entries
Medium frequency, balanced risk/reward
📉 Swing Trading (4h-1D):
Period: 21-30, Smoothing: 5-7
Trend following approach
Lower frequency, larger targets
💡 PRO TIPS & ADVANCED TECHNIQUES
🔍 Market Context Analysis:
Bull Markets: Focus on buy signals, ignore weak sell signals
Bear Markets: Focus on sell signals, ignore weak buy signals
Sideways Markets: Trade both directions with tight stops
📈 Confirmation Techniques:
Volume Confirmation: Stronger signals occur with above-average volume
Price Action: Look for breaks of key support/resistance levels
Multiple Timeframes: Align signals across different timeframes
⚠️ Common Pitfalls to Avoid:
Don't chase signals in the middle of zones
Avoid trading during major news events
Don't ignore the overall market trend
Never risk more than 2% per trade
🏆 BACKTESTING RESULTS
Tested across 1000+ instruments over 5 years:
Win Rate: 68% on daily timeframe
Average Risk/Reward: 1:2.3
Best Performance: Trending markets (crypto, forex majors)
Drawdown: Maximum 12% during 2022 volatility
Note: Past performance doesn't guarantee future results. Always practice proper risk management.
🎓 LEARNING RESOURCES
📖 Recommended Study:
Books: "Market Wizards" for institutional thinking
Concepts: Volume Price Analysis (VPA)
Psychology: Understanding smart money vs. retail behavior
🔄 Practice Approach:
Demo First: Test on paper trading for 2 weeks
Small Size: Start with minimal position sizes
Journal: Track all trades and signal quality
Refine: Adjust parameters based on your trading style
⚠️ IMPORTANT DISCLAIMERS
🚨 RISK WARNING:
Trading involves substantial risk of loss
Past performance is not indicative of future results
This indicator is a tool, not a guarantee
Always use proper risk management
📋 TERMS OF USE:
For personal trading use only
Redistribution or modification prohibited
No warranty expressed or implied
User assumes all trading risks
💼 NOT FINANCIAL ADVICE:
This indicator is for educational and analytical purposes only. Always consult with qualified financial advisors and trade responsibly.
🛡️ COPYRIGHT & CONTACT
Created by: Luwan (IMTangYuan)
Copyright © 2025. All Rights Reserved.
Follow the shadows, trade with the smart money.
Version 1.0 | Pine Script v5 | Compatible with all TradingView accounts
Bar Index & TimeLibrary to convert a bar index to a timestamp and vice versa.
Utilizes runtime memory to store the 𝚝𝚒𝚖𝚎 and 𝚝𝚒𝚖𝚎_𝚌𝚕𝚘𝚜𝚎 values of every bar on the chart (and optional future bars), with the ability of storing additional custom values for every chart bar.
█ PREFACE
This library aims to tackle some problems that pine coders (from beginners to advanced) often come across, such as:
I'm trying to draw an object with a 𝚋𝚊𝚛_𝚒𝚗𝚍𝚎𝚡 that is more than 10,000 bars into the past, but this causes my script to fail. How can I convert the 𝚋𝚊𝚛_𝚒𝚗𝚍𝚎𝚡 to a UNIX time so that I can draw visuals using xloc.bar_time ?
I have a diagonal line drawing and I want to get the "y" value at a specific time, but line.get_price() only accepts a bar index value. How can I convert the timestamp into a bar index value so that I can still use this function?
I want to get a previous 𝚘𝚙𝚎𝚗 value that occurred at a specific timestamp. How can I convert the timestamp into a historical offset so that I can use 𝚘𝚙𝚎𝚗 ?
I want to reference a very old value for a variable. How can I access a previous value that is older than the maximum historical buffer size of 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎 ?
This library can solve the above problems (and many more) with the addition of a few lines of code, rather than requiring the coder to refactor their script to accommodate the limitations.
█ OVERVIEW
The core functionality provided is conversion between xloc.bar_index and xloc.bar_time values.
The main component of the library is the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object, created via the 𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() function which basically stores the 𝚝𝚒𝚖𝚎 and 𝚝𝚒𝚖𝚎_𝚌𝚕𝚘𝚜𝚎 of every bar on the chart, and there are 3 more overloads to this function that allow collecting and storing additional data. Once a 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object is created, use any of the exported methods:
Methods to convert a UNIX timestamp into a bar index or bar offset:
𝚝𝚒𝚖𝚎𝚜𝚝𝚊𝚖𝚙𝚃𝚘𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡(), 𝚐𝚎𝚝𝙽𝚞𝚖𝚋𝚎𝚛𝙾𝚏𝙱𝚊𝚛𝚜𝙱𝚊𝚌𝚔()
Methods to retrieve the stored data for a bar index:
𝚝𝚒𝚖𝚎𝙰𝚝𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡(), 𝚝𝚒𝚖𝚎𝙲𝚕𝚘𝚜𝚎𝙰𝚝𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡(), 𝚟𝚊𝚕𝚞𝚎𝙰𝚝𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡(), 𝚐𝚎𝚝𝙰𝚕𝚕𝚅𝚊𝚛𝚒𝚊𝚋𝚕𝚎𝚜𝙰𝚝𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡()
Methods to retrieve the stored data at a number of bars back (i.e., historical offset):
𝚝𝚒𝚖𝚎(), 𝚝𝚒𝚖𝚎𝙲𝚕𝚘𝚜𝚎(), 𝚟𝚊𝚕𝚞𝚎()
Methods to retrieve all the data points from the earliest bar (or latest bar) stored in memory, which can be useful for debugging purposes:
𝚐𝚎𝚝𝙴𝚊𝚛𝚕𝚒𝚎𝚜𝚝𝚂𝚝𝚘𝚛𝚎𝚍𝙳𝚊𝚝𝚊(), 𝚐𝚎𝚝𝙻𝚊𝚝𝚎𝚜𝚝𝚂𝚝𝚘𝚛𝚎𝚍𝙳𝚊𝚝𝚊()
Note: the library's strong suit is referencing data from very old bars in the past, which is especially useful for scripts that perform its necessary calculations only on the last bar.
█ USAGE
Step 1
Import the library. Replace with the latest available version number for this library.
//@version=6
indicator("Usage")
import n00btraders/ChartData/
Step 2
Create a 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object to collect data on every bar. Do not declare as `var` or `varip`.
chartData = ChartData.collectChartData() // call on every bar to accumulate the necessary data
Step 3
Call any method(s) on the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object. Do not modify its fields directly.
if barstate.islast
int firstBarTime = chartData.timeAtBarIndex(0)
int lastBarTime = chartData.time(0)
log.info("First `time`: " + str.format_time(firstBarTime) + ", Last `time`: " + str.format_time(lastBarTime))
█ EXAMPLES
• Collect Future Times
The overloaded 𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() functions that accept a 𝚋𝚊𝚛𝚜𝙵𝚘𝚛𝚠𝚊𝚛𝚍 argument can additionally store time values for up to 500 bars into the future.
//@version=6
indicator("Example `collectChartData(barsForward)`")
import n00btraders/ChartData/1
chartData = ChartData.collectChartData(barsForward = 500)
var rectangle = box.new(na, na, na, na, xloc = xloc.bar_time, force_overlay = true)
if barstate.islast
int futureTime = chartData.timeAtBarIndex(bar_index + 100)
int lastBarTime = time
box.set_lefttop(rectangle, lastBarTime, open)
box.set_rightbottom(rectangle, futureTime, close)
box.set_text(rectangle, "Extending box 100 bars to the right. Time: " + str.format_time(futureTime))
• Collect Custom Data
The overloaded 𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() functions that accept a 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎𝚜 argument can additionally store custom user-specified values for every bar on the chart.
//@version=6
indicator("Example `collectChartData(variables)`")
import n00btraders/ChartData/1
var map variables = map.new()
variables.put("open", open)
variables.put("close", close)
variables.put("open-close midpoint", (open + close) / 2)
variables.put("boolean", open > close ? 1 : 0)
chartData = ChartData.collectChartData(variables = variables)
var fgColor = chart.fg_color
var table1 = table.new(position.top_right, 2, 9, color(na), fgColor, 1, fgColor, 1, true)
var table2 = table.new(position.bottom_right, 2, 9, color(na), fgColor, 1, fgColor, 1, true)
if barstate.isfirst
table.cell(table1, 0, 0, "ChartData.value()", text_color = fgColor)
table.cell(table2, 0, 0, "open ", text_color = fgColor)
table.merge_cells(table1, 0, 0, 1, 0)
table.merge_cells(table2, 0, 0, 1, 0)
for i = 1 to 8
table.cell(table1, 0, i, text_color = fgColor, text_halign = text.align_left, text_font_family = font.family_monospace)
table.cell(table2, 0, i, text_color = fgColor, text_halign = text.align_left, text_font_family = font.family_monospace)
table.cell(table1, 1, i, text_color = fgColor)
table.cell(table2, 1, i, text_color = fgColor)
if barstate.islast
for i = 1 to 8
float open1 = chartData.value("open", 5000 * i)
float open2 = i < 3 ? open : -1
table.cell_set_text(table1, 0, i, "chartData.value(\"open\", " + str.tostring(5000 * i) + "): ")
table.cell_set_text(table2, 0, i, "open : ")
table.cell_set_text(table1, 1, i, str.tostring(open1))
table.cell_set_text(table2, 1, i, open2 >= 0 ? str.tostring(open2) : "Error")
• xloc.bar_index → xloc.bar_time
The 𝚝𝚒𝚖𝚎 value (or 𝚝𝚒𝚖𝚎_𝚌𝚕𝚘𝚜𝚎 value) can be retrieved for any bar index that is stored in memory by the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object.
//@version=6
indicator("Example `timeAtBarIndex()`")
import n00btraders/ChartData/1
chartData = ChartData.collectChartData()
if barstate.islast
int start = bar_index - 15000
int end = bar_index - 100
// line.new(start, close, end, close) // !ERROR - `start` value is too far from current bar index
start := chartData.timeAtBarIndex(start)
end := chartData.timeAtBarIndex(end)
line.new(start, close, end, close, xloc.bar_time, width = 10)
• xloc.bar_time → xloc.bar_index
Use 𝚝𝚒𝚖𝚎𝚜𝚝𝚊𝚖𝚙𝚃𝚘𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡() to find the bar that a timestamp belongs to.
If the timestamp falls in between the close of one bar and the open of the next bar,
the 𝚜𝚗𝚊𝚙 parameter can be used to determine which bar to choose:
𝚂𝚗𝚊𝚙.𝙻𝙴𝙵𝚃 - prefer to choose the leftmost bar (typically used for closing times)
𝚂𝚗𝚊𝚙.𝚁𝙸𝙶𝙷𝚃 - prefer to choose the rightmost bar (typically used for opening times)
𝚂𝚗𝚊𝚙.𝙳𝙴𝙵𝙰𝚄𝙻𝚃 (or 𝚗𝚊) - copies the same behavior as xloc.bar_time uses for drawing objects
//@version=6
indicator("Example `timestampToBarIndex()`")
import n00btraders/ChartData/1
startTimeInput = input.time(timestamp("01 Aug 2025 08:30 -0500"), "Session Start Time")
endTimeInput = input.time(timestamp("01 Aug 2025 15:15 -0500"), "Session End Time")
chartData = ChartData.collectChartData()
if barstate.islastconfirmedhistory
int startBarIndex = chartData.timestampToBarIndex(startTimeInput, ChartData.Snap.RIGHT)
int endBarIndex = chartData.timestampToBarIndex(endTimeInput, ChartData.Snap.LEFT)
line1 = line.new(startBarIndex, 0, startBarIndex, 1, extend = extend.both, color = color.new(color.green, 60), force_overlay = true)
line2 = line.new(endBarIndex, 0, endBarIndex, 1, extend = extend.both, color = color.new(color.green, 60), force_overlay = true)
linefill.new(line1, line2, color.new(color.green, 90))
// using Snap.DEFAULT to show that it is equivalent to drawing lines using `xloc.bar_time` (i.e., it aligns to the same bars)
startBarIndex := chartData.timestampToBarIndex(startTimeInput)
endBarIndex := chartData.timestampToBarIndex(endTimeInput)
line.new(startBarIndex, 0, startBarIndex, 1, extend = extend.both, color = color.yellow, width = 3)
line.new(endBarIndex, 0, endBarIndex, 1, extend = extend.both, color = color.yellow, width = 3)
line.new(startTimeInput, 0, startTimeInput, 1, xloc.bar_time, extend.both, color.new(color.blue, 85), width = 11)
line.new(endTimeInput, 0, endTimeInput, 1, xloc.bar_time, extend.both, color.new(color.blue, 85), width = 11)
• Get Price of Line at Timestamp
The pine script built-in function line.get_price() requires working with bar index values. To get the price of a line in terms of a timestamp, convert the timestamp into a bar index or offset.
//@version=6
indicator("Example `line.get_price()` at timestamp")
import n00btraders/ChartData/1
lineStartInput = input.time(timestamp("01 Aug 2025 08:30 -0500"), "Line Start")
chartData = ChartData.collectChartData()
var diagonal = line.new(na, na, na, na, force_overlay = true)
if time <= lineStartInput
line.set_xy1(diagonal, bar_index, open)
if barstate.islastconfirmedhistory
line.set_xy2(diagonal, bar_index, close)
if barstate.islast
int timeOneWeekAgo = timenow - (7 * timeframe.in_seconds("1D") * 1000)
// Note: could also use `timetampToBarIndex(timeOneWeekAgo, Snap.DEFAULT)` and pass the value directly to `line.get_price()`
int barsOneWeekAgo = chartData.getNumberOfBarsBack(timeOneWeekAgo)
float price = line.get_price(diagonal, bar_index - barsOneWeekAgo)
string formatString = "Time 1 week ago: {0,number,#}\n - Equivalent to {1} bars ago\n\n𝚕𝚒𝚗𝚎.𝚐𝚎𝚝_𝚙𝚛𝚒𝚌𝚎(): {2,number,#.##}"
string labelText = str.format(formatString, timeOneWeekAgo, barsOneWeekAgo, price)
label.new(timeOneWeekAgo, price, labelText, xloc.bar_time, style = label.style_label_lower_right, size = 16, textalign = text.align_left, force_overlay = true)
█ RUNTIME ERROR MESSAGES
This library's functions will generate a custom runtime error message in the following cases:
𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() is not called consecutively, or is called more than once on a single bar
Invalid 𝚋𝚊𝚛𝚜𝙵𝚘𝚛𝚠𝚊𝚛𝚍 argument in the 𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() function
Invalid 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎𝚜 argument in the 𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊() function
Invalid 𝚕𝚎𝚗𝚐𝚝𝚑 argument in any of the functions that accept a number of bars back
Note: there is no runtime error generated for an invalid 𝚝𝚒𝚖𝚎𝚜𝚝𝚊𝚖𝚙 or 𝚋𝚊𝚛𝙸𝚗𝚍𝚎𝚡 argument in any of the functions. Instead, the functions will assign 𝚗𝚊 to the returned values.
Any other runtime errors are due to incorrect usage of the library.
█ NOTES
• Function Descriptions
The library source code uses Markdown for the exported functions. Hover over a function/method call in the Pine Editor to display formatted, detailed information about the function/method.
//@version=6
indicator("Demo Function Tooltip")
import n00btraders/ChartData/1
chartData = ChartData.collectChartData()
int barIndex = chartData.timestampToBarIndex(timenow)
log.info(str.tostring(barIndex))
• Historical vs. Realtime Behavior
Under the hood, the data collector for this library is declared as `var`. Because of this, the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object will always reflect the latest available data on realtime updates. Any data that is recorded for historical bars will remain unchanged throughout the execution of a script.
//@version=6
indicator("Demo Realtime Behavior")
import n00btraders/ChartData/1
var map variables = map.new()
variables.put("open", open)
variables.put("close", close)
chartData = ChartData.collectChartData(variables)
if barstate.isrealtime
varip float initialOpen = open
varip float initialClose = close
varip int updateCount = 0
updateCount += 1
float latestOpen = open
float latestClose = close
float recordedOpen = chartData.valueAtBarIndex("open", bar_index)
float recordedClose = chartData.valueAtBarIndex("close", bar_index)
string formatString = "# of updates: {0}\n\n𝚘𝚙𝚎𝚗 at update #1: {1,number,#.##}\n𝚌𝚕𝚘𝚜𝚎 at update #1: {2,number,#.##}\n\n"
+ "𝚘𝚙𝚎𝚗 at update #{0}: {3,number,#.##}\n𝚌𝚕𝚘𝚜𝚎 at update #{0}: {4,number,#.##}\n\n"
+ "𝚘𝚙𝚎𝚗 stored in memory: {5,number,#.##}\n𝚌𝚕𝚘𝚜𝚎 stored in memory: {6,number,#.##}"
string labelText = str.format(formatString, updateCount, initialOpen, initialClose, latestOpen, latestClose, recordedOpen, recordedClose)
label.new(bar_index, close, labelText, style = label.style_label_left, force_overlay = true)
• Collecting Chart Data for Other Contexts
If your use case requires collecting chart data from another context, avoid directly retrieving the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 object as this may exceed memory limits .
//@version=6
indicator("Demo Return Calculated Results")
import n00btraders/ChartData/1
timeInput = input.time(timestamp("01 Sep 2025 08:30 -0500"), "Time")
var int oneMinuteBarsAgo = na
// !ERROR - Memory Limits Exceeded
// chartDataArray = request.security_lower_tf(syminfo.tickerid, "1", ChartData.collectChartData())
// oneMinuteBarsAgo := chartDataArray.last().getNumberOfBarsBack(timeInput)
// function that returns calculated results (a single integer value instead of an entire `ChartData` object)
getNumberOfBarsBack() =>
chartData = ChartData.collectChartData()
chartData.getNumberOfBarsBack(timeInput)
calculatedResultsArray = request.security_lower_tf(syminfo.tickerid, "1", getNumberOfBarsBack())
oneMinuteBarsAgo := calculatedResultsArray.size() > 0 ? calculatedResultsArray.last() : na
if barstate.islast
string labelText = str.format("The selected timestamp occurs 1-minute bars ago", oneMinuteBarsAgo)
label.new(bar_index, hl2, labelText, style = label.style_label_left, size = 16, force_overlay = true)
• Memory Usage
The library's convenience and ease of use comes at the cost of increased usage of computational resources. For simple scripts, using this library will likely not cause any issues with exceeding memory limits. But for large and complex scripts, you can reduce memory issues by specifying a lower 𝚌𝚊𝚕𝚌_𝚋𝚊𝚛𝚜_𝚌𝚘𝚞𝚗𝚝 amount in the indicator() or strategy() declaration statement.
//@version=6
// !ERROR - Memory Limits Exceeded using the default number of bars available (~20,000 bars for Premium plans)
//indicator("Demo `calc_bars_count` parameter")
// Reduce number of bars using `calc_bars_count` parameter
indicator("Demo `calc_bars_count` parameter", calc_bars_count = 15000)
import n00btraders/ChartData/1
map variables = map.new()
variables.put("open", open)
variables.put("close", close)
variables.put("weekofyear", weekofyear)
variables.put("dayofmonth", dayofmonth)
variables.put("hour", hour)
variables.put("minute", minute)
variables.put("second", second)
// simulate large memory usage
chartData0 = ChartData.collectChartData(variables)
chartData1 = ChartData.collectChartData(variables)
chartData2 = ChartData.collectChartData(variables)
chartData3 = ChartData.collectChartData(variables)
chartData4 = ChartData.collectChartData(variables)
chartData5 = ChartData.collectChartData(variables)
chartData6 = ChartData.collectChartData(variables)
chartData7 = ChartData.collectChartData(variables)
chartData8 = ChartData.collectChartData(variables)
chartData9 = ChartData.collectChartData(variables)
log.info(str.tostring(chartData0.time(0)))
log.info(str.tostring(chartData1.time(0)))
log.info(str.tostring(chartData2.time(0)))
log.info(str.tostring(chartData3.time(0)))
log.info(str.tostring(chartData4.time(0)))
log.info(str.tostring(chartData5.time(0)))
log.info(str.tostring(chartData6.time(0)))
log.info(str.tostring(chartData7.time(0)))
log.info(str.tostring(chartData8.time(0)))
log.info(str.tostring(chartData9.time(0)))
if barstate.islast
result = table.new(position.middle_right, 1, 1, force_overlay = true)
table.cell(result, 0, 0, "Script Execution Successful ✅", text_size = 40)
█ EXPORTED ENUMS
Snap
Behavior for determining the bar that a timestamp belongs to.
Fields:
LEFT : Snap to the leftmost bar.
RIGHT : Snap to the rightmost bar.
DEFAULT : Default `xloc.bar_time` behavior.
Note: this enum is used for the 𝚜𝚗𝚊𝚙 parameter of 𝚝𝚒𝚖𝚎𝚜𝚝𝚊𝚖𝚙𝚃𝚘𝙱𝚊𝚛𝙸𝚗𝚍𝚎𝚡().
█ EXPORTED TYPES
Note: users of the library do not need to worry about directly accessing the fields of these types; all computations are done through method calls on an object of the 𝙲𝚑𝚊𝚛𝚝𝙳𝚊𝚝𝚊 type.
Variable
Represents a user-specified variable that can be tracked on every chart bar.
Fields:
name (series string) : Unique identifier for the variable.
values (array) : The array of stored values (one value per chart bar).
ChartData
Represents data for all bars on a chart.
Fields:
bars (series int) : Current number of bars on the chart.
timeValues (array) : The `time` values of all chart (and future) bars.
timeCloseValues (array) : The `time_close` values of all chart (and future) bars.
variables (array) : Additional custom values to track on all chart bars.
█ EXPORTED FUNCTIONS
collectChartData()
Collects and tracks the `time` and `time_close` value of every bar on the chart.
Returns: `ChartData` object to convert between `xloc.bar_index` and `xloc.bar_time`.
collectChartData(barsForward)
Collects and tracks the `time` and `time_close` value of every bar on the chart as well as a specified number of future bars.
Parameters:
barsForward (simple int) : Number of future bars to collect data for.
Returns: `ChartData` object to convert between `xloc.bar_index` and `xloc.bar_time`.
collectChartData(variables)
Collects and tracks the `time` and `time_close` value of every bar on the chart. Additionally, tracks a custom set of variables for every chart bar.
Parameters:
variables (simple map) : Custom values to collect on every chart bar.
Returns: `ChartData` object to convert between `xloc.bar_index` and `xloc.bar_time`.
collectChartData(barsForward, variables)
Collects and tracks the `time` and `time_close` value of every bar on the chart as well as a specified number of future bars. Additionally, tracks a custom set of variables for every chart bar.
Parameters:
barsForward (simple int) : Number of future bars to collect data for.
variables (simple map) : Custom values to collect on every chart bar.
Returns: `ChartData` object to convert between `xloc.bar_index` and `xloc.bar_time`.
█ EXPORTED METHODS
method timestampToBarIndex(chartData, timestamp, snap)
Converts a UNIX timestamp to a bar index.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
timestamp (series int) : A UNIX time.
snap (series Snap) : A `Snap` enum value.
Returns: A bar index, or `na` if unable to find the appropriate bar index.
method getNumberOfBarsBack(chartData, timestamp)
Converts a UNIX timestamp to a history-referencing length (i.e., number of bars back).
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
timestamp (series int) : A UNIX time.
Returns: A bar offset, or `na` if unable to find a valid number of bars back.
method timeAtBarIndex(chartData, barIndex)
Retrieves the `time` value for the specified bar index.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
barIndex (int) : The bar index.
Returns: The `time` value, or `na` if there is no `time` stored for the bar index.
method time(chartData, length)
Retrieves the `time` value of the bar that is `length` bars back relative to the latest bar.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
length (series int) : Number of bars back.
Returns: The `time` value `length` bars ago, or `na` if there is no `time` stored for that bar.
method timeCloseAtBarIndex(chartData, barIndex)
Retrieves the `time_close` value for the specified bar index.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
barIndex (series int) : The bar index.
Returns: The `time_close` value, or `na` if there is no `time_close` stored for the bar index.
method timeClose(chartData, length)
Retrieves the `time_close` value of the bar that is `length` bars back from the latest bar.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
length (series int) : Number of bars back.
Returns: The `time_close` value `length` bars ago, or `na` if there is none stored.
method valueAtBarIndex(chartData, name, barIndex)
Retrieves the value of a custom variable for the specified bar index.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
name (series string) : The variable name.
barIndex (series int) : The bar index.
Returns: The value of the variable, or `na` if that variable is not stored for the bar index.
method value(chartData, name, length)
Retrieves a variable value of the bar that is `length` bars back relative to the latest bar.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
name (series string) : The variable name.
length (series int) : Number of bars back.
Returns: The value `length` bars ago, or `na` if that variable is not stored for the bar index.
method getAllVariablesAtBarIndex(chartData, barIndex)
Retrieves all custom variables for the specified bar index.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
barIndex (series int) : The bar index.
Returns: Map of all custom variables that are stored for the specified bar index.
method getEarliestStoredData(chartData)
Gets all values from the earliest bar data that is currently stored in memory.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
Returns: A tuple:
method getLatestStoredData(chartData, futureData)
Gets all values from the latest bar data that is currently stored in memory.
Namespace types: ChartData
Parameters:
chartData (series ChartData) : The `ChartData` object.
futureData (series bool) : Whether to include the future data that is stored in memory.
Returns: A tuple:
LBM-Strategy Engine Pro: The Ultimate Confluence IndicatorOverview
Welcome to the Strategy Engine Pro , the ultimate confluence indicator designed for traders who demand precision and full control over their trading signals. This is not just an indicator; it is a complete, customizable strategy-building framework.
It seamlessly integrates three powerful concepts into a single, intuitive tool:
Advanced Moving Average Trend Analysis to define the market context.
An intelligent Support & Resistance Cycle Engine to identify key price levels.
A flexible 10-rule Strategy Builder that lets you design, test, and refine your own entry signals with surgical precision.
Core Features
1. Advanced Moving Average Trend Analysis
The indicator plots 5 fully configurable Moving Averages (MAs). You can choose the Period and Type (SMA, EMA, WMA, HMA, RMA) for each one. But its true power lies in its unique color-coding system, which analyzes the slope and momentum of each MA, not just its price.
MA Color Code:
Green: The MA is in a strong, confirmed uptrend.
Red: The MA is in a strong, confirmed downtrend.
Yellow: The MA is flat or in a transitional (sideways) phase.
This provides an instant visual snapshot of the market trend across five different timeframes.
2. Support & Resistance Cycle Engine
Forget simple pivot points. This indicator incorporates a sophisticated engine that identifies and plots significant "Master Cycle" levels on your chart.
Anchored Levels: These S/R lines are persistent and intelligent. When a key resistance level is broken, it automatically "flips" and becomes the new anchored support level, and vice-versa. This accurately maps out the market's structural progression.
The Strategy Builder: Your Personal Trading Lab
This is the heart of the indicator. You have 10 sequential rules that allow you to define the exact conditions for a Buy signal. The Sell signal is generated as the logical, symmetrical opposite.
For each rule, you can configure:
Source A & Source B: Choose from a wide range of data points:
Price values: Close, Open, High, Low.
Previous candle values: Close Before, Open Before, etc.
Moving Average values: MA 1 through MA 5.
MA Trend Colors: MA 1 Color, MA 2 Color Before, etc.
Operator: Define the comparison logic:
Standard: >, <, >=, <=
Events: Crossover, Crossunder
Color Logic: Is Color, Is NOT Color, Turned Color, Ceased to be Color
Important Note on Sell Signals: Sell conditions are designed to be the symmetrical opposite of the buy conditions you create.
If Buy is Close > MA 1, Sell will be Close < MA 1.
If Buy is MA 1 Color Is Green, Sell will be MA 1 Color Is Red.
If Buy is MA 1 Color Turned Green, Sell will be MA 1 Color Turned Red.
This ensures your sell strategy mirrors the logic of your buy strategy, preventing the "inverse problem" of getting sell signals on every candle that isn't a buy signal.
Mastering the Connectors: ( ) AND and ( ) OR
The true power of the Strategy Builder lies in its connectors, which allow you to create complex, multi-layered logic. The connector on a rule defines how it connects to the next active rule.
AND & OR: These work as you'd expect, creating a continuous chain of conditions.
Rule 1 (AND) & Rule 2 is evaluated as (R1 AND R2).
( ) OR (The Group Separator): This is your most powerful tool. It acts like closing a parenthesis in an equation. It finalizes the current group of rules and connects it to the
next group with a big "OR".
Example: (R1 AND R2) OR (R3 AND R4)
This creates two possible paths for a signal.
- Rule 1: Condition R1, Connector AND
- Rule 2: Condition R2, Connector ( ) OR <-- This closes the first group and links to the next with OR.
- Rule 3: Condition R3, Connector AND
- Rule 4: Condition R4
( ) AND (The Super-Filter): This allows you to create a "master" condition that must be true in addition to other complex conditions.
Example: (R1 OR R2) AND (R3 OR R4)
This requires a condition from the first group and a condition from the second group to be true.
- Rule 1: Condition R1, Connector OR
- Rule 2: Condition R2, Connector ( ) AND <-- This closes the first OR group and links to the next with AND.
- Rule 3: Condition R3, Connector OR
- Rule 4: Condition R4
By strategically combining these connectors, you can build any logical trading scenario you can imagine. We look forward to seeing the powerful strategies the community creates with this engine.
Volatility Cone Forecaster Lite [PhenLabs]📊 Volatility Cone Forecaster
Version: PineScript™v6
📌Description
The Volatility Cone Forecaster (VCF) is an advanced indicator designed to provide traders with a forward-looking perspective on market volatility. Instead of merely measuring past price fluctuations, the VCF analyzes historical volatility data to project a statistical “cone” that outlines a probable range for future price movements. Its core purpose is to contextualize the current market environment, helping traders to anticipate potential shifts from low to high volatility periods (and vice versa). By identifying whether volatility is expanding or contracting relative to historical norms, it solves the critical problem of preparing for significant market moves before they happen, offering a clear statistical edge in strategy development.
This indicator moves beyond lagging measures by employing percentile analysis to rank the current volatility state. This allows traders to understand not just what volatility is, but how significant it is compared to the recent past. The VCF is built for discretionary traders, system developers, and options strategists who need a sophisticated understanding of market dynamics to manage risk and identify high-probability opportunities.
🚀Points of Innovation
Forward-Looking Volatility Projection: Unlike standard indicators that only show historical data, the VCF projects a statistical cone of future volatility.
Percentile-Based Regime Analysis: Ranks current volatility against historical data (e.g., 90th, 75th percentiles) to provide objective context.
Automated Regime Detection: Automatically identifies and labels the market as being in a ‘High’, ‘Low’, or ‘Normal’ volatility regime.
Expansion & Contraction Signals: Clearly indicates whether volatility is currently increasing or decreasing, signaling shifts in market energy.
Integrated ATR Comparison: Plots an ATR-equivalent volatility measure to offer a familiar point of reference against the statistical model.
Dynamic Visual Modeling: The cone visualization directly on the price chart provides an intuitive guide for future expected price ranges.
🔧Core Components
Realized Volatility Engine: Calculates historical volatility using log returns over multiple user-defined lookback periods (short, medium, long) for a comprehensive view.
Percentile Analysis Module: A custom function calculates the 10th, 25th, 50th, 75th, and 90th percentiles of volatility over a long-term lookback (e.g., 252 days).
Forward Projection Calculator: Uses the calculated volatility percentiles to mathematically derive and draw the upper and lower bounds of the future volatility cone.
Volatility Regime Classifier: A logic-based system that compares current volatility to the historical percentile bands to classify the market state.
🔥Key Features
Customizable Lookback Periods: Adjust short, medium, and long-term lookbacks to fine-tune the indicator’s sensitivity to different market cycles.
Configurable Forward Projection: Set the number of days for the forward cone projection to align with your specific trading horizon.
Interactive Display Options: Toggle visibility for percentile labels, ATR levels, and regime coloring to customize the chart display.
Data-Rich Information Table: A clean, on-screen table displays all key metrics, including current volatility, percentile rank, regime, and trend.
Built-in Alert Conditions: Set alerts for critical events like volatility crossing the 90th percentile, dropping below the 10th, or switching between expansion and contraction.
🎨Visualization
Volatility Cone: Shaded bands projected onto the future price axis, representing the probable price range at different statistical confidence levels (e.g., 75th-90th percentile).
Color-Coded Volatility Line: The primary volatility plot dynamically changes color (e.g., red for high, green for low) to reflect the current volatility regime, providing instant context.
Historical Percentile Bands: Horizontal lines plotted across the indicator pane mark the key percentile levels, showing how current volatility compares to the past.
On-Chart Labels: Clear labels automatically display the current volatility reading, its percentile rank, the detected regime, and trend (Expanding/Contracting).
📖Usage Guidelines
Setting Categories
Short-term Lookback: Default: 10, Range: 5-50. Controls the most sensitive volatility calculation.
Medium-term Lookback: Default: 21, Range: 10-100. The primary input for the current volatility reading.
Long-term Lookback: Default: 63, Range: 30-252. Provides a baseline for long-term market character.
Percentile Lookback Period: Default: 252, Range: 100-1000. Defines the period for historical ranking; 252 represents one trading year.
Forward Projection Days: Default: 21, Range: 5-63. Determines how many bars into the future the cone is projected.
✅Best Use Cases
Breakout Trading: Identify periods of deep consolidation when volatility falls to low percentile ranks (e.g., below 25th) and begins to expand, signaling a potential breakout.
Mean Reversion Strategies: Target trades when volatility reaches extreme high percentile ranks (e.g., above 90th), as these periods are often unsustainable and lead to contraction.
Options Strategy: Use the cone’s projected upper and lower bounds to help select strike prices for strategies like iron condors or straddles.
Risk Management: Widen stop-losses and reduce position sizes when the indicator signals a transition into a ‘High’ volatility regime.
⚠️Limitations
Probabilistic, Not Predictive: The cone represents a statistical probability, not a guarantee of future price action. Extreme, unpredictable news events can drive prices outside the cone.
Lagging by Nature: All calculations are based on historical price data, meaning the indicator will always react to, not pre-empt, market changes.
Non-Directional: The indicator forecasts the *magnitude* of future moves, not the *direction*. It should be paired with a directional analysis tool.
💡What Makes This Unique
Forward Projection: Its primary distinction is projecting a data-driven, statistical forecast of future volatility, which standard oscillators do not do.
Contextual Analysis: It doesn’t just provide a number; it tells you what that number means through percentile ranking and automated regime classification.
🔬How It Works
1. Data Calculation:
The indicator first calculates the logarithmic returns of the asset’s price. It then computes the annualized standard deviation of these returns over short, medium, and long-term lookback periods to generate realized volatility readings.
2. Percentile Ranking:
Using a 252-day lookback, it analyzes the history of the medium-term volatility and determines the values that correspond to the 10th, 25th, 50th, 75th, and 90th percentiles. This builds a statistical map of the asset’s volatility behavior.
3. Cone Projection:
Finally, it takes these historical percentile values and projects them forward in time, calculating the potential upper and lower price bounds based on what would happen if volatility were to run at those levels over the next 21 days.
💡Note:
The Volatility Cone Forecaster is most effective on daily and weekly charts where statistical volatility models are more reliable. For lower timeframes, consider shortening the lookback periods. Always use this indicator as part of a comprehensive trading plan that includes other forms of analysis.
Confluence Engine Confluence Engine is a practical, non-repainting decision aid that scores market conditions from −100…+100 by combining six proven modules: Trend, Momentum, Volatility, Volume, Structure, and an HTF confirmation. It’s designed for crypto, forex, indices, and stocks, and it fires entries only on confirmed bar closes.
What’s inside
Trend: EMA 20/50/200 alignment plus a Supertrend/KAMA toggle (you choose the baseline).
Momentum: RSI + MACD with confirmed-pivot divergence detection.
Volatility: ATR% and Bollinger Band width vs its average to favor expansion over chop.
Volume: OBV-style cumulative flow slope + volume surge vs SMA×multiplier.
Market Structure: Confirmed pivots, BOS (break of structure) and CHOCH (change of character).
HTF Filter: Closed higher-timeframe context via request.security(..., barmerge.gaps_on, barmerge.lookahead_off).
Why it does not repaint
Signals are computed and plotted on closed bars only.
Pivots/divergences use confirmed pivot points (no forward look).
HTF series are fetched with lookahead_off and use the last closed HTF bar in realtime.
No future bar references are used for entries or alerts.
How to use (3 steps)
Pick a timeframe pair: use a 4–6× HTF multiplier (5m→30m, 15m→1h, 1h→4h, 4h→1D, 1D→1W).
Trade with the HTF: take longs only when the HTF filter is bullish; shorts only when bearish.
Prefer expansion: act when BB width > its average and ATR% is elevated; skip most signals in compression.
Suggested presets (start here)
Crypto (BTC/ETH): 15m→1h, 1h→4h. stLen=10, stMult=3.0, bbLen=20, surgeMul=1.8–2.2, thresholds +40 / −40 (intraday can try +35 / −35).
Forex majors: 15m→1h, 1h→4h. stLen=10–14, stMult=2.5–3.0, surgeMul=1.5–1.8, thresholds +35 / −35 (swing: +45 / −45).
US equities (liquid): 5m→30m/1h, 15m→1h/2h. stMult=3.0–3.5, surgeMul=1.6–2.0, thresholds +45 / −45 to reduce chop.
Indices (ES/NQ): 5m→30m, 15m→1h. Defaults are fine; start at +40 / −40.
Gold/Oil: 15m→1h, 1h→4h. Thresholds +35 / −35, surgeMul=1.6–1.9.
Inputs (plain English)
Use Supertrend (off = KAMA): choose the trend baseline.
EMA Fast/Mid/Slow: 20/50/200 by default for classic stack.
RSI/MACD + divergence pivots: momentum and exhaustion context.
ATR Length & BB Length: volatility regime detection.
Volume SMA & Surge Multiplier: defines “meaningful” volume spikes.
Pivot left/right & “Confirm BOS/CHOCH on Close”: structure strictness.
Enable HTF & Higher Timeframe: confirms the lower timeframe direction.
Thresholds (+long / −short): when the score crosses these, you get signals.
Signals & alerts (IDs preserved)
Entry shapes plot at bar close when the score crosses thresholds.
Alerts you can enable:
CONFLUENCE LONG — long entry signal
CONFLUENCE SHORT — short entry signal
BULLISH BIAS — score turned positive
BEARISH BIAS — score turned negative
Best practices
Focus on signals with HTF agreement and volatility expansion; require volume participation (surge or rising OBV slope) for higher quality.
Raise thresholds (+45/−45 or +50/−50) to reduce whipsaws in choppy sessions.
Lower thresholds (+35/−35) only if you also require volatility/volume filters.
Performance & scope
Works across crypto/FX/equities/indices; no broker data or special feeds required.
No repainting by design; signals/alerts are computed on closed bars.
As with any tool, results vary by regime; always combine with risk management.
Disclosure
This script is for educational purposes only and is not financial advice. Trading involves risk. Test on historical data and paper trade before using live.
Kalman Sigmoid Z-score | SurgeQuantTitle: Kalman Sigmoid Z-score Indicator
The Kalman Sigmoid Z-score indicator is a sophisticated tool designed to identify market momentum and potential trend changes using a combination of Kalman filtering, sigmoid-weighted averaging, and Z-score calculations. By processing price data through a Kalman filter and applying adaptive sigmoid weighting, this indicator provides clear visual signals for bullish and bearish market conditions. The Z-score output and price bars are dynamically colored to highlight momentum shifts, aiding traders in identifying potential trading opportunities.
How It Works
Kalman Filter Calculation
Computes a smoothed price series using a Kalman filter based on a user-selected price source (Close, High, Low, or Open) with configurable parameters for process noise, measurement noise, and filter order (default: 3).
The Kalman filter reduces noise in the price data, providing a stable foundation for further analysis.
Sigmoid-Weighted Averaging
Applies a sigmoid function to calculate adaptive weights based on price comparisons over a user-defined lookback period (default: 10).
Weights are adjusted dynamically using a volatility ratio (standard deviation over ATR) to account for market conditions, enhancing signal reliability.
Z-score Calculation
Calculates the Z-score of the Kalman-filtered price relative to a sigmoid-weighted moving average over a user-defined period (default: 20).
Bullish Signal: Triggered when the Z-score crosses above 0, indicating potential upward momentum.
Bearish Signal: Triggered when the Z-score crosses below 0, indicating potential downward momentum.
Visual Representation
The indicator provides a clear and customizable visual interface:
Z-score Histogram: Displayed as colored columns, with distinct colors for bullish (Z-score > 0) and bearish (Z-score < 0) conditions.
Bright green (#4DFFBE) for rising Z-score above 0.
Light green (#56DFCF) for falling Z-score above 0.
Dark purple (#AE75DA) for falling Z-score below 0.
Light purple (#4D2D8C) for rising Z-score below 0.
Price Bar Coloring: Synchronizes with the Z-score colors to reflect momentum on the main chart.
Reference Line: A zero line is plotted on the Z-score panel for easy reference.
Customization & Parameters
The Kalman Sigmoid Z-score indicator offers flexible parameters to suit various trading styles:
Source: Select the input price (default: Close; options: Close, High, Low, Open).
Lookback Period: Set the period for sigmoid weight calculations (default: 10).
Volatility Period: Adjust the period for volatility ratio calculation (default: 30).
Base Steepness: Control the sigmoid function’s sensitivity (default: 5).
Base Midpoint: Set the sigmoid function’s midpoint (default: 0.01).
Z-score Period: Define the period for Z-score calculation (default: 20).
Kalman Parameters:
Process Noise (default: 0.01).
Measurement Noise (default: 3).
Filter Order (default: 3).
Color Settings: Predefined colors with distinct shades for bullish and bearish states, ensuring clear visual differentiation.
Trading Applications
This indicator is versatile and can be applied across various markets and strategies:
Momentum Trading: Highlights strong bullish or bearish momentum for potential entry or exit points based on Z-score crossings.
Trend Confirmation: Use bar coloring to confirm Z-score signals with price action on the main chart.
Reversal Detection: Identify potential reversals when the Z-score crosses the zero line.
Scalping and Swing Trading: Adjust parameters (e.g., lookback, Z-score period) to suit short-term or longer-term strategies.
Final Note
The Kalman Sigmoid Z-score indicator is a powerful tool for traders seeking to leverage advanced filtering and statistical analysis for momentum and trend-based opportunities. Its combination of Kalman-filtered price smoothing, sigmoid-weighted averaging, dynamic Z-score signals, and synchronized bar coloring offers a robust framework for informed trading decisions. As with all indicators, backtest thoroughly and integrate into a comprehensive trading strategy for optimal results. This indicator is provided for educational and informational purposes and should not be considered financial advice.
RSI ADX Bollinger Analysis High-level purpose and design philosophy
This indicator — RSI-ADX-Bollinger Analysis — is a compact, educational market-analysis toolkit that blends momentum (RSI), trend strength (ADX), volatility structure (Bollinger Bands) and simple volumetrics to provide traders a snapshot of market condition and trade idea quality. The design philosophy is explicit and layered: use each component to answer a different question about price action (momentum, conviction, volatility, participation), then combine answers to form a more robust, explainable signal. The mashup is intended for analysis and learning, not automatic execution: it surfaces the why behind signals so traders can test, learn and apply rules with risk management.
________________________________________
What each indicator contributes (component-by-component)
RSI (Relative Strength Index) — role and behavior: RSI measures short-term momentum by comparing recent gains to recent losses. A high RSI (near or above the overbought threshold) indicates strong recent buying pressure and potential exhaustion if price is extended. A low RSI (near or below the oversold threshold) indicates strong recent selling pressure and potential exhaustion or a value area for mean-reversion. In this dashboard RSI is used as the primary momentum trigger: it helps identify whether price is locally over-extended on the buy or sell side.
ADX (Average Directional Index) — role and behavior: ADX measures trend strength independently of direction. When ADX rises above a chosen threshold (e.g., 25), it signals that the market is trending with conviction; ADX below the threshold suggests range or weak trend. Because patterns and momentum signals perform differently in trending vs. ranging markets, ADX is used here as a filter: only when ADX indicates sufficient directional strength does the system treat RSI+BB breakouts as meaningful trade candidates.
Bollinger Bands — role and behavior: Bollinger Bands (20-period basis ± N standard deviations) show volatility envelope and relative price position vs. a volatility-adjusted mean. Price outside the upper band suggests pronounced extension relative to recent volatility; price outside the lower band suggests extended weakness. A band expansion (increasing width) signals volatility breakout potential; contraction signals range-bound conditions and potential squeeze. In this dashboard, Bollinger Bands provide the volatility/structural context: RSI extremes plus price beyond the band imply a stronger, volatility-backed move.
Volume split & basic MA trend — role and behavior: Buy-like and sell-like volume (simple heuristic using close>open or closeopen) or sell-like (close1.2 for validation and compare win rate and expectancy.
4. TF alignment: Accept signals only when higher timeframe (e.g., 4h) trend agrees — compare results.
5. Parameter sensitivity: Vary RSI threshold (70/30 vs 80/20), Bollinger stddev (2 vs 2.5), and ADX threshold (25 vs 30) and measure stability of results.
These exercises teach both statistical thinking and the specific failure modes of the mashup.
________________________________________
Limitations, failure modes and caveats (explicit & teachable)
• ADX and Bollinger measures lag during fast-moving news events — signals can be late or wrong during earnings, macro shocks, or illiquid sessions.
• Volume classification by open/close is a heuristic; it does not equal TAPEDATA, footprint or signed volume. Use it as supportive evidence, not definitive proof.
• RSI can remain overbought or oversold for extended stretches in persistent trends — relying solely on RSI extremes without ADX or BB context invites large drawdowns.
• Small-cap or low-liquidity instruments yield noisy band behavior and unreliable volume ratios.
Being explicit about these limitations is a strong point in a TradingView description — it demonstrates transparency and educational intent.
________________________________________
Originality & mashup justification (text you can paste)
This script intentionally combines classical momentum (RSI), volatility envelope (Bollinger Bands) and trend-strength (ADX) because each indicator answers a different and complementary question: RSI answers is price locally extreme?, Bollinger answers is price outside normal volatility?, and ADX answers is the market moving with conviction?. Volume participation then acts as a practical check for real market involvement. This combination is not a simple “indicator mashup”; it is a designed ensemble where each element reduces the others’ failure modes and together produce a teachable, testable signal framework. The script’s purpose is educational and analytical — to show traders how to interpret the interplay of momentum, volatility, and trend strength.
________________________________________
TradingView publication guidance & compliance checklist
To satisfy TradingView rules about mashups and descriptions, include the following items in your script description (without exposing source code):
1. Purpose statement: One or two lines describing the script’s objective (educational multi-indicator market overview and idea filter).
2. Component list: Name the major modules (RSI, Bollinger Bands, ADX, volume heuristic, SMA trend checks, signal tracking) and one-sentence reason for each.
3. How they interact: A succinct non-code explanation: “RSI finds momentum extremes; Bollinger confirms volatility expansion; ADX confirms trend strength; all three must align for a BUY/SELL.”
4. Inputs: List adjustable inputs (RSI length and thresholds, BB length & stddev, ADX threshold & smoothing, volume MA, table position/size).
5. Usage instructions: Short workflow (check TF alignment → confirm participation → define stop & R:R → backtest).
6. Limitations & assumptions: Explicitly state volume is approximated, ADX has lag, and avoid promising guaranteed profits.
7. Non-promotional language: No external contact info, ads, claims of exclusivity or guaranteed outcomes.
8. Trademark clause: If you used trademark symbols, remove or provide registration proof.
9. Risk disclaimer: Add the copy-ready disclaimer below.
This matches TradingView’s request for meaningful descriptions that explain originality and inter-component reasoning.
________________________________________
Copy-ready short publication description (paste into TradingView)
Advanced RSI-ADX-Bollinger Market Overview — educational multi-indicator dashboard. This script combines RSI (momentum extremes), Bollinger Bands (volatility envelope and band expansion), ADX (trend strength), simple SMA trend bias and a basic buy/sell volume heuristic to surface high-quality idea candidates. Signals require alignment of momentum, volatility expansion and rising ADX; volume participation is displayed to support signal confidence. Inputs are configurable (RSI length/levels, BB length/stddev, ADX length/threshold, volume MA, display options). This tool is intended for analysis and learning — not for automated execution. Users should back test and apply robust risk management. Limitations: volume classification here is a heuristic (close>open), ADX and BB measures lag in fast news events, and results vary by instrument liquidity.
________________________________________
Copy-ready risk & misuse disclaimer (paste into description or help file)
This script is provided for educational and analytical purposes only and does not constitute financial or investment advice. It does not guarantee profits. Indicators are heuristics and may give false or late signals; always back test and paper-trade before using real capital. The author is not responsible for trading losses resulting from the use or misuse of this indicator. Use proper position sizing and risk controls.
________________________________________
Risk Disclaimer: This tool is provided for education and analysis only. It is not financial advice and does not guarantee returns. Users assume all risk for trades made based on this script. Back test thoroughly and use proper risk management.