Market Structure by HorizonAIThis indicator shows market structure with BOS and CHoCH, also Order block and FVG.
Indicators and strategies
Bollinger Band + SuperTrend ComboPowerful Bollinger Band + Super Trend Combo
Combine this with RSI & Order Blocks to get powerful signals
8 SMA Cross 200 SMACatch big moves, this ensures the direction of the stock price will either go up or down depending whether the 8 sma crosses above or below the 200 sma
Previous Day High/Low (PDH/PDL) LevelsPlot Powerful Key Levels Automatically
This clean and lightweight indicator marks the Previous Day’s High (PDH) and Previous Day’s Low (PDL) directly on your chart — perfect for:
✅ Breakout traders
✅ Rejection setups
✅ Liquidity zone hunters
✅ Smart money style entries
📌 Features:
Customizable line style (Solid, Dashed, Dotted)
Choose your own colors and line width
Live right-edge labels showing exact PDH/PDL prices
Automatically resets and updates each new session
Use this as a standalone tool or stack it with your confluence strategy. PDH/PDL levels don’t lie — price respects structure.
Market Structure + VIX long & shortThis indicator is an indicator for the dominance of Bigs long and short trading. I added all the indicators of CNN's put call ratio, cpc, and pcce. Bigs long is dangerous, so take a conservative approach with LL or HL, and use it for alert purposes. If possible, try to check CNN's put call ratio directly. The Bigs Short indicator is quite useful. In particular, strong short signals will be useful.
MARSdx BTCUSD Strategy🔍 Strategy Overview
The MARSdx Strategy is a hybrid trend-following and momentum-based system designed specifically for Bitcoin trading(works also on other Crypto like ETHUSD). It combines four technical indicators—SMA, EMA, RSI, and ADX—to filter high-probability long entries during strong bullish phases.
✅ Entry Conditions
Price above SMA(50) → confirms long-term bullish trend
Price above EMA(7) → confirms short-term momentum
RSI(2) > ADX(2) → confirms strong bullish pressure
Only when all three conditions are met, a long position is opened.
❌ Exit Condition
RSI(2) < ADX(2) → momentum weakens, exit position
📊 Indicators Used
SMA (Simple Moving Average) – identifies overall trend
EMA (Exponential Moving Average) – captures short-term momentum
RSI (Relative Strength Index) – gauges strength of price movement
ADX (Average Directional Index) – filters based on trend strength
⚙️ Inputs
SMA Length: Default 50
EMA Length: Default 7
RSI Length: Default 2
ADX Length: Default 2
You can tweak these parameters to suit other timeframes or crypto assets.
⚠️ This strategy only takes long trades. It does not use any stop-loss or profit target logic and should be combined with sound risk management.
Stochastic SuperTrend [BigBeluga]🔵 OVERVIEW
A hybrid momentum-trend tool that combines Stochastic RSI with SuperTrend logic to deliver clean directional signals based on momentum turns.
Stochastic SuperTrend is a straightforward yet powerful oscillator overlay designed to highlight turning points in momentum with high clarity. It overlays a SuperTrend-style envelope onto the Stochastic RSI, generating intuitive up/down signals when a momentum shift occurs across the neutral 50 level. Built for traders who appreciate simplicity without sacrificing reliability.
🔵 CONCEPTS
Stochastic RSI: Measures momentum by applying stochastic calculations to the RSI curve instead of raw price.
SuperTrend Bands: Dynamic upper/lower bands are drawn around the smoothed Stoch RSI line using a user-defined multiplier.
Momentum Direction: Trend flips when the smoothed Stoch RSI crosses above/below the calculated bands.
Neutral Bias Filter: Directional arrows only appear when momentum turns above or below the central 50 level—adding confluence.
🔵 FEATURES
Trend Detection on Oscillator: Applies SuperTrend logic directly to the Stoch RSI curve.
Clean Entry Signals:
→ 🢁 arrow printed when trend flips bullish below 50 (bottom reversals).
→ 🢃 arrow printed when trend flips bearish above 50 (top reversals).
Custom Multiplier: Adjust sensitivity of SuperTrend band spacing around the oscillator.
Neutral Zone Highlight: Visual zone between 0–50 (green) and 50–100 (red) for quick momentum polarity reference.
Toggle SuperTrend Line: Option to show/hide the SuperTrend trail on the Stoch RSI.
🔵 HOW TO USE
Use 🢁 signals for potential bottom reversals when momentum flips bullish from oversold regions.
Use 🢃 signals for potential top reversals when momentum flips bearish from overbought areas.
Combine with price-based SuperTrend or support/resistance zones for confluence.
Suitable for scalping, swing trading, or momentum filtering across all timeframes.
🔵 CONCLUSION
Stochastic SuperTrend is a simple yet refined tool that captures clean momentum shifts with directional clarity. Whether you're identifying reversals, filtering entries, or spotting exhaustion in a trend, this oscillator overlay delivers just what you need— no clutter, just clean momentum structure.
Moving Average StrategyMoving Average Strategy Indicator
A comprehensive EMA strategy tool to identify market trends with the following setup parameters:
1. Display EMA for current chart time period with graphical overlay showing fill colors for positive/negative correlation (defaulted to 50 for Fast EMA/200 for Slow EMA)
2. Overlay background time frame to show correlation with EMA on different time frame than chart value (defaulted to hourly).
3. Display BB bands with customization as well as a BB Band Cross Up and Cross down test (shows unusual and fast moving market activity by marking BB band intercept with symbol).
4. Display VWAP.
I use this tool primarily with the following configuration:
Daily charts
Fast EMA - 50
Slow EMA - 200
BG Time Frame - Weekly
BG Fast EMA - 3
BG Slow EMA - 9
BB Length - 20
BB Deviation - 4
BG Fast/Slow Crossover enabled
BG Fast/Slow Crossunder enabled
BB Dev Cross Up Test enabled
BB Dev Cross Down Test enabled
Configuration issues:
For some reason there are plot values that cannot be set to absolute. I need to dig deeper into that and will plan to post it out when I resolve the issue. I just set the values to above and below to mitigate for that.
Bar Color2. indicator("Bar Color", overlay=true) "Bar Color" is the name of the script that will appear on your chart. overlay=true means this script will be drawn directly on the price chart (not in a separate pane). 3. ma = ta.sma(close, 10) This calculates a Simple Moving Average (SMA) of the closing prices over the last 10 bars (candles). ta.sma() is the built-in function for SMA in Pine Script v5. 4. barcolor(close > ma ? color.green : color.red) This line colors each candle/bar: Green if the current close is above the 10-period moving average. Red if the close is below or equal to the moving average. barcolor() changes the bar color but doesn’t plot anything visually on top of the candles — it only recolors them.
Market Structure by HorizonAIThis indicator shows SMC Market structure with BOS and CHoCH. Internal and external structur. Use external structure for better experience.
Wawa Lite - Liquidity Sweeps + Couleurs personnalisablesThis indicator can only be used with the trend and only on gold!
Here are all the tools inside:
EMA 50 and 200 close
RSI close 14
Liquidity sweep
Tested on 500 and in profit of 60.4 on gold, used during London and New York killzones as much more relevant.
you can change the size of the sl and tp as well as the colours, I'll do an update to put them online and not in the bubble.
ONLY GOLD BEWARE
Custom EMA Inputs (20, 40, 100, 200)This script plots four customizable Exponential Moving Averages (EMAs) on the chart—specifically the 20, 40, 100, and 200-period EMAs. Each EMA length and color can be adjusted by the user, allowing for greater flexibility in trend analysis and multi-timeframe confirmation. The script supports offsetting plots, enabling visual tweaks for alignment with other indicators or price action setups.
Ideal for traders seeking dynamic control over their moving average strategies, this tool provides a clean, adaptable foundation for both trend following and crossover systems.
RSI OB/OS THEDU 999//@version=6
indicator("RSI OB/OS THEDU 999", overlay=false)
//#region Inputs Section
// ================================
// Inputs Section
// ================================
// Time Settings Inputs
startTime = input.time(timestamp("1 Jan 1900"), "Start Time", group="Time Settings")
endTime = input.time(timestamp("1 Jan 2099"), "End Time", group="Time Settings")
isTimeWindow = time >= startTime and time <= endTime
// Table Settings Inputs
showTable = input.bool(true, "Show Table", group="Table Settings")
fontSize = input.string("Auto", "Font Size", options= , group="Table Settings")
// Strategy Settings Inputs
tradeDirection = input.string("Long", "Trade Direction", options= , group="Strategy Settings")
entryStrategy = input.string("Revert Cross", "Entry Strategy", options= , group="Strategy Settings")
barLookback = input.int(10, "Bar Lookback", minval=1, maxval=20, group="Strategy Settings")
// RSI Settings Inputs
rsiPeriod = input.int(14, "RSI Period", minval=1, group="RSI Settings")
overboughtLevel = input.int(70, "Overbought Level", group="RSI Settings")
oversoldLevel = input.int(30, "Oversold Level", group="RSI Settings")
//#endregion
//#region Font Size Mapping
// ================================
// Font Size Mapping
// ================================
fontSizeMap = fontSize == "Auto" ? size.auto : fontSize == "Small" ? size.small : fontSize == "Normal" ? size.normal : fontSize == "Large" ? size.large : na
//#endregion
//#region RSI Calculation
// ================================
// RSI Calculation
// ================================
rsiValue = ta.rsi(close, rsiPeriod)
plot(rsiValue, "RSI", color=color.yellow)
hline(overboughtLevel, "OB Level", color=color.gray)
hline(oversoldLevel, "OS Level", color=color.gray)
//#endregion
//#region Entry Conditions
// ================================
// Entry Conditions
// ================================
buyCondition = entryStrategy == "Revert Cross" ? ta.crossover(rsiValue, oversoldLevel) : ta.crossunder(rsiValue, oversoldLevel)
sellCondition = entryStrategy == "Revert Cross" ? ta.crossunder(rsiValue, overboughtLevel) : ta.crossover(rsiValue, overboughtLevel)
// Plotting buy/sell signals
plotshape(buyCondition ? oversoldLevel : na, title="Buy", location=location.absolute, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(sellCondition ? overboughtLevel : na, title="Sell", location=location.absolute, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)
// Plotting buy/sell signals on the chart
plotshape(buyCondition, title="Buy", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY", textcolor=color.white, size=size.small , force_overlay = true)
plotshape(sellCondition, title="Sell", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL", textcolor=color.white, size=size.small, force_overlay = true)
//#endregion
//#region Returns Matrix Calculation
// ================================
// Returns Matrix Calculation
// ================================
var returnsMatrix = matrix.new(0, barLookback, 0.0)
if (tradeDirection == "Long" ? buyCondition : sellCondition ) and isTimeWindow
newRow = array.new_float(barLookback)
for i = 0 to barLookback - 1
entryPrice = close
futurePrice = close
ret = (futurePrice - entryPrice) / entryPrice * 100
array.set(newRow, i, math.round(ret, 4))
matrix.add_row(returnsMatrix, matrix.rows(returnsMatrix), newRow)
//#endregion
//#region Display Table
// ================================
// Display Table
// ================================
var table statsTable = na
if barstate.islastconfirmedhistory and showTable
statsTable := table.new(position.top_right, barLookback + 1, 4, border_width=1, force_overlay=true)
// Table Headers
table.cell(statsTable, 0, 1, "Win Rate %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
table.cell(statsTable, 0, 2, "Mean Return %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
table.cell(statsTable, 0, 3, "Median Return %", bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
// Row Headers
for i = 1 to barLookback
table.cell(statsTable, i, 0, str.format("{0} Bar Return", i), bgcolor=color.rgb(45, 45, 48), text_color=color.white, text_size=fontSizeMap)
// Calculate Statistics
meanReturns = array.new_float()
medianReturns = array.new_float()
for col = 0 to matrix.columns(returnsMatrix) - 1
colData = matrix.col(returnsMatrix, col)
array.push(meanReturns, array.avg(colData))
array.push(medianReturns, array.median(colData))
// Populate Table
for col = 0 to matrix.columns(returnsMatrix) - 1
colData = matrix.col(returnsMatrix, col)
positiveCount = 0
for val in colData
if val > 0
positiveCount += 1
winRate = positiveCount / array.size(colData)
meanRet = array.avg(colData)
medianRet = array.median(colData)
// Color Logic
winRateColor = winRate == 0.5 ? color.rgb(58, 58, 60) : (winRate > 0.5 ? color.rgb(76, 175, 80) : color.rgb(244, 67, 54))
meanBullCol = color.from_gradient(meanRet, 0, array.max(meanReturns), color.rgb(76, 175, 80), color.rgb(0, 128, 0))
meanBearCol = color.from_gradient(meanRet, array.min(meanReturns), 0, color.rgb(255, 0, 0), color.rgb(255, 99, 71))
medianBullCol = color.from_gradient(medianRet, 0, array.max(medianReturns), color.rgb(76, 175, 80), color.rgb(0, 128, 0))
medianBearCol = color.from_gradient(medianRet, array.min(medianReturns), 0, color.rgb(255, 0, 0), color.rgb(255, 99, 71))
table.cell(statsTable, col + 1, 1, str.format("{0,number,#.##%}", winRate), text_color=color.white, bgcolor=winRateColor, text_size=fontSizeMap)
table.cell(statsTable, col + 1, 2, str.format("{0,number,#.###}%", meanRet), text_color=color.white, bgcolor=meanRet > 0 ? meanBullCol : meanBearCol, text_size=fontSizeMap)
table.cell(statsTable, col + 1, 3, str.format("{0,number,#.###}%", medianRet), text_color=color.white, bgcolor=medianRet > 0 ? medianBullCol : medianBearCol, text_size=fontSizeMap)
//#endregion
// Background color for OB/OS regions
bgcolor(rsiValue >= overboughtLevel ? color.new(color.red, 90) : rsiValue <= oversoldLevel ? color.new(color.green, 90) : na)
Volatility Zones (STDEV %)This indicator displays the relative volatility of an asset as a percentage, based on the standard deviation of price over a custom length.
🔍 Key features:
• Uses standard deviation (%) to reflect recent price volatility
• Classifies volatility into three zones:
Low volatility (≤2%) — highlighted in blue
Medium volatility (2–4%) — highlighted in orange
High volatility (>4%) — highlighted in red
• Supports visual background shading and colored line output
• Works on any timeframe and asset
📊 This tool is useful for identifying low-risk entry zones, periods of expansion or contraction in price behavior, and dynamic market regime changes.
You can adjust the STDEV length to suit your strategy or timeframe. Best used in combination with your entry logic or trend filters.
Multi-Timeframe Close Alert with Toggleyou can create alerts with this indicator for when a time frame closes
Multi-Timeframe Market Regime (Ehlers)This Pine Script indicator provides an Ehlers-inspired multi-timeframe market regime analysis directly on your TradingView chart. It aims to identify whether the market is currently "Trending Up" (green), "Trending Down" (red), or "Ranging" (yellow) across Weekly, Daily, 4-Hour, and 1-Hour timeframes.
It uses custom implementations of:
Ehlers' Fisher Transform to highlight market extremes and potential turning points.
An Adaptive Moving Average (inspired by MAMA/FAMA) that adjusts its speed based on volatility to reduce lag in trends and provide stability in ranges.
The indicator displays a dashboard as a label on your chart, showing the detected regime for each of these timeframes, and optionally colors the background of your current chart timeframe to reflect its dominant regime.
ZY Legend StrategyZY Legend Strategy indicator follows the trend, sets up transactions and clearly shows the transactions it opens on the chart. SL is not used in the strategy, instead, additions are made to positions.
EMA Cloud 200 High/Close (multi)EMA Cloud 200 High/Close (multi)
This indicator plots an EMA cloud between two 200-period Exponential Moving Averages—one based on High prices, the other on Close prices. Choose your preferred timeframe or use the current chart timeframe. The cloud’s color changes to green (bullish) or red (bearish) depending on trend direction, making it easy to spot support, resistance, and market trends at a glance.
EMA Cloud 200 High/Close с цветом трендаEMA Cloud 200 High/Close with Trend Color
Overview
This indicator creates a dynamic EMA cloud between two Exponential Moving Averages calculated from different price sources, providing clear visual trend identification and support/resistance zones.
Key Features
Dual EMA System: Upper EMA based on High prices, Lower EMA based on Close prices
Custom Timeframe: Analyze EMA on any timeframe regardless of chart timeframe
Dynamic Trend Coloring: Green for uptrend, Red for downtrend
Visual Cloud: Filled area between EMAs highlights price zones
Configurable Period: Default 200-period EMA (adjustable)
How It Works
The indicator calculates two separate 200-period EMAs:
Upper EMA: Based on High prices - shows resistance levels
Lower EMA: Based on Close prices - shows support levels
Trend Detection:
Current price above average EMA = Green (Bullish)
Current price below average EMA = Red (Bearish)
Trading Applications
Trend Identification: Color changes indicate trend shifts
Support/Resistance: Cloud boundaries act as dynamic S/R zones
Entry/Exit Points: Price interaction with cloud edges
Multi-timeframe Analysis: View higher timeframe EMAs on lower timeframe charts
Settings
EMA Period: Adjust calculation period (default: 200)
Top Source: Price source for upper EMA (default: High)
Bottom Source: Price source for lower EMA (default: Close)
Custom Timeframe: Choose analysis timeframe (default: 15min)
Best Practices
Use on trending markets for optimal results
Combine with other indicators for confirmation
Higher timeframes provide stronger signals
Cloud thickness indicates volatility levels
Perfect for swing traders and trend followers seeking clear visual trend analysis with dynamic support/resistance identification.
CLMM Vault策略回测 (专业版) v5Explanation of the CLMM (Concentrated Liquidity - Market Maker) Strategy Backtesting Model Developed for the Sui Chain Vaults Protocol
Why Are We Doing This?
Conducting strategy backtesting is a crucial step for us to make data-driven decisions, validate the feasibility of strategies, and manage potential risks before committing real funds and significant development resources. A strategy that appears to have a high APY may perform entirely differently once real-world frictional costs (such as rebalancing fees and slippage) are deducted. The goal of this backtesting model is to quickly and cost-effectively identify which strategy parameter combinations have the potential to be profitable and which ones pose risks before formal development, thereby avoiding significant losses and providing data support for the project's direction.
Core Features of the Backtesting Model
We have built a "pro version" (v5) strategy simulator using TradingView's Pine Script. It can quickly simulate the core performance of our auto-compounding and rebalancing Vaults on historical price data, with the following main features:
Auto-Compounding: Continuously adds the generated fee income to the principal based on the set profit range (e.g., 0.01%).
Auto-Rebalancing: Simulates automatic rebalancing actions when the price exceeds the preset profit range and deducts the corresponding costs.
Smart Filtering Mechanism: To make the simulation closer to our ideal "smart" decision-making, it integrates three freely combinable filtering mechanisms:
Buffer Zone: Tolerates minor and temporary breaches of the profit range to avoid unnecessary rebalancing.
Breakout Confirmation: Requires the price to be in the trigger zone for N consecutive candles to confirm a breakout, filtering out market noise from "false breakouts."
Time Cooldown: Enforces a minimum time interval between two rebalances to prevent value-destroying high-frequency trading in extreme market conditions.
Important: Simplifications and Assumptions of the Model
To quickly prototype and iterate on the TradingView platform, we have made some key simplifications to the model.
A fully accurate backtest would require a deep simulation of on-chain liquidity pools (Pool Pair), calculating the price impact (Slippage) and impermanent loss (IL) caused by each rebalance on the pool. Since TradingView cannot access real-time on-chain liquidity data, we have made the following simplifications:
Simplified Rebalancing Costs: Instead of simulating real transaction slippage, we use a unified input parameter of single rebalance cost (%) to "bundle" and approximate the total of Gas fees, slippage, and realized impermanent loss.
Simplified Fee Income: Instead of calculating fees based on real-time trading volume, we directly input an average fee annualized return (%) as the core income assumption for our strategy.
How to Use and Test
Team members can load this script and test different strategies by adjusting the input parameters on the panel. The most critical parameters include: position profit range, average fee annualized return, single rebalance cost, and the switches and corresponding values of the above three smart filters.
Red Report Filter x 'Bull_Trap_9'Hello Traders!
This one is my favorite.
This is indicator / filter: '2 of 2.'
'1 of 2' is the, 'Closed Market Filter,' I posted before this that you may like.
Again, I prefer 'Filter' over 'Indicator' because this Pine Script code does not interact with the actual price data.
It makes handling high impact reports effortless.
As you all know; if you're on a Prop and breach a 'Red,' you lose your account.
This will filter up to 5 reports. More than enough unless you're on EURUSD!
It offers both 'Red' and 'Orange' report control.
The default window times of 15 / 6 are programmed for red events. You can always alter the base code for your desired, 'Before / After.'
Click the tooltip for more info.
How to use:
You do need to update the inputs daily with the current report times before each open.
I trade YM / US markets. Those reports are very repetitive on their delivery times, so I usually leave a 10:00 setting in slot 1. I then toggle it 'On' or 'Off' per demand.
Just open the dialogue box and it is pretty self explanatory.
I used task scheduler for a lot of years, but that wasn't very reliable, modest work to set up daily and a lot of times I may not hear it or it malfunctions because of a Windows update.
TradingView has the little icon that floats from the bottom right, but who really looks for that.
Any audio alert is subject to fail for a number of reasons.
This filter REDS the screen in your face. Leaves no doubt about what's coming.
I know there may be other apps and options out there, but this filter is integral to the TradingView chart itself embedded through Pine Script. It is right there, a click away, easy to input data, and as long as your chart is active and working, the filter will fire.
I did not build an alert condition into this, but I'm sure that could be an option if you want to program in audio as well.
Please Note: Only when the price candles push into the filter zone, will the filter start to display. Run a test a minute from the current price candle and you can see how it functions.
I appreciate your interest.