DR/IDR Case Study [TFO]This indicator was made to backtest the DR / IDR concept (Defining Range / Implied Defining Range). There is only one built in DR session, but it can be changed to fit whatever session you like. Just make sure that the beginning time of the Session parameter matches the end time of the Defining Range parameter.
I'm not trying to validate or invalidate the claims of the DR concept, as the sample size of the success rate from this indicator is likely significantly smaller than that of the backtests where the initial success rates were derived. I'm simply sharing this indicator to encourage others to do their own due diligence by collecting their own data before implementing new concepts in their trading. Likewise I'm also making this open source for those who wish to do different kinds of backtesting and extract more value from this concept - for example, what percentage of the time does the session actually close further from the DR after initially closing through the range? Data like this could be good to track for those looking to make a trading model out of the DR concept.
Please note that all times are set to the "America/New_York" time zone by default. Besides the fact that the input times will use New York local time, this also means that they automatically adjust for Daylight Savings (this only impacts areas that do not observe Daylight Savings).
Search in scripts for "implied"
DR/IDR Candles [LuxAlgo]This indicator displays defining ranges (DR) and implied defining ranges (IDR) constructed from two user set sessions (RDR/ODR) as graphical candles on the chart. The script introduces additional graphical elements to the original DR/IDR concept and as such can be thought as a graphical method in addition to a technical indicator.
Additionally, this script can display various Fibonacci retracements from the constructed DR/IDR if enabled within the settings.
 Settings 
 
 Regular Session: Enable/disable regular session's DR/IDR alongside setting the session time. By default, 09:30 - 10:30 am.
 Overnight Session: Enable/disable overnight session's DR/IDR alongside setting the session time. By default, 03:00 - 04:00 am.
 UTC Offset: UTC offset for the time zone, by default -5 (EST)
 
 Retracements 
 
 Reverse: Inverts source range upper/lower value for constructing the retracements.
 From: Source range used to construct the retracements, by default DR is used.
 
By default, the 0.5 retracement (average line) is displayed.
 Usage 
  
The used sessions are highlighted by a gray background. DRs are highlighted by dashed lines while IDRs are highlighted by solid ones. The maximum/minimum price between each user set session is highlighted by solid wicks.
The color of the DRs/IDRs/wicks are determined by the price position relative to the DR; if price is above the DR maximum, then a blue color is used. If price is below, then an orange color is used, and if price is within the DR range, then a gray color is used.
  
Additionally, the area of the DR range is used to highlight the number of time price is located within the DR, with a longer background highlighting a higher number of occurrences. This can help highlight if the DR levels were potentially useful as support/resistance.
  
When price is outside the IDR range, the area between the price and IDR is highlighted, in blue if price is above the IDR, and orange if it is under.
The original author of the DR/IDR concept describes 3 rules using the price position relative to the DR/IDR levels:
 
 1.) If price on the 5-minute timeframe closes above the DR high after 10:30 AM or 04:00 AM then the DR low will likely be the low of the trading session. 
 2.) If price on the 5-minute timeframe closes below the DR low after 10:30 AM or 04:00 AM then the DR high will likely be the high of the trading session. 
 3.) If price closes above the IDR high after 10:30 AM or 04:00 AM it is an early indication that the low of the DR will be the low of the day and vice versa. 
 
We can see that the above rules are cases of conditional probabilities.
There is no significant data supporting or regarding any statistical probability of the above rules to be true, which are more than uncertain given the stochastic nature of prices. The lack of precision of these rules is also a concern (time zone dependance, applicable markets, etc...).
 Credits 
Credits to trader TheMas7er who originally created the DR/IDR concept in November of 2022. This script was derived from his proposed session times & rules for trading.
Cash VIX Term StructureLet’s first start with some definitions:
VIX9D: The CBOE S&P 500 9-Day Volatility Index estimates the expected 9-day volatility of S&P 500® stock returns.
 www.cboe.com 
VIX: The CBOE Volatility Index® (VIX® ) is considered by many to be the world's premier barometer of equity market volatility. The VIX Index is based on real-time prices of options on the S&P 500® Index (SPX) and is designed to reflect investors' consensus view of future (30-day) expected stock market volatility. The VIX Index is often referred to as the market's "fear gauge".
 www.cboe.com  
VIX3M: The CBOE 3-Month Volatility Index is designed to be a constant measure of 3-month implied volatility of the S&P 500® (SPX) Index options.
 www.cboe.com  
VIX6M: The CBOE S&P 500 6-Month Volatility Index is an estimate of the expected 6-month volatility of the S&P 500® Index.
 www.cboe.com  
VIX1Y: The CBOE S&P 500 1-Year Volatility Index is an estimate of the expected 1-Yeaer volatility of the S&P 500® Index.
 www.cboe.com  
This indicator visually displays the relationship between all the above products (short term vol vs long term vol). It also displays the current value and daily percentage change.
The shape of the term structure can tell us a lot about the market:
When the slope of the term structure is upward sloping (longer term VIX are higher than shorter term VIX), we say the term structure is in contango. This usually means that market is stable.
When the slope of the term structure is downward sloping (longer term VIX are lower than shorter term VIX), we say the term structure is in backwardation. This usually happens in periods of extreme market volatility.
Sometimes VIX9D will be higher than VIX but the rest of the curve is in contango. This means that there might be some event in the next 9 days that we need to pay attention to. 
I also added a few ratios that I personally track like VIX9D/VIX, VIX/VIX3M and VIX/VIX6M. 
When trading short term, I tend to focus on the front end of the curve. When trading long term, I tend to look at VIX/VIX6M.
 
In addition to the ratios, I added some historical parameters (lookback date can be set from the indicator’s settings) like Highest Value, Lowest Value, Percentile Rank, Average, Median and Mode.
Percentile ranks are displayed for both individual products and their ratios (that’s how I like to see them).
I hope you guys like this indicator. 
Happy trading! 
VIX Rule of 16There’s an interesting aspect of VIX that has to do with the number 16. (approximately the square root of the number of trading days in a year).
In any statistical model, 68.2% of price movement falls within one standard deviation (1 SD ). The rest falls into the “tails” outside of 1 SD .
When you divide any implied volatility (IV) reading (such as VIX ) by 16, the annualized number becomes a daily number
The essence of the “rule of 16.” Once you get it, you can do all sorts of tricks with it.
If the VIX is trading at 16, then one-third of the time, the market expects the S&P 500 Index (SPX) to trade up or down by more than 1% (because 16/16=1). A VIX at 32 suggests a move up or down of more than 2% a third of the time, and so on.
• VIX of 16 – 1/3 of the time the SPX will have a daily change of at least 1%
• VIX of 32 – 1/3 of the time the SPX will have a daily change of at least 2%
• VIX of 48 – 1/3 of the time the SPX will have a daily change of at least 3%
DR/IDR V1Defining Range DR and Implied Defining Range IDR for regular Session and overnight Session 
This script is showing the IDR and DR for the regular trading session and for the overnight session based on the rules from the creator of the DR/IDR concept.
It works for all major Forex Pairs, BTC, ETH and the US Equity indices. This concept is based on rules and has a 80 % probability to be correct.
It should be applied in the 5 Min. Timeframe.
The timings for the RDR are from 09.30 - 10.30 am New York local time.
The timings for the ODR are from 03.00 - 04.00 am New York local time.
 Rules: 
1. If price in the 5 Min timeframe closes above the DR high after 10.30 am or 04.00 am then the DR low will be with 80 percent probability the low of the trading session. This is called confirmation.
2. If price in the 5 Min timeframe closes below the DR low after 10.30 am or 04.00 am then the DR high will be with 80 percent probability the high of the trading session. This is called confirmation.
3. If price closes above the IDR high after 10.30 am or 04.00 am it is an early indication that the low of the DR will be the low of the day and vice versa.
 Credits: 
This script imports the recently published (VisibleChart)  library containing functions that return values calculated from the range of visible bars on the chart.
bmistiaen helped me a lot with this script. Thank you a lot.
DR (M5)The base of this indicator marks what is called "The Defining Range"("DR"). This defining range is from 09:30am until 10:30am New York local time, it takes those 12 candles in the 5 min chart. The script will mark the high and low of this range including wicks. At 10:30am this will give you a good idea on what the high/low of the day will be.
There is also the "Implied Defining Range"("iDR") lines inside the "DR" range, which mark the highest body and the lowest body in the "DR" range. 
 Rules: 
Timeframe: M5
At 10:30am you still don't know which one will be the real high or low of the day, but only one will be true.
If price closes above the "DR" it should give you good probability that the low of the "DR" is the low of the day and vice versa - if price closes below the "DR" it should give you good probability that the high of the "DR" is the high of the day.
"iDR" Gives you an early indication of what high/low of the day will be. If price closes above "iDR" you will have an early indication that the low of the "DR" should be the low of the day and vice versa.
 Note that price HAS to close outside of this range. 
You can use any entry model you prefer to trade, but the best option is "ICT"/"SMC".
 ALL CREDIT TO THE MAS7ER.
TheMas7er scalp (US equity) 5min [promuckaj]This indicator was created according to TheMas7er's trading setup, that he reveal after 18 years of working in the industry. Claims is that this setup should give you good probability to predict the price movement for US equity.
This trading setup is only for New York equity trading session from 09:30 until 4pm. The market in which you should use it are the S&P 500 , Dow Jones, and Nasdaq. Perhaps it will work on some other but for those are good according to tests. It should not used on days with high-impact news, like CPI , FOMC, NFP and so on. The model can still work there but the probability on these days is way lower.
What is the base of this indicator, it marks what is called "The Defining Range"("DR"). This defining range is from 09:30am until 10:30am New York local time, it takes those 12 candles in the 5min chart. Indicator will mark the high and low of this range, including wicks. This will help you to already know at 10:30am, with possible good probability the high or low of the day.
There is also the "Implied Defining Range"("iDR") lines inside the "DR" range, which mark the highest body and the lowest body in the "DR" range.
*The rules (it is very simple to follow):
Chart must be set in 5min timeframe.
At 10:30am you still don't know which one will be the real high or low of the day, but only one will be true.
If price is closing on 5min chart above the "DR" it should give you good probability that the low of the "DR" is the low of the day, and vice versa - if price is closing below the "DR" it should give you good probability that the high of the "DR" is the high of the day.
"iDR" gives you an early indication about what high or low of the day should be. If price is closing above "iDR" you will have an early indication that the low of the "DR" should be the low of the day, and vice versa.
Note that about closing means really closing above or below, not just wicks.
Now, after this you can realize the magnitude of possibility.
You can use any entry model you prefer to trade, it doesn't matter if you use ICT concepts, smart money concepts, volume profile , eliot waves, braking the structure concept or whatever. There are so many possibilities for trading within this rule.
Enjoy!
Williams Vix Fix ultra complete indicator (Tartigradia)Williams VixFix is a realized volatility indicator developed by Larry Williams, and can help in finding market bottoms.
Indeed, as Williams describe in his paper, markets tend to find the lowest prices during times of highest volatility, which usually accompany times of highest fear. The VixFix is calculated as how much the current low price statistically deviates from the maximum within a given look-back period.
Although the VixFix originally only indicates market bottoms, its inverse may indicate market tops. As masa_crypto  writes : "The inverse can be formulated by considering "how much the current high value statistically deviates from the minimum within a given look-back period." This transformation equates Vix_Fix_inverse. This indicator can be used for finding market tops, and therefore, is a good signal for a timing for taking a short position." However, in practice, the Inverse VixFix is much less reliable than the classical VixFix, but is nevertheless a good addition to get some additional context.
For more information on the Vix Fix, which is a strategy published under public domain:
* The VIX Fix, Larry Williams, Active Trader magazine, December 2007, web.archive.org
* Fixing the VIX: An Indicator to Beat Fear, Amber Hestla-Barnhart, Journal of Technical Analysis, March 13, 2015, ssrn.com
* Replicating the CBOE VIX using a synthetic volatility index trading algorithm, Dayne Cary and Gary van Vuuren, Cogent Economics & Finance, Volume 7, 2019, Issue 1, doi.org
Created By ChrisMoody on 12-26-2014... 
V3 MAJOR Update on 1-05-2014 
tista merged LazyBear's Black Dots filter in 2020: 
Extended by Tartigradia in 10-2022:
* Can select a symbol different from current to calculate vixfix, allows to select SP:SPX to mimic the original VIX index.
* Inverse VixFix (from masa_crypto  and web.archive.org)
* VixFix OHLC Bars plot
* Price / VixFix Candles plot (Pro Tip: draw trend lines to find good entry/exit points)
* Add ADX filtering, Minimaxis signals, Minimaxis filtering (from samgozman )
* Convert to pinescript v5
* Allow timeframe selection (MTF)
* Skip off days (more accurate reproduction of original VIX)
* Reorganized, cleaned up code, commented out parts, commented out or removed unused code (eg, some of the KC calculations)
* Changed default Bollinger Band settings to reduce false positives in crypto markets.
Set Index symbol to SPX, and index_current = false, and timeframe Weekly, to reproduce the original VIX as close as possible by the VIXFIX (use the Add Symbol option, because you want to plot CBOE:VIX on the same timeframe as the current chart, which may include extended session / weekends). With the Weekly timeframe, off days / extended session days should not change much, but with lower timeframes this is important, because nights and weekends can change how the graph appears and seemingly make them different because of timing misalignment when in reality they are not when properly aligned.
Ichi-Price WaveWelcome to the Ichi-Price Wave. This indicator is designed for day trading options contracts for any ticker, using a number of indicators — Ichimoku Cloud,  Volume-Weighted Average Price, Stochastic Relative Strength Index, Exponential Moving Average (13/48)  — and calculating how they interact with each other to provide entry and exit signals for both Calls and Puts on  normal  days. ****Read the  Important Information  section before opening any positions based on this indicator. (Also *NFA)
The general concept is that you, the trader, are a Surfer 🏄🏾 who rides the best waves in deep water until it gets dangerous.
Emoji storyline: The 🏄🏾 emoji (Call or Put, depending on the color of its Green or Red label, respectively) indicates an upcoming *potential* entry that, for a number of reasons, may be disregarded. (See:  Important Information  section below). And just as there are no certainties in the stock market itself, the tiered exit signals are ranked by low 🐬, medium 🦈 and high risk 🦑 tolerance. (In other words, it's relatively safe to surf with dolphins around, but there's the off chance they even strike trainers and become aggressive. It's more dangerous to swim with sharks. And on the unlikely, rare occasion you see a literal, giant, mythical, ship destroying Kraken 😬 ... you definitely need to get out of the water.
Surfing for as long as possible reaps the greatest rewards — but risk/reward are to be considered for entries and exits. Exiting every time you see a 🐬  (E1) should secure profits nearly 100% of the time, but they'll be very minimal. Whereas surfing til you reach a Kraken 🦑 (which will not even appear on most Price Wave cycles) would reap the most rewards. (NFA: I recommend considering sharks 🦈 as an exit point for the majority of positions, and perhaps only keeping a few runners open with the hopes of finding that shiny Kraken. (On the non-Emoji chart, the low, medium and high risk exits are named E1, E2 and E3, respectively. Got to the indicator's Settings > Inputs > then toggle EMOJIs ON/OFF)
Boring stuff: The entry 🏄🏾  signals are triggered by multiple conditions that must be all true. For Call entries, one of the necessary conditions is that the RSI's K must be maximum 10 (this can be changed in default). This, along with another condition where current price must be below the VWAP Lower Bound 1, serves as a great reference point showing the stock price is currently uncomfortable where it is and may likely  soon  snap back closer to the VWAP, perhaps even to the other side due to a pendulum effect.
 Important information 
Relying on those two factors for setting entry and exit points are great for  normal  days. (Normal, as in the ticker price bounces within a channel (e.g., ≤3% + or -) that's trending slightly bullish or bearish depending on greater market trend). But there are  abnormal  days where  news catalysts  (e.g., CPI data, CEO scandals, unexpected company data release, etc.) trigger FOMO and FUD, ultimately rendering the logic behind most indicators non applicable (e.g., RSI's "buy when oversold"). On the chart, this indicator accounts for this with two measures:
One, you should only "Surf" in the water. That is, there are two bands — Shallow and Deep Water. Any "Surf" emojis where price action is outside of the water should be ignored**. Two, there are additional EMOJIs that show you "Bearish trend" ⛈ and "Bullish trend ☀️. (Story time again: You obviously shouldn't surf in thunder and lightning. But also, surfing in the blistering sun with no clouds in the sky during a heatwave is also dangerous to your health.)
You can use these two measures to disregard the "surfers" suggesting you join them in opening a position in the suggested direction. And surfers followed by Cloud EMOJIs — 🌤️ (Put) or 🌧️ (Call) — can be used as "perfect entry" points. (The clouds represent weather being less extreme and better for surfing).
(**While these should mostly be ignored, these have not been muted because there is the possibility of a very strong turn around if you happen to catch the  last  one (which is not ideal for risk-averse traders). Use other indicators, such as the MACD and trend lines, to find potential bottoms (or tops) as price action plunges (or soars) due to abnormal news circumstances.)
 Entry and exit buffers 
At the beginning of each day, most indicators usually are not immediately calibrated correctly due to premarket trading and open market (at least to the degree that the day's sentiment can be best read from them due to the amount of volatility). What I recommend when using this indicator is disregarding signals during the first 15 minutes (or possibly 30 minutes) of market open to get the best results. And also, considering this indicator is meant for day trading (i.e.,  not   holding positions overnight), disregarding ENTRY signals for the last 45 minutes of the trading day could give yourself enough buffer on the back end for exiting comfortably.
 RSI entry
 Preparing for an entry when you see a surfer is recommended, but actually opening the position when you see a 🌤️ (Put) or 🌧️ (Call) would yield best results and avoid misfires — particularly when those two cloud EMOJIs are signaled when the RSI is overbought and K is at least 95 (Puts), or oversold and K at maximum 5 (Calls). (Story time logic: The cloud eclipsing the Sun means it's cooling off and better for surfing. And the rain cloud no longer having lightning means the "bearish" storm is possibly soon over).
  Delta and the Greeks 
You should experiment yourself, but keep in mind that this is for capitalizing off of a day's minor price swings (≤3% + or -). Entering a same day expiry contract that's deep OTM is not going to work with this indicator (even if you enter at a surfer 🏄🏾  and exit at a Kraken 🦑) because the price wave from one end to the other won't be enough to compensate for the other Greeks working against you. Use another indicator (or insider knowledge ... Just kidding, that's illegal, don't do that) if you want to buy those kind of contracts.
I personally purchase contracts w/ minimum 80% Implied Volatility and somewhere between 20-40 Delta. Having a nice range for yourself with these factors, depending also on the size of your own portfolio and the risk tolerance you have, will determine how much you're able to capitalize off successful entry and exits. 
 Tips  
• I set stop losses 5-10% depending on the ticker. (e.g., $TSLA's volatility may require SL closer to 10% whereas using it on $SPY, a 5% could suffice). This is in addition to ignoring entry signals that don't meet the aforementioned two requirements (i.e., it's risky to Surf in shallow water, and you shouldn't try to Surf at all outside of the water, ref. Band 2 and outside of Band 2). Remember, this is the stock market — not the casino. We rely on strategy and risk management — not hope.
• It's recommended you use time intervals ≤ 5 min. (I use 1 minute and 5 min)
•  Liquidity . Using these signals on a ticker with low liquidity (particularly if you enter on the Ask side), can reduce your profits to 0% or even to a loss even if you have a perfect entry and exit. I always point to SPY as the optimal bid-ask spread, but keep that in mind.
 What's with the name "Ichi-Price Wave"?
 
The "Ichi" gives credit to Japanese journalist Goichi Hosoda, whose indicator I used in conjunction with the 13/48 Exponential Moving Averages to create some of the exit signal conditions (e.g., E2🦈). That E2 condition is: Signal the first time the price intersects the Ichimoku conversion line *after* it has entered the VWAP UB/LB channel on one end and has exited on the opposite end). And it's named "Price Wave" because it's a literal price wave, which is where the fun surf narrative comes in. Also, "Price" doubles as me naming it after myself (in a less pretentious way). It's actually convenient that my last name is literally Price. Almost as if I was born for this. Nonetheless, this indicator is far more accurate in spotting directional changes than the free 13/48 cross, which oddly enough, influencers are charging for access. It's free, but the code is protected, for now at least.
Try it out on any ticker and look at how accurately it catches the tops and bottoms (keeping in mind to ignore misfires according to the two measures and also setting ~5-10% stop losses). And of course, use this in conjunction with other indicators. Ignoring all of my other emojis and simply setting surfer 🏄🏾 alerts could serve as additional confirmations for your personal strategy. Or you could simply enter at a surfer 🏄🏾  and exit when it reaches VWAP (or at least increase your Stop Loss to sell at break even if it doesn't reach). That strategy is the most conservative and would secure consistent gains). AND AGAIN, use your stop losses. Either it makes a move or it doesn't. Simply re-enter at a better point if necessary.
VIX Implied rangeVIX Range,  the difference between this and VIX range estimate Is that this Is using calendar days(how options are priced) rather than trading days. 
vol_coneDraws a volatility cone on the chart, using the contract's realized volatility (rv). The inputs are:
- window: the number of past periods to use for computing the realized volatility. VIX uses 30 calendar days, which is 21 trading days, so 21 is the default.
- stdevs: the number of standard deviations that the cone will cover.
- periods to project: the length of the volatility cone.
- periods per year: the number of periods in a year. for a daily chart, this is 252. for a thirty minute chart on a contract that trades 23 hours a day, this is 23 * 2 * 252 = 11592. for an accurate cone, this input must be set correctly, according to the chart's time frame.
- history: show the lagged projections. in other words, if the cone is set to project 21 periods in the future, the lines drawn show the top and bottom edges of the cone from 23 periods ago.
- rate: the current interest or discount rate. this is used to compute the forward price of the underlying contract. using an accurate forward price allows you to compare the realized volatility projection to the implied volatility projections derived from options prices.
Example settings for a 30 minute chart of a contract that trades 23 hours per day, with 1 standard deviation, a 21 day rv calculation, and half a day projected:
- stdevs: 1
- periods to project: 23
- window: 23 * 2 * 21 = 966
- periods per year: 23 * 2 * 252 = 11592
Additionally, a table is drawn in the upper right hand corner, with several values:
- rv: the contract's current realized volatility.
- rnk: the rv's percentile rank, compared to the rv values on past bars.
- acc: the proportion of times price settled inside, versus outside, the volatility cone, "periods to project" into the future. this should be around 65-70% for most contracts when the cone is set to 1 standard deviation.
- up: the upper bound of the cone for the projection period.
- dn: the lower bound of the cone for the projection period.
Limitations:
- pinescript only seems to be able to draw a limited distance into the future. If you choose too many "periods to project", the cone will start drawing vertically at some limit.
- the cone is not totally smooth owing to the facts a) it is comprised of a limited number of lines and b) each bar does not represent the same amount of time in pinescript, as some cross weekends, session gaps, etc.
Daily/Weekly ExtremesBACKGROUND
This indicator calculates the daily and weekly +-1 standard deviation of the S&P 500 based on 2 methodologies:
1. VIX - Using the market's expectation of forward volatility, one can calculate the daily expectation by dividing the VIX by the square root of 252 (the number of trading days in a year) - also know as the "rule of 16." Similarly, dividing by the square root of 50 will give you the weekly expected range based on the VIX.
2. ATR - We also provide expected weekly and daily ranges based on 5 day/week ATR.
HOW TO USE
- This indicator only has 1 option in the settings: choosing the ATR (default) or the VIX to plot the +-1 standard deviation range.
- This indicator WILL ONLY display these ranges if you are looking at the SPX or ES futures. The ranges will not be displayed if you are looking at any other symbols
- The boundaries displayed on the chart should not be used on their own as bounce/reject levels. They are simply to provide a frame of reference as to where price is trading with respect to the market's implied expectations. It can be used as an indicator to look for signs of reversals on the tape.
- Daily and Weekly extremes are plotted on all time frames (even on lower time frames).
Point of Control V2 The genesis of this project was to create a POC library that would be available to deliver volume profile information via pine to other scripts of indicators and strategies.
This is a republish of an invite only script to open access
This is the indicator version of the library function.
A few points of significance:
- Allows the choice of reset of the study period, day/week or bars. This is simple enough to expand to other conditions
- Bar count resets starting from the beginning of the data set (bar index =0) vs bars back from the end of the data set
- A 'period' in this context is the time between resets - the start of the POC (eg. start of Day or Week) until it resets (for example at the beginning of a next day or week)
- Automates the determination of the increment level rather than the user specifying ticks or price brackets
- Does not allow for setting the # of rows and then calculating the implied price increment levels
- When a period is complete it is often useful to look back at the POCs of historical periods, or extend them forward.
- This script will find the historical POCs around the current price and display them rather than extend all the historical POC lines to the right
- This script also looks across all the period POCs and identifies the master POC or what I call the Grand POC, and also the next 3 runner up POCs
This indicator is also available as a library.
BINANCE:BTCUSDT NSE:NIFTY OANDA:XAUUSD NASDAQ:AAPL TVC:USOIL 
PointofControlLibrary   "PointofControl" 
 POC_f() 
The genesis of this project was to create a POC library that would be available to deliver volume profile information via pine to other scripts of indicators and strategies.
This is the indicator version of the library function.
A few things that would be unique with the built in
- it allows you to choose the kind of reset of the period, day/week or bars.  This is simple enough to expand to other conditions
- it resets on bar count starting from the beginning of the data set (bar index =0) vs bars back from the end of the data set
- A 'period' in this context is the time between resets - the start of the POC until it resets (for example at the beginning of a new day or week)
- it will calculate an increment level rather than the user specifying ticks or price brackets
- it does not allow for setting the # of rows and then calculating the implied price levels
- When a period is complete it is often useful to look back at the POCs of historical periods, or extend them forward. 
    - This script will find the historical POCs around the current price and display them rather than extend all the historical POC lines to the right
- This script also looks across all the period POCs and identifies the master POC or what I call the Grand POC, and also the next 3 runner up POCs
There is a matching indicator to this library
EuroDollar Curve Implied 3M RateChart shows the Eurodollar futures prices latest prices from Sep 22 onwards. Display logic based on LongFiats code. This needs to be readjusted manually every 3 months whenever the front-month expires. Good tool to see where professional eurodollar futures think interest rates will be over the next few years. Check regularly as sentiment changes. 
VIX Contango/RollThis chart looks at the front end of the VIX Term Structure (separate from the Cash VIX Term Structure), what it means simply is what the market expects VIX (30 day rolling implied) to be in the future expiry dates. Here we focus on the nearby two futures contracts VX1! and VX2! and looks at any flattening or steepening which gives us interesting insights on the risk pricing in the equity market. 
We look at two ratios and see their behavior on a daily basis, alongside 4 distinct levels of -0.1, -0.05, 0.05, 0.10
1. VIX Contango : (VX2!/VX1!)-1 
2. VIX Contango Roll : (VX2!/VIX) - 1 
Observations : 
1. Increase in these ratios is generally bullish for underlying equities, it means that the VIX Term Structure front end is steepening. And vice-versa.
2. Generally when these ratios > 0.05, it indicates bullish equities (bearish volatility). Additionally, -0.05 has seen to be some kind of support for these ratios. Note that these levels are observed only and should not be taken as a guidance of a fixed level, extreme panic can easily overshoot these levels on the downside. 
Caveat : Unless PRO+ subscription, this indicator can ONLY be viewed on a daily basis.
Feel free to use and comment, if any observations. 
 
Cash VIX Term StructureThis script looks the dynamics of Cash VIX Term Structure, i.e. tickers VIX9D, VIX and VIX3M which look at how the markets are pricing volatility (implied) in the short and medium term, at any given point in time. In this script we look at 2 ratios - VIX9D/ VIX , and VIX / VIX3M , when these ratios are rising it indicates market is pricing more volatility in the short term relative to the future aka term structure flattening and subsequently a ratio > 1.0 indicates inversion. We plot EMA of VIX9D/ VIX and a fast + slow EMA for VIX / VIX3M to reduce the noise associated with daily trading ranges.
Interesting observations:
VIX / VIX3M near 1.0 indicates volatility overbought and 0.8 indicates volatility oversold.
VIX9D/ VIX tends to overshoot these ranges (0.8-1.0) due to extreme complacency or panic.
EMA crossovers in the daily chart of VIX / VIX3M might be used as an additional confirmation of volatility moving in a direction.
Feel free to use this indicator and comment, if any observations.
VIX Strategy : Risk-ON, Risk-OFF
 VRatio is the ratio of VIX3M and VIX. This ratio rises above 1.1; in a bear market, it decreases and goes below 1. VRatio=VIX3M/VIX. More details in Part 2.
VRatio > 1: Risk-On signal
Contango is the ratio of VX2 (first back-month contract) and VX1 (front-month contract) minus one. In a bull market, this indicator rises above 5%’ in a downtrend market, this indicator goes below -5%. More details in Part 2.
 Contango > -5%: Risk-On signal
Contango Roll is the ratio of VX2 first back-month contract) and the VIX minus one. In a bull market, this indicator rises above 10%’ in a downtrend market, this indicator goes below -10%. More details in Part 2.
Contango Roll > 10%: Risk-On signal
Volatility Risk Premium (VRP) compares the implied volatility to the recent realized volatility; it attempts to quantify how much “extra” premium (in volatility term) S&P500 option sellers are charging investors for the protection of their portfolio. It can be seen as an insurance premium. A simple way to compute the VRP is VRP= VIX -HV10 where HV10 is the 10-day historical volatility of S&P500. Some people also look at the 5-day moving average of the VRP to smooth this indicator.
VRP > 0: Risk-On signal
Fast Volatility Risk Premium (FVRP) is a variant of the VRP. FVRP=EMA(VIX,7)-HV5 where HV5 the 5-day historical volatility of S&P500.
FVRP > 0: Risk-On signal
Volatility Momentum compares today’s VIX to last 50 days. It has, therefore, quite a bit of lag but it is a useful measure when combined with other indicators. Volatility Momentum=SMA(VIX,50) -VIX.
Volatility Momentum > 0: Risk-On signal
VIX Mean Reversion looks at today’s VIX compared to certain thresholds. We avoid investing in the S&P500 when the VIX is too high (above 20) or too low (below 12).
VIX Mean Reversion > 12 and VIX Mean Reversion < 20: Risk-On signal
VIX3M Mean Reversion works the same way as VIX Mean Reversion.
VIX3M Mean Reversion > 12 and VIX3M Mean Reversion < 20: Risk-On signal
Trading Made Easy Pressure OscillatorAs always, this is not financial advice and use at your own risk. Trading is risky and can cost you significant sums of money if you are not careful. Make sure you always have a proper entry and exit plan that includes defining your risk before you enter a trade. 
Those who have looked at my other indicators know that I am a big fan of Dr. Alexander Elder and John Carter.  This is relevant to my trading style and to this indicator in general.  While I understand it goes against TradingView rules generally to display other indicators while describing a new one, I need the Bollinger Bands, Bollinger Bands Width, and a secondary directional indicator to explain the full power of this indicator.  In short, if this is strongly against the rules, I will edit the post as needed.
Those of you who are aware of John Carter are going to know this already, but for those who don’t, an explanation is necessary.  John Carter is a relatively famous retail-turned-institutional (sort of) trader.  He is the founder of TradetheMarkets, that later turned into SimplerTrading.  Him and his company have a series of YouTube videos, he has made appearances on the MoneyShow, TastyTrade, and has authored a couple of books about trading.  However, he is probably most famous for his “Squeeze” indicator that was originally launched on Thinkorswim and through his website but has now been incorporated into several trading platforms and even has a few open-source versions available here.  In short, the Squeeze indicator looks to identify periods of consolidation and marry that with a momentum oscillator so you can position yourself in a quiet period before a large move.  This in my opinion, is one of the best indicators an option trader can have, since options are priced both on time and volatility.  To do this, the Squeeze identifies when the Bollinger Bands, a measure of price standard deviation, have contracted inside the Keltner Channels (a measure of the average range of a stock). This highlights something known as “the Squeeze”, when the 2x standard deviations (95% of all likely price movement using data from the past 20 periods) is less than the 1.5x average true range (ATR) of the stock over the same number of periods.  These periods are when a stock is resting and in a period of consolidation and is generally followed by another large move once it has rested long enough.  The momentum oscillator is used to determine the direction of this next move.
While I think this is one of the best indicators ever made, it is not without its pitfalls.  I find that the “Squeeze” periods sometimes take too long to setup (something that was addressed by John and released in a new indicator, the Squeeze Pro, but even that is still slowish) and that the momentum oscillator was also a bit slow.  They used a linear regression formula to track momentum, which can lag considerably at times.  Collectively, this meant that getting into moves a few candles late was not uncommon or someone solely trading squeeze setups could have missed very good trade opportunities.
To improve on this, I present, the Trading Made Easy Pressure Oscillator.  This more accurately identifies when volatility is reducing and the trading range is likely to contract, increasing the “pressure” on the price. This is often marked several candles before a “Squeeze” has started.  To identify these ranges, I applied a 21-period exponential moving average to the Bollinger Bands Width indicator (BBW).  As mentioned above, the Bollinger Bands measure the 2x standard deviation of price, typically based on a 20-period SMA.  When the BBs expand, it marks periods of high volatility, when they contract, conversely, periods of low volatility.  Therefore, applying an EMA to the BBW indicator allows us to confidently mark when volatility has slowed down earlier than traditional methods.  The second improvement I made was using the Absolute Price oscillator instead of a linear regression-style oscillator.  The APO is very similar to a MACD, it measures the difference between two exponential moving averages, here the 8 and 21 (Fibonacci EMAs).  However, I find the APO to be smoother than the MACD, yet more reactive than the linear regression-style oscillators to get you into moves earlier.
 Uses: 
 1) Buying before a bigger than expected move.   This is especially relevant for options traders since theta decay will often eat away much of our profits while we wait for a large enough price move to offset the time decay.  Here, we buy a call option/shares when the momentum oscillator matches the longer-term trend (i.e. the APO crosses over the zero line when price is above the 200-day EMA, and vice versa for puts/shorting the stock).  This coincides with Dr. Elder’s Triple Screen Trading System, that we are aligning ourselves with the path of least resistance.  We want to do this when price is currently in an increasing pressure situation (i.e. volatility is contracting) to make sure we are buying an option when premium and Implied Volatility is low so we can get a better price and have a better risk to reward ratio.  Low volatility is denoted by a purple dot, high volatility a blue dot along the midline of the indicator.  A scalper or short-term swing trader may look to exit when the blue dots turn purple signalling a likely end to a move.  A longer-term trend trader can look to other exit scenarios, such as a cross of the oscillator below the zero line, signalling to go short, or using a moving average as a trailing stop.
 2) Sell premium after a larger than expected move has finished.   After a larger than expected move has completed (a series of blue dots is followed by a purple dot), use this time to sell theta-driven options strategies such as straddles, strangles, iron condors, calendar spreads, or iron butterflies, anything that benefits from contracting volatility and stagnating prices.  This is useful here since reducing volatility typically means a contraction of prices and the reduced likelihood of a move outside of the normal range.
 3) Divergences.   This indicator is sensitive enough to highlight divergences.  I personally don’t use it as such as I prefer to trend trade vs. reversion trade.  Use at your own risk, but they are there.  
In summary, this indicator improves upon the famous Squeeze indicator by increasing the speed at which periods of consolidation are marked and trend identification.  I hope you enjoy it.
MS VIX Bull ReversalThis script measures the rebound of the implied volatility of the S&P 500 index options from an excessive panic zone. The IV starts a reversion to the mean as soon as profit taking from the hedge begins. The assumption behind it: this rebound indicates at least the beginning of a countermovement, in uptrends the end of the correction and the trend continuation. 
VolatilityDivergenceRedGreen by STTAName: VolatilityDivergenceRedGreen by STTA 
- Underlying and implied volatiliy normally show negative correlated behavior (price rises, vola falls and vice versa)
- This study shows symbols in on candles in chart where Undelying and corresponding vola index show same bahvior for 1,2 or 3 consecutive bars. (price rises and vola rises and vice versa)
- This situation is called Vola Divergence. Red, when prices and vola fall; green, when price and vola rise
- This information can be used to detect possible end of Up/Down-Swings.
- User can configure if rising or falling or both price movements shall be displayed.
- This study can be used with root symbols, which provide corresponding volatility indices.
- supported Root Symbols: SPX, NDQ, DJI, RUT, CL, XLE, GC, SI, EUR, HSI, FXI, EWZ, AMZN, AAPL, GS, GOOG, IBM, DEU40
- in all other symbols, no symbols are displayed.
 Inputs 
- underlying displayed in chart
 Settings/Parameter 
- each Divergence can be switched off/on separately
- output of each displayed symbol can be configured
 Outputs 
- RedDiv1: first bar with rising price and rising volatility index
- GreenDiv1: first bar with falling price and falling volatility index
- RedDiv2: second bar in a row with rising price and rising volatility index
- GreenDiv2: second bar with falling price and falling volatility index
- RedDiv3: third bar in a row with rising price and rising volatility index
- GreenDiv3: third bar in a row with falling price and falling volatility index
EURODOLLAR FUTURES CURVEI created this script to be able to visualize the entire curve of the EuroDollar futures contract. If you are not interested in the Implied fed funds rate calculation, you have the option in settings to de-activate that and plot instead the price of each contract. You can also choose which contracts to activate or not.
Each contract is plotted along with a signal line which is a 5 period moving average. If the line is below the signal it will show in Blue. If above the signal line it will be colored green. Feel free to change those colors in settings.
It is best to attach the script in a 1H timeframe or less. The reason behind it, is because in order to create/plot the entire curve, the earliest contract's price used is 20 candles ago and each contract thereafter 1 day ahead so the Dec 2025 contract uses the latest close candle. Not sure if that explains it. Basically if you use the Daily chart you will be using futures prices from 20 day ago which will not reflect the most recent changes. By using 1 Hour or less you will be plotting the entire curve based on latest data.
Also look at the data window as you will see all the rates there for easy reading
If you have a better idea on how to craft the curve or any other things you would like the script to have, please feel free to leave a comment.
Augmented Dickey–Fuller (ADF) mean reversion testThe  augmented Dickey-Fuller test  (ADF) is a statistical test for the tendency of a price series sample to  mean revert .
The current price of a mean-reverting series may tell us something about the next move (as opposed, for example, to a geometric Brownian motion). Thus, the ADF test allows us to spot market inefficiencies and potentially exploit this information in a trading strategy.
Mathematically, the mean reversion property means that the price change in the next time period is proportional to the difference between the average price and the current price. The purpose of the ADF test is to check if this proportionality constant is zero. Accordingly, the ADF  test statistic  is defined as the estimated proportionality constant divided by the corresponding standard error.
In this script, the ADF test is applied in a rolling window with a user-defined lookback length. The calculated values of the ADF test statistic are plotted as a time series. The more negative the test statistic, the stronger the rejection of the hypothesis that there is no mean reversion. If the calculated test statistic is  less than the critical value  calculated at a certain confidence level (90%, 95%, or 99%), then the hypothesis of a mean reversion is accepted (strictly speaking, the opposite hypothesis is rejected).
 Input parameters: 
 
   Source  - The source of the time series being tested.
   Length  - The number of points in the rolling lookback window. The larger sample length makes the ADF test results more reliable.
  Maximum lag - The maximum lag included in the test, that defines the order of an autoregressive process being implied in the model. Generally, a non-zero lag allows taking into account the serial correlation of price changes. When dealing with price data, a good starting point is lag 0 or lag 1.
   Confidence level  - The probability level at which the critical value of the ADF test statistic is calculated. If the test statistic is below the critical value, it is concluded that the sample of the price series is mean-reverting. Confidence level is calculated based on  MacKinnon (2010) .
 Show Infobox - If True, the results calculated for the last price bar are displayed in a table on the left.
 
 More formal background: 
Formally, the ADF test is a test for a  unit root  in an autoregressive process. The model implemented in this script involves a non-zero constant and zero time trend. The zero lag corresponds to the simple case of the AR(1) process, while higher order autoregressive processes AR(p) can be approached by setting the maximum lag of p. The null hypothesis is that there is a unit root, with the alternative that there is no unit root. The presence of unit roots in an autoregressive time series is characteristic for a non-stationary process. Thus, if there is no unit root, the time series sample can be concluded to be stationary, i.e., manifesting the mean-reverting property. 
 A few more comments: 
 
 It should be noted that the ADF test tells us only about the properties of the price series now and in the past. It does not directly say whether the mean-reverting behavior will retain in the future.
 The ADF test results don't directly reveal the direction of the next price move. It only tells wether or not a mean-reverting trading strategy can be potentially applicable at the given moment of time. 
 The ADF test is related to another statistical test, the Hurst exponent. The latter is available on TradingView as implemented by  balipour ,  QuantNomad  and  DonovanWall .
 The ADF test statistics is a negative number. However, it can take positive values, which usually corresponds to trending markets (even though there is no statistical test for this case).
 Rigorously, the hypothesis about the mean reversion is accepted at a given confidence level when the value of the test statistic is below the critical value. However, for practical trading applications, the values which are low enough - but still a bit higher than the critical one - can be still used in making decisions.
 
 Examples: 
The VIX volatility index is known to exhibit mean reversion properties (volatility spikes tend to fade out quickly). Accordingly, the statistics of the ADF test tend to stay below the critical value of 90% for long time periods.
  
The opposite case is presented by BTCUSD. During the same time range, the bitcoin price showed strong momentum - the moves away from the mean did not follow by the counter-move immediately, even vice versa. This is reflected by the ADF test statistic that consistently stayed above the critical value (and even above 0). Thus, using a mean reversion strategy would likely lead to losses.
 






















