CM_VixFix_RSI_HMA200_TrailStop_vFinal📌 CM_VixFix_RSI_HMA200_TrailStop – vFinal | BTC 30-Minute Strategy (Long & Short)
This strategy combines volatility-based market shock detection (Williams Vix Fix), trend confirmation (HMA200), and momentum filtering (RSI) to generate high-probability trade entries. It is engineered for BTC/USDT on the 30-minute timeframe, with carefully tuned parameters through extensive backtesting.
🎯 Core Components:
WVF (Williams Vix Fix): Identifies volatility spikes, acting as a proxy for oversold conditions or panic drops.
RSI (Relative Strength Index): Generates directional momentum signals, with separate thresholds for long and short entries.
HMA200: Filters trades based on the prevailing market trend. Trades are only allowed in the direction of HMA slope and position.
ATR-Based Trailing Stop Engine: Activates after a minimum profit threshold is hit. Combines dynamic trailing logic with a Hard Stop (maximum loss limit) to mitigate risk.
⚠️ Short-Side Challenges & Solutions
During development, the short-side trades exhibited a lower win rate, a common behavior in crypto bull-biased markets. To address this, we implemented:
RSI trigger reduced to 20 to capture only high-momentum sell-offs.
Dual confirmation: RSI must also be below its EMA(21) and price below EMA(100).
MaxBars filter (10 candles): Prevents multiple short entries in tight ranges or low-volatility zones.
As a result:
Short trades now yield a Risk/Reward ratio above 3.4
Average short trade profit is ~3x the average loss, making short entries valuable despite lower hit rate.
📊 Performance Summary (Backtest: BTCUSDT, 30-Min, July 2024–July 2025)
Metric Long Short Overall
Total Trades 401 50 451
Win Rate 49.6% 30.0% 47.4%
Avg PnL 311 USDT 1,229 USDT 413 USDT
Risk/Reward (Avg K/L) 1.05 3.48 1.16
🚨 Disclaimer
This strategy is not a plug-and-play black box. While signals are statistically validated, we strongly recommend using this tool in conjunction with:
Volume and time-of-day filters
Fundamental/macro overlays (especially around Fed announcements or CPI data)
A broader risk management framework
Note: This strategy has been optimized exclusively for BTC/USDT on the 30-minute timeframe. If applied to other assets or timeframes, recalibration is necessary.
Penunjuk dan strategi
Swing High & Low MarkerMarks swing high and low candles
Swing high candle:
A candle whose high is higher than the highs of the candles immediately before and after it.
Swing low candle:
A candle whose low is lower than the lows of the candles immediately before and after it.
Simple Volume IndicatorBased on the great work of Nitin Ranjan .
Plots volume in 4 different colors and reduce all the noise.
SuperPerformance_V1.2📊 SUPER PERFORMANCE INDICATOR
A comprehensive performance analysis tool that compares your stock against selected indices and tracks sector performance across multiple timeframes.
🎯 MAIN FEATURES
✅ Stock Performance Table
• Compares stock vs index performance across 1D, 5D, 10D, 20D, 50D, 200D periods
• Shows ✓/✗ indicators for outperformance tracking
• Displays percentage gains/losses with color coding (green=positive, red=negative)
• Calculates conviction score based on outperformance across timeframes
• Provides performance difference between stock and index
✅ Sector Performance Table
• Ranks top 5 performing sectors across different timeframes
• Shows real-time sector performance with percentage changes
• Tracks 19 major Indian market sectors
• Customizable time periods (1D, 5D, 10D, 20D, 60D)
✅ Sector Display Box
• Shows current stock's sector classification
• Customizable positioning and styling
• Optional sector abbreviations
🔧 CUSTOMIZATION OPTIONS
📋 Display Settings
• Dark/Light mode toggle
• Show/hide individual tables
• Mini mode for compact view
• Index selection (default: NIFTYMIDSML400)
📊 Table Controls
• Enable/disable specific columns and rows
• Adjustable table size (tiny/small/normal/large)
• 9 positioning options for each table
• Color customization for backgrounds and text
🎨 Advanced Features
• Conviction scoring system (Perfect/Solid/Good/Ok/Weak/Poor)
• Real-time performance tracking
• Multi-timeframe analysis
• Sector rotation insights
📈 CONVICTION LEVELS
• Perfect: Outperforms in all periods
• Solid: Outperforms in 67%+ periods
• Good: Outperforms in 50%+ periods
• Ok: Outperforms in 33%+ periods
• Weak: Outperforms in some periods
• Poor: Underperforms in all periods
⚙️ HOW TO USE
1. Add indicator to your chart
2. Select comparison index in Display Settings
3. Customize visible columns/rows as needed
4. Position tables on screen
5. Analyze green ✓ (outperforming) vs red ✗ (underperforming)
6. Use conviction score for overall performance assessment
🎯 IDEAL FOR
• Relative strength analysis
• Sector rotation strategies
• Performance benchmarking
• Indian equity markets
Note: Designed specifically for NSE/Indian market analysis with pre-configured sector indices.
VWEMA-Based Trend Strength IndicatorThis script plots the strength and direction of a trend as the percentage difference between two volume weighted EMAs.
3.RSI LIJO 45*55//@version=6
indicator(title="3.RSI LIJO 45*55", shorttitle="RSI-LIJO-45-55", format=format.price, precision=2, timeframe="", timeframe_gaps=true)
rsiLengthInput = input.int(9, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display=display.data_window, tooltip="Calculating divergences is needed in order for divergence alerts to fire.")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// Change RSI line color based on bands
rsiColor = rsi > 50 ? color.green : rsi < 50 ? color.red : color.white
rsiPlot = plot(rsi, "RSI", color=rsiColor)
rsiUpperBand = hline(55, "RSI Upper Band", color=color.rgb(5, 247, 22))
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(45, "RSI Lower Band", color=color.rgb(225, 18, 14))
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color=na, editable=false, display=display.none)
fill(rsiPlot, midLinePlot, 100, 55, top_color=color.new(color.green, 0), bottom_color=color.new(color.green, 100), title="Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 45, 0, top_color=color.new(color.red, 100), bottom_color=color.new(color.red, 0), title="Oversold Gradient Fill")
// Smoothing MA inputs
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options= , group=GRP, display=display.data_window)
maLengthInput = input.int(31, "Length", group=GRP, display=display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval=0.001, maxval=50, step=0.5, tooltip=TT_BB, group=GRP, display=display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
// Smoothing MA Calculation
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => 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)
// Smoothing MA plots
smoothingMA = enableMA ? ma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display=enableMA ? display.all : display.none, editable=enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title="Upper Bollinger Band", color=color.green, display=isBB ? display.all : display.none, editable=isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title="Lower Bollinger Band", color=color.green, display=isBB ? display.all : display.none, editable=isBB)
fill(bbUpperBand, bbLowerBand, color=isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display=isBB ? display.all : display.none, editable=isBB)
// Divergence
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_inRange(bool cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
plFound = false
phFound = false
bullCond = false
bearCond = false
rsiLBR = rsi
if calculateDivergence
//------------------------------------------------------------------------------
// Regular Bullish
// rsi: Higher Low
plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and _inRange(plFound )
// Price: Lower Low
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
//------------------------------------------------------------------------------
// Regular Bearish
// rsi: Lower High
phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and _inRange(phFound )
// Price: Higher High
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
plot(
plFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish",
linewidth = 2,
color = (bullCond ? bullColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bullCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bullish Label",
text = " Bull ",
style = shape.labelup,
location = location.absolute,
color = bullColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
plot(
phFound ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish",
linewidth = 2,
color = (bearCond ? bearColor : noneColor),
display = display.pane,
editable = calculateDivergence)
plotshape(
bearCond ? rsiLBR : na,
offset = -lookbackRight,
title = "Regular Bearish Label",
text = " Bear ",
style = shape.labeldown,
location = location.absolute,
color = bearColor,
textcolor = textColor,
display = display.pane,
editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence, Pivot Lookback Right number of bars to the left of the current bar.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence, Pivot Lookback Right number of bars to the left of the current bar.')
Bollinger Bands ±2σ & ±3σBollinger Band 2 & 3 standard deviation, clubbed together, so that you can take trade on BKP & BKT.
// This Pine Script plots Bollinger Bands with both ±2σ and ±3σ levels for enhanced volatility analysis.
// Users can customize the moving average type, length, and standard deviation multipliers directly in the settings.
// The indicator overlays a shaded ±2σ region and semi-transparent ±3σ bands to highlight extreme price movements.
VDN2 - SuperTrend + ADX + Stochastic StrategySuperTrend + ADX + Stochastic
Overview:
A trend-following and momentum-confirmation strategy using SuperTrend, ADX (>20 filter), and Stochastic oscillator. Optimized for Gold (XAUUSD) on the 10-minute chart.
Backtest Highlights (Last 1 Week):
Win Rate: 83.3% (5 out of 6 trades)
Net Profit: +56.35 USD (1 contract size)
Avg Trade Duration: ~58 bars (~9.6 hours)
Max Drawdown: 16.65 USD
Avg Win: 9.24 USD, Avg Loss: 0.82 USD
Largest Single Profit: 23.28 USD
Profit Factor: ~11.27
Core Logic:
Enter Long when:
* SuperTrend is bullish
* ADX > 20
* Stochastic %K > %D and %K < 80
Enter Short when:
* SuperTrend is bearish
* ADX > 20
* Stochastic %K < %D and %K > 20
No fixed TP/SL. Positions closed on signal reversal.
LinearRegfressionL'indicatore fornisce una semplice regressione lineare dei valori High, Low, Open, Close
Stochastic Money Flow IndexThe Stochastic Money Flow Index (or Stochastic MFI ), is a variation of the classic Stochastic RSI that uses the Money Flow Index (MFI) rather than the Relative Strength Index (RSI) in its calculation.
While the RSI focuses solely on price momentum, the MFI is a volume-weighted indicator, meaning it incorporates both price and volume data.
The Stochastic MFI is intended to provide a more precise and sensitive reading of the MFI by measuring the level of the MFI relative to its range over a specific period.
Settings
Stochastic Settings
%K Length : The number of periods used to calculate the Stochastic. (Default: 14)
%K Smoothing : The SMA length used to 'smooth' the %K line. (Default: 3)
%D Smoothing : The SMA length used to 'smooth' the %D line. (Default: 1)
Money Flow Index Settings
MFI Length : The number of periods used to calculate the Money Flow Index. (Default: 14)
MFI Source : The source used to calculate the Money Flow Index. (Default: close)
Additional Settings
Show Overbought/Oversold Gradients? : Toggle the display of overbought/oversold gradients. (Default: true)
Hidden Divergence Buy/Sell SignalsHidden divergence Buy/sell signals
Hidden divergence Buy/sell signals
Hidden divergence Buy/sell signals
Hidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signalsHidden divergence Buy/sell signals
Volume Spikes with EMA LabelVolume Spikes with EMA Label (by Emilio TRIUNFO)
Highlights significant volume surges by comparing real-time volume against a customizable EMA threshold multiplied by 1.5 (default).
Visually marks high-volume bars with colored labels on the chart to help identify strong market activity and trading opportunities.
Adjustable EMA length and multiplier allow flexibility for different strategies.
Short-Term Holder MVRVThis script calculates and visualizes the Market Value to Realized Value (MVRV) ratio for Bitcoin, specifically focusing on short-term holders (STH). The MVRV ratio is a key on-chain metric that compares Bitcoin's market cap to its realized cap (the aggregate cost basis of all coins). It helps traders identify overbought and oversold conditions in the market.
Key Features
1. Moving Averages (Customizable)
The script allows users to apply different moving averages to smooth the MVRV data:
EMA (Exponential Moving Average)
SMA (Simple Moving Average)
SMMA/RMA (Smoothed/Rolling Moving Average)
WMA (Weighted Moving Average)
VWMA (Volume-Weighted Moving Average)
HMA (Hull Moving Average)
2. Core Calculation
Fetches BTC_MVRV data from TradingView's security function.
Computes a moving average (default: 238-period WMA) of the MVRV values.
Calculates the Ratio_MVRV as:
text
Ratio_MVRV = Current MVRV / Moving Average of MVRV
A bullish signal is generated when Ratio_MVRV > 1 (market is heating up).
A bearish signal is generated when Ratio_MVRV < 1 (market is cooling down).
3. Visual Output
Main Plot:
A line chart showing Ratio_MVRV.
Orange when bullish (Ratio_MVRV > 1).
Purple when bearish (Ratio_MVRV < 1).
Horizontal Line:
A dotted white line at 1.0, acting as a threshold.
Table Display:
A small table in the top-right corner showing "↑ Bull" (green) or "↓ Bear" (red) based on the current market state.
4. Alerts
Triggers TradingView alerts when the market state changes between bullish and bearish.
Interpretation & Trading Signals
When Ratio_MVRV > 1 (Bullish):
Suggests Bitcoin is gaining momentum, possibly entering an overbought phase.
Could indicate a good time to hold or accumulate, but extreme highs may signal a potential top.
When Ratio_MVRV < 1 (Bearish):
Suggests Bitcoin is undervalued, possibly in an oversold phase.
Could indicate a buying opportunity, but prolonged lows may signal further downside.
Default Settings & Customization
Length: 238 (adjustable, default based on common long-term trend analysis).
Moving Average Type: WMA (Weighted Moving Average).
Users can modify these settings in the Inputs menu in TradingView.
Use Case
Helps traders identify market cycles by tracking short-term holder behavior.
Works best as a confirmation tool alongside other indicators (e.g., RSI, MACD).
Useful for swing traders and long-term investors looking for trend reversals.
Bullish & Bearish Wick MarkerMarks bullish and bearish engulfing candles
Bullish engulfing candle:
when the low is lower than the previous candle low and the body close is higher than the previous candle body
Bearish engulfing cande:
when the high is higher than the previous candle high and the body close is lower than the previous candle body
Byquan ADX RSI EMA9 Cross AlertThis indicator is used when the ADX exceeds the 40 threshold to look for potential reversals, confirmed by the crossover between the RSI and the RSI-based moving average, as well as the EMA 9.
Low Price RSI CrossoverThis Pine Script indicator is a Multi-Timeframe Low RSI Crossover system that combines three key filtering criteria to identify high-probability buy signals. Here's what it does:
Core Concept
The indicator only generates buy signals when all three conditions are met simultaneously:
Price at Multi-Period Low: Current price must be at or near the lowest point within your selected timeframe (1 week to 5 years, or custom)
RSI Momentum Shift: The smoothed RSI must cross above its signal line (EMA), indicating upward momentum
Below Threshold Entry: Both the RSI and its signal line must be below your threshold level (default 50) when the crossover occurs
Key Features
RSI Smoothing: Uses Hull Moving Average (HMA) to smooth the raw RSI, reducing noise and false signals while maintaining responsiveness.
Flexible Timeframes: Choose from predefined periods (1W, 2W, 3W, 1M, 2M, 3M, 6M, 9M, 1Y, 2Y, 3Y, 5Y) or set a custom number of bars.
Visual Feedback:
Plots the smoothed RSI (blue line) and its signal line (red line)
Shows threshold and overbought levels
Highlights signal bars with green background
Displays tiny green triangles at signal points
Real-time status table showing all conditions
Trading Logic
This is essentially a mean-reversion strategy that waits for:
Price to reach significant lows (value zone)
Momentum to start shifting upward (RSI crossover)
Entry from oversold/neutral territory (below 50 RSI)
Why This Works
By requiring price to be at multi-period lows, you avoid buying during downtrends or sideways chop. The RSI crossover confirms that selling pressure is starting to ease, while the threshold filter ensures you're not buying into overbought conditions.
The combination of these filters should significantly reduce false signals compared to using any single indicator alone.
Overlapping FVG - [Fandesoft Trading Academy]🧠 Overview
This script plots Higher Timeframe Fair Value Gaps (FVGs) with full visibility and precise placement on lower timeframe charts. Each timeframe (30s–15m) has its own independent toggle, custom label, and box styling, allowing traders to analyze market structures in detail.
🎯 Features
✅ Identifies Fair Value Gaps using a 3-candle logic (candle 1 high vs candle 3 low, and vice versa).
✅ Plots HTF FVG boxes aligned to lower timeframes for intraday analysis.
✅ Supports custom timeframes: 30s to 15m, with individual toggles.
✅ Full visual customization: border color, bullish/bearish box opacity, label font size and color.
✅ Modular inputs to enable or disable specific timeframes for performance.
✅ Uses barstate.isconfirmed logic for stable, non-repainting plots.
⚙️ How It Works
The script requests higher timeframe data via request.security. For each confirmed bar, it checks for FVGs based on:
Bullish FVG: low >= high
Bearish FVG: low >= high
If a gap is detected, a box is plotted between candle 1 and candle 3 using box.new().
Timeframe toggles ensure calculations remain within the limit of 40 request.security calls.
📈 Use Cases
Scalpers and intraday traders analyzing microstructure.
ICT methodology practitioners visualizing displacement and inefficiencies.
Traders layering multiple FVG timeframes for confluence.
Jumping watermark# Jumping watermark
## Function description
- Dynamic watermark: Mainly used to add dynamic watermarks to prevent theft and transfer when recording videos.
- Static watermark: Sharing opinions can easily include information such as trading pairs, cycles, current time, and individual signatures.
### Static watermark:
Display the watermark related to the current trading pair in the center of the chart.
- Configuration items:
- You can choose to configure the display content: current trading pair code and name, cycle, date, time, and individual signature content
### Dynamic watermark
Display the configured watermark content in a dynamic random position.
- Configuration items:
- Turn on or off the display of watermark jumping
- Modify the display text content and style by yourself
----- 中文简介-----
# 跳动水印
## 功能描述
- 动态水印: 主要可用于视频录制时添加动态水印防盗、防搬运。
- 静态水印:观点分享是可方便的带上交易对、周期、当前时间、个签等信息。
### 静态水印:
在图表中心位置显示当前交易对相关信息水印。
- 配置项:
- 可选择配置显示内容:当前交易对代码及名称、周期、日期、时间、个签内容
### 动态水印
动态随机位置显示配置水印内容。
- 配置项:
- 开启或关闭显示水印跳动
- 自行修改配置显示文字内容和样式
15min intervalsindicator displays 4 15 minute intervals within the hour. this simple indicator can be used for effective scalping.
Tao Bounce & Exit + Rip AlertsTao bounce long and short flags/alerts, plus exit alerts (both 2 and 3 ATR). Also includes "rip" indicators to try to flag when a strong trend is in process but all the Tao entry criteria aren't met.
5,8,10,13 EMA Cluster CrossThis is a rough cross signal or signals for the 5,8,10,13 emas to be bullish or bearish, a secondary caution indicator is programed in for the 5,8,10 cross like a yellow caution light. This is not timeframe specific and this indicator is meant to show momentum changes near pivotal points.
Any updates and improvement welcome.
Top 3 Largest RTH CandlesThis simply marks the top three sized candles to show potential momentum changes or swings.
Price x Vol RSIAn enhanced RSI indicator that integrates the RSI of volume as a conviction amplifier.
This script modifies the RSI to range from −1 to +1, allowing it to express directional momentum. Volume RSI remains in the range of 0 to +1, serving as a direction-neutral amplifier.
The result is a bi-directional composite RSI that:
>> Emphasizes congruent signals (e.g., strong price direction with strong volume).
>> Minimizes misleading signals from high volume paired with neutral or conflicting price movement.
Ideal for identifying high-conviction breakouts and momentum divergences with volume support.
the plot fill increases in color when the plot approaches zero, then reverses away from zero, and resets on a zero-cross.
check out my other script, the PXVS, which is what this RSI script was based on. it uses similar logic as this script, but with FSTO %K instead of RSI