Pivot Points High Low - JVersion**Indicator Name**: Pivot Points High Low (Without Price Labels)
**Overview**
The Pivot Points High Low indicator is designed to identify and mark local highs and lows (or “pivot” points) on a price chart. Unlike other pivot-based indicators that label each pivot with its exact price, this version displays only small circular markers—removing clutter and focusing attention on the pivot locations themselves.
**Key Features**
1. **Pivot Detection**
- The script uses TradingView’s built-in `ta.pivothigh()` and `ta.pivotlow()` functions to determine when the market has formed a pivot high or pivot low.
- You can define how many bars to the left and right are required to confirm a pivot, helping you tailor the indicator to different market conditions and timeframes.
2. **Clean Markers**
- Each confirmed pivot high or low is represented by a circle placed precisely on the candle where the pivot is detected.
- No numeric labels are shown, keeping your chart visually uncluttered while still highlighting important turning points in price.
3. **Customization**
- **Left/Right Pivot Length**: Choose how many bars to the left and right must be lower (for highs) or higher (for lows) to validate a pivot. Larger values mean fewer but more significant pivots; smaller values mean more frequent pivots.
- **Marker Colors**: Independently customize the colors of the high-marker circles and low-marker circles to easily distinguish between local tops and bottoms.
4. **Usage and Interpretation**
- **Identifying Reversals**: As soon as a circle appears at a local high or low, it may indicate a short-term trend reversal or the beginning of a new swing in price.
- **Combine with Other Tools**: Pivot points are more informative when used alongside broader trend analysis, support/resistance identification, or other momentum indicators.
- **Adjusting Sensitivity**: By increasing or decreasing the left/right pivot lengths, you can make the indicator more or less sensitive to small market fluctuations.
5. **Practical Tips**
- **Swing Trading**: Shorter lengths can be used by swing traders looking for quick reversals in lower timeframes.
- **Longer-Term Trends**: Larger lengths are better for position traders or those who prefer to see only major turning points in the market.
- **Clean Chart Layout**: Because text labels are removed, you can visually focus on the circles—especially helpful if you use multiple indicators and prefer a less cluttered chart.
---
By pinpointing local highs and lows without price labels, the **Pivot Points High Low** indicator keeps charts neat yet informative, allowing traders to quickly recognize potential turning points in the market and make more informed decisions.
在腳本中搜尋"国泰黄金ETF联接C相关行业指数的最新政策"
HTF RangeThis Pine Script indicator, HTF Range , is a tool designed to help traders visualize predefined ranges (highs and lows) and analyze price action within those levels. It's particularly useful for identifying key levels and trends for a set of pre-configured assets, such as cryptocurrencies, stocks, and forex pairs.
Key Features:
1. Predefined Symbol Ranges:
Stores a list of assets (tickers) with corresponding high, low, and trend information in an array.
Automatically matches the current symbol on the chart (syminfo.ticker) to fetch and display relevant range data:
High Range: The upper price level.
Low Range: The lower price level.
Trend: Indicates whether the trend is "up" or "down."
Example tickers: BTCUSDT, ETHUSDT, GBPUSD, NVDA, and more.
2. Range Visualizations:
Extremeties: Draws dashed horizontal lines for the high and low levels.
Half-Level: Marks the midpoint of the range with a dashed yellow line.
Upper and Lower Quarters: Highlights upper and lower portions of the range using shaded boxes with customizable extensions:
3. Configurable Inputs:
Enable/Disable Levels: Toggles for extremeties, half-levels, and quarter-levels.
Table Info: Option to display a table summarizing the range data (symbol, high, low, and trend).
4. Dynamic Calculations:
Automatically calculates the difference between the high and low (diff) for precise range subdivisions.
Dynamically adjusts visuals based on the trend (up or down) for better relevance to the market condition.
5. Table Display:
Provides a detailed summary of the asset's range and trend in the top-right corner of the chart:
Symbol ticker.
High and low levels.
Overall trend direction.
Use Case:
This indicator is ideal for traders who:
Trade multiple assets and want a quick overview of key price ranges.
Analyze price movements relative to predefined support and resistance zones.
Use range-based strategies for trend following, breakout trading, or reversals.
Request█ OVERVIEW
This library is a tool for Pine Script™ programmers that consolidates access to a wide range of lesser-known data feeds available on TradingView, including metrics from the FRED database, FINRA short sale volume, open interest, and COT data. The functions in this library simplify requests for these data feeds, making them easier to retrieve and use in custom scripts.
█ CONCEPTS
Federal Reserve Economic Data (FRED)
FRED (Federal Reserve Economic Data) is a comprehensive online database curated by the Federal Reserve Bank of St. Louis. It provides free access to extensive economic and financial data from U.S. and international sources. FRED includes numerous economic indicators such as GDP, inflation, employment, and interest rates. Additionally, it provides financial market data, regional statistics, and international metrics such as exchange rates and trade balances.
Sourced from reputable organizations, including U.S. government agencies, international institutions, and other public and private entities, FRED enables users to analyze over 825,000 time series, download their data in various formats, and integrate their information into analytical tools and programming workflows.
On TradingView, FRED data is available from ticker identifiers with the "FRED:" prefix. Users can search for FRED symbols in the "Symbol Search" window, and Pine scripts can retrieve data for these symbols via `request.*()` function calls.
FINRA Short Sale Volume
FINRA (the Financial Industry Regulatory Authority) is a non-governmental organization that supervises and regulates U.S. broker-dealers and securities professionals. Its primary aim is to protect investors and ensure integrity and transparency in financial markets.
FINRA's Short Sale Volume data provides detailed information about daily short-selling activity across U.S. equity markets. This data tracks the volume of short sales reported to FINRA's trade reporting facilities (TRFs), including shares sold on FINRA-regulated Alternative Trading Systems (ATSs) and over-the-counter (OTC) markets, offering transparent access to short-selling information not typically available from exchanges. This data helps market participants, researchers, and regulators monitor trends in short-selling and gain insights into bearish sentiment, hedging strategies, and potential market manipulation. Investors often use this data alongside other metrics to assess stock performance, liquidity, and overall trading activity.
It is important to note that FINRA's Short Sale Volume data does not consolidate short sale information from public exchanges and excludes trading activity that is not publicly disseminated.
TradingView provides ticker identifiers for requesting Short Sale Volume data with the format "FINRA:_SHORT_VOLUME", where "" is a supported U.S. equities symbol (e.g., "AAPL").
Open Interest (OI)
Open interest is a cornerstone indicator of market activity and sentiment in derivatives markets such as options or futures. In contrast to volume, which measures the number of contracts opened or closed within a period, OI measures the number of outstanding contracts that are not yet settled. This distinction makes OI a more robust indicator of how money flows through derivatives, offering meaningful insights into liquidity, market interest, and trends. Many traders and investors analyze OI alongside volume and price action to gain an enhanced perspective on market dynamics and reinforce trading decisions.
TradingView offers many ticker identifiers for requesting OI data with the format "_OI", where "" represents a derivative instrument's ticker ID (e.g., "COMEX:GC1!").
Commitment of Traders (COT)
Commitment of Traders data provides an informative weekly breakdown of the aggregate positions held by various market participants, including commercial hedgers, non-commercial speculators, and small traders, in the U.S. derivative markets. Tallied and managed by the Commodity Futures Trading Commission (CFTC) , these reports provide traders and analysts with detailed insight into an asset's open interest and help them assess the actions of various market players. COT data is valuable for gaining a deeper understanding of market dynamics, sentiment, trends, and liquidity, which helps traders develop informed trading strategies.
TradingView has numerous ticker identifiers that provide access to time series containing data for various COT metrics. To learn about COT ticker IDs and how they work, see our LibraryCOT publication.
█ USING THE LIBRARY
Common function characteristics
• This library's functions construct ticker IDs with valid formats based on their specified parameters, then use them as the `symbol` argument in request.security() to retrieve data from the specified context.
• Most of these functions automatically select the timeframe of a data request because the data feeds are not available for all timeframes.
• All the functions have two overloads. The first overload of each function uses values with the "simple" qualifier to define the requested context, meaning the context does not change after the first script execution. The second accepts "series" values, meaning it can request data from different contexts across executions.
• The `gaps` parameter in most of these functions specifies whether the returned data is `na` when a new value is unavailable for request. By default, its value is `false`, meaning the call returns the last retrieved data when no new data is available.
• The `repaint` parameter in applicable functions determines whether the request can fetch the latest unconfirmed values from a higher timeframe on realtime bars, which might repaint after the script restarts. If `false`, the function only returns confirmed higher-timeframe values to avoid repainting. The default value is `true`.
`fred()`
The `fred()` function retrieves the most recent value of a specified series from the Federal Reserve Economic Data (FRED) database. With this function, programmers can easily fetch macroeconomic indicators, such as GDP and unemployment rates, and use them directly in their scripts.
How it works
The function's `fredCode` parameter accepts a "string" representing the unique identifier of a specific FRED series. Examples include "GDP" for the "Gross Domestic Product" series and "UNRATE" for the "Unemployment Rate" series. Over 825,000 codes are available. To access codes for available series, search the FRED website .
The function adds the "FRED:" prefix to the specified `fredCode` to construct a valid FRED ticker ID (e.g., "FRED:GDP"), which it uses in request.security() to retrieve the series data.
Example Usage
This line of code requests the latest value from the Gross Domestic Product series and assigns the returned value to a `gdpValue` variable:
float gdpValue = fred("GDP")
`finraShortSaleVolume()`
The `finraShortSaleVolume()` function retrieves EOD data from a FINRA Short Sale Volume series. Programmers can call this function to retrieve short-selling information for equities listed on supported exchanges, namely NASDAQ, NYSE, and NYSE ARCA.
How it works
The `symbol` parameter determines which symbol's short sale volume information is retrieved by the function. If the value is na , the function requests short sale volume data for the chart's symbol. The argument can be the name of the symbol from a supported exchange (e.g., "AAPL") or a ticker ID with an exchange prefix ("NASDAQ:AAPL"). If the `symbol` contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", or "BATS".
The function constructs a ticker ID in the format "FINRA:ticker_SHORT_VOLUME", where "ticker" is the symbol name without the exchange prefix (e.g., "AAPL"). It then uses the ticker ID in request.security() to retrieve the available data.
Example Usage
This line of code retrieves short sale volume for the chart's symbol and assigns the result to a `shortVolume` variable:
float shortVolume = finraShortSaleVolume(syminfo.tickerid)
This example requests short sale volume for the "NASDAQ:AAPL" symbol, irrespective of the current chart:
float shortVolume = finraShortSaleVolume("NASDAQ:AAPL")
`openInterestFutures()` and `openInterestCrypto()`
The `openInterestFutures()` function retrieves EOD open interest (OI) data for futures contracts. The `openInterestCrypto()` function provides more granular OI data for cryptocurrency contracts.
How they work
The `openInterestFutures()` function retrieves EOD closing OI information. Its design is focused primarily on retrieving OI data for futures, as only EOD OI data is available for these instruments. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe.
The `openInterestCrypto()` function retrieves opening, high, low, and closing OI data for a cryptocurrency contract on a specified timeframe. Unlike `openInterest()`, this function can also retrieve granular data from intraday timeframes.
Both functions contain a `symbol` parameter that determines the symbol for which the calls request OI data. The functions construct a valid OI ticker ID from the chosen symbol by appending "_OI" to the end (e.g., "CME:ES1!_OI").
The `openInterestFutures()` function requests and returns a two-element tuple containing the futures instrument's EOD closing OI and a "bool" condition indicating whether OI is rising.
The `openInterestCrypto()` function requests and returns a five-element tuple containing the cryptocurrency contract's opening, high, low, and closing OI, and a "bool" condition indicating whether OI is rising.
Example usage
This code line calls `openInterest()` to retrieve EOD OI and the OI rising condition for a futures symbol on the chart, assigning the values to two variables in a tuple:
= openInterestFutures(syminfo.tickerid)
This line retrieves the EOD OI data for "CME:ES1!", irrespective of the current chart's symbol:
= openInterestFutures("CME:ES1!")
This example uses `openInterestCrypto()` to retrieve OHLC OI data and the OI rising condition for a cryptocurrency contract on the chart, sampled at the chart's timeframe. It assigns the returned values to five variables in a tuple:
= openInterestCrypto(syminfo.tickerid, timeframe.period)
This call retrieves OI OHLC and rising information for "BINANCE:BTCUSDT.P" on the "1D" timeframe:
= openInterestCrypto("BINANCE:BTCUSDT.P", "1D")
`commitmentOfTraders()`
The `commitmentOfTraders()` function retrieves data from the Commitment of Traders (COT) reports published by the Commodity Futures Trading Commission (CFTC). This function significantly simplifies the COT request process, making it easier for programmers to access and utilize the available data.
How It Works
This function's parameters determine different parts of a valid ticker ID for retrieving COT data, offering a streamlined alternative to constructing complex COT ticker IDs manually. The `metricName`, `metricDirection`, and `includeOptions` parameters are required. They specify the name of the reported metric, the direction, and whether it includes information from options contracts.
The function also includes several optional parameters. The `CFTCCode` parameter allows programmers to request data for a specific report code. If unspecified, the function requests data based on the chart symbol's root prefix, base currency, or quoted currency, depending on the `mode` argument. The call can specify the report type ("Legacy", "Disaggregated", or "Financial") and metric type ("All", "Old", or "Other") with the `typeCOT` and `metricType` parameters.
Explore the CFTC website to find valid report codes for specific assets. To find detailed information about the metrics included in the reports and their meanings, see the CFTC's Explanatory Notes .
View the function's documentation below for detailed explanations of its parameters. For in-depth information about COT ticker IDs and more advanced functionality, refer to our previously published COT library .
Available metrics
Different COT report types provide different metrics . The tables below list all available metrics for each type and their applicable directions:
+------------------------------+------------------------+
| Legacy (COT) Metric Names | Directions |
+------------------------------+------------------------+
| Open Interest | No direction |
| Noncommercial Positions | Long, Short, Spreading |
| Commercial Positions | Long, Short |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No direction |
| Traders Noncommercial | Long, Short, Spreading |
| Traders Commercial | Long, Short |
| Traders Total Reportable | Long, Short |
| Concentration Gross LT 4 TDR | Long, Short |
| Concentration Gross LT 8 TDR | Long, Short |
| Concentration Net LT 4 TDR | Long, Short |
| Concentration Net LT 8 TDR | Long, Short |
+------------------------------+------------------------+
+-----------------------------------+------------------------+
| Disaggregated (COT2) Metric Names | Directions |
+-----------------------------------+------------------------+
| Open Interest | No Direction |
| Producer Merchant Positions | Long, Short |
| Swap Positions | Long, Short, Spreading |
| Managed Money Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Producer Merchant | Long, Short |
| Traders Swap | Long, Short, Spreading |
| Traders Managed Money | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-----------------------------------+------------------------+
+-------------------------------+------------------------+
| Financial (COT3) Metric Names | Directions |
+-------------------------------+------------------------+
| Open Interest | No Direction |
| Dealer Positions | Long, Short, Spreading |
| Asset Manager Positions | Long, Short, Spreading |
| Leveraged Funds Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Dealer | Long, Short, Spreading |
| Traders Asset Manager | Long, Short, Spreading |
| Traders Leveraged Funds | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-------------------------------+------------------------+
Example usage
This code line retrieves "Noncommercial Positions (Long)" data, without options information, from the "Legacy" report for the chart symbol's root, base currency, or quote currency:
float nonCommercialLong = commitmentOfTraders("Noncommercial Positions", "Long", false)
This example retrieves "Managed Money Positions (Short)" data, with options included, from the "Disaggregated" report:
float disaggregatedData = commitmentOfTraders("Managed Money Positions", "Short", true, "", "Disaggregated")
█ NOTES
• This library uses dynamic requests , allowing dynamic ("series") arguments for the parameters defining the context (ticker ID, timeframe, etc.) of a `request.*()` function call. With this feature, a single `request.*()` call instance can flexibly retrieve data from different feeds across historical executions. Additionally, scripts can use such calls in the local scopes of loops, conditional structures, and even exported library functions, as demonstrated in this script. All scripts coded in Pine Script™ v6 have dynamic requests enabled by default. To learn more about the behaviors and limitations of this feature, see the Dynamic requests section of the Pine Script™ User Manual.
• The library's example code offers a simple demonstration of the exported functions. The script retrieves available data using the function specified by the "Series type" input. The code requests a FRED series or COT (Legacy), FINRA Short Sale Volume, or Open Interest series for the chart's symbol with specific parameters, then plots the retrieved data as a step-line with diamond markers.
Look first. Then leap.
█ EXPORTED FUNCTIONS
This library exports the following functions:
fred(fredCode, gaps)
Requests a value from a specified Federal Reserve Economic Data (FRED) series. FRED is a comprehensive source that hosts numerous U.S. economic datasets. To explore available FRED datasets and codes, search for specific categories or keywords at fred.stlouisfed.org Calls to this function count toward a script's `request.*()` call limit.
Parameters:
fredCode (series string) : The unique identifier of the FRED series. The function uses the value to create a valid ticker ID for retrieving FRED data in the format `"FRED:fredCode"`. For example, `"GDP"` refers to the "Gross Domestic Product" series ("FRED:GDP"), and `"GFDEBTN"` refers to the "Federal Debt: Total Public Debt" series ("FRED:GFDEBTN").
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
Returns: (float) The value from the requested FRED series.
finraShortSaleVolume(symbol, gaps, repaint)
Requests FINRA daily short sale volume data for a specified symbol from one of the following exchanges: NASDAQ, NYSE, NYSE ARCA. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request short sale volume data. If the specified value contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", "BATS".
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: (float) The short sale volume for the specified symbol or the chart's symbol.
openInterestFutures(symbol, gaps, repaint)
Requests EOD open interest (OI) and OI rising information for a valid futures symbol. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The closing OI value for the symbol.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
openInterestCrypto(symbol, timeframe, gaps, repaint)
Requests opening, high, low, and closing open interest (OI) data and OI rising information for a valid cryptocurrency contract on a specified timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
timeframe (series string) : The timeframe of the data request. If the timeframe is lower than the chart's timeframe, it causes a runtime error.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the `timeframe` represents a higher timeframe, the function returns unconfirmed values from the timeframe on realtime bars, which repaint when the script restarts its executions. If `false`, it returns only confirmed higher-timeframe values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The opening, high, low, and closing OI values for the symbol, respectively.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
commitmentOfTraders(metricName, metricDirection, includeOptions, CFTCCode, typeCOT, mode, metricType)
Requests Commitment of Traders (COT) data with specified parameters. This function provides a simplified way to access CFTC COT data available on TradingView. Calls to this function count toward a script's `request.*()` call limit. For more advanced tools and detailed information about COT data, see TradingView's LibraryCOT library.
Parameters:
metricName (series string) : One of the valid metric names listed in the library's documentation and source code.
metricDirection (series string) : Metric direction. Possible values are: "Long", "Short", "Spreading", and "No direction". Consult the library's documentation or code to see which direction values apply to the specified metric.
includeOptions (series bool) : If `true`, the COT symbol includes options information. Otherwise, it does not.
CFTCCode (series string) : Optional. The CFTC code for the asset. For example, wheat futures (root "ZW") have the code "001602". If one is not specified, the function will attempt to get a valid code for the chart symbol's root, base currency, or main currency.
typeCOT (series string) : Optional. The type of report to request. Possible values are: "Legacy", "Disaggregated", "Financial". The default is "Legacy".
mode (series string) : Optional. Specifies the information the function extracts from a symbol. Possible modes are:
- "Root": The function extracts the futures symbol's root prefix information (e.g., "ES" for "ESH2020").
- "Base currency": The function extracts the first currency from a currency pair (e.g., "EUR" for "EURUSD").
- "Currency": The function extracts the currency of the symbol's quoted values (e.g., "JPY" for "TSE:9984" or "USDJPY").
- "Auto": The function tries the first three modes (Root -> Base currency -> Currency) until it finds a match.
The default is "Auto". If the specified mode is not available for the symbol, it causes a runtime error.
metricType (series string) : Optional. The metric type. Possible values are: "All", "Old", "Other". The default is "All".
Returns: (float) The specified Commitment of Traders data series. If no data is available, it causes a runtime error.
NVOL Normalized Volume & VolatilityOVERVIEW
Plots a normalized volume (or volatility) relative to a given bar's typical value across all charted sessions. The concept is similar to Relative Volume (RVOL) and Average True Range (ATR), but rather than using a moving average, this script uses bar data from previous sessions to more accurately separate what's normal from what's anomalous. Compatible on all timeframes and symbols.
Having volume and volatility processed within a single indicator not only allows you to toggle between the two for a consistent data display, it also allows you to measure how correlated they are. These measurements are available in the data table.
DATA & MATH
The core formula used to normalize each bar is:
( Value / Basis ) × Scale
Value
The current bar's volume or volatility (see INPUTS section). When set to volume, it's exactly what you would expect (the volume of the bar). When set to volatility, it's the bar's range (high - low).
Basis
A statistical threshold (Mean, Median, or Q3) plus a Sigma multiple (standard deviations). The default is set to the Mean + Sigma × 3 , which represents 99.7% of data in a normal distribution. The values are derived from the current bar's equivalent in other sessions. For example, if the current bar time is 9:30 AM, all previous 9:30 AM bars would be used to get the Mean and Sigma. Thus Mean + Sigma × 3 would represent the Normal Bar Vol at 9:30 AM.
Scale
Depends on the Normalize setting, where it is 1 when set to Ratio, and 100 when set to Percent. This simply determines the plot's scale (ie. 0 to 1 vs. 0 to 100).
INPUTS
While the default configuration is recommended for a majority of use cases (see BEST PRACTICES), settings should be adjusted so most of the Normalized Plot and Linear Regression are below the Signal Zone. Only the most extreme values should exceed this area.
Normalize
Allows you to specify what should be normalized (Volume or Volatility) and how it should be measured (as a Ratio or Percentage). This sets the value and scale in the core formula.
Basis
Specifies the statistical threshold (Mean, Median, or Q3) and how many standard deviations should be added to it (Sigma). This is the basis in the core formula.
Mean is the sum of values divided by the quantity of values. It's what most people think of when they say "average."
Median is the middle value, where 50% of the data will be lower and 50% will be higher.
Q3 is short for Third Quartile, where 75% of the data will be lower and 25% will be higher (think three quarters).
Sample
Determines the maximum sample size.
All Charted Bars is the default and recommended option, and ignores the adjacent lookback number.
Lookback is not recommended, but it is available for comparisons. It uses the adjacent lookback number and is likely to produce unreliable results outside a very specific context that is not suitable for most traders. Normalization is not a moving average. Unless you have a good reason to limit the sample size, do not use this option and instead use All Charted Bars .
Show Vol. name on plot
Overlays "VOLUME" or "VOLATILITY" on the plot (whichever you've selected).
Lin. Reg.
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script uses as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
You're able to specify the color, length, and multiple (how much to amplify the value). The linear regression derives its value from the normalized values.
Norm. Val.
This is the color of the normalized value of the current bar (see DATA & MATH section). You're able to specify the default, within signal, and beyond signal colors. As well as the plot style.
Fade in colors between zero and the signal
Programmatically adjust the opacity of the primary plot color based on it's normalized value. When enabled, values equal to 0 will be fully transparent, become more opaque as they move away from 0, and be fully opaque at the signal. Adjusting opacity in this way helps make difference more obvious.
Plot relative to bar direction
If enabled, the normalized value will be multiplied by -1 when a bar's open is greater than the bar's close, mirroring price direction.
Technically volume and volatility are directionless. Meaning there's really no such thing as buy volume, sell volume, positive volatility, or negative volatility. There is just volume (1 buy = 1 sell = 1 volume) and volatility (high - low). Even so, visually reflecting the net effect of pricing pressure can still be useful. That's all this setting does.
Sig. Zone
Signal zones make identifying extremes easier. They do not signal if you should buy or sell, only that the current measurement is beyond what's normal. You are able to adjust the color and bounds of the zone.
Int. Levels
Interim levels can be useful when you want to visually bracket values into high / medium / low. These levels can have a value anywhere between 0 and 1. They will automatically be multiplied by 100 when the scale is set to Percent.
Zero Line
This setting allows you to specify the visibility of the zero line to best suit your trading style.
Volume & Volatility Stats
Displays a table of core values for both volume and volatility. Specifically the actual value, threshold (mean, median, or Q3), sigma (standard deviation), basis, normalized value, and linear regression.
Correlation Stats
Displays a table of correlation statistics for the current bar, as well as the data set average. Specifically the coefficient, R2, and P-Value.
Indices & Sample Size
Displays a table of mixed data. Specifically the current bar's index within the session, the current bar's index within the sample, and the sample size used to normalize the current bar's value.
BEST PRACTICES
NVOL can tell you what's normal for 9:30 AM. RVOL and ATR can only tell you if the current value is higher or lower than a moving average.
In a normal distribution (bell curve) 99.7% of data occurs within 3 standard deviations of the mean. This is why the default basis is set to "Mean, 3"; it includes the typical day-to-day fluctuations, better contextualizing what's actually normal, minimizing false positives.
This means a ratio value greater than 1 only occurs 0.3% of the time. A series of these values warrants your attention. Which is why the default signal zone is between 1 and 2. Ratios beyond 2 would be considered extreme with the default settings.
Inversely, ratio values less than 1 (the normal daily fluctuations) also tell a story. We should expect most values to occur around the middle 3rd, which is why interim levels default to 0.33 and 0.66, visually simplifying a given move's participation. These can be set to whatever you like and only serve as visual aids for your specific trading style.
It's worth noting that the linear regression oscillates when plotted directionally, which can help clarify short term move exhaustion and continuation. Akin to a relative strength index (RSI), it may be used to inform a trading decision, but it should not be the only factor.
SuperTrend Heikin AshiSupertrend Heikin Ashi is an indicator based on the standard calculation of the Supertrend with the difference of using the Open and Close value of the Heikin Ashi candles instead of the normal Candle Sticks.
In this way the main characteristic of the HA candles is exploited, thus filtering movements that could generate false signals.
I recommend using SPY, SPX, QQQ to be aware of the market situation, not operating (or paying great attention) long on stocks when the indicator is red and the price is below the drawn line.
FTD & DD AnalyzerFTD & DD Analyzer
A comprehensive tool for identifying Follow-Through Days (FTDs) and Distribution Days (DDs) to analyze market conditions and potential trend changes, based on William J. O'Neil's proven methodology.
About the Methodology
This indicator implements the market analysis techniques developed by William J. O'Neil, founder of Investor's Business Daily and author of "How to Make Money in Stocks." O'Neil's research, spanning market data back to the 1880s, has successfully identified major market turns throughout history. His FTD and DD concepts remain crucial tools for institutional investors and serious traders.
Overview
This indicator helps traders identify two critical market conditions:
Distribution Days (DDs) - days of institutional selling pressure
Follow-Through Days (FTDs) - confirmation of potential market bottoms and new uptrends
The combination of these signals provides valuable insight into market health and potential trend changes.
Key Features
Distribution Day detection with customizable criteria
Follow-Through Day identification based on classical methodology
Market bottom detection using EMA analysis
Dynamic warning system for accumulated Distribution Days
Visual alerts with customizable labels
Advanced debug mode for detailed analysis
Flexible display options for different trading styles
Distribution Days Analysis
What is a Distribution Day?
A Distribution Day occurs when:
The price closes lower by a specified percentage (default -0.2%)
Volume is higher than the previous day
DD Settings
Price Threshold: Minimum price decline to qualify (default -0.2%)
Lookback Period: Number of days to analyze for DD accumulation (default 25)
Warning Levels:
First warning at 4 DDs
Severe warning (SOS - Sign of Strength) at 6 DDs
Display Options:
Show/hide DD count
Show/hide DD labels
Choose between showing all DDs or only within lookback period
Follow-Through Day Detection
What is a Follow-Through Day?
Following O'Neil's research, a Follow-Through Day confirms a potential market bottom when:
Occurs between day 4 and 13 after a bottom formation (optimal: days 4-7)
Shows significant price gain (default 1.5%)
Accompanied by higher volume than the previous day
Key Statistics:
FTDs followed by distribution on days 1-2 fail 95% of the time
Distribution on day 3 leads to 70% failure rate
Later distribution (days 4-5) shows only 30% failure rate
FTD Settings
Minimum Price Gain: Required percentage gain (default 1.5%)
Valid Window: Day 4 to Day 13 after bottom
Quality Rating:
🚀 for FTDs occurring within 7 days (historically most reliable)
⭐ for later FTDs
Market Bottom Detection
The indicator uses a sophisticated approach to identify potential market bottoms:
EMA Analysis:
Tracks 8 and 21-period EMAs
Monitors EMA alignment and momentum
Customizable tolerance levels
Price Action:
Looks for lower lows within specified lookback period
Confirms bottom with subsequent price action
Reset mechanism to prevent false signals
Visual Indicators
Label Types
📉 Distribution Days
⬇️ Market Bottoms
🚀/⭐ Follow-Through Days
⚠️ DD Warning Levels
Customization Options
Label size: Tiny, Small, Normal, Large
Label style: Default, Arrows, Triangles
Background colors for different signals
Dynamic positioning using ATR multiplier
Practical Usage
1. Monitor DD Accumulation:
Watch for increasing number of Distribution Days
Pay attention to warning levels (4 and 6 DDs)
Consider reducing exposure when warnings appear
2. Bottom Recognition:
Look for potential bottom formations
Monitor EMA alignment and price action
Wait for confirmation signals
3. FTD Confirmation:
Track days after potential bottom
Watch for strong price/volume action in valid window
Note FTD quality rating for additional context
Alert System
Built-in alerts for:
New Distribution Days
Follow-Through Day signals
High DD accumulation warnings
Tips for Best Results
Use multiple timeframes for confirmation
Combine with other market health indicators
Pay attention to sector rotation and market leadership
Monitor volume patterns for confirmation
Consider market context and external factors
Technical Notes
The indicator uses advanced array handling for DD tracking
Dynamic calculations ensure accurate signal generation
Debug mode available for detailed analysis
Optimized for real-time and historical analysis
Additional Information
Compatible with all markets and timeframes
Best suited for daily charts
Regular updates and maintenance
Based on O'Neil's time-tested market analysis principles
Conclusion
The FTD & DD Analyzer provides a systematic approach to market analysis, combining O'Neil's proven methodologies with modern technical analysis. It helps traders identify potential market turns while monitoring institutional participation through volume analysis.
Remember that no indicator is perfect - always use in conjunction with other analysis tools and proper risk management.
Santa Clause RallyA Santa Claus rally is a calendar effect that involves a rise in stock prices during the last 5 trading days in December and the first 2 trading days in the following January.
The Santa Claus rally can potentially predict the future trend of stocks in the coming year.
Merry Christmas and Happy New Year 🎄🎄🎄
OBV TSI IndicatorThe OBV TSI Indicator combines two powerful technical analysis tools: the On-Balance Volume (OBV) and the True Strength Index (TSI). This hybrid approach provides insights into both volume dynamics and momentum, helping traders identify potential trend reversals, breakouts, or continuations with greater accuracy.
The OBV TSI Indicator tracks cumulative volume shifts via OBV and integrates the TSI for momentum analysis. It offers customizable moving average options for further smoothing. Visual trendlines, pivot points, and signal markers enhance clarity.
The OBV tracks volume flow by summing volumes based on price changes. Positive volume is added when prices rise, and negative volume is subtracted when prices fall. The result is smoothed to detect meaningful trends in volume. A volume spread is derived from the difference between the smoothed OBV and cumulative volume. This is then adjusted by the price deviation to generate the shadow spread, which highlights critical volume-driven price levels.
The shadow spread is added to either the high or low price, depending on its sign, producing a refined OBV output. This serves as the main source for the subsequent TSI calculation. The TSI is a momentum oscillator calculated using double-smoothed price changes. It provides an accurate measure of trend strength and direction.
Various moving average options, such as EMA, DEMA, or TEMA, are applied to the smoothed OBV for additional trend filtering. Users can select their preferred type and length to suit their trading strategy. Trendlines are plotted to visualize the overall direction. When a significant change in trend is detected, up or down arrows indicate potential buy or sell signals. The script identifies key pivot points based on the highest and lowest levels within a defined period. These pivots help pinpoint reversal zones.
The indicator offers customization options, allowing users to adjust the OBV length for smoothing, choose from various moving average types, and fine-tune the short, long, and signal periods for TSI. Additionally, users can toggle visibility for trendlines, signals, and pivots to suit their preferences.
This indicator is ideal for practical use cases such as spotting potential trend reversals by observing TSI crossovers and pivot levels, anticipating breakouts from key price levels using the shadow spread, and validating trends by aligning TSI signals with OBV and moving averages.
The OBV TSI Indicator is a versatile tool designed to enhance decision-making in trading by combining volume and momentum analysis. Its flexibility and visual aids make it suitable for traders of all experience levels. By leveraging its insights, you can confidently navigate market trends and improve your trading outcomes.
Economic RegimeThis indicator, "Economic Regime" , provides a comprehensive analysis of market conditions by combining multiple asset classes and financial metrics. It uses normalized scores and trend analysis to classify the current economic regime into one of four categories: Goldilocks, Reflation, Inflation, or Deflation. The classification is based on inputs like S&P 500 performance, bond yields, commodity prices, volatility indices, and sector ETFs. Additionally, it plots key financial spreads, including the yield spread (10Y-2Y) and credit spread (HYG-LQD), to offer deeper insights into liquidity and market sentiment. The background color dynamically reflects the identified economic regime, facilitating quick visual interpretation.
Money Flow ExtendedMoney Flow Extended (MF)
Definition
The Money Flow Extended (MF) indicator brings together the functionality of the Money Flow Index indicator (MFI) , a tool created by Gene Quong and Avrum Soudack and used in technical analysis for measuring buying and selling pressure, and The Relative Strength Index (RSI) , a well versed momentum based oscillator created by J.Welles Wilder Jr., which is used to measure the speed (velocity) as well as the change (magnitude) of directional price movements.
History
As the Money Flow Index (MFI) is quite similar to The Relative Strength Index (RSI), essentially the RSI with the added aspect of volume, adding a Moving Average, divergence calculation, oversold and overbought gradients, facilitates the transition from RSI, making the use of MFI pretty similar.
What to look for
Overbought/Oversold
When momentum and price rise fast enough, at a high enough level, eventual the security will be considered overbought. The opposite is also true. When price and momentum fall far enough, they can be considered oversold. Traditional overbought territory starts above 80 and oversold territory starts below 20. These values are subjective however, and a technical analyst can set whichever thresholds they choose.
Divergence
MF Divergence occurs when there is a difference between what the price action is indicating and what MF is indicating. These differences can be interpreted as an impending reversal. Specifically, there are two types of divergences, bearish and bullish.
Bullish MFI Divergence – When price makes a new low but MF makes a higher low.
Bearish MFI Divergence – When price makes a new high but MF makes a lower high.
Failure Swings
Failure swings are another occurrence which can lead to a price reversal. One thing to keep in mind about failure swings is that they are completely independent of price and rely solely on MF. Failure swings consist of four steps and are considered to be either Bullish (buying opportunity) or Bearish (selling opportunity).
Bullish Failure Swing
MF drops below 20 (considered oversold).
MF bounces back above 20.
MF pulls back but remains above 20 (remains above oversold)
MF breaks out above its previous high.
Bearish Failure Swing
MF rises above 80 (considered overbought)
MF drops back below 80
MF rises slightly but remains below 80 (remains below overbought)
MF drops lower than its previous low.
Summary
The Money Flow Extended (MF) can be a very valuable technical analysis tool. Of course, MF should not be used alone as the sole source for a trader’s signals or setups. MF can be combined with additional indicators or chart pattern analysis to increase its effectiveness.
Inputs
Length
The time period to be used in calculating the MF. 14 is the default.
Pivot Loopback
After how many bars you want the divergence to show, on the scale of 1-5. 5 is the default.
Calculate Divergence
Calculating divergences is needed in order for divergence alerts to fire.
Moving Average section
You can learn more about the inputs in the "Moving Average" section in this Help Center article .
Style
MF
Can toggle the visibility of the MF as well as the visibility of a price line showing the actual current value of the MF. Can also select the MF Line's color, line thickness and visual style.
MF-based MA
Can toggle the visibility of the MF-based MA as well as the visibility of a price line showing the actual current MA value. Can also select its color, line thickness and line style.
MF Upper Band
Can toggle the visibility of the Upper Band as well as sets the boundary, on the scale of 1-100, for the Upper Band (80 is the default). The color, line thickness and line style can also be determined.
MF Middle Band
Can toggle the visibility of the Middle Band as well as sets the boundary, on the scale of 1-100, for the Middle Band (50 is the default). The color, line thickness and line style can also be determined.
MF Lower Band
Can toggle the visibility of the Lower Band as well as sets the boundary, on the scale of 1-100, for the Lower Band (20 is the default). The color, line thickness and line style can also be determined.
MF Background Fill
Toggles the visibility of a Background color within the MF's boundaries. Can also change the Color itself as well as the opacity.
Overbought Gradient Fill
Can toggle the visibility of the Overbought Gradient Fill. Can also select its colors combination.
Oversold Gradient Fill
Can toggle the visibility of the Oversold Gradient Fill. Can also select its colors combination.
Precision
Sets the number of decimal places to be left on the indicator's value before rounding up. The higher this number, the more decimal points will be on the indicator's value.
Sum Trend OscillatorPublishing my first indicator.
This one accumulates bars over two short period and divide that by the difference between a long term mean value of high-low
Buy/Sell signal is when both line cross at close below or above the center line.
Premarket and Opening Range (First 30 minutes) LevelsThis indicator is for people who like to utilize the pre-market highs and pre-market Low's as well as the first 30 minutes high and low, or some people like to call the opening range. I hope you find value in this. Note, the levels will only appear after tracking. Premarket levels will happen after pre-market closes. Opening Range levels will show right after the first 30 minutes.
Up Gap Strategy with DelayThis strategy, titled “Up Gap Strategy with Delay,” is based on identifying up gaps in the price action of an asset. A gap is defined as the percentage difference between the current bar’s open price and the previous bar’s close price. The strategy triggers a long position if the gap exceeds a user-defined threshold and includes a delay period before entering the position. After entering, the position is held for a set number of periods before being closed.
Key Features:
1. Gap Threshold: The strategy defines an up gap when the gap size exceeds a specified threshold (in percentage terms). The gap threshold is an input parameter that allows customization based on the user’s preference.
2. Delay Period: After the gap occurs, the strategy waits for a delay period before initiating a long position. This delay can help mitigate any short-term volatility that might occur immediately after the gap.
3. Holding Period: Once the position is entered, it is held for a user-defined number of periods (holdingPeriods). This is to capture the potential post-gap trend continuation, as gaps often indicate strong directional momentum.
4. Gap Plotting: The strategy visually plots up gaps on the chart by placing a green label beneath the bar where the gap condition is met. Additionally, the background color turns green to highlight up-gap occurrences.
5. Exit Condition: The position is exited after the defined holding period. The strategy ensures that the position is closed after this time, regardless of whether the price is in profit or loss.
Scientific Background:
The gap theory has been widely studied in financial literature and is based on the premise that gaps in price often represent areas of significant support or resistance. According to research by Kaufman (2002), gaps in price action can be indicators of future price direction, particularly when they occur after a period of consolidation or a trend reversal. Moreover, Gaps and their Implications in Technical Analysis (Murphy, 1999) highlights that gaps can reflect imbalances between supply and demand, leading to high momentum and potential price continuation or reversal.
In trading strategies, utilizing gaps with specific conditions, such as delay and holding periods, can enhance the ability to capture significant price moves. The strategy’s delay period helps avoid potential market noise immediately after the gap, while the holding period seeks to capitalize on the price continuation that often follows gap formation.
This methodology aligns with momentum-based strategies, which rely on the persistence of trends in financial markets. Several studies, including Jegadeesh & Titman (1993), have documented the existence of momentum effects in stock prices, where past price movements can be predictive of future returns.
Conclusion:
This strategy incorporates gap detection and momentum principles, supported by empirical research in technical analysis, to attempt to capitalize on price movements following significant gaps. By waiting for a delay period and holding the position for a specified time, it aims to mitigate the risk associated with early volatility while maximizing the potential for sustained price moves.
ATR ReadoutDisplays a readout on the bottom right corner of the screen displaying ATR average (not of the individual candlestick, but of the current rolling period, including the candlestick in question).
Due to restrictions with Pine Script (or my knowledge thereof) only the current and previous candlestick data is shown, rather than the one currently hovered over.
The data is derived via the standard calculation for ATR.
Using this, one can quickly and easily get the proper data needed to calculate one's stop loss, rather than having to analyze the line graph of the basic ATR indicator.
Settings are implemented to change certain variables to your liking.
Range PolarityDescription:
This indicator is a "Rate of Change" style oscillator designed to measure market dynamics through the lens of price ranges. By utilizing the true range in conjunction with high and low separation, this script produces two distinct oscillators: one for positive price shifts and one for negative price shifts.
Key Features:
High/Low Isolation:
The script calculates the relative movement of upwards and downwards price movements over a user-defined period. This separation provides a nuanced view of market behavior, offering two separate signals for comparison.
Dynamic Transform Smoothing:
A smoothing transform is applied to the signals, ensuring better outlier handling while maintaining sensitivity to price extremes. This makes the oscillator especially suited for identifying overbought and oversold conditions.
Zero-Centered:
The zero line acts as a "gravity point," where shifts away or toward zero indicate market momentum. Signal crosses or reversals from extreme zones can signal potential entry or exit points.
Outlier Identification:
Unlike traditional ATR based strategies (e.g., Keltner Channels ), this indicator isolates high and low ranges, creating a more granular view of market extremes. These measurements can help identify shifts from the outlying positions and reversal opportunities.
Visual Enhancements:
Multiple layers enhance the visual distinction of the positive and negative transformations. Horizontal lines at key thresholds provide visual reference for overbought, oversold, and equilibrium zones.
How to Use:
Primary signals are shifts from outlying positions or a positive/negative cross. An extreme reading itself can reveal an incoming reversal when calibrated with other indicators or compared with higher timeframes. Pairing "Range Polarity" with volume and momentum can create a comprehensive strategy.
In conclusion, be aware the base length controls the window for high/low contributions while the transform smoothing enhances the raw data through normalization within a tempered range to filter out insignificant fluctuations.
Merry Christmas to all and have a Happy New Year!
GROK - 40 Day High BreakoutTitle: GROK - Customizable High Breakout Detector
To scan base breakout with Pine Screener
Description:
This Pine Script indicator identifies high breakout patterns based on a user-defined lookback period. By default, it checks for a breakout of the 40-day high, but the period can be adjusted to suit your trading strategy. Key features include:
Custom Lookback Period: Easily modify the number of days for high breakout detection. Lookback period is length of base you want to scan using pine screener.
Visual Alerts: Displays a green triangle above the price bar when a breakout is detected.
Alert Conditions: Built-in alert notifications for automated breakout detection.
Screener Compatibility: Plots breakout signals as a histogram for screener use.
This script is ideal for traders looking to identify strong breakout patterns and incorporate them into their strategies.
How to Use:
Adjust the lookback period in the settings to match your desired breakout criteria.
Add alerts for automated notifications when a breakout is detected.
Use the visual markers and histogram to analyze breakout patterns on your chart.
RSI+EMA+MZONES with DivergencesFeatures:
1. RSI Calculation:
Uses user-defined periods to calculate the RSI and visualize momentum shifts.
Plots key RSI zones, including upper (overbought), lower (oversold), and middle levels.
2. EMA of RSI:
Includes an Exponential Moving Average (EMA) of the RSI for trend smoothing and confirmation.
3. Bullish and Bearish Divergences:
Detects Regular divergences (labeled as “Bull” and “Bear”) for classic signals.
Identifies Hidden divergences (labeled as “H Bull” and “H Bear”) for potential trend continuation opportunities.
4. Customizable Labels:
Displays divergence labels directly on the chart.
Labels can be toggled on or off for better chart visibility.
5. Alerts:
Predefined alerts for both regular and hidden divergences to notify users in real time.
6. Fully Customizable:
Adjust RSI period, lookback settings, divergence ranges, and visibility preferences.
Colors and styles are easily configurable to match your trading style.
How to Use:
RSI Zones: Use RSI and its zones to identify overbought/oversold conditions.
EMA: Look for crossovers or confluence with divergences for confirmation.
Divergences: Monitor for “Bull,” “Bear,” “H Bull,” or “H Bear” labels to spot key reversal or continuation signals.
Alerts: Set alerts to be notified of divergence opportunities without constant chart monitoring.
Percent Movement HighlighterThe Percent Movement Highlighter is a custom TradingView indicator that visually highlights candles based on their percentage movement relative to the previous day's close. The indicator uses two user-defined thresholds:
Positive Threshold: Marks candles that move up by a specified percentage or more.
Negative Threshold: Marks candles that move down by a specified percentage or more.
Features:
Visual Highlights:
Green candles for upward moves exceeding the positive threshold.
Red candles for downward moves exceeding the negative threshold.
Dynamic Counters:
Displays a summary label that counts the number of positive, negative, and neutral candles dynamically as the chart progresses.
User Inputs:
Customizable positive and negative percentage thresholds to suit different trading strategies.
This tool is useful for traders seeking to identify significant price movements and analyze market volatility efficiently.
0dte Anchored Expected Move by SyntaxGeekHere is a script that's making use of TradingView's new option data feed, without the OPRA data feed I'm unsure this script will be useful as the data will be delayed and I've not tested it without the data subscription.
The script is meant to demonstrate use of options data to generate ideas in the community and perhaps be a useful tool for 0dte traders.
For securities that have 0dte I like to calculate what I call the "opening expected move", it's just like expected move (EM) but it's a snapshot of the EM value at open and remains static throughout the day.
Expected move is the value of an "at the money" (ATM) call and put combined and then added t the price of the underlying.
For example if SPY opens at 600 and the ATM call + put premium (debit) is 3 dollars, then the EM high is 603 and the EM low is 597.
These levels are often areas where the market will react as any breaches of these prices could potentially be something that market participants will have to respond to being that something has hit the market unexpectedly.
Additionally, I've added calculations for half EM plots and live premium calculations for the ATM call and put from the open.
It's a fascinating script and it's fun to watch the premiums during periods of market volatility or a chop range day.
I make no guarantees for any of the data presented and there could be bugs as options data is still quite new in TradingView and I've not spent a long time coding this or testing.
Enjoy!
VIX OscillatorOVERVIEW
Plots an oscillating value as a percentage, derived from the VIX and VIX3M . This can help identify broader market trends and pivots on higher time frames (ie. 1D), useful when making swing trades.
DATA & MATH
The VIX is a real-time index of expected S&P 500 volatility over the next 30 days, derived from option prices with near-term expirations. Similarly, the VIX3M measures expected volatility over the next 90 days.
Dividing one by the other yields an oscillating value, normalizing the relative strength of the expected volatility. Most commonly the VIX is divided by the VIX3M. However, because the VIX is inversely correlated to market sentiment (typically), this indicator divides the VIX3M by the VIX to visually correlate the plot direction with the anticipated market direction. Further, it subtracts 1.1 from the quotient to visually center the plot, and multiplies that difference by 100 to amplify the value as a percentage:
( VIX3M / VIX - 1.1 ) * 100
This variation makes identifying sentiment extremes easier within a buy-low-sell-high paradigm, where values below zero are bearish and values above zero are bullish.
PLOTS
Two plots are used, maximizing data fidelity and convenience. Candles are used to accurately reflect the quantized math and a Linear Regression is used to simplify contextualization. If you're not familiar with what a Linear Regression is, you can think of it like a better moving average. High / Low zones are also plotted to help identify sentiment extremes.
This combination allows you to quickly identify the expected sentiment (bullish / bearish) and its relative value (normal / extreme), which you can then use to anticipate if a trend continuation or pivot is more likely.
INPUTS
Candle colors (rise and fall)
Linear regression colors and length
Zone thresholds and zero line
1-3-1 Strat Combo with 50% Level (12h)Logic Explanation
1-3-1 Combo Detection:
The script detects the 1-3-1 pattern using the previous 3 candles:
Candle 4: Inside Bar (Type 1).
Candle 3: Outside Bar (Type 3).
Candle 2: Inside Bar (Type 1).
4th Candle Behavior:
If the 4th candle (current bar):
Stays an inside bar (Type 1) → isFourthInsideBar is true.
Becomes a directional bar (Type 2) → isFourthDirectional is true.
If either of these conditions is true, the script stops calculating and waits for the next valid 1-3-1 setup.
50% Level Calculation:
If the conditions are not met (e.g., the 4th candle doesn’t stop the pattern), the script:
Plots a dotted line at the 50% level of the 3rd candle.
Adds a label showing the 50% level.
Stop Calculations:
No line, box, or label is drawn if the 4th candle is a Type 1 (inside bar) or Type 2 (directional bar).
Visual Outputs:
Dotted Box: Marks the 1-3-1 combo setup.
50% Line: Drawn only if the 4th candle does not invalidate the pattern.
Label: Displays the 50% level of the 3rd candle.
How to Use:
Apply this script on the 12-hour chart.
The script will:
Detect valid 1-3-1 patterns.
Stop drawing any calculations if the 4th candle is an inside bar (1) or a directional bar (2).
Wait for the next valid 1-3-1 combo.
Hourly 20 EMA on 5m ChartThis indicator shows the hourly 20ema on any current time frame that is open on your charts
DAILY Supertrend + EMA Crossover with RSI FilterThis strategy is a technical trading approach that combines multiple indicators—Supertrend, Exponential Moving Averages (EMAs), and the Relative Strength Index (RSI)—to identify and manage trades.
Core Components:
1. Exponential Moving Averages (EMAs):
Two EMAs, one with a shorter period (fast) and one with a longer period (slow), are calculated. The idea is to spot when the faster EMA crosses above or below the slower EMA. A fast EMA crossing above the slow EMA often suggests upward momentum, while crossing below suggests downward momentum.
2. Supertrend Indicator:
The Supertrend uses Average True Range (ATR) to establish dynamic support and resistance lines. These lines shift above or below price depending on the prevailing trend. When price is above the Supertrend line, the trend is considered bullish; when below, it’s considered bearish. This helps ensure that the strategy trades only in the direction of the overall trend rather than against it.
3. RSI Filter:
The RSI measures momentum. It helps avoid buying into markets that are already overbought or selling into markets that are oversold. For example, when going long (buying), the strategy only proceeds if the RSI is not too high, and when going short (selling), it only proceeds if the RSI is not too low. This filter is meant to improve the quality of the trades by reducing the chance of entering right before a reversal.
4. Time Filters:
The strategy only triggers entries during user-specified date and time ranges. This is useful if one wants to limit trading activity to certain trading sessions or periods with higher market liquidity.
5. Risk Management via ATR-based Stops and Targets:
Both stop loss and take profit levels are set as multiples of the ATR. ATR measures volatility, so when volatility is higher, both stops and profit targets adjust to give the trade more breathing room. Conversely, when volatility is low, stops and targets tighten. This dynamic approach helps maintain consistent risk management regardless of market conditions.
Overall Logic Flow:
- First, the market conditions are analyzed through EMAs, Supertrend, and RSI.
- When a buy (long) condition is met—meaning the fast EMA crosses above the slow EMA, the trend is bullish according to Supertrend, and RSI is below the specified “overbought” threshold—the strategy initiates or adds to a long position.
- Similarly, when a sell (short) condition is met—meaning the fast EMA crosses below the slow EMA, the trend is bearish, and RSI is above the specified “oversold” threshold—it initiates or adds to a short position.
- Each position is protected by an automatically calculated stop loss and a take profit level based on ATR multiples.
Intended Result:
By blending trend detection, momentum filtering, and volatility-adjusted risk management, the strategy aims to capture moves in the primary trend direction while avoiding entries at excessively stretched prices. Allowing multiple entries can potentially amplify gains in strong trends but also increases exposure, which traders should consider in their risk management approach.
In essence, this strategy tries to ride established trends as indicated by the Supertrend and EMAs, filter out poor-quality entries using RSI, and dynamically manage trade risk through ATR-based stops and targets.