Price action plus//The system combines the divergence of A/D and OBV with identifying reversal points using Japanese candlestick patterns, creating an enhanced version of price action. This helps investors more easily and accurately recognize reversal patterns in technical analysis.
Divergence of A/D vs. OBV includes:
Positive divergence: Identifies smart money leaving the market.
Negative divergence: Identifies smart money entering the market.
Reversal candlestick patterns include:
Buy signals: Morning Star, Bullish Engulfing, Hammer.
Strong Buy signals: Buy signals + Negative divergence
Sell signals: Evening Star, Bearish Engulfing, Shooting Star.
Strong Sell signals : Sell signals + Positive divergence
//Hope this system will be helpful for you!
Chu kỳ
Candle Height & Trend Probability DashboardDescription and Guide
Description:
This Pine Script for TradingView displays a dashboard that calculates the probability of price increases or decreases based on past price movements. It analyzes the last 30 candles (by default) and shows the probabilities for different timeframes (from 1 minute to 1 week). Additionally, it checks volatility using the ATR indicator.
Script Features:
Calculates probabilities of an upward (Up %) or downward (Down %) price move based on past candles.
Displays a dashboard showing probabilities for multiple timeframes.
Color-coded probability display:
Green if the upward probability exceeds a set threshold.
Red if the downward probability exceeds the threshold.
Yellow if neither threshold is exceeded.
Considers volatility using the ATR indicator.
Triggers alerts when probabilities exceed specific values.
How to Use:
Insert the script into TradingView: Copy and paste the script into the Pine Script editor.
Adjust parameters:
lookback: Number of past candles used for calculation (default: 30).
alertThresholdUp & alertThresholdDown: Thresholds for probabilities (default: 51%).
volatilityLength & volatilityThreshold: ATR volatility settings.
dashboardPosition: Choose where the dashboard appears on the chart.
Enable visualization: The dashboard will be displayed over the chart.
Set alerts: The script triggers notifications when probabilities exceed set thresholds.
Super Cycle Low FinderHow the Indicator Works
1. Inputs
Users can adjust the cycle lengths:
Daily Cycle: Default is 40 days (within 36-44 days).
Weekly Cycle: Default is 26 weeks (182 days, within 22-31 weeks).
Yearly Cycle: Default is 4 years (1460 days).
2. Cycle Low Detection
Function: detect_cycle_low finds the lowest low over the specified period and confirms it with a bullish candle (close > open).
Timeframes: Daily lows are calculated directly; weekly and yearly lows use request.security to fetch data from higher timeframes.
3. Half Cycle Lows
Detected over half the cycle length, plotted to show mid-cycle strength or weakness.
4. Cycle Translation
Logic: Compares the position of the highest high to the cycle’s midpoint.
Output: "R" for right translated (bullish), "L" for left translated (bearish), displayed above bars.
5. Cycle Failure
Flags when a new low falls below the previous cycle low, indicating a breakdown.
6. Visualization
Cycle Lows: Diamonds below bars (yellow for daily, green for weekly, blue for yearly).
Half Cycle Lows: Circles below bars (orange, lime, aqua).
Translations: "R" or "L" above bars in distinct colors.
Failures: Downward triangles below bars (red, orange, purple).
Intraday Volume Indicator for INDICES by TBTPH Pine Script code for an intraday volume indicator with session and lunch break highlights looks great! Here’s a summary of what each part of the script does:
Indicator Settings:
The indicator is set to show on a separate pane (overlay=false).
The SMA Length is adjustable with an input box (default of 20).
Volume and SMA Calculation:
You calculate the Simple Moving Average (SMA) of the volume over the selected length.
The volume color is determined based on whether the close price is higher or lower than the previous close and if the volume is above or below the SMA.
Volume Plot:
Volume is plotted as a histogram with different colors to indicate if the volume is higher or lower than the SMA.
You plot the SMA of the volume with an orange line for easier comparison.
Background Color:
You set a light gray background color to give a subtle contrast.
NYSE and LSE trading sessions are highlighted with green and blue, respectively.
Lunch break periods are highlighted with a white background for both exchanges.
Here are a couple of improvements or suggestions you might consider:
Session Time Overlap Handling:
If the script is applied to a chart where both NYSE and LSE data is visible, they may overlap depending on the time zone of your chart. Ensure the session times align with the active market's timezone, especially if you are using a chart with a different timezone setting.
Color Customization:
The color scheme for bullish/bearish volume could be enhanced further. For example, you could introduce more transparency for low-volume periods to make the histogram appear more subtle during less active trading times.
Handling Different Time Zones:
If your chart is not in the "America/New_York" or "GMT" time zone, be mindful of the session times. The timestamp function depends on the chart’s time zone, so ensuring you're adjusting for different markets is key.
ICT Order Blocks v2 (Debug)Josh has a very large PP xD
Understanding Order Blocks (OBs) - The ICT Perspective
This document delves into the concept of Order Blocks (OBs) from the perspective of the ICT methodology. It outlines what OBs are, their significance in trading, and how the "ICT Order Blocks v2 (Refined)" indicator functions to identify and visualize these critical price levels. By understanding OBs, traders can better navigate market movements and make informed decisions based on institutional trading behavior.
What is an Order Block (OB)?
Within ICT methodology, an Order Block represents a specific price candle where significant buying or selling interest from institutions (Smart Money) is believed to have occurred. They are potential areas where price might return and react.
Bullish Order Block: Typically the last down-closing candle before a strong, impulsive upward move (displacement). It suggests institutions may have absorbed selling pressure and initiated long positions here.
Bearish Order Block: Typically the last up-closing candle before a strong, impulsive downward move (displacement). It suggests institutions may have distributed long positions or initiated short positions here.
Why are OBs Significant (ICT View)?
Institutional Footprint: They mark potential zones of large order execution.
Support/Resistance: Unmitigated OBs can act as sensitive price levels where reactions are expected. Bullish OBs may provide support; Bearish OBs may provide resistance.
Origin of Moves: They often mark the origin point of significant price swings.
Liquidity Engineering: Institutions might drive price back to OBs to mitigate earlier positions or to engineer liquidity before continuing a move.
Common Refinements
ICT often emphasizes higher probability OBs that are associated with:
Displacement: The move away from the OB is sharp and decisive.
Fair Value Gaps (FVGs): An FVG forming immediately after the OB strengthens its validity.
OB Mitigation: This refers to price returning to the level of the Order Block after its formation. Price might react at the edge (proximal line) or the 50% level (mean threshold) of the OB. An OB is often considered fully mitigated or invalidated if price trades decisively through its entire range, especially with a candle body closing beyond it.
How the "ICT Order Blocks v2 (Refined)" Indicator Works
This indicator automates the detection and visualization of the most recent unmitigated Order Block of each type (Bullish/Bearish), incorporating optional filters.
Detection:
It looks at the relationship between the candle two bars ago ( ), the previous candle ( ), and potentially the current candle ( ).
Bullish OB: Identifies if candle was a down-close (close < open ) AND candle broke above the high of candle (high > high ).
Bearish OB: Identifies if candle was an up-close (close > open ) AND candle broke below the low of candle (low < low ).
Accuracy Filters (Optional Inputs):
These filters help identify potentially higher-probability OBs:
Require Fair Value Gap (FVG)?: If enabled, the indicator checks if an FVG formed immediately after the OB candle ( ). Specifically, it looks for a gap between candle and candle (low > high for Bullish OB confirmation, high < low for Bearish).
Require Strong Close Breakout?: If enabled, it requires the breakout candle ( ) to close beyond the range of the OB candle ( ). (close > high for Bullish, close < low for Bearish). This suggests stronger confirmation.
Storing the Most Recent OB:
When an OB is detected and passes any enabled filters, its details (high, low, formation bar index) are stored. Crucially, this indicator only tracks the single most recent valid unmitigated OB of each type (one Bullish, one Bearish) using var variables. If a newer valid OB forms, it replaces the previously stored one.
Drawing Boxes:
If a valid Bullish OB is being tracked (and Show Bullish OBs is enabled), it draws a box (box.new) using the high and low of the identified OB candle ( ). The same process applies to Bearish OBs (Show Bearish OBs enabled). The boxes automatically extend to the right (extend.right) and their right edge is updated on each new bar (box.set_right) until they are mitigated. Labels ("Bull OB" / "Bear OB") are displayed inside the boxes.
Mitigation & Box Deletion:
The indicator checks if the current closing price (close ) has moved entirely beyond the range of the tracked OB.
Mitigation Rule Used: A Bullish OB is considered mitigated if close < bull_ob_low. A Bearish OB is considered mitigated if close > bear_ob_high. Once an OB is marked as mitigated, the indicator stops tracking it and its corresponding box is automatically deleted (box.delete) from the chart.
This indicator provides a dynamic visualization of the most recent, potentially significant Order Blocks that meet the specified criteria, helping traders identify key areas of interest based on ICT principles.
Stop Loss / Take Profit Table// (\_/)
// ( •.•)
// (")_(")
📈 Introducing the Stop Loss / Take Profit Table Indicator! 📈
Enhance your trading strategy with our powerful Stop Loss / Take Profit Table indicator, designed for traders in the Crypto, Stock, and Forex markets. This easy-to-use tool helps you manage risk and maximize profits by clearly displaying your Stop Loss and Take Profit levels based on your trading position.
Key Features:
Custom Asset Types: Choose between Crypto, Stock, or Forex to tailor the indicator to your specific trading style.
Dynamic Stop Loss & Take Profit Calculation: Set your desired Stop Loss percentage, and the indicator will automatically calculate your Stop Loss and two Take Profit levels based on different timeframes (1 min to 240 min).
Position Type Flexibility: Whether you're trading Long or Short, the indicator adjusts the calculations accordingly, providing you with precise price levels for effective risk management.
Visual Representation: Stop Loss and Take Profit levels are marked directly on the chart with distinctive horizontal lines in vibrant colors for easy reference.
Informative Table Display: A dedicated table displayed on the chart shows your asset type, position type, and calculated prices for Stop Loss and Take Profit levels, ensuring you have all critical data at a glance.
Alert Notifications: Stay informed with optional alerts that signal when your Stop Loss or Take Profit levels are hit, allowing you to react swiftly in fast-moving markets.
Why Use This Indicator?
Managing your trades is critical for success in the financial markets. With our Stop Loss / Take Profit Table, you can easily set your parameters and visually track your risk and reward levels, making it a practical addition to any trader's toolkit.
Get started today and take control of your trading strategy! ✨
Happy trading! 📊🚀
Oracle Prediction Futur
// (\_/)
// ( •.•)
// (")_(")
Indicator Description: Oracle Prediction Futur
The Oracle Prediction Futur is a sophisticated technical indicator designed for traders and analysts looking to gain insights into market trends through the analysis of price movements. This Pine Script™ code integrates innovative elements to enhance the trading experience and is governed by the Mozilla Public License 2.0.
Key Features:
Normalization of Closing Prices:
The indicator normalizes closing prices over a defined lookback period (100 periods) to provide a percentage-based representation of the current price relative to its historical range. This helps in identifying potential price extremes.
Peak and Trough Detection:
It identifies and plots peak tops and bottom troughs based on normalized closing values. Peak tops are marked with vibrant magenta circles, while peak bottoms are indicated by soothing cyan circles, helping traders visually spot significant turning points in the price action.
Dynamic Background Gradient:
The indicator features a visually appealing gradient background that represents market sentiment. The background color transitions between bear and bull colors based on the position of the normalized close within the 0-100 range. This provides an immediate visual cue about the strength or weakness of the market.
Horizontal Reference Lines:
The indicator includes horizontal lines at key levels (9.51 and 92.5) for quick reference, which can help to gauge areas of potential support or resistance.
User-Friendly Visuals:
The combination of background colors, dynamic plots, and clear labeling offers a user-friendly visual representation, making it easier to interpret market conditions at a glance.
Overlay Options:
As an overlay-free indicator, it maintains clarity on the price chart while providing insightful trends and forecasts.
Practical Application:
Traders can utilize the Oracle Prediction Futur indicator to identify potential entry and exit points in their trading strategies. By observing the peaks, troughs, and background color shifts, users can better understand market momentum and price action.
How to Use:
Deploy this indicator on your trading platform, and analyze the peaks and troughs along with the normalized close line and background gradient to inform your trading decisions. Look for alignment between price action and the signaling provided by the indicator for optimized trading results.
RSI3M3+ v.1.8RSI3M3+ v.1.8 Indicator
This script is an advanced trading indicator based on Walter J. Bressert's cycle analysis methodology, combined with an RSI (Relative Strength Index) variation. Let me break it down and explain how it works.
Core Concepts
The RSI3M3+ indicator combines:
A short-term RSI (3-period)
A 3-period moving average to smooth the RSI
Bressert's cycle analysis principles to identify optimal trading points
RSI3M3+ Indicator VisualizationImage Walter J. Bressert's Cycle Analysis Concepts
Walter Bressert was a pioneer in cycle analysis trading who believed markets move in cyclical patterns that can be measured and predicted. His key principles integrated into this indicator include:
Trading Cycles: Markets move in cycles with measurable time spans from low to low
Timing Bands: Projected periods when the next cyclical low or high is anticipated
Oscillator Use: Using oscillators like RSI to confirm cycle position
Entry/Exit Rules: Specific rules for trade entry and exit based on cycle position
Key Parameters in the Script
Basic RSI Parameters
Required bars: Minimum number of bars needed (default: 20)
Overbought region: RSI level considered overbought (default: 70)
Oversold region: RSI level considered oversold (default: 30)
Bressert-Specific Parameters
Cycle Detection Length: Lookback period for cycle identification (default: 30)
Minimum/Maximum Cycle Length: Expected cycle duration in days (default: 15-30)
Buy Line: Lower threshold for buy signals (default: 40)
Sell Line: Upper threshold for sell signals (default: 60)
How the Indicator Works
RSI3M3 Calculation:
Calculates a 3-period RSI (sRSI)
Smooths it with a 3-period moving average (sMA)
Cycle Detection:
Identifies bottoms: When the RSI is below the buy line (40) and starting to turn up
Identifies tops: When the RSI is above the sell line (60) and starting to turn down
Records these points to calculate cycle lengths
Timing Bands:
Projects when the next cycle bottom or top should occur
Creates visual bands on the chart showing these expected time windows
Signal Generation:
Buy signals occur when the RSI turns up from below the oversold level (30)
Sell signals occur when the RSI turns down from above the overbought level (70)
Enhanced by Bressert's specific timing rules
Bressert's Five Trading Rules (Implemented in the Script)
Cycle Timing: The low must be 15-30 market days from the previous Trading Cycle bottom
Prior Top Validation: A Trading Cycle high must have occurred with the oscillator above 60
Oscillator Behavior: The oscillator must drop below 40 and turn up
Entry Trigger: Entry is triggered by a rise above the price high of the upturn day
Protective Stop: Place stop slightly below the Trading Cycle low (implemented as 99% of bottom price)
How to Use the Indicator
Reading the Chart
Main Plot Area:
Green line: 3-period RSI
Red line: 3-period moving average of the RSI
Horizontal bands: Oversold (30) and Overbought (70) regions
Dotted lines: Buy line (40) and Sell line (60)
Yellow vertical bands: Projected timing windows for next cycle bottom
Signals:
Green up arrows: Buy signals
Red down arrows: Sell signals
Trading Strategy
For Buy Signals:
Wait for the RSI to drop below the buy line (40)
Look for an upturn in the RSI from below this level
Enter the trade when price rises above the high of the upturn day
Place a protective stop at 99% of the Trading Cycle low
For Sell Signals:
Wait for the RSI to rise above the sell line (60)
Look for a downturn in the RSI from above this level
Consider exiting or taking profits when a sell signal appears
Alternative exit: When price moves below the low of the downturn day
Cycle Timing Enhancement:
Pay attention to the yellow timing bands
Signals occurring within these bands have higher probability of success
Signals outside these bands may be less reliable
Practical Tips for Using RSI3M3+
Timeframe Selection:
The indicator works best on daily charts for intermediate-term trading
Can be used on weekly charts for longer-term position trading
On intraday charts, adjust cycle lengths accordingly
Market Applicability:
Works well in trending markets with clear cyclical behavior
Less effective in choppy, non-trending markets
Consider additional indicators for trend confirmation
Parameter Adjustment:
Different markets may have different natural cycle lengths
You may need to adjust the min/max cycle length parameters
Higher volatility markets may need wider overbought/oversold levels
Trade Management:
Enter trades when all Bressert's conditions are met
Use the protective stop as defined (99% of cycle low)
Consider taking partial profits at the projected cycle high timing
Advanced Techniques
Multiple Timeframe Analysis:
Confirm signals with the same indicator on higher timeframes
Enter in the direction of the larger cycle when smaller and larger cycles align
Divergence Detection:
Look for price making new lows while RSI makes higher lows (bullish)
Look for price making new highs while RSI makes lower highs (bearish)
Confluence with Price Action:
Combine with support/resistance levels
Use with candlestick patterns for confirmation
Consider volume confirmation of cycle turns
This RSI3M3+ indicator combines the responsiveness of a short-term RSI with the predictive power of Bressert's cycle analysis, offering traders a sophisticated tool for identifying high-probability trading opportunities based on market cycles and momentum shifts.
THANK YOU FOR PREVIOUS CODER THAT EFFORT TO CREATE THE EARLIER VERSION THAT MAKE WALTER J BRESSERT CONCEPT IN TRADINGVIEW @ADutchTourist
111D SMA / (350D SMA * 2)Indicator: Pi Cycle Ratio
This custom technical indicator calculates a ratio between two moving averages that are used for the PI Cycle Top indicator. The PI Cycle Top indicator triggers when the 111-day simple moving average (111D SMA) crosses up with the 350-day simple moving average (350D SMA *2).
The line value is ratio is calculated as:
Line Value = 111DSMA / (350D SMA × 2)
When the 111D SMA crosses with the 350D SMA triggering the PI Cycle Top, the value of the ratio between the two lines is 1.
This visualizes the ratio between the two moving averages into a single line. This indicator can be used for technical analysis for historical and future moves.
TICK Bias Timer with EMA Position📌 Description
This indicator tracks the time in minutes that the Exponential Moving Average (EMA) of the NYSE USI:TICK remains above or below the zero line. It serves as a powerful market breadth confirmation tool to support your intraday directional bias.
Rather than focusing on momentary TICK spikes, this tool emphasizes duration and persistence of buying/selling pressure across the entire NYSE – helping traders stay on the right side of the flow.
🔧 Features
✅ Measures how long the EMA of TICK stays above or below 0
✅ Visual plots of upward and downward pressure duration (in minutes)
✅ Background color changes based on EMA position relative to 0
✅ Automatic daily reset at a customizable time (e.g. 15:30 for RTH open)
✅ Gap filter to avoid spikes during overnight or weekend sessions
✅ Clean, minimalist design – built for real-time decision making
🎯 How to Use
EMA > 0 for 10+ minutes → sustained bullish breadth → intraday bullish bias
EMA < 0 for 10+ minutes → sustained bearish breadth → intraday bearish bias
Frequent flip between sides → uncertain or choppy market → trade with caution
Can be used in confluence with Volume Profile, VWAP, price action, and Bookmap to reinforce trade setups.
💡 Ideal For:
Scalpers looking for flow confirmation
Day traders who want to filter fake strength/weakness
Professionals using TICK, USI:ADD , USI:VOLD , and other internals for decision-making
VIX bottom/top with color scale [Ox_kali]📊 Introduction
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The “VIX Bottom/Top with Color Scale” script is designed to provide an intuitive, color-coded visualization of the VIX (Volatility Index), helping traders interpret market sentiment and volatility extremes in real time.
It segments the VIX into clear threshold zones, each associated with a specific market condition—ranging from fear to calm—using a dynamic color-coded system.
This script offers significant value for the following reasons:
Intuitive Risk Interpretation: Color-coded zones make it easy to interpret market sentiment at a glance.
Dynamic Trend Detection: A 200-period SMA of the VIX is plotted and dynamically colored based on trend direction.
Customization and Flexibility: All colors are editable in the parameters panel, grouped under “## Color parameters ##”.
Visual Clarity: Key thresholds are marked with horizontal lines for quick reference.
Practical Trading Tool: Helps identify high-risk and low-risk environments based on volatility levels.
🔍 Key Indicators
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VIX (CBOE Volatility Index) : Measures market volatility and investor fear.
SMA 200 : Long-term trendline of the VIX, with color-coded direction (green = uptrend, red = downtrend).
Color-coded VIX Levels:
🔴 33+ → Something bad just happened
🟠 23–33 → Something bad is happening
🟡 17–23 → Something bad might happen
🟢 14–17 → Nothing bad is happening
✅ 12–14 → Nothing bad will ever happen
🔵 <12 → Something bad is going to happen
🧠 Originality and Purpose
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Unlike traditional VIX indicators that only plot a line, this script enhances interpretation through visual segmentation and dynamic trend tracking.
It serves as a risk-awareness tool that transforms the VIX into a simple, emotional market map.
This is the first version of the script, and future updates may include alerts, background fills, and more advanced features.
⚙️ How It Works
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The script maps the current VIX value to a range and applies the corresponding color.
It calculates a SMA 200 and colors it green or red depending on its slope.
It displays horizontal dotted lines at key thresholds (12, 14, 17, 23, 33).
All colors are configurable via input parameters under the group: "## Color parameters ##".
🧭 Indicator Visualization and Interpretation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The VIX line changes color based on market condition zones.
The SMA line shows long-term direction with dynamic color.
Horizontal threshold lines visually mark the transitions between volatility zones.
Ideal for quickly identifying periods of fear, caution, or stability.
🛠️ Script Parameters
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Grouped under “## Color parameters ##”, the following elements are customizable:
🎨 VIX Zone Colors:
33+ → Red
23–33 → Orange
17–23 → Yellow
14–17 → Light Green
12–14 → Dark Green
<12 → Blue
📈 SMA Colors:
Uptrend → Green
Downtrend → Red
These settings allow users to match the script’s visuals to their preferred chart style or theme.
✅ Conclusion
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The “VIX Bottom/Top with Color Scale” is a clean, powerful script designed to simplify how traders view volatility.
By combining long-term trend data with real-time color-coded sentiment analysis, this script becomes a go-to reference for managing risk, timing trades, or simply staying in tune with market mood.
🧪 Notes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This is version 1 of the script. More features such as alert conditions, background fill, and dashboard elements may be added soon. Feedback is welcome!
💡 Color code concept inspired by the original VIX interpretation chart by @nsquaredvalue on Twitter. Big thanks for the visual clarity! 💡
⚠️ Disclaimer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This script is a visual tool designed to assist in market analysis. It does not guarantee future performance and should be used in conjunction with proper risk management. Past performance is not indicative of future results.
Daily ProtractorDaily Protractor Indicator
Overview
The Daily Protractor is a visually intuitive tool designed for traders who want to analyze price action through angular measurements on a 5-minute chart. By overlaying a protractor on the chart, this indicator helps identify potential support, resistance, and trend directions based on angular relationships from the first 5-minute candle of each day. It’s particularly useful for intraday traders looking to incorporate geometric analysis into their strategies for spot or strike charts.
Key Features
Dynamic Protractor Overlay: Draws a protractor centered on the low of the first 5-minute candle of each day, with customizable radius in both bars (horizontal) and price units (vertical).
Angular Measurements: Displays angles in 5-degree increments, covering a full 360° circle or a 105° to -105° (91° to 269°) half-circle, depending on user preference.
Customizable Display:
Adjust the number of days to display protractors (up to 5 days).
Customize line colors for different angle ranges (0° to 180°, 180° to 360°, and 0° specifically).
Modify line thickness, label size, and label colors for better visibility.
Center Point Highlight: Marks the center of each protractor with a labeled point for easy reference.
Efficient Design:
Optimized with max_lines_count, max_labels_count, and max_bars_back to ensure smooth performance on TradingView.
How It Works
The indicator identifies the first 5-minute candle of each day and uses its low price as the center point for a protractor. It then draws lines at 5-degree intervals, radiating from the center, with each line representing an angle from 0° to 360°. Labels at the end of each line display the angle in degrees, with negative values shown for angles between 195° and 345° (e.g., 270° is displayed as -90°). The protractor’s radius can be adjusted in both time (bars) and price units, allowing traders to scale the tool to their chart’s characteristics.
Usage Instructions
Add to Chart:
Apply the indicator to a 5-minute chart of your chosen instrument (e.g., spot or strike charts).
Interpret the Protractor:
Use the angular lines to identify potential price levels or trend directions.
The 0° line (horizontal) can act as a reference for horizontal support/resistance.
Angles between 0° and 180° (upper half) and 180° and 360° (lower half) are color-coded for quick identification.
Customize Settings:
Toggle the Show 105° to -105° option to display a half-circle (91° to 269°) instead of a full 360° protractor.
Adjust the Radius in Bars and Radius in Price Units to scale the protractor to your chart.
Set the Maximum Days to Display to control how many daily protractors are shown.
Modify line thickness, colors, and label settings to suit your visual preferences.
Customization Options
Protractor Settings:
Show 105° to -105° (91° to 269°): Toggle between a full circle or a half-circle protractor.
Radius in Bars: Set the horizontal span of the protractor (default: 75 bars).
Radius in Price Units: Set the vertical span in price units (default: 1000.0).
Maximum Days to Display: Limit the number of protractors shown (default: 5 days).
Line Settings:
Line Thickness: Adjust the thickness of the protractor lines (1 or 2).
Line Color (0° to 180°): Color for the upper half (default: light blue).
Line Color (180° to 360°): Color for the lower half (default: light red).
Line Color (0°): Color for the 0° line (default: black).
Label Settings:
Label Size: Choose between small, normal, or large labels.
Label Color (0° to 180°): Color for labels in the upper half (default: red).
Label Color (180° to 360°): Color for labels in the lower half (default: green).
Notes
The indicator was designed with the help of Grok3 for use on 5-minute charts only, as it relies on the first 5-minute candle of the day to set the protractor’s center.
For best results, adjust the radius settings to match the volatility and price scale of your instrument. However, where the price is in single digits it is advised to switch off the labels or I would suggest not to use the same.
The protractor can be used alongside other technical tools to confirm trends, reversals, or key price levels.
Limitations: This cannot be used on instruments that trade for more than 75 candles with a timeframe of 5 minutes as the angles would not cover the entire trading window. I am working coming up with a script to address this limitation.
Feedback
I’d love to hear your thoughts! If you find the Daily Protractor helpful or have suggestions for improvements, please leave a comment or reach out. Happy trading!
Big 7 NASDAQ📊 Big 7 NASDAQ % Change Heatmap with Trend Arrows
This indicator displays a real-time performance table for the "Big 7" NASDAQ stocks:
Apple (AAPL), Microsoft (MSFT), Amazon (AMZN), Google (GOOGL), Meta (META), Tesla (TSLA), and Nvidia (NVDA).
🔎 Features:
Live Daily % Change: Calculates the percentage change between today’s open and the current price.
Color Gradient: Background color intensity reflects the strength of the move (from mild to strong bullish/bearish).
Trend Arrows: Visual arrows 🔺 (up) and 🔻 (down) represent the direction of movement.
Position Mode Selector:
"Buy" – highlights with green tones
"Sell" – highlights with red tones
"Neutral" – uses dynamic coloring based on individual stock moves
📍 Placement:
The table is positioned in the top-right corner of the chart for easy reference without cluttering your main view.
[COG]Adaptive Volatility Bands# Adaptive Volatility Bands (AVB) Indicator Guide for Traders
## Special Acknowledgment 🙌
This script is inspired by and builds upon the foundational work of **DonovanWall**, a respected contributor to the trading community. His innovative approach to adaptive indicators has been instrumental in developing this advanced trading tool.
## What is the Adaptive Volatility Bands Indicator?
The Adaptive Volatility Bands (AVB) is a sophisticated technical analysis tool designed to help traders understand market dynamics by creating dynamic, responsive price channels that adapt to changing market conditions. Unlike traditional static indicators, this script uses advanced mathematical techniques to create flexible bands that adjust to market volatility in real-time.
## Key Features and Inputs
### 1. Price and Filtering Options
- **Price Source**: Determines the base price used for calculations (default is HLC3 - Average of High, Low, and Close)
- **Filter Poles**: Controls the smoothness of the indicator (1-9 poles)
- Lower values: More responsive, more noise
- Higher values: Smoother, but slower to react
### 2. Volatility and Band Settings
- **Sample Length**: Determines how many bars are used to calculate volatility (default 144)
- **Volatility Multiplier**: Adjusts the width of the main bands (default 1.414)
- **Outer Band Multiplier**: Controls the width of the outer bands (default 2.5)
- **Inner Band Ratio**: Positions the inner bands between the center and outer bands (default 0.25)
### 3. Advanced Processing Options
- **Lag Reduction Mode**: Helps reduce indicator delay
- **Fast Response Mode**: Makes the indicator more responsive to recent price changes
### 4. Signal and Visualization Options
- **Show Entry Signals**: Displays buy and sell signals
- **Signal Display Style**: Choose between labels or shapes
- **Range Filter**: Adds an additional filter for signal validation
## How the Indicator Works
The Adaptive Volatility Bands create a dynamic price channel with three key components:
1. **Center Line**: Represents the core trend direction
2. **Inner Bands**: Closer to the center line
3. **Outer Bands**: Wider bands that show broader price potential
### Color Dynamics
- The indicator uses a smart color gradient system
- Colors change based on price position within the bands
- Helps visualize bullish (green/blue) and bearish (red) market conditions
## Trading Strategies for Beginners
### Basic Entry Signals
- **Buy Signal**:
- Price touches the center line from below
- Candle is bullish (closes higher than it opens)
- Price is above the center line
- Trend is upward
- **Sell Signal**:
- Price touches the center line from above
- Candle is bearish (closes lower than it opens)
- Price is below the center line
- Trend is downward
### Risk Management Tips
1. Use the bands to identify:
- Potential trend changes
- Volatility levels
- Support and resistance areas
2. Combine with other indicators for confirmation
3. Always use stop-loss orders
4. Adjust parameters to match your trading style and asset
## When to Use This Indicator
Best suited for:
- Trending markets
- Swing trading
- Identifying potential entry and exit points
- Understanding market volatility
### Recommended Markets
- Stocks
- Forex
- Cryptocurrencies
- Futures
## Customization
The script offers extensive customization:
- Adjust smoothness
- Change band multipliers
- Modify color schemes
- Enable/disable features like lag reduction
## Important Considerations for Beginners
🚨 **Disclaimer**:
- No indicator guarantees profits
- Always practice with a demo account first
- Learn and understand the indicator before live trading
- Market conditions change, so continually adapt your strategy
## Getting Started
1. Add the script to your TradingView chart
2. Experiment with different settings
3. Backtest on historical data
4. Start with small positions
5. Continuously learn and improve
Happy Trading! 📈🔍
NHPF (Normalized Hodrick-Prescott Filter)This indicator applies a normalized Hodrick–Prescott filter (NHPF) to Bitcoin’s price data. It separates the underlying trend from short-term cyclical fluctuations by recursively smoothing the price using a user-defined lambda (HP Filter Period). The raw trend is then normalized by calculating a ratio between the trend and the current price, which is scaled and shifted according to subjective parameters (Mean and Scale). The result is a dimensionless value that highlights deviations from the long-term trend—serving as a signal for potential overbought (positive values) or oversold (negative values) market conditions. A zero line provides a clear reference, allowing traders to visually gauge when Bitcoin’s price is significantly above or below its expected trajectory.
Feel free to adjust the inputs to best match your analysis preferences.
CCI with Subjective NormalizationCCI (Commodity Channel Index) with Subjective Normalization
This indicator computes the classic CCI over a user-defined length, then applies a subjective mean and scale to transform the raw CCI into a pseudo Z‑score range. By adjusting the “Subjective Mean” and “Subjective Scale” inputs, you can shift and rescale the oscillator to highlight significant tops and bottoms more clearly in historical data.
1. CCI Calculation:
- Uses the standard formula \(\text{CCI} = \frac{\text{price} - \text{SMA(price, length)}}{0.015 \times \text{mean deviation}}\) over a user-specified length (default 500 bars).
2. Subjective Normalization:
- After CCI is calculated, it is divided by “Subjective Scale” and offset by “Subjective Mean.”
- This step effectively re-centers and re-scales the oscillator, helping you align major lows or highs at values like –2 or +2 (or any desired range).
3. Usage Tips:
- CCI Length controls how far back the script measures average price and deviation. Larger values emphasize multi-year cycles.
- Subjective Mean and Scale let you align the oscillator’s historical lows and highs with numeric levels you prefer (e.g., near ±2).
- Adjust these parameters to fit your particular market analysis or to match known cycle tops/bottoms.
4. Plot & Zero Line:
- The indicator plots the normalized CCI in yellow, along with a zero line for quick reference.
- Positive values suggest price is above its long-term mean, while negative values suggest it’s below.
This approach offers a straightforward momentum oscillator (CCI) combined with a customizable normalization, making it easier to spot historically significant overbought/oversold conditions without writing complex code yourself.
ES vs Bond ROCThis Pine Script plots the Relative Rate of Change (ROC) between the S&P 500 E-mini Futures (ES) and 30-Year Treasury Bond Futures (ZB) over a specified period. It helps identify when equities are overperforming or underperforming relative to long-term bonds—an insight often used to detect risk-on/risk-off sentiment shifts in the market.
DOPT---
## 🔍 **DOPT - Daily Open & Price Time Markers**
This script is designed to support directional bias development and price behavior analysis around key time-based reference points on the **1H and 4H timeframes**.
### ✨ **What It Does**
- **1800 Open Marker** (6 PM NY time): Plots the **daily open** from 1800 in **black dotted lines**.
- **0000 Open Marker** (Midnight NY time): Plots the **midnight open** in **blue dotted lines**.
- **Day Letters**: Each 1800 open is labeled with the corresponding **day of the week** (e.g., M, T, W...), helping visually segment your chart.
- **Hour Labels**: Select specific candles (e.g., 0000 = '0', 0800 = '8') to be labeled above the bar. These are fully customizable.
- **Candle Midpoints**: Option to mark the **50% level** of a specific candle (good for CE or CRT references).
- **CRT High/Low Tracking**: Ability to plot **extended high and low lines** from a selected candle back (e.g., for CRT modeling).
- **4H Timeframe Candle Numbering**: Helpful when analyzing sequences on the 4-hour timeframe. Candles are numbered `1`, `5`, and `9` for reference.
---
### 🧠 **How I Use It**
- I mostly use this on the **1-hour timeframe** to decide **directional bias** for the day:
- If price **closes above 1800 open**, I consider that a **green daily close** — potential bullish sentiment.
- If price **closes below**, I treat it as a **red daily close** — potential bearish behavior.
- Price often uses these opens as **support/resistance**, so I watch for reactions there.
- On the **4H**, the candle numbers help track structure and flow.
- Combine with CRT tools to mark **key candle highs/lows** and their **equilibrium (50%)** — great for refining entries or understanding how price is respecting a particular candle.
---
### ⚠️ **Note on Daylight Savings**
This is a **daylight saving time-dependent script**. When DST kicks in or out, you’ll need to **adjust the time inputs** accordingly to keep the opens accurate (e.g., 1800 might shift to 1700 depending on the season).
---
### 🔁 **Backtesting & Reference**
- The **1800 and 0000 opens** are plotted for **as far back** as your chart loads, making it great for backtesting historical reactions.
- The CRT marking tools only go back **50 candles max**, so use that for recent structure only.
---
Bitcoin Polynomial Regression ModelThis is the main version of the script. Click here for the Oscillator part of the script.
💡Why this model was created:
One of the key issues with most existing models, including our own Bitcoin Log Growth Curve Model , is that they often fail to realistically account for diminishing returns. As a result, they may present overly optimistic bull cycle targets (hence, we introduced alternative settings in our previous Bitcoin Log Growth Curve Model).
This new model however, has been built from the ground up with a primary focus on incorporating the principle of diminishing returns. It directly responds to this concept, which has been briefly explored here .
📉The theory of diminishing returns:
This theory suggests that as each four-year market cycle unfolds, volatility gradually decreases, leading to more tempered price movements. It also implies that the price increase from one cycle peak to the next will decrease over time as the asset matures. The same pattern applies to cycle lows and the relationship between tops and bottoms. In essence, these price movements are interconnected and should generally follow a consistent pattern. We believe this model provides a more realistic outlook on bull and bear market cycles.
To better understand this theory, the relationships between cycle tops and bottoms are outlined below:https://www.tradingview.com/x/7Hldzsf2/
🔧Creation of the model:
For those interested in how this model was created, the process is explained here. Otherwise, feel free to skip this section.
This model is based on two separate cubic polynomial regression lines. One for the top price trend and another for the bottom. Both follow the general cubic polynomial function:
ax^3 +bx^2 + cx + d.
In this equation, x represents the weekly bar index minus an offset, while a, b, c, and d are determined through polynomial regression analysis. The input (x, y) values used for the polynomial regression analysis are as follows:
Top regression line (x, y) values:
113, 18.6
240, 1004
451, 19128
655, 65502
Bottom regression line (x, y) values:
103, 2.5
267, 211
471, 3193
676, 16255
The values above correspond to historical Bitcoin cycle tops and bottoms, where x is the weekly bar index and y is the weekly closing price of Bitcoin. The best fit is determined using metrics such as R-squared values, residual error analysis, and visual inspection. While the exact details of this evaluation are beyond the scope of this post, the following optimal parameters were found:
Top regression line parameter values:
a: 0.000202798
b: 0.0872922
c: -30.88805
d: 1827.14113
Bottom regression line parameter values:
a: 0.000138314
b: -0.0768236
c: 13.90555
d: -765.8892
📊Polynomial Regression Oscillator:
This publication also includes the oscillator version of the this model which is displayed at the bottom of the screen. The oscillator applies a logarithmic transformation to the price and the regression lines using the formula log10(x) .
The log-transformed price is then normalized using min-max normalization relative to the log-transformed top and bottom regression line with the formula:
normalized price = log(close) - log(bottom regression line) / log(top regression line) - log(bottom regression line)
This transformation results in a price value between 0 and 1 between both the regression lines. The Oscillator version can be found here.
🔍Interpretation of the Model:
In general, the red area represents a caution zone, as historically, the price has often been near its cycle market top within this range. On the other hand, the green area is considered an area of opportunity, as historically, it has corresponded to the market bottom.
The top regression line serves as a signal for the absolute market cycle peak, while the bottom regression line indicates the absolute market cycle bottom.
Additionally, this model provides a predicted range for Bitcoin's future price movements, which can be used to make extrapolated predictions. We will explore this further below.
🔮Future Predictions:
Finally, let's discuss what this model actually predicts for the potential upcoming market cycle top and the corresponding market cycle bottom. In our previous post here , a cycle interval analysis was performed to predict a likely time window for the next cycle top and bottom:
In the image, it is predicted that the next top-to-top cycle interval will be 208 weeks, which translates to November 3rd, 2025. It is also predicted that the bottom-to-top cycle interval will be 152 weeks, which corresponds to October 13th, 2025. On the macro level, these two dates align quite well. For our prediction, we take the average of these two dates: October 24th 2025. This will be our target date for the bull cycle top.
Now, let's do the same for the upcoming cycle bottom. The bottom-to-bottom cycle interval is predicted to be 205 weeks, which translates to October 19th, 2026, and the top-to-bottom cycle interval is predicted to be 259 weeks, which corresponds to October 26th, 2026. We then take the average of these two dates, predicting a bear cycle bottom date target of October 19th, 2026.
Now that we have our predicted top and bottom cycle date targets, we can simply reference these two dates to our model, giving us the Bitcoin top price prediction in the range of 152,000 in Q4 2025 and a subsequent bottom price prediction in the range of 46,500 in Q4 2026.
For those interested in understanding what this specifically means for the predicted diminishing return top and bottom cycle values, the image below displays these predicted values. The new values are highlighted in yellow:
And of course, keep in mind that these targets are just rough estimates. While we've done our best to estimate these targets through a data-driven approach, markets will always remain unpredictable in nature. What are your targets? Feel free to share them in the comment section below.
Bitcoin Polynomial Regression OscillatorThis is the oscillator version of the script. Click here for the other part of the script.
💡Why this model was created:
One of the key issues with most existing models, including our own Bitcoin Log Growth Curve Model , is that they often fail to realistically account for diminishing returns. As a result, they may present overly optimistic bull cycle targets (hence, we introduced alternative settings in our previous Bitcoin Log Growth Curve Model).
This new model however, has been built from the ground up with a primary focus on incorporating the principle of diminishing returns. It directly responds to this concept, which has been briefly explored here .
📉The theory of diminishing returns:
This theory suggests that as each four-year market cycle unfolds, volatility gradually decreases, leading to more tempered price movements. It also implies that the price increase from one cycle peak to the next will decrease over time as the asset matures. The same pattern applies to cycle lows and the relationship between tops and bottoms. In essence, these price movements are interconnected and should generally follow a consistent pattern. We believe this model provides a more realistic outlook on bull and bear market cycles.
To better understand this theory, the relationships between cycle tops and bottoms are outlined below:https://www.tradingview.com/x/7Hldzsf2/
🔧Creation of the model:
For those interested in how this model was created, the process is explained here. Otherwise, feel free to skip this section.
This model is based on two separate cubic polynomial regression lines. One for the top price trend and another for the bottom. Both follow the general cubic polynomial function:
ax^3 +bx^2 + cx + d.
In this equation, x represents the weekly bar index minus an offset, while a, b, c, and d are determined through polynomial regression analysis. The input (x, y) values used for the polynomial regression analysis are as follows:
Top regression line (x, y) values:
113, 18.6
240, 1004
451, 19128
655, 65502
Bottom regression line (x, y) values:
103, 2.5
267, 211
471, 3193
676, 16255
The values above correspond to historical Bitcoin cycle tops and bottoms, where x is the weekly bar index and y is the weekly closing price of Bitcoin. The best fit is determined using metrics such as R-squared values, residual error analysis, and visual inspection. While the exact details of this evaluation are beyond the scope of this post, the following optimal parameters were found:
Top regression line parameter values:
a: 0.000202798
b: 0.0872922
c: -30.88805
d: 1827.14113
Bottom regression line parameter values:
a: 0.000138314
b: -0.0768236
c: 13.90555
d: -765.8892
📊Polynomial Regression Oscillator:
This publication also includes the oscillator version of the this model which is displayed at the bottom of the screen. The oscillator applies a logarithmic transformation to the price and the regression lines using the formula log10(x) .
The log-transformed price is then normalized using min-max normalization relative to the log-transformed top and bottom regression line with the formula:
normalized price = log(close) - log(bottom regression line) / log(top regression line) - log(bottom regression line)
This transformation results in a price value between 0 and 1 between both the regression lines.
🔍Interpretation of the Model:
In general, the red area represents a caution zone, as historically, the price has often been near its cycle market top within this range. On the other hand, the green area is considered an area of opportunity, as historically, it has corresponded to the market bottom.
The top regression line serves as a signal for the absolute market cycle peak, while the bottom regression line indicates the absolute market cycle bottom.
Additionally, this model provides a predicted range for Bitcoin's future price movements, which can be used to make extrapolated predictions. We will explore this further below.
🔮Future Predictions:
Finally, let's discuss what this model actually predicts for the potential upcoming market cycle top and the corresponding market cycle bottom. In our previous post here , a cycle interval analysis was performed to predict a likely time window for the next cycle top and bottom:
In the image, it is predicted that the next top-to-top cycle interval will be 208 weeks, which translates to November 3rd, 2025. It is also predicted that the bottom-to-top cycle interval will be 152 weeks, which corresponds to October 13th, 2025. On the macro level, these two dates align quite well. For our prediction, we take the average of these two dates: October 24th 2025. This will be our target date for the bull cycle top.
Now, let's do the same for the upcoming cycle bottom. The bottom-to-bottom cycle interval is predicted to be 205 weeks, which translates to October 19th, 2026, and the top-to-bottom cycle interval is predicted to be 259 weeks, which corresponds to October 26th, 2026. We then take the average of these two dates, predicting a bear cycle bottom date target of October 19th, 2026.
Now that we have our predicted top and bottom cycle date targets, we can simply reference these two dates to our model, giving us the Bitcoin top price prediction in the range of 152,000 in Q4 2025 and a subsequent bottom price prediction in the range of 46,500 in Q4 2026.
For those interested in understanding what this specifically means for the predicted diminishing return top and bottom cycle values, the image below displays these predicted values. The new values are highlighted in yellow:
And of course, keep in mind that these targets are just rough estimates. While we've done our best to estimate these targets through a data-driven approach, markets will always remain unpredictable in nature. What are your targets? Feel free to share them in the comment section below.
Master Litecoin Miner Sell PressureBrief Description:
Purpose: The indicator overlays on a chart to highlight periods of high miner sell pressure for Litecoin.
Data Sources:
miner_out: Fetches daily Litecoin miner outflows (amount of LTC moved out by miners) using the INTOTHEBLOCK:LTC_MINEROUTFLOWS dataset.
miner_res: Fetches daily Litecoin miner reserves (amount of LTC held by miners) using the INTOTHEBLOCK:LTC_MINERRESERVES dataset.
Calculation:
Computes a ratio m by taking the 14-day sum of miner outflows and dividing it by the 14-day simple moving average (SMA) of miner reserves.
Calculates Bollinger Bands around m:
bbl: Lower band (200-day SMA of m minus 1 standard deviation).
bbu: Upper band (200-day SMA of m plus 1 standard deviation).
Visualization:
If the ratio m exceeds the upper Bollinger Band (bbu), the background is colored blue with 30% opacity, indicating potential high sell pressure from miners.
Fourier Trend Energy (Prototype)Fourier Trend Energy (Prototype)
This indicator brings the logic of Fourier-based trend analysis into Pine Script.
It estimates two key components:
Low-Frequency Energy — representing the strength of the underlying trend
High-Frequency Energy — representing noise, volatility, or deviation from the trend
🔹 Green line → trend strength
🔸 Orange line → short-term noise
🟩🟥 Background color → shows whether trend energy is increasing or decreasing
You can use it to:
Detect early trend formation
Filter fakeouts during consolidation
Spot momentum shifts based on energy crossovers
This is not a traditional oscillator — it’s a frequency-inspired tool to help you understand when the market is charging for a move.
Fuzzy SMA with DCTI Confirmation[FibonacciFlux]FibonacciFlux: Advanced Fuzzy Logic System with Donchian Trend Confirmation
Institutional-grade trend analysis combining adaptive Fuzzy Logic with Donchian Channel Trend Intensity for superior signal quality
Conceptual Framework & Research Foundation
FibonacciFlux represents a significant advancement in quantitative technical analysis, merging two powerful analytical methodologies: normalized fuzzy logic systems and Donchian Channel Trend Intensity (DCTI). This sophisticated indicator addresses a fundamental challenge in market analysis – the inherent imprecision of trend identification in dynamic, multi-dimensional market environments.
While traditional indicators often produce simplistic binary signals, markets exist in states of continuous, graduated transition. FibonacciFlux embraces this complexity through its implementation of fuzzy set theory, enhanced by DCTI's structural trend confirmation capabilities. The result is an indicator that provides nuanced, probabilistic trend assessment with institutional-grade signal quality.
Core Technological Components
1. Advanced Fuzzy Logic System with Percentile Normalization
At the foundation of FibonacciFlux lies a comprehensive fuzzy logic system that transforms conventional technical metrics into degrees of membership in linguistic variables:
// Fuzzy triangular membership function with robust error handling
fuzzy_triangle(val, left, center, right) =>
if na(val)
0.0
float denominator1 = math.max(1e-10, center - left)
float denominator2 = math.max(1e-10, right - center)
math.max(0.0, math.min(left == center ? val <= center ? 1.0 : 0.0 : (val - left) / denominator1,
center == right ? val >= center ? 1.0 : 0.0 : (right - val) / denominator2))
The system employs percentile-based normalization for SMA deviation – a critical innovation that enables self-calibration across different assets and market regimes:
// Percentile-based normalization for adaptive calibration
raw_diff = price_src - sma_val
diff_abs_percentile = ta.percentile_linear_interpolation(math.abs(raw_diff), normLookback, percRank) + 1e-10
normalized_diff_raw = raw_diff / diff_abs_percentile
normalized_diff = useClamping ? math.max(-clampValue, math.min(clampValue, normalized_diff_raw)) : normalized_diff_raw
This normalization approach represents a significant advancement over fixed-threshold systems, allowing the indicator to automatically adapt to varying volatility environments and maintain consistent signal quality across diverse market conditions.
2. Donchian Channel Trend Intensity (DCTI) Integration
FibonacciFlux significantly enhances fuzzy logic analysis through the integration of Donchian Channel Trend Intensity (DCTI) – a sophisticated measure of trend strength based on the relationship between short-term and long-term price extremes:
// DCTI calculation for structural trend confirmation
f_dcti(src, majorPer, minorPer, sigPer) =>
H = ta.highest(high, majorPer) // Major period high
L = ta.lowest(low, majorPer) // Major period low
h = ta.highest(high, minorPer) // Minor period high
l = ta.lowest(low, minorPer) // Minor period low
float pdiv = not na(L) ? l - L : 0 // Positive divergence (low vs major low)
float ndiv = not na(H) ? H - h : 0 // Negative divergence (major high vs high)
float divisor = pdiv + ndiv
dctiValue = divisor == 0 ? 0 : 100 * ((pdiv - ndiv) / divisor) // Normalized to -100 to +100 range
sigValue = ta.ema(dctiValue, sigPer)
DCTI provides a complementary structural perspective on market trends by quantifying the relationship between short-term and long-term price extremes. This creates a multi-dimensional analysis framework that combines adaptive deviation measurement (fuzzy SMA) with channel-based trend intensity confirmation (DCTI).
Multi-Dimensional Fuzzy Input Variables
FibonacciFlux processes four distinct technical dimensions through its fuzzy system:
Normalized SMA Deviation: Measures price displacement relative to historical volatility context
Rate of Change (ROC): Captures price momentum over configurable timeframes
Relative Strength Index (RSI): Evaluates cyclical overbought/oversold conditions
Donchian Channel Trend Intensity (DCTI): Provides structural trend confirmation through channel analysis
Each dimension is processed through comprehensive fuzzy sets that transform crisp numerical values into linguistic variables:
// Normalized SMA Deviation - Self-calibrating to volatility regimes
ndiff_LP := fuzzy_triangle(normalized_diff, norm_scale * 0.3, norm_scale * 0.7, norm_scale * 1.1)
ndiff_SP := fuzzy_triangle(normalized_diff, norm_scale * 0.05, norm_scale * 0.25, norm_scale * 0.5)
ndiff_NZ := fuzzy_triangle(normalized_diff, -norm_scale * 0.1, 0.0, norm_scale * 0.1)
ndiff_SN := fuzzy_triangle(normalized_diff, -norm_scale * 0.5, -norm_scale * 0.25, -norm_scale * 0.05)
ndiff_LN := fuzzy_triangle(normalized_diff, -norm_scale * 1.1, -norm_scale * 0.7, -norm_scale * 0.3)
// DCTI - Structural trend measurement
dcti_SP := fuzzy_triangle(dcti_val, 60.0, 85.0, 101.0) // Strong Positive Trend (> ~85)
dcti_WP := fuzzy_triangle(dcti_val, 20.0, 45.0, 70.0) // Weak Positive Trend (~30-60)
dcti_Z := fuzzy_triangle(dcti_val, -30.0, 0.0, 30.0) // Near Zero / Trendless (~+/- 20)
dcti_WN := fuzzy_triangle(dcti_val, -70.0, -45.0, -20.0) // Weak Negative Trend (~-30 - -60)
dcti_SN := fuzzy_triangle(dcti_val, -101.0, -85.0, -60.0) // Strong Negative Trend (< ~-85)
Advanced Fuzzy Rule System with DCTI Confirmation
The core intelligence of FibonacciFlux lies in its sophisticated fuzzy rule system – a structured knowledge representation that encodes expert understanding of market dynamics:
// Base Trend Rules with DCTI Confirmation
cond1 = math.min(ndiff_LP, roc_HP, rsi_M)
strength_SB := math.max(strength_SB, cond1 * (dcti_SP > 0.5 ? 1.2 : dcti_Z > 0.1 ? 0.5 : 1.0))
// DCTI Override Rules - Structural trend confirmation with momentum alignment
cond14 = math.min(ndiff_NZ, roc_HP, dcti_SP)
strength_SB := math.max(strength_SB, cond14 * 0.5)
The rule system implements 15 distinct fuzzy rules that evaluate various market conditions including:
Established Trends: Strong deviations with confirming momentum and DCTI alignment
Emerging Trends: Early deviation patterns with initial momentum and DCTI confirmation
Weakening Trends: Divergent signals between deviation, momentum, and DCTI
Reversal Conditions: Counter-trend signals with DCTI confirmation
Neutral Consolidations: Minimal deviation with low momentum and neutral DCTI
A key innovation is the weighted influence of DCTI on rule activation. When strong DCTI readings align with other indicators, rule strength is amplified (up to 1.2x). Conversely, when DCTI contradicts other indicators, rule impact is reduced (as low as 0.5x). This creates a dynamic, self-adjusting system that prioritizes high-conviction signals.
Defuzzification & Signal Generation
The final step transforms fuzzy outputs into a precise trend score through center-of-gravity defuzzification:
// Defuzzification with precise floating-point handling
denominator = strength_SB + strength_WB + strength_N + strength_WBe + strength_SBe
if denominator > 1e-10
fuzzyTrendScore := (strength_SB * STRONG_BULL + strength_WB * WEAK_BULL +
strength_N * NEUTRAL + strength_WBe * WEAK_BEAR +
strength_SBe * STRONG_BEAR) / denominator
The resulting FuzzyTrendScore ranges from -1.0 (Strong Bear) to +1.0 (Strong Bull), with critical threshold zones at ±0.3 (Weak trend) and ±0.7 (Strong trend). The histogram visualization employs intuitive color-coding for immediate trend assessment.
Strategic Applications for Institutional Trading
FibonacciFlux provides substantial advantages for sophisticated trading operations:
Multi-Timeframe Signal Confirmation: Institutional-grade signal validation across multiple technical dimensions
Trend Strength Quantification: Precise measurement of trend conviction with noise filtration
Early Trend Identification: Detection of emerging trends before traditional indicators through fuzzy pattern recognition
Adaptive Market Regime Analysis: Self-calibrating analysis across varying volatility environments
Algorithmic Strategy Integration: Well-defined numerical output suitable for systematic trading frameworks
Risk Management Enhancement: Superior signal fidelity for risk exposure optimization
Customization Parameters
FibonacciFlux offers extensive customization to align with specific trading mandates and market conditions:
Fuzzy SMA Settings: Configure baseline trend identification parameters including SMA, ROC, and RSI lengths
Normalization Settings: Fine-tune the self-calibration mechanism with adjustable lookback period, percentile rank, and optional clamping
DCTI Parameters: Optimize trend structure confirmation with adjustable major/minor periods and signal smoothing
Visualization Controls: Customize display transparency for optimal chart integration
These parameters enable precise calibration for different asset classes, timeframes, and market regimes while maintaining the core analytical framework.
Implementation Notes
For optimal implementation, consider the following guidance:
Higher timeframes (4H+) benefit from increased normalization lookback (800+) for stability
Volatile assets may require adjusted clamping values (2.5-4.0) for optimal signal sensitivity
DCTI parameters should be aligned with chart timeframe (higher timeframes require increased major/minor periods)
The indicator performs exceptionally well as a trend filter for systematic trading strategies
Acknowledgments
FibonacciFlux builds upon the pioneering work of Donovan Wall in Donchian Channel Trend Intensity analysis. The normalization approach draws inspiration from percentile-based statistical techniques in quantitative finance. This indicator is shared for educational and analytical purposes under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.
Past performance does not guarantee future results. All trading involves risk. This indicator should be used as one component of a comprehensive analysis framework.
Shout out @DonovanWall
Fuzzy SMA Trend Analyzer (experimental)[FibonacciFlux]Fuzzy SMA Trend Analyzer (Normalized): Advanced Market Trend Detection Using Fuzzy Logic Theory
Elevate your technical analysis with institutional-grade fuzzy logic implementation
Research Genesis & Conceptual Framework
This indicator represents the culmination of extensive research into applying fuzzy logic theory to financial markets. While traditional technical indicators often produce binary outcomes, market conditions exist on a continuous spectrum. The Fuzzy SMA Trend Analyzer addresses this limitation by implementing a sophisticated fuzzy logic system that captures the nuanced, multi-dimensional nature of market trends.
Core Fuzzy Logic Principles
At the heart of this indicator lies fuzzy logic theory - a mathematical framework designed to handle imprecision and uncertainty:
// Improved fuzzy_triangle function with guard clauses for NA and invalid parameters.
fuzzy_triangle(val, left, center, right) =>
if na(val) or na(left) or na(center) or na(right) or left > center or center > right // Guard checks
0.0
else if left == center and center == right // Crisp set (single point)
val == center ? 1.0 : 0.0
else if left == center // Left-shoulder shape (ramp down from 1 at center to 0 at right)
val >= right ? 0.0 : val <= center ? 1.0 : (right - val) / (right - center)
else if center == right // Right-shoulder shape (ramp up from 0 at left to 1 at center)
val <= left ? 0.0 : val >= center ? 1.0 : (val - left) / (center - left)
else // Standard triangle
math.max(0.0, math.min((val - left) / (center - left), (right - val) / (right - center)))
This implementation of triangular membership functions enables the indicator to transform crisp numerical values into degrees of membership in linguistic variables like "Large Positive" or "Small Negative," creating a more nuanced representation of market conditions.
Dynamic Percentile Normalization
A critical innovation in this indicator is the implementation of percentile-based normalization for SMA deviation:
// ----- Deviation Scale Estimation using Percentile -----
// Calculate the percentile rank of the *absolute* deviation over the lookback period.
// This gives an estimate of the 'typical maximum' deviation magnitude recently.
diff_abs_percentile = ta.percentile_linear_interpolation(math.abs(raw_diff), normLookback, percRank) + 1e-10
// ----- Normalize the Raw Deviation -----
// Divide the raw deviation by the estimated 'typical max' magnitude.
normalized_diff = raw_diff / diff_abs_percentile
// ----- Clamp the Normalized Deviation -----
normalized_diff_clamped = math.max(-3.0, math.min(3.0, normalized_diff))
This percentile normalization approach creates a self-adapting system that automatically calibrates to different assets and market regimes. Rather than using fixed thresholds, the indicator dynamically adjusts based on recent volatility patterns, significantly enhancing signal quality across diverse market environments.
Multi-Factor Fuzzy Rule System
The indicator implements a comprehensive fuzzy rule system that evaluates multiple technical factors:
SMA Deviation (Normalized): Measures price displacement from the Simple Moving Average
Rate of Change (ROC): Captures price momentum over a specified period
Relative Strength Index (RSI): Assesses overbought/oversold conditions
These factors are processed through a sophisticated fuzzy inference system with linguistic variables:
// ----- 3.1 Fuzzy Sets for Normalized Deviation -----
diffN_LP := fuzzy_triangle(normalized_diff_clamped, 0.7, 1.5, 3.0) // Large Positive (around/above percentile)
diffN_SP := fuzzy_triangle(normalized_diff_clamped, 0.1, 0.5, 0.9) // Small Positive
diffN_NZ := fuzzy_triangle(normalized_diff_clamped, -0.2, 0.0, 0.2) // Near Zero
diffN_SN := fuzzy_triangle(normalized_diff_clamped, -0.9, -0.5, -0.1) // Small Negative
diffN_LN := fuzzy_triangle(normalized_diff_clamped, -3.0, -1.5, -0.7) // Large Negative (around/below percentile)
// ----- 3.2 Fuzzy Sets for ROC -----
roc_HN := fuzzy_triangle(roc_val, -8.0, -5.0, -2.0)
roc_WN := fuzzy_triangle(roc_val, -3.0, -1.0, -0.1)
roc_NZ := fuzzy_triangle(roc_val, -0.3, 0.0, 0.3)
roc_WP := fuzzy_triangle(roc_val, 0.1, 1.0, 3.0)
roc_HP := fuzzy_triangle(roc_val, 2.0, 5.0, 8.0)
// ----- 3.3 Fuzzy Sets for RSI -----
rsi_L := fuzzy_triangle(rsi_val, 0.0, 25.0, 40.0)
rsi_M := fuzzy_triangle(rsi_val, 35.0, 50.0, 65.0)
rsi_H := fuzzy_triangle(rsi_val, 60.0, 75.0, 100.0)
Advanced Fuzzy Inference Rules
The indicator employs a comprehensive set of fuzzy rules that encode expert knowledge about market behavior:
// --- Fuzzy Rules using Normalized Deviation (diffN_*) ---
cond1 = math.min(diffN_LP, roc_HP, math.max(rsi_M, rsi_H)) // Strong Bullish: Large pos dev, strong pos roc, rsi ok
strength_SB := math.max(strength_SB, cond1)
cond2 = math.min(diffN_SP, roc_WP, rsi_M) // Weak Bullish: Small pos dev, weak pos roc, rsi mid
strength_WB := math.max(strength_WB, cond2)
cond3 = math.min(diffN_SP, roc_NZ, rsi_H) // Weakening Bullish: Small pos dev, flat roc, rsi high
strength_N := math.max(strength_N, cond3 * 0.6) // More neutral
strength_WB := math.max(strength_WB, cond3 * 0.2) // Less weak bullish
This rule system evaluates multiple conditions simultaneously, weighting them by their degree of membership to produce a comprehensive trend assessment. The rules are designed to identify various market conditions including strong trends, weakening trends, potential reversals, and neutral consolidations.
Defuzzification Process
The final step transforms the fuzzy result back into a crisp numerical value representing the overall trend strength:
// --- Step 6: Defuzzification ---
denominator = strength_SB + strength_WB + strength_N + strength_WBe + strength_SBe
if denominator > 1e-10 // Use small epsilon instead of != 0.0 for float comparison
fuzzyTrendScore := (strength_SB * STRONG_BULL +
strength_WB * WEAK_BULL +
strength_N * NEUTRAL +
strength_WBe * WEAK_BEAR +
strength_SBe * STRONG_BEAR) / denominator
The resulting FuzzyTrendScore ranges from -1 (strong bearish) to +1 (strong bullish), providing a smooth, continuous evaluation of market conditions that avoids the abrupt signal changes common in traditional indicators.
Advanced Visualization with Rainbow Gradient
The indicator incorporates sophisticated visualization using a rainbow gradient coloring system:
// Normalize score to for gradient function
normalizedScore = na(fuzzyTrendScore) ? 0.5 : math.max(0.0, math.min(1.0, (fuzzyTrendScore + 1) / 2))
// Get the color based on gradient setting and normalized score
final_color = get_gradient(normalizedScore, gradient_type)
This color-coding system provides intuitive visual feedback, with color intensity reflecting trend strength and direction. The gradient can be customized between Red-to-Green or Red-to-Blue configurations based on user preference.
Practical Applications
The Fuzzy SMA Trend Analyzer excels in several key applications:
Trend Identification: Precisely identifies market trend direction and strength with nuanced gradation
Market Regime Detection: Distinguishes between trending markets and consolidation phases
Divergence Analysis: Highlights potential reversals when price action and fuzzy trend score diverge
Filter for Trading Systems: Provides high-quality trend filtering for other trading strategies
Risk Management: Offers early warning of potential trend weakening or reversal
Parameter Customization
The indicator offers extensive customization options:
SMA Length: Adjusts the baseline moving average period
ROC Length: Controls momentum sensitivity
RSI Length: Configures overbought/oversold sensitivity
Normalization Lookback: Determines the adaptive calculation window for percentile normalization
Percentile Rank: Sets the statistical threshold for deviation normalization
Gradient Type: Selects the preferred color scheme for visualization
These parameters enable fine-tuning to specific market conditions, trading styles, and timeframes.
Acknowledgments
The rainbow gradient visualization component draws inspiration from LuxAlgo's "Rainbow Adaptive RSI" (used under CC BY-NC-SA 4.0 license). This implementation of fuzzy logic in technical analysis builds upon Fermi estimation principles to overcome the inherent limitations of crisp binary indicators.
This indicator is shared under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.
Remember that past performance does not guarantee future results. Always conduct thorough testing before implementing any technical indicator in live trading.