IV Rank & Percentile Suite V1.0What This Indicator Does
The IV Rank & Percentile Suite provides the volatility context options traders need to time entries. It calculates two complementary metrics—IV Rank and IV Percentile—using historical volatility as a proxy, then displays clear visual zones to identify favorable conditions for premium selling strategies.
Stop guessing if volatility is "high" or "low." This indicator tells you exactly where current volatility sits relative to recent history.
The Two Metrics Explained
IV Rank (0-100) Measures where current volatility sits within its 52-week high-low range.
IV Rank = (Current HV - 52w Low) / (52w High - 52w Low) × 100
70 means current volatility is 70% of the way between the yearly low and high
Sensitive to extreme spikes (a single high reading affects the range)
IV Percentile (0-100) Measures what percentage of days in the lookback period had lower volatility than today.
IV Percentile = (Days with lower HV / Total days) × 100
70 means volatility was lower than today on 70% of days in the past year
More stable, less affected by outlier spikes
Why Both?
IV Rank reacts faster to volatility changes. IV Percentile is more stable and statistically robust. When both agree (e.g., both above 50), you have stronger confirmation. Divergence between them can signal transitional periods.
Zone System
The indicator divides readings into three zones:
Zone ------- Default Range ---- Meaning ------------------ Premium Selling
🟢 High ≥ 50 Elevated volatility Favorable
🟡 Neutral 25-50 Normal volatility Selective
🔴 Low ≤ 25 Compressed volatility Avoid
An additional Extreme threshold (default 75) highlights prime conditions when volatility is significantly elevated.
Zone thresholds are fully customizable in settings.
How to Use It
For Premium Sellers (Iron Condors, Credit Spreads, Strangles)
Wait for IV Rank to enter the green zone (≥50)
Confirm IV Percentile agrees (also elevated)
Enter premium selling positions when both metrics align
Avoid initiating new positions when in the red zone
For Premium Buyers (Long Options, Debit Spreads)
Low IV Rank/Percentile means cheaper options
Red zone can favor directional debit strategies
Avoid buying premium when both metrics are in the green zone
General Principle:
Sell premium when volatility is high (it tends to revert to mean). Buy premium when volatility is low (if you have a directional thesis).
Inputs
Volatility Calculation
HV Period — Lookback for historical volatility calculation (default: 20)
Trading Days/Year — 252 for stocks, 365 for crypto
Lookback Periods
IV Rank Lookback — Period for high/low range (default: 252 = 1 year)
IV Percentile Lookback — Period for percentile calculation (default: 252)
Zone Thresholds
High IV Zone — Readings above this are highlighted green (default: 50)
Low IV Zone — Readings below this are highlighted red (default: 25)
Extreme High — Threshold for "prime" conditions alert (default: 75)
Display Options
Toggle IV Rank, IV Percentile, and raw HV display
Show/hide zone backgrounds
Show/hide info panel
Panel position selection
Info Panel
The panel displays:
Field ------- Description
IV Rank ------- Current reading with color coding
IV Pctl ------- Current percentile with color coding
HV 20d ------- Raw historical volatility percentage
52w Range ------- Lowest to highest HV in lookback period
Zone ------- Current zone status
Premium ------- Signal quality for premium selling
Lookback ------- Days used for calculations
R/P Spread ------- Difference between Rank and Percentile
Alerts
Six alerts are available:
Zone Transitions
IV Entered High Zone — Favorable for premium selling
IV Reached Extreme Levels — Prime conditions
IV Dropped to Low Zone — Caution for premium sellers
Threshold Crosses
IV Rank Crossed Above High Threshold
IV Rank Crossed Below Low Threshold
IV Percentile Above 75
IV Percentile Below 25
Set up alerts to get notified when conditions change without watching charts.
Technical Notes
Volatility Calculation Method
This indicator uses close-to-close historical volatility as an IV proxy:
Calculate log returns: ln(Close / Previous Close)
Take standard deviation over HV Period
Annualize: multiply by √(Trading Days)
This method correlates well with implied volatility for most liquid instruments. On highly liquid options underlyings (SPY, QQQ, major stocks), HV and IV tend to move together, making this a reliable proxy for IV Rank analysis.
Non-Repainting
All calculations use confirmed bar data. Values are fixed once a bar closes.
Lookback Requirement
The indicator needs sufficient history to calculate accurately. For a 252-day lookback, ensure your chart has at least 300+ bars of data.
Best Used On
ETFs: SPY, QQQ, IWM, DIA
Indices: SPX, NDX
High-volume stocks: AAPL, TSLA, NVDA, AMD, META
Timeframe: Daily (recommended), Weekly for longer-term view
The indicator works on any instrument but is most meaningful on underlyings with active options markets.
Important Notes
⚠️ This indicator uses historical volatility as a proxy for implied volatility. While HV and IV are correlated, they are not identical. For precise IV data, consult your options broker's platform.
⚠️ High IV Rank does not guarantee profitable premium selling. It indicates favorable conditions, not guaranteed outcomes. Position sizing and risk management remain essential.
⚠️ Past volatility patterns do not guarantee future behavior. Volatility regimes can shift, and historical ranges may not predict future ranges.
Suggested Workflow
Add to daily chart of your preferred underlying
Set up alert for "IV Entered High Zone"
When alerted, check both IV Rank and IV Percentile
If both elevated, evaluate premium selling opportunities
Use your broker's actual IV data for final entry decisions
Questions? Leave a comment below.
IRON
Scalping Support Resistance StrategyScalping strategy for BTC using one line: Support Resistance.
The strategy draws a line based on the minimum value of the average of High, Low, and Close for a given bar. The entries are carried out on the breakdown of this line. Exits are managed by the specified in the script's inputs take-profit and stop-loss percentages.
From Stream:
www.tradingview.com
RouterOrdersIronLibrary "RouterOrdersIron"
Library for routing orders to the Binance exchange.
MsgDoLongMKT(id, symbol, balance)
Returns json for Iron to buy a symbol for the amount of the balance with market order.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
MsgDoShortMKT(id, symbol, balance)
Returns json for Iron to sell a symbol for the amount of the balance with market order.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
MsgDoLongLR(id, symbol, balance)
Returns json for Iron to buy a symbol for the amount of the balance. It is set at the best price and is re-set each time if a new price has risen before the application.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
MsgDoShortLR(id, symbol, balance)
Returns json for Iron to sell a symbol for the amount of the balance. It is set at the best price and is re-set each time if a new price has risen before the application.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
DoLongMKT(id, symbol, balance)
Buy a symbol for the amount of the balance. It is send market order to Iron.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
DoShortMKT(id, symbol, balance)
Sell a symbol for the amount of the balance. It is send market order to Iron.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
DoLongLR(id, symbol, balance)
Buy a symbol for the amount of the balance. It is set at the best price and is re-set each time if a new price has risen before the application.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
DoShortLR(id, symbol, balance)
Sell a symbol for the amount of the balance. It is set at the best price and is re-set each time if a new price has risen before the application.
Parameters:
id : ID of your Iron router.
symbol : Symbol for a trade, BTC example
balance : The amount for which to carry out the transaction.
Returns: true
GetQty(price, balance)
Get Qty for strategy on balance
Parameters:
price : Order price
balance : The amount for which to carry out the transaction.
Returns: Qty for strategy order TV
Trading Range Indicator - TRISimple script made to identify trading ranges in any timeframe
The oscillator bounces between 1 and 0. 1 means that the current asset is in a trading range and 0 meaning it is not.
The determination of a trading range is determined by the following:
ATR(14)40 and RSI<60
ADX<25
Due to all 3 having to be fulfilled in order for the oscillator to show there is a trading range, this causes a problem where 2 of the conditions are fulfilled and therefore still shows 0 on the oscillator, however, the asset could very well be in a trading range.
So what in the world do you use this for if there is such a significant margin of error?
Since all 3 conditions need to be fulfilled in order for it to be considered a trading range, this gives a very strong indicator of said trading ranges. So if a person is looking at individual stock tickers or the SPY index ticker, then when the oscillator reads a 1, it could be ideal to open an Iron Condor on said ticker. This means that this indicator is not well suiting for traditional long and short stock positions, but rather it is made for options traders who by using an Iron Condor can make money of a range-bound market.



