Machine Learning RSI ║ BullVisionOverview:
Introducing the Machine Learning RSI with KNN Adaptation – a cutting-edge momentum indicator that blends the classic Relative Strength Index (RSI) with machine learning principles. By leveraging K-Nearest Neighbors (KNN), this indicator aims at identifying historical patterns that resemble current market behavior and uses this context to refine RSI readings with enhanced sensitivity and responsiveness.
Unlike traditional RSI models, which treat every market environment the same, this version adapts in real-time based on how similar past conditions evolved, offering an analytical edge without relying on predictive assumptions.
Key Features:
🔁 KNN-Based RSI Refinement
This indicator uses a machine learning algorithm (K-Nearest Neighbors) to compare current RSI and price action characteristics to similar historical conditions. The resulting RSI is weighted accordingly, producing a dynamically adjusted value that reflects historical context.
📈 Multi-Feature Similarity Analysis
Pattern similarity is calculated using up to five customizable features:
RSI level
RSI momentum
Volatility
Linear regression slope
Price momentum
Users can adjust how many features are used to tailor the behavior of the KNN logic.
🧠 Machine Learning Weight Control
The influence of the machine learning model on the final RSI output can be fine-tuned using a simple slider. This lets you blend traditional RSI and machine learning-enhanced RSI to suit your preferred level of adaptation.
🎛️ Adaptive Filtering
Additional smoothing options (Kalman Filter, ALMA, Double EMA) can be applied to the RSI, offering better visual clarity and helping to reduce noise in high-frequency environments.
🎨 Visual & Accessibility Settings
Custom color palettes, including support for color vision deficiencies, ensure that trend coloring remains readable for all users. A built-in neon mode adds high-contrast visuals to improve RSI visibility across dark or light themes.
How It Works:
Similarity Matching with KNN:
At each candle, the current RSI and optional market characteristics are compared to historical bars using a KNN search. The algorithm selects the closest matches and averages their RSI values, weighted by similarity. The more similar the pattern, the greater its influence.
Feature-Based Weighting:
Similarity is determined using normalized values of the selected features, which gives a more refined result than RSI alone. You can choose to use only 1 (RSI) or up to all 5 features for deeper analysis.
Filtering & Blending:
After the machine learning-enhanced RSI is calculated, it can be optionally smoothed using advanced filters to suppress short-term noise or sharp spikes. This makes it easier to evaluate RSI signals in different volatility regimes.
Parameters Explained:
📊 RSI Settings:
Set the base RSI length and select your preferred smoothing method from 10+ moving average types (e.g., EMA, ALMA, TEMA).
🧠 Machine Learning Controls:
Enable or disable the KNN engine
Select how many nearest neighbors to compare (K)
Choose the number of features used in similarity detection
Control how much the machine learning engine affects the RSI calculation
🔍 Filtering Options:
Enable one of several advanced smoothing techniques (Kalman Filter, ALMA, Double EMA) to adjust the indicator’s reactivity and stability.
📏 Threshold Levels:
Define static overbought/oversold boundaries or reference dynamically adjusted thresholds based on historical context identified by the KNN algorithm.
🎨 Visual Enhancements:
Select between trend-following or impulse coloring styles. Customize color palettes to accommodate different types of color blindness. Enable neon-style effects for visual clarity.
Use Cases:
Swing & Trend Traders
Can use the indicator to explore how current RSI readings compare to similar market phases, helping to assess trend strength or potential turning points.
Intraday Traders
Benefit from adjustable filters and fast-reacting smoothing to reduce noise in shorter timeframes while retaining contextual relevance.
Discretionary Analysts
Use the adaptive OB/OS thresholds and visual cues to supplement broader confluence zones or market structure analysis.
Customization Tips:
Higher Volatility Periods: Use more neighbors and enable filtering to reduce noise.
Lower Volatility Markets: Use fewer features and disable filtering for quicker RSI adaptation.
Deeper Contextual Analysis: Increase KNN lookback and raise the feature count to refine pattern recognition.
Accessibility Needs: Switch to Deuteranopia or Monochrome mode for clearer visuals in specific color vision conditions.
Final Thoughts:
The Machine Learning RSI combines familiar momentum logic with statistical context derived from historical similarity analysis. It does not attempt to predict price action but rather contextualizes RSI behavior with added nuance. This makes it a valuable tool for those looking to elevate traditional RSI workflows with adaptive, research-driven enhancements.
Indicadores e estratégias
Stochastic Overlay - Regression Channel (Zeiierman)█ Overview
The Stochastic Overlay – Regression Channel (Zeiierman) is a next-generation visualization tool that transforms the traditional Stochastic Oscillator into a dynamic price-based overlay.
Instead of leaving momentum trapped in a lower subwindow, this indicator projects the Stochastic oscialltor directly onto price itself — allowing traders to visually interpret momentum, overbought/oversold conditions, and market strength without ever taking their eyes off price action.
⚪ In simple terms:
▸ The Bands = The Stochastic Oscillator — but on price.
▸ The Midline = Stochastic 50 level
▸ Upper Band = Stochastic Overbought Threshold
▸ Lower Band = Stochastic Oversold Threshold
When the price moves above the midline → it’s the same as the oscillator moving above 50
When the price breaks above the upper band → it’s the same as Stochastic entering overbought.
When the price reaches the lower band →, think of it like Stochastic being oversold.
This makes market conditions visually intuitive. You’re literally watching the oscillator live on the price chart.
█ How It Works
The indicator layers 3 distinct technical elements into one clean view:
⚪ Stochastic Momentum Engine
Tracks overbought/oversold conditions and directional strength using:
%K Line → Momentum of price
%D Line → Smoothing filter of %K
Overbought/Oversold Bands → Highlight potential reversal zones
⚪ Volatility Adaptive Bands
Dynamic bands plotted above and below price using:
ATR * Stochastic Scaling → Creates wider bands during volatile periods & tighter bands in calm conditions
Basis → Moving average centerline (EMA, SMA, WMA, HMA, RMA selectable)
This means:
→ In strong trends: Bands expand
→ In consolidations: Bands contract
⚪ Regression Channel
Projects trend direction with different models:
Logarithmic → Captures non-linear growth (perfect for crypto or exponential stocks)
Linear → Classic regression fit
Adaptive → Dynamically adjusts sensitivity
Leading → Projects trend further ahead (aggressive mode)
Channels include:
Midline → Fair value trend
Upper/Lower Bounds → Deviation-based support/resistance
⚪ Heatmap - Bull & Bear Power Strength
Visual heatmeter showing:
% dominance of bulls vs bears (based on close > or < Band Basis)
Automatic normalization regardless of timeframe
Table display on-chart for quick visual insight
Dynamic highlighting when extreme levels are reached
⚪ Trend Candlestick Coloring
Bars auto-color based on trend filter:
Above Basis → Bullish Color
Below Basis → Bearish Color
█ How to Use
⚪ Trend Trading
→ Use Band direction + Regression Channel to identify trend alignment
→ Longs favored when price holds above the Basis
→ Shorts favored when price stays below the Basis
→ Use the Bull & Bear heatmap to asses if the bulls or the bears are in control.
⚪ Mean Reversion
→ Look for price to interact with Upper or Lower Band extremes
→ Stochastic reaching OB/OS zones further supports reversals
⚪ Momentum Confirmation
→ Crossovers between %K and %D can confirm continuation or divergence signals
→ Especially powerful when happening at band boundaries
⚪ Strength Heatmap
→ Quickly visualize current buyer vs seller control
→ Sharp spikes in Bull Power = Aggressive buying
→ Sharp spikes in Bear Power = Heavy selling pressure
█ Why It Useful
This is not a typical Stochastic or regression tool. The tool is designed for traders who want to:
React dynamically to price volatility
Map momentum into volatility context
Use adaptive regression channels across trend styles
Visualize bull vs bear power in real-time
Follow trends with built-in reversal logic
█ Settings
Stochastic Settings
Stochastic Length → Period of calculation. Higher = smoother, Lower = faster signals.
%K Smoothing → Smooths the Stochastic line itself.
%D Smoothing → Smooths the moving average of %K for slower signals.
Stochastic Band
Band Length → Length of the Moving Average Basis.
Volatility Multiplier → Controls band width via ATR scaling.
Band Type → Choose MA type (EMA, SMA, WMA, HMA, RMA).
Regression Channel
Regression Type → Logarithmic / Linear / Adaptive / Leading.
Regression Length → Number of bars for regression calculation.
Heatmap Settings
Heatmap Length → Number of bars to calculate bull/bear dominance.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
FVG, Swing, Target, D/W/M High Low Detector Basic by Trader Riaz"FVG, Swing, Target, D/W/M High Low Detector Basic by Trader Riaz " is a powerful TradingView indicator designed to enhance your trading strategy by identifying key market structures and levels. This all-in-one tool detects Fair Value Gaps (FVGs), Swing Highs/Lows, and previous Day, Previous Week, and Previous Month Highs/Lows, helping traders make informed decisions with ease.
Key Features:
Bullish & Bearish FVG Detection: Highlights Fair Value Gaps with customizable colors, labels, and extension options.
Swing Highs & Lows: Automatically detects and marks Swing Highs and Lows with adjustable display settings and extensions.
Next Target Levels: Identifies potential price targets based on market direction (rising or falling).
Daily, Weekly, and Monthly High/Low Levels: Displays previous day, week, and month highs/lows with customizable colors.
Customizable Settings: Fully adjustable inputs for colors, number of levels to display, and extension periods.
Clean Visuals: Intuitive and non-intrusive design with dashed lines, labels, and tooltips for better chart readability.
This indicator is ideal for traders looking to identify key price levels, improve market structure analysis, and enhance their trading strategies.
Happy Trading,
Trader Riaz
Heiken Ashi Supertrend ADXHeiken Ashi Supertrend ADX Indicator
Overview
This indicator combines the power of Heiken Ashi candles, Supertrend indicator, and ADX filter to identify strong trend movements across multiple timeframes. Designed primarily for the cryptocurrency market but adaptable to any tradable asset, this system focuses on capturing momentum in established trends while employing a sophisticated triple-layer stop loss mechanism to protect capital and secure profits.
Strategy Mechanics
Entry Signals
The strategy uses a unique blend of technical signals to identify high-probability trade entries:
Heiken Ashi Candles: Looks specifically for Heiken Ashi candles with minimal or no wicks, which signal strong momentum and trend continuation. These "full-bodied" candles represent periods where price moved decisively in one direction with minimal retracement. These are overlayed onto normal candes for more accuarte signalling and plotting
Supertrend Filter: Confirms the underlying trend direction using the Supertrend indicator (default factor: 3.0, ATR period: 10). Entries are aligned with the prevailing Supertrend direction.
ADX Filter (Optional) : Can be enabled to focus only on stronger trending conditions, filtering out choppy or ranging markets. When enabled, trades only trigger when ADX is above the specified threshold (default: 25).
Exit Signals
Positions are closed when either:
An opposing signal appears (Heiken Ashi candle with no wick in the opposite direction)
Any of the three stop loss mechanisms are triggered
Triple-Layer Stop Loss System
The strategy employs a sophisticated three-tier stop loss approach:
ATR Trailing Stop: Adapts to market volatility and locks in profits as the trend extends. This stop moves in the direction of the trade, capturing profit without exiting too early during normal price fluctuations.
Swing Point Stop: Uses natural market structure (recent highs/lows over a lookback period) to place stops at logical support/resistance levels, honoring the market's own rhythm.
Insurance Stop: A percentage-based safety net that protects against sudden adverse moves immediately after entry. This is particularly valuable when the swing point stop might be positioned too far from entry, providing immediate capital protection.
Optimization Features
Customizable Filters : All components (Supertrend, ADX) can be enabled/disabled to adapt to different market conditions
Adjustable Parameters : Fine-tune ATR periods, Supertrend factors, and ADX thresholds
Flexible Stop Loss Settings : Each of the three stop loss mechanisms can be individually enabled/disabled with customizable parameters
Best Practices for Implementation
[Recommended Timeframes : Works best on 4-hour charts and above, where trends develop more reliably
Market Conditions: Performs well across various market conditions due to the ADX filter's ability to identify meaningful trends
Performance Characteristics
When properly optimized, this has demonstrated profit factors exceeding 3 in backtesting. The approach typically produces generous winners while limiting losses through its multi-layered stop loss system. The ATR trailing stop is particularly effective at capturing extended trends, while the insurance stop provides immediate protection against adverse moves.
The visual components on the chart make it easy to follow the strategy's logic, with position status, entry prices, and current stop levels clearly displayed.
This indicator represents a complete trading system with clearly defined entry and exit rules, adaptive stop loss mechanisms, and built-in risk management through position sizing.
EMA & MA Crossover StrategyGuys, you asked, we did. Strategy for crossing moving averages .
The Moving Average Crossover trading strategy is possibly the most popular
trading strategy in the world of trading. First of them were written in the
middle of XX century, when commodities trading strategies became popular.
This strategy is a good example of so-called traditional strategies.
Traditional strategies are always long or short. That means they are never
out of the market. The concept of having a strategy that is always long or
short may be scary, particularly in today’s market where you don’t know what
is going to happen as far as risk on any one market. But a lot of traders
believe that the concept is still valid, especially for those of traders who
do their own research or their own discretionary trading.
This version uses crossover of moving average and its exponential moving average.
Strategy parameters:
Take Profit % - when it receives the opposite signal
Stop Loss % - when it receives the opposite signal
Current Backtest:
Account: 1000$
Trading size: 0.01
Commission: 0.05%
WARNING:
- For purpose educate only
- This script to change bars colors.
Ultra Algo//@version=5
//...................../´¯¯/)
//...................,/¯.../
//.................../..../
//.............../´¯/'..'/´¯¯`·¸
//.........../'/.../..../....../¨¯\
//..........('(....´...´... ¯~/'..')
//...........\..............'...../
//............\....\.........._.·´
//.............\..............(
//..............\..............\
//----
//---------
indicator("Ultra Algo", overlay = false)
// Inputs
src = input(close, "Source", group = "Main settings")
p = input.int(180, "Trend period", group = "Main settings", tooltip = "Changes STRONG signals' sensitivity.", minval = 1)
atr_p = input.int(155, "ATR Period", group = "Main settings", minval = 1)
mult = input.float(2.1, "ATR Multiplier", step = 0.1, group = "Main settings", tooltip = "Changes sensitivity: higher period = higher sensitivty.")
mode = input.string("Type A", "Signal mode", options = , group = "Mode")
use_ema_smoother = input.string("No", "Smooth source with EMA?", options = , group = "Source")
src_ema_period = input(3, "EMA Smoother period", group = "Source")
color_bars = input(true, "Color bars?", group = "Addons")
signals_view = input.string("All", "Signals to show", options = , group = "Signal's Addon")
signals_shape = input.string("Labels", "Signal's shape", options = , group = "Signal's Addon")
buy_col = input(color.rgb(0, 255, 8), "Buy colour", group = "Signal's Addon", inline = "BS")
sell_col = input(color.rgb(255, 0, 0), "Sell colour", group = "Signal's Addon", inline = "BS")
// Calculations
src := use_ema_smoother == "Yes" ? ta.ema(src, src_ema_period) : src // Source;
h = ta.highest(src, p) // Highest of src p-bars back;
l = ta.lowest(src, p) // Lowest of src p-bars back.
d = h - l
ls = "" // Tracker of last signal
m = (h + l) / 2 // Initial trend line;
m := bar_index > p ? m : m
atr = ta.atr(atr_p) // ATR;
epsilon = mult * atr // Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.
change_up = (mode == "Type B" ? ta.cross(src, m + epsilon) : ta.crossover(src, m + epsilon)) or src > m + epsilon // If price breaks trend line + epsilon (so called higher band), then it is time to update the value of a trend line;
change_down = (mode == "Type B" ? ta.cross(src, m - epsilon) : ta.crossunder(src, m - epsilon)) or src < m - epsilon // If price breaks trend line - epsilon (so called higher band), then it is time to update the value of a trend line.
sb = open < l + d / 8 and open >= l
ss = open > h - d / 8 and open <= h
strong_buy = sb or sb or sb or sb or sb
strong_sell = ss or ss or ss or ss or ss
m := (change_up or change_down) and m != m ? m : change_up ? m + epsilon : change_down ? m - epsilon : nz(m , m) // Updating the trend line.
ls := change_up ? "B" : change_down ? "S" : ls // Last signal. Helps avoid multiple labels in a row with the same signal;
colour = ls == "B" ? buy_col : sell_col // Colour of the trend line.
buy_shape = signals_shape == "Labels" ? shape.labelup : shape.triangleup
sell_shape = signals_shape == "Labels" ? shape.labeldown : shape.triangledown
// Plottings
// Signals with label shape
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "BUY🚀", textcolor = color.white, force_overlay=true) // Plotting the BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "SELL🐻", textcolor = color.white, force_overlay=true) // Plotting the SELL signal.
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true) // Plotting the STRONG BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true) // Plotting the STRONG SELL signal.
// Signal with arrow shape
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true) // Plotting the BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true) // Plotting the SELL signal.
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true) // Plotting the STRONG BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true) // Plotting the STRONG SELL signal.
barcolor(color_bars ? colour : na) // Bar coloring
// Alerts
matype = input.string(title='MA Type', defval='EMA', options= )
ma_len1 = input(title='Short EMA1 Length', defval=5)
ma_len2 = input(title='Long EMA1 Length', defval=7)
ma_len3 = input(title='Short EMA2 Length', defval=5)
ma_len4 = input(title='Long EMA2 Length', defval=34)
ma_len5 = input(title='Short EMA3 Length', defval=98)
ma_len6 = input(title='Long EMA3 Length', defval=45)
ma_len7 = input(title='Short EMA4 Length', defval=7)
ma_len8 = input(title='Long EMA4 Length', defval=11)
ma_len9 = input(title='Short EMA5 Length', defval=11)
ma_len10 = input(title='Long EMA5 Length', defval=15)
ma_offset = input(title='Offset', defval=0)
//res = input(title="Resolution", type=resolution, defval="240")
f_ma(malen) =>
float result = 0
if matype == 'EMA'
result := ta.ema(src, malen)
result
if matype == 'SMA'
result := ta.sma(src, malen)
result
result
htf_ma1 = f_ma(ma_len1)
htf_ma2 = f_ma(ma_len2)
htf_ma3 = f_ma(ma_len3)
htf_ma4 = f_ma(ma_len4)
htf_ma5 = f_ma(ma_len5)
htf_ma6 = f_ma(ma_len6)
htf_ma7 = f_ma(ma_len7)
htf_ma8 = f_ma(ma_len8)
htf_ma9 = f_ma(ma_len9)
htf_ma10 = f_ma(ma_len10)
//plot(out1, color=green, offset=ma_offset)
//plot(out2, color=red, offset=ma_offset)
//lengthshort = input(8, minval = 1, title = "Short EMA Length")
//lengthlong = input(200, minval = 2, title = "Long EMA Length")
//emacloudleading = input(50, minval = 0, title = "Leading Period For EMA Cloud")
//src = input(hl2, title = "Source")
showlong = input(false, title='Show Long Alerts')
showshort = input(false, title='Show Short Alerts')
showLine = input(false, title='Display EMA Line')
ema1 = input(true, title='Show EMA Cloud-1')
ema2 = input(true, title='Show EMA Cloud-2')
ema3 = input(true, title='Show EMA Cloud-3')
ema4 = input(true, title='Show EMA Cloud-4')
ema5 = input(true, title='Show EMA Cloud-5')
emacloudleading = input.int(0, minval=0, title='Leading Period For EMA Cloud')
mashort1 = htf_ma1
malong1 = htf_ma2
mashort2 = htf_ma3
malong2 = htf_ma4
mashort3 = htf_ma5
malong3 = htf_ma6
mashort4 = htf_ma7
malong4 = htf_ma8
mashort5 = htf_ma9
malong5 = htf_ma10
cloudcolour1 = mashort1 >= malong1 ? color.rgb(0, 255, 0) : color.rgb(255, 0, 0)
cloudcolour2 = mashort2 >= malong2 ? #4caf4f47 : #ff110047
cloudcolour4 = mashort4 >= malong4 ? #4caf4f52 : #f2364652
cloudcolour5 = mashort5 >= malong5 ? #33ff0026 : #ff000026
//03abc1
mashortcolor1 = mashort1 >= mashort1 ? color.olive : color.maroon
mashortcolor2 = mashort2 >= mashort2 ? color.olive : color.maroon
mashortcolor3 = mashort3 >= mashort3 ? color.olive : color.maroon
mashortcolor4 = mashort4 >= mashort4 ? color.olive : color.maroon
mashortcolor5 = mashort5 >= mashort5 ? color.olive : color.maroon
mashortline1 = plot(ema1 ? mashort1 : na, color=showLine ? mashortcolor1 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA1', force_overlay=true)
mashortline2 = plot(ema2 ? mashort2 : na, color=showLine ? mashortcolor2 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA2', force_overlay=true)
mashortline3 = plot(ema3 ? mashort3 : na, color=showLine ? mashortcolor3 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA3', force_overlay=true)
mashortline4 = plot(ema4 ? mashort4 : na, color=showLine ? mashortcolor4 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA4', force_overlay=true)
mashortline5 = plot(ema5 ? mashort5 : na, color=showLine ? mashortcolor5 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA5', force_overlay=true)
malongcolor1 = malong1 >= malong1 ? color.green : color.red
malongcolor2 = malong2 >= malong2 ? color.green : color.red
malongcolor3 = malong3 >= malong3 ? color.green : color.red
malongcolor4 = malong4 >= malong4 ? color.green : color.red
malongcolor5 = malong5 >= malong5 ? color.green : color.red
malongline1 = plot(ema1 ? malong1 : na, color=showLine ? malongcolor1 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA1', force_overlay=true)
malongline2 = plot(ema2 ? malong2 : na, color=showLine ? malongcolor2 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA2', force_overlay=true)
malongline3 = plot(ema3 ? malong3 : na, color=showLine ? malongcolor3 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA3', force_overlay=true)
malongline4 = plot(ema4 ? malong4 : na, color=showLine ? malongcolor4 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA4', force_overlay=true)
malongline5 = plot(ema5 ? malong5 : na, color=showLine ? malongcolor5 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA5', force_overlay=true)
fill(mashortline1, malongline1, color=cloudcolour1, title='MA Cloud1', transp=45)
fill(mashortline2, malongline2, color=cloudcolour2, title='MA Cloud2', transp=65)
fill(mashortline4, malongline4, color=cloudcolour4, title='MA Cloud4', transp=65)
fill(mashortline5, malongline5, color=cloudcolour5, title='MA Cloud5', transp=65)
leftBars = input(15, title='Left Bars ')
rightBars = input(15, title='Right Bars')
volumeThresh = input(20, title='Volume Threshold')
//
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars) )
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars) )
r1 = plot(highUsePivot, color=ta.change(highUsePivot) ? na : #FF0000, linewidth=3, offset=-(rightBars + 1), title='Resistance', force_overlay=true)
s1 = plot(lowUsePivot, color=ta.change(lowUsePivot) ? na : #00ff0d, linewidth=3, offset=-(rightBars + 1), title='Support', force_overlay=true)
//Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
//For bull / bear wicks
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © divudivu600
// Developer By ALCON ALGO
//telegram : @harmonicryptosignals
//@version = 5
//indicator(shorttitle='Oscillator Vision', title='Alcon Oscillator Vision', overlay=false)
n1 = input(10, 'Channel length')
n2 = input(21, 'Average length')
reaction_wt = input.int(defval=1, title='Reaction in change of direction', minval=1)
nsc = input.float(53, 'Levels About Buys', minval=0.0)
nsv = input.float(-53, 'Levels About Sells', maxval=-0.0)
Buy_sales = input(true, title='Only Smart Buy Reversal')
Sell_sales = input(true, title='Only Smart Sell Reversal')
Histogram = input(true, title='Show Histogarm')
//Trendx = input(false, title='Show Trendx')
barras = input(true, title='Divergence on chart(Bars)')
divregbull = input(true, title='Regular Divergence Bullish')
divregbear = input(true, title='Regular Divergence Bearish')
divhidbull = input(true, title='Show Divergence Hidden Bullish')
divhidbear = input(true, title='Show Divergence Hidden Bearish')
Tags = input(true, title='Show Divergence Lable')
amme = input(false, title='Activar media movil Extra para WT')
White = #FDFEFE
Black = #000000
Bearish = #e91e62
Bullish = #18e0ff
Strong_Bullish = #2962ff
Bullish2 = #00bedc
Blue1 = #00D4FF
Blue2 = #009BBA
orange = #FF8B00
yellow = #FFFB00
LEZ = #0066FF
purp = #FF33CC
// Colouring
tf(_res, _exp, gaps_on) =>
gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off)
ha_htf = ''
show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias")
ha_len = input(7, 'Period', group="HA Market Bias")
ha_len2 = input(10, 'Smoothing', group="HA Market Bias")
// Calculations {
o = ta.ema(open, ha_len)
c = ta.ema(close, ha_len)
h1 = ta.ema(high, ha_len)
l1 = ta.ema(low, ha_len)
haclose = tf(ha_htf, (o + h1 + l1 + c) / 4, 0)
xhaopen = tf(ha_htf, (o + c) / 2, 0)
haopen = na(xhaopen ) ? (o + c) / 2 : (xhaopen + haclose ) / 2
hahigh = math.max(h1, math.max(haopen, haclose))
halow = math.min(l1, math.min(haopen, haclose))
o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0)
c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0)
h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0)
l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0)
ha_avg = (h2 + l2) / 2
// }
osc_len = 8
osc_bias = 100 *(c2 - o2)
osc_smooth = ta.ema(osc_bias, osc_len)
sigcolor =
(osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(Bullish, 35) :
(osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(Bullish2, 75) :
(osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(Bearish, 35) :
(osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(Bearish, 75) :
na
// }
nsc1 = nsc
nsc2 = nsc + 5
nsc3 = nsc + 10
nsc4 = nsc + 15
nsc5 = nsc + 20
nsc6 = nsc + 25
nsc7 = nsc + 30
nsc8 = nsc + 35
nsv1 = nsv - 5
nsv2 = nsv - 10
nsv3 = nsv - 15
nsv4 = nsv - 20
nsv5 = nsv - 25
nsv6 = nsv - 30
nsv7 = nsv - 35
nsv8 = nsv - 40
ap = hlc3
esa = ta.ema(ap, n1)
di = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * di)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
direction = 0
direction := ta.rising(wt1, reaction_wt) ? 1 : ta.falling(wt1, reaction_wt) ? -1 : nz(direction )
Change_of_direction = ta.change(direction, 1)
pcol = direction > 0 ? Strong_Bullish : direction < 0 ? Bearish : na
obLevel1 = input(60, 'Over Bought Level 1')
obLevel2 = input(53, 'Over Bought Level 2')
osLevel1 = input(-60, 'Over Sold Level 1')
osLevel2 = input(-53, 'Over Sold Level 2')
rsi = ta.rsi(close,14)
color greengrad = color.from_gradient(rsi, 10, 90, #00ddff, #007d91)
color redgrad = color.from_gradient(rsi, 10, 90, #8b002e, #e91e62)
ob1 = plot(obLevel1, color=#e91e6301)
os1 = plot(osLevel1, color=#00dbff01)
ob2 = plot(obLevel2, color=#e91e6301)
os2 = plot(osLevel2, color=#00dbff01)
p1 = plot(wt1, color=#00dbff01)
p2 = plot(wt2, color=#e91e6301)
plot(wt1 - wt2, color=wt2 - wt1 > 0 ? redgrad : greengrad, style=plot.style_columns)
// fill(p1,p2,color = wt2 - wt1 > 0 ? redgrad: greengrad) // old
fill(p1,p2,color = sigcolor) // new
fill(ob1,ob2,color = #e91e6350)
fill(os1,os2,color = #00dbff50)
midpoint = (nsc + nsv) / 2
ploff = (nsc - midpoint) / 8
BullSale = ta.crossunder(wt1, wt2) and wt1 >= nsc and Buy_sales == true
BearSale = ta.crossunder(wt1, wt2) and Buy_sales == false
Bullishh = ta.crossover(wt1, wt2) and wt1 <= nsv and Sell_sales == true
Bearishh = ta.crossover(wt1, wt2) and Sell_sales == false
plot(BullSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='BuysG')
plot(BearSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='SellsG')
plot(Bullishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Buys On Sale')
plot(Bearishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Sells on Sale')
//plot(Histogram ? wt1 - wt2 : na, style=plot.style_area, color=color.new(Blue2, 80), linewidth=1, title='Histograma')
//barcolor(barras == true and Bullishh == true or barras == true and Bearishh == true ? Bullish2 : na)
//barcolor(barras == true and BullSale == true or barras == true and BearSale == true ? Bearish : na)
/////// Divergence ///////
f_top_fractal(_src) =>
_src < _src and _src < _src and _src > _src and _src > _src
f_bot_fractal(_src) =>
_src > _src and _src > _src and _src < _src and _src < _src
f_fractalize(_src) =>
f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
fractal_top1 = f_fractalize(wt1) > 0 ? wt1 : na
fractal_bot1 = f_fractalize(wt1) < 0 ? wt1 : na
high_prev1 = ta.valuewhen(fractal_top1, wt1 , 0)
high_price1 = ta.valuewhen(fractal_top1, high , 0)
low_prev1 = ta.valuewhen(fractal_bot1, wt1 , 0)
low_price1 = ta.valuewhen(fractal_bot1, low , 0)
regular_bearish_div1 = fractal_top1 and high > high_price1 and wt1 < high_prev1 and divregbear == true
hidden_bearish_div1 = fractal_top1 and high < high_price1 and wt1 > high_prev1 and divhidbear == true
regular_bullish_div1 = fractal_bot1 and low < low_price1 and wt1 > low_prev1 and divregbull == true
hidden_bullish_div1 = fractal_bot1 and low > low_price1 and wt1 < low_prev1 and divhidbull == true
col1 = regular_bearish_div1 ? Bearish : hidden_bearish_div1 ? Bearish : na
col2 = regular_bullish_div1 ? Strong_Bullish : hidden_bullish_div1 ? Strong_Bullish : na
//plot(title='Divergence Bearish', series=fractal_top1 ? wt1 : na, color=col1, linewidth=2, transp=0)
//plot(title='Divergence Bullish', series=fractal_bot1 ? wt1 : na, color=col2, linewidth=2, transp=0)
plotshape(regular_bearish_div1 and divregbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Regular Bearish', text='Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bearish_div1 and divhidbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Hidden Bearish', text='H Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(regular_bullish_div1 and divregbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Regular Bullish', text='Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bullish_div1 and divhidbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Hidden Bullish', text='H Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
/////// Unfazed Alerts //////
////////////////////////////////////////////////-MISTERMOTA MOMENTUM-/////////////////////////////////////
source = input(close)
responsiveness = math.max(0.00001, input.float(0.9, minval=0.0, maxval=1.0))
periodd = input(50)
sd = ta.stdev(source, 50) * responsiveness
var worm = source
diff = source - worm
delta = math.abs(diff) > sd ? math.sign(diff) * sd : diff
worm += delta
ma = ta.sma(source, periodd)
raw_momentum = (worm - ma) / worm
current_med = raw_momentum
min_med = ta.lowest(current_med, periodd)
max_med = ta.highest(current_med, periodd)
temp = (current_med - min_med) / (max_med - min_med)
value = 0.5 * 2
value *= (temp - .5 + .5 * nz(value ))
value := value > .9999 ? .9999 : value
value := value < -0.9999 ? -0.9999 : value
temp2 = (1 + value) / (1 - value)
momentum = .25 * math.log(temp2)
momentum += .5 * nz(momentum )
//momentum := raw_momentum
signal = nz(momentum )
trend = math.abs(momentum) <= math.abs(momentum )
////////////////////////////////////////////////-GROWING/FAILING-//////////////////////////////////////////
length = input.int(title="MOM Period", minval=1, defval=14, group="MOM Settings")
srcc = input(title="MOM Source", defval=hlc3, group="MOM Settings")
txtcol_grow_above = input(#1a7b24, "Above Grow", group="MOM Settings", inline="Above")
txtcol_fall_above = input(#672ec5, "Fall", group="MOM Settings", inline="Above")
txtcol_grow_below = input(#F37121, "Below Grow", group="MOM Settings", inline="Below")
txtcol_fall_below = input(#be0606, "Fall", group="MOM Settings", inline="Below")
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options= , group="MA Settings")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="MA Settings")
smoothingLine = ma(delta, smoothingLength, typeMA)
deltaText=(delta > 0 ? (delta > delta ? " MOM > 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##") :" MOM > 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##") ) : (delta > delta ? "MOM < 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##"): " MOM < 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##")))
oneDay = 24 * 60 * 60 * 1000
barsAhead = 3
tmf = if timeframe.ismonthly
barsAhead * oneDay * 30
else if timeframe.isweekly
barsAhead * oneDay * 7
else if timeframe.isdaily
barsAhead * oneDay
else if timeframe.isminutes
barsAhead * oneDay * timeframe.multiplier / 1440
else if timeframe.isseconds
barsAhead * oneDay * timeframe.multiplier / 86400
else
0
angle(_src) =>
rad2degree = 180 / 3.14159265359 //pi
ang = rad2degree * math.atan((_src - _src ) / ta.atr(14))
ang
emae = angle(smoothingLine)
emaanglestat = emae > emae ? "▲ Growing": "▼ Falling"
deltaTextxxx = "MOM MA/ATR angle value is " + str.tostring(emae, "#.##") + "° and is " + emaanglestat
deltacolorxxx = emae >0 and emae >=emae ? txtcol_grow_above : txtcol_fall_below
// Label
label lpt1 = label.new(time, -30, text=deltaTextxxx , color=deltacolorxxx, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(lpt1, label.get_x(lpt1) + tmf)
label.delete(lpt1 )
txtdeltaColors = (delta > 50 ? (delta < delta ? txtcol_grow_above : txtcol_fall_above) : (delta < delta ? txtcol_grow_below : txtcol_fall_below))
label ldelta1 = label.new(time, 30, text=deltaText , color=txtdeltaColors, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(ldelta1, label.get_x(ldelta1) + tmf)
label.delete(ldelta1 )
//...................../´¯¯/)
//...................,/¯.../
//.................../..../
//.............../´¯/'..'/´¯¯`·¸
//.........../'/.../..../....../¨¯\
//..........('(....´...´... ¯~/'..')
//...........\..............'...../
//............\....\.........._.·´
//.............\..............(
//..............\..............\
//----
//---------
Multi-timeframe Moving Average Overlay w/ Sentiment Table🔍 Overview
This indicator overlays selected moving averages (MA) from multiple timeframes directly onto the chart and provides a dynamic sentiment table that summarizes the relative bullish or bearish alignment of short-, mid-, and long-term moving averages.
It supports seven moving average types — including traditional and advanced options like DEMA, TEMA, and HMA — and provides visual feedback via table highlights and alerts when strong momentum alignment is detected.
This tool is designed to support traders who rely on multi-timeframe analysis for trend confirmation, momentum filtering, and high-probability entry timing.
⚙️ Core Features
Multi-Timeframe MA Overlay:
Plot moving averages from 1-minute, 5-minute, 1-hour, 1-day, 1-week, and 1-month timeframes on the same chart for visual trend alignment.
Customizable MA Type:
Choose from:
EMA (Exponential Moving Average)
SMA (Simple Moving Average)
DEMA (Double EMA)
TEMA (Triple EMA)
WMA (Weighted MA)
VWMA (Volume-Weighted MA)
HMA (Hull MA)
Adjustable MA Length:
Change the length of all moving averages globally to suit your strategy (e.g. 9, 21, 50, etc.).
Sentiment Table:
Visually track trend sentiment across four key zones (Hourly, Daily, Weekly, Monthly). Each is based on the relative positioning of short-term and long-term MAs.
Sentiment Symbols Explained:
↑↑↑: Strong bullish momentum (short-term MAs stacked above longer-term MAs)
↑↑ / ↑: Moderate bullish bias
↓↓↓: Strong bearish momentum
↓↓ / ↓: Moderate bearish bias
Table Customization:
Choose the table’s position on the chart (bottom right, top right, bottom left, top left).
Style Customization:
Display MA lines as standard Line or Stepline format.
Color Customization:
Individual colors for each timeframe MA line for visual clarity.
Built-in Alerts:
Receive alerts when strong bullish (↑↑↑) or bearish (↓↓↓) sentiment is detected on any timeframe block.
📈 Use Cases
1. Trend Confirmation:
Use sentiment alignment across multiple timeframes to confirm the overall trend direction before entering a trade.
2. Entry Timing:
Wait for a shift from neutral to strong bullish or bearish sentiment to time entries during pullbacks or breakouts.
3. Momentum Filtering:
Only trade in the direction of the dominant multi-timeframe trend. For example, ignore long setups when all sentiment blocks show bearish alignment.
4. Swing & Intraday Scalping:
Use hourly and daily sentiment zones for swing trades, or rely on 1m/5m MAs for precise scalping decisions in fast-moving markets.
5. Strategy Layering:
Combine this overlay with support/resistance, RSI, or volume-based signals to enhance decision-making with multi-timeframe context.
⚠️ Important Notes
Lower-timeframe values (1m, 5m) may appear static on higher-timeframe charts due to resolution limits in TradingView. This is expected behavior.
The indicator uses MA stacking, not crossover events, to determine sentiment.
RSI + Stochastic + Signals NachomixCryptoRSI + Stochastic + Signals — by NachomixCrypto
This indicator combines the strength of the classic Relative Strength Index (RSI) with the momentum sensitivity of the Stochastic RSI, delivering a powerful tool for identifying trend strength, overbought/oversold zones, and high-probability entry and exit points.
🔹 Key Features:
RSI (Relative Strength Index):
A 14-period RSI is plotted and dynamically colored — green when RSI is above 50 (bullish bias), and red when below 50 (bearish bias). This quick visual cue helps traders instantly gauge the prevailing market momentum.
Additionally, the script calculates the estimated price levels where RSI would reach 70 (overbought) or 30 (oversold). These projections are updated dynamically and shown as labeled points, providing a valuable forecast of potential resistance and support levels based purely on RSI behavior.
Stochastic RSI:
A smoothed version of the Stochastic RSI is used, with adjustable %K and %D periods. The indicator draws a subtle ribbon between the %K and %D lines, which shifts color depending on momentum direction — green when %K > %D (bullish), red when %K < %D (bearish). A central white ribbon line adds a further visual reference for median momentum.
Dynamic Background Coloring:
The background changes color based on the RSI value and the relationship between %K and %D. When RSI is within the 30–70 range (a potential accumulation or neutral zone), the background becomes a soft green or red depending on whether momentum is bullish or bearish.
Projected RSI Price Levels:
The script estimates at what price the RSI would hit 70 or 30 using smoothed gains and losses. These levels are displayed as floating labels on the RSI chart and offer traders insights into potential future price targets or reversal zones based on RSI dynamics — a unique feature not found in standard indicators.
Horizontal Reference Lines:
Important RSI levels (0, 20, 30, 50, 70, 80, 100) are plotted as static horizontal lines to help visually interpret market conditions.
Buy and Sell Signals:
Trading signals are generated when:
A buy (long) signal is triggered when %K crosses above %D from below 40 — suggesting bullish momentum from oversold conditions.
A sell (short) signal is triggered when %K crosses below %D from above 60 — suggesting bearish momentum from overbought conditions.
These signals are marked as small green (up) or red (down) triangles near the RSI chart's top and bottom.
Smoothed Heiken Ashi- HODL FLIP V2Smoothed Heiken Ashi - HODL FLIP V2:
Strategy Overview
The SHA HODL FLIP V2 strategy combines smoothed Heikin Ashi candles with a dual EMA approach to identify trend changes in cryptocurrency markets. Unlike traditional "HODL" (Hold On for Dear Life) strategies that only capture upside, this system aims to capture both upward and downward price movements by automatically "flipping" your entire position between long and short depending on the trend direction, allowing you to grow your holdings through complete market cycles.
Technical Approach
The strategy uses a unique two-layer smoothing method:
Primary smoothing: Calculates Heikin Ashi candles using a standard EMA (default: 14 periods)
Secondary smoothing: Further refines the signal by applying an additional EMA filter (default: 8 periods)
This double-smoothing technique reduces false signals and market noise, providing clearer trend identification. The strategy generates entry and exit signals when the color of the smoothed Heikin Ashi candles changes from red to green (long signal) or green to red (short signal).
Capital Allocation
This strategy is designed to utilize 100% of your available capital, effectively "flipping" your entire position between long and short positions as market trends change. Using 1x leverage for short positions keeps risk profile similar to holding spot positions.
Trade Management
Entry Logic: Enter long positions when smoothed HA candles turn green, and short positions when they turn red
Exit Logic: Manually exit your position when an opposing signal appears
Risk Management: Rather than using traditional stop-losses, the strategy relies on trend reversal signals to manage risk
Timeframe Selection
While the strategy can be applied to multiple timeframes, it typically performs best on daily, 2-day, and 3-day charts. Each cryptocurrency pair may have optimal timeframe settings, and backtesting is recommended to determine the most effective parameters for specific assets.
Performance Characteristics
The Smoothed Heiken Ashi HODL FLIP V2 strategy aims to outperform traditional buy-and-hold approaches by:
Capturing gains during bull markets (like traditional HODL)
Generating additional profits during downtrends (unlike traditional HODL)
Preserving capital during major market corrections
During trending markets (both up and down), the strategy tends to perform exceptionally well, generating substantial returns. As with most trend-following systems, performance may reduce during choppy, sideways markets, but the strategy is designed to quickly recover and generate excess profits once a clear trend reasserts itself.
Visualization
The strategy provides clear visual signals directly on your chart:
Green and red candles indicating the current trend direction
Triangular markers showing entry points
A blue horizontal line displaying your current entry price
This complete trading system offers a disciplined, systematic approach to cryptocurrency trading that aims to maximize returns throughout full market cycles rather than just during bull markets. Each asset has very unique settings so thorough backtesting is recommended instead of using 1 setting for all assets.
This is available in an Indicator version which can provide automatic connection to exchanges via webhooks and signal bots, so this can be a hands of strategy. It's called "Smoothed Heiken Ashi Candles with Delayed Signals" . The signals appear at the opening of the next bar, opposed to the close of the existing bar here. Essentially identical, but visually different buy 1 bar.
SL - 4 EMAs, 2 SMAs & Crossover SignalsThis TradingView Pine Script code is built for day traders, especially those trading crypto on a 1‑hour chart. In simple words, the script does the following:
Calculates Moving Averages:
It computes four exponential moving averages (EMAs) and two simple moving averages (SMAs) based on the closing price (or any price you select). Each moving average uses a different time period that you can adjust.
Plots Them on Your Chart:
The EMAs and SMAs are drawn on your chart in different colors and line thicknesses. This helps you quickly see the short-term and long-term trends.
Generates Buy and Sell Signals:
Buy Signal: When the fastest EMA (for example, a 10-period EMA) crosses above a slightly slower EMA (like a 21-period EMA) and the four EMAs are in a bullish order (meaning the fastest is above the next ones), the script will show a "BUY" label on the chart.
Sell Signal: When the fastest EMA crosses below the second fastest EMA and the four EMAs are lined up in a bearish order (the fastest is below the others), it displays a "SELL" label.
In essence, the code is designed to help you spot potential entry and exit points based on the relationships between multiple moving averages, which work as trend indicators. This makes it easier to decide when to trade on your 1‑hour crypto chart.
Wicky IndicatorEasily add Wicky levels and Daytrade bands from Substack. ES works on MES and NQ on MNQ too.
Follow-Through Day (FTD) SignalThis plots up arrows beneath the price on days when a William O’Neil “Follow Through Day” (FTD) takes place. A FTD occurs when an index rallies 1.2% or more with volume greater than the prior day. The rally must also be three days or more from the recent low to ensure it is authentic buying vs. short covering.
Inputs:
• Min % Gain From Previous Close: Define the minimum gain required to qualify as a FTD
• Lookback Period: Define a market low. By default, the indicator uses a 20-day low.
Dskyz (DAFE) MAtrix with ATR-Powered Precision Dskyz (DAFE) MAtrix with ATR-Powered Precision
This cutting‐edge futures trading strategy built to thrive in rapidly changing market conditions. Developed for high-frequency futures trading on instruments such as the CME Mini MNQ, this strategy leverages a matrix of sophisticated moving averages combined with ATR-based filters to pinpoint high-probability entries and exits. Its unique combination of adaptable technical indicators and multi-timeframe trend filtering sets it apart from standard strategies, providing enhanced precision and dynamic responsiveness.
imgur.com
Core Functional Components
1. Advanced Moving Averages
A distinguishing feature of the DAFE strategy is its robust, multi-choice moving averages (MAs). Clients can choose from a wide array of MAs—each with specific strengths—in order to fine-tune their trading signals. The code includes user-defined functions for the following MAs:
imgur.com
Hull Moving Average (HMA):
The hma(src, len) function calculates the HMA by using weighted moving averages (WMAs) to reduce lag considerably while smoothing price data. This function computes an intermediate WMA of half the specified length, then a full-length WMA, and finally applies a further WMA over the square root of the length. This design allows for rapid adaptation to price changes without the typical delays of traditional moving averages.
Triple Exponential Moving Average (TEMA):
Implemented via tema(src, len), TEMA uses three consecutive exponential moving averages (EMAs) to effectively cancel out lag and capture price momentum. The final formula—3 * (ema1 - ema2) + ema3—produces a highly responsive indicator that filters out short-term noise.
Double Exponential Moving Average (DEMA):
Through the dema(src, len) function, DEMA calculates an EMA and then a second EMA on top of it. Its simplified formula of 2 * ema1 - ema2 provides a smoother curve than a single EMA while maintaining enhanced responsiveness.
Volume Weighted Moving Average (VWMA):
With vwma(src, len), this MA accounts for trading volume by weighting the price, thereby offering a more contextual picture of market activity. This is crucial when volume spikes indicate significant moves.
Zero Lag EMA (ZLEMA):
The zlema(src, len) function applies a correction to reduce the inherent lag found in EMAs. By subtracting a calculated lag (based on half the moving average window), ZLEMA is exceptionally attuned to recent price movements.
Arnaud Legoux Moving Average (ALMA):
The alma(src, len, offset, sigma) function introduces ALMA—a type of moving average designed to be less affected by outliers. With parameters for offset and sigma, it allows customization of the degree to which the MA reacts to market noise.
Kaufman Adaptive Moving Average (KAMA):
The custom kama(src, len) function is noteworthy for its adaptive nature. It computes an efficiency ratio by comparing price change against volatility, then dynamically adjusts its smoothing constant. This results in an MA that quickly responds during trending periods while remaining smoothed during consolidation.
Each of these functions—integrated into the strategy—is selectable by the trader (via the fastMAType and slowMAType inputs). This flexibility permits the tailored application of the MA most suited to current market dynamics and individual risk management preferences.
2. ATR-Based Filters and Risk Controls
ATR Calculation and Volatility Filter:
The strategy computes the Average True Range (ATR) over a user-defined period (atrPeriod). ATR is then used to derive both:
Volatility Assessment: Expressed as a ratio of ATR to closing price, ensuring that trades are taken only when volatility remains within a safe, predefined threshold (volatilityThreshold).
ATR-Based Entry Filters: Implemented as atrFilterLong and atrFilterShort, these conditions ensure that for long entries the price is sufficiently above the slow MA and vice versa for shorts. This acts as an additional confirmation filter.
Dynamic Exit Management:
The exit logic employs a dual approach:
Fixed Stop and Profit Target: Stops and targets are set at multiples of ATR (fixedStopMultiplier and profitTargetATRMult), helping manage risk in volatile markets.
Trailing Stop Adjustments: A trailing stop is calculated using the ATR multiplied by a user-defined offset (trailOffset), which captures additional profits as the trade moves favorably while protecting against reversals.
3. Multi-Timeframe Trend Filtering
The strategy enhances its signal reliability by leveraging a secondary, higher timeframe analysis:
15-Minute Trend Analysis:
By retrieving 15-minute moving averages (fastMA15m and slowMA15m) via request.security, the strategy determines the broader market trend. This secondary filter (enabled or disabled through useTrendFilter) ensures that entries are aligned with the prevailing market direction, thereby reducing the incidence of false signals.
4. Signal and Execution Logic
Combined MA Alignment:
The entry conditions are based primarily on the alignment of the fast and slow MAs. A long condition is triggered when the current price is above both MAs and the fast MA is above the slow MA—complemented by the ATR filter and volume conditions. The reverse applies for a short condition.
Volume and Time Window Validation:
Trades are permitted only if the current volume exceeds a minimum (minVolume) and the current hour falls within the predefined trading window (tradingStartHour to tradingEndHour). An additional volume spike check (comparing current volume to a moving average of past volumes) further filters for optimal market conditions.
Comprehensive Order Execution:
The strategy utilizes flexible order execution functions that allow pyramiding (up to 10 positions), ensuring that it can scale into positions as favorable conditions persist. The use of both market entries and automated exits (with profit targets, stop-losses, and trailing stops) ensures that risk is managed at every step.
5. Integrated Dashboard and Metrics
For transparency and real-time analysis, the strategy includes:
On-Chart Visualizations:
Both fast and slow MAs are plotted on the chart, making it easy to see the market’s technical foundation.
Dynamic Metrics Dashboard:
A built-in table displays crucial performance statistics—including current profit/loss, equity, ATR (both raw and as a percentage), and the percentage gap between the moving averages. These metrics offer immediate insight into the health and performance of the strategy.
Input Parameters: Detailed Breakdown
Every input is meticulously designed to offer granular control:
Fast & Slow Lengths:
Determine the window size for the fast and slow moving averages. Smaller values yield more sensitivity, while larger values provide a smoother, delayed response.
Fast/Slow MA Types:
Choose the type of moving average for fast and slow signals. The versatility—from basic SMA and EMA to more complex ones like HMA, TEMA, ZLEMA, ALMA, and KAMA—allows customization to fit different market scenarios.
ATR Parameters:
atrPeriod and atrMultiplier shape the volatility assessment, directly affecting entry filters and risk management through stop-loss and profit target levels.
Trend and Volume Filters:
Inputs such as useTrendFilter, minVolume, and the volume spike condition help confirm that a trade occurs in active, trending markets rather than during periods of low liquidity or market noise.
Trading Hours:
Restricting trade execution to specific hours (tradingStartHour and tradingEndHour) helps avoid illiquid or choppy markets outside of prime trading sessions.
Exit Strategies:
Parameters like trailOffset, profitTargetATRMult, and fixedStopMultiplier provide multiple layers of risk management and profit protection by tailoring how exits are generated relative to current market conditions.
Pyramiding and Fixed Trade Quantity:
The strategy supports multiple entries within a trend (up to 10 positions) and sets a predefined trade quantity (fixedQuantity) to maintain consistent exposure and risk per trade.
Dashboard Controls:
The resetDashboard input allows for on-the-fly resetting of performance metrics, keeping the strategy’s performance dashboard accurate and up-to-date.
Why This Strategy is Truly Exceptional
Multi-Faceted Adaptability:
The ability to switch seamlessly between various moving average types—each suited to particular market conditions—enables the strategy to adapt dynamically. This is a testament to the high level of coding sophistication and market insight infused within the system.
Robust Risk Management:
The integration of ATR-based stops, profit targets, and trailing stops ensures that every trade is executed with well-defined risk parameters. The system is designed to mitigate unexpected market swings while optimizing profit capture.
Comprehensive Market Filtering:
By combining moving average crossovers with volume analysis, volatility thresholds, and multi-timeframe trend filters, the strategy only enters trades under the most favorable conditions. This multi-layered filtering reduces noise and enhances signal quality.
-Final Thoughts-
The Dskyz Adaptive Futures Elite (DAFE) MAtrix with ATR-Powered Precision strategy is not just another trading algorithm—it is a multi-dimensional, fully customizable system built on advanced technical principles and sophisticated risk management techniques. Every function and input parameter has been carefully engineered to provide traders with a system that is both powerful and transparent.
For clients seeking a state-of-the-art trading solution that adapts dynamically to market conditions while maintaining strict discipline in risk management, this strategy truly stands in a class of its own.
****Please show support if you enjoyed this strategy. I'll have more coming out in the near future!!
-Dskyz
Caution
DAFE is experimental, not a profit guarantee. Futures trading risks significant losses due to leverage. Backtest, simulate, and monitor actively before live use. All trading decisions are your responsibility.
📋 Creative Trade Checklist ✅🆕 Trader Checklist Added to Chart! ✅
Discover Your Discipline Edge 🎯
Hey traders! I’ve just added a brand new Creative Trade Checklist at the top right corner of your chart to help you stay consistent and avoid emotional mistakes.
🧩 How it works:
Open the indicator settings
Under “Checklist”, toggle boxes like:
🟢 CALL Now
🔴 PUT Now
Structure confirmed (EMA/VWAP)
Pullback entry?
I feel neutral ✅
Took partials / Logged trade
Once selected, it automatically updates your chart with "X" so you can visually check off your process before and after each trade.
📍 Why it helps:
✔️ Reinforces discipline
✔️ Keeps emotions in check
✔️ Ensures trade quality
✔️ Helps you build a repeatable plan
🔧 You can turn the checklist on/off in settings and choose where it appears (top right, top left, etc).
This tool is made for serious traders who want consistency. Let me know what else you’d like added!
Happy scalping!
—Phil Vo 🧭
GMMA Buy/Sell DashboardGMMA Buy/Sell Dashboard – Precision Trend Visualizer
The GMMA Buy/Sell Dashboard is a powerful trend-following indicator based on Guppy Multiple Moving Averages (GMMA), designed to deliver clear, real-time signals without chart noise.
✅ BUY / SELL / WAIT dashboard label updates with every candle
🟢 Green background for bullish momentum
🔴 Red background for bearish momentum
⚪ Neutral mode when the market is indecisive
Built for traders who want to react quickly with full confidence in the trend — ideal for scalping, day trading, and swing trading alike.
🧠 Perfect for:
Clean chart setups
Fast directional decision making
Manual or automated trading systems
Combining with your existing strategy for confirmation
Liquidity Zones Alerts"Liquidity Zones Alerts" is a powerful smart-money-based indicator designed to detect key liquidity grabs and provide high-probability reversal signals using a combination of market structure, volume, volatility, and candlestick confirmation.
🧠 How It Works
The core logic of this indicator is built around the Smart Money Concepts:
🔺 Liquidity Sweeps: Detects when price takes out previous daily or weekly highs/lows, suggesting stop hunts or engineered liquidity moves by institutional players.
📈 Volume Filter: Ensures signals only appear during above-average volume, filtering out noise and low-interest moves.
⚡ Volatility Filter: Flags high-range candles relative to the average, catching flash crashes/spikes that often precede strong reversals.
🔄 Engulfing Candle Confirmation: Confirms entry with a bullish or bearish engulfing pattern after liquidity is taken — increasing signal reliability.
🧭 Premium/Discount Zone Logic: Trades are filtered to ensure longs are only taken in discount zones, and shorts in premium zones, using a 20-period market range for context.
📌 Features
✅ Daily & Weekly liquidity zones toggle
✅ Visual signals with clean 🔻(short) & 🔺(long) arrows
✅ Auto-detection of flash crashes
✅ Alerts on both long and short setups
✅ Optional previous high/low level plotting for context
✅ Background highlighting of valid signal candles
✅ Multi-timeframe friendly and compatible with any asset
🛠️ Use Case
Whether you're a scalper or a swing trader, this tool helps you spot institutional entry zones before the move happens. It works especially well when combined with your existing bias or supply/demand zones.
💬 “Price doesn't move randomly — it hunts liquidity. This indicator shows you where and when it happens.”
EMA 9/21/50 + VWAP + MACD + RSI Pro [v6]Overview:
A powerful multi-indicator tool combining Exponential Moving Averages (EMA 9, 21, 50), Volume-Weighted Average Price (VWAP), Moving Average Convergence Divergence (MACD), and Relative Strength Index (RSI) into a single, easy-to-read system. Designed for traders who want a clean, all-in-one dashboard for trend analysis, momentum confirmation, and overbought/oversold conditions.
Key Features:
1. Triple EMA System (9, 21, 50)
Identifies short-term and medium-term trends.
Bullish Signal: EMA 9 > EMA 21 > EMA 50 (Green Highlight)
Bearish Signal: EMA 9 < EMA 21 < EMA 50 (Red Highlight)
Helps confirm trend direction and potential reversals.
2. VWAP (Volume-Weighted Average Price)
Tracks intraday fair value price based on volume.
Bullish: Price above VWAP (Green)
Bearish: Price below VWAP (Red)
3. MACD (Standard 12, 26, 9 Settings)
Shows momentum shifts.
Bullish: MACD line > Signal line (Green)
Bearish: MACD line < Signal line (Red)
Histogram confirms strength of momentum.
4. RSI (14-Period Default)
Identifies overbought (>70) and oversold (<30) conditions.
Red: Overbought (Potential Reversal)
Green: Oversold (Potential Bounce)
5. Signal Dashboard (Top-Right Table)
Real-time summary of all indicators in one place.
Color-coded for quick interpretation (Green = Bullish, Red = Bearish).
How to Use This Indicator?
✅ Trend Confirmation:
Trade in the direction of EMA alignment (9 > 21 > 50 for uptrends).
Use VWAP as dynamic support/resistance.
✅ Momentum Entries:
Look for MACD crossovers while RSI is not extreme.
Avoid buying when RSI > 70 or selling when RSI < 30 (unless strong trend).
✅ Mean Reversion:
Fade extreme RSI readings (overbought/oversold) when price is at key levels.
Who Is This For?
✔ Swing Traders – EMA + MACD combo for trend-following.
✔ Day Traders – VWAP + EMA for intraday bias.
✔ RSI Traders – Clear overbought/oversold signals.
Settings Customization:
Adjust EMA lengths, RSI periods, and MACD settings as needed.
Toggle VWAP visibility on/off.
Why Use This Script?
📌 All-in-One: No need for multiple indicators cluttering your chart.
📌 Visual Clarity: Color-coded signals for quick decision-making.
📌 Flexible: Works on any timeframe (1M, 5M, 1H, Daily, etc.).
Install now and enhance your trading strategy with a professional-grade multi-indicator system!
Not a financial advice. Use at your own discretion and always apply risk management
SR Intensity CandleThis is a very simple script intended to find just what the title says, "Intensity Candles" is what i am calling them. A bullish intensity candle is taking the low of the previous candle and the close is above the previous candle high. Bearish intensity candle is the opposite, a candle that takes the high of the previous candle and the close is below the low of the previous candle.
Alternatively, if a "bullish" intensity candle is the mitigated and price pushes below, you can expect a back test short of the "bullish" intensity candle. They will act as SR zones for the future price action.
The BEST and most ideal spot for the intensity candles to happen is the see a bullish candle at the low of a move and a bearish candle at the highs indicating strong movement for reversal.
ICT MACRO MAX RETRI ( ALERT )🖤 ICT Reversal Detector – Minimalist Edition
This indicator is designed for traders who follow Inner Circle Trader (ICT) concepts, particularly focused on liquidity sweeps and displacement reversals.
It detects:
• Swing Highs & Lows that occur during the most reactive windows of each hour
→ Specifically the last 20 minutes and first 15 minutes
(ICT teaches these moments often reveal macro-level reversals. I’ve expanded the window slightly to give the indicator more room to catch valid setups.)
• Liquidity Sweeps of previous highs/lows
• Displacement (State Change): defined as a manipulation wick followed by 1–3 strong candles closing in the opposite direction
Visually:
• Clean black lines pointing right from the liquidity sweep wick
• White triangle markers inside black label boxes only when valid displacement occurs
• No clutter, no unnecessary shapes — just focused signal
Built for:
• 5-minute charts, especially NASDAQ (NAS100) and S&P 500 (SPX500)
• Confirm setups manually on the 15-minute chart for extra precision
This is a partial automation tool for ICT-style reversal traders who prefer clarity, minimalism, and sharp intuition over noise.
Let it alert you to setups — then decide like a sniper.
Order Blocks & Breaker Blocks + EMA 50/200 + RSIthis instrument shows actual trend with order blocks on different timeframes and EMA 50/200