Market SnapshotGet a snapshot of the market with the index's last price, distance to selectable moving averages, and breadth data.
Choose to see data based on the Nasdaq or SPX, as well as net highs / lows for the Nasdaq, NYSE or combined.
Snapshot shows:
- Index's (SPX or Nasdaq's) last price
- Put call ratio
- % of stocks above the 50 day moving average for the index of your choice
- % of stocks above the 200 day moving average for the index of your choice
- Distance to or from two selectable moving averages. (negative number means price is below the moving average, positive means price is above)
Configurable options:
- Which moving averages to use
- Where to display the table on your chart
- Table size, background and text colors
Wyszukaj w skryptach "spx"
Newzage - Fed Net LiquidityThe Fed Net Liquidity indicator is a concept discovered by Max Anderson to calculate the fair value of SPX (S&P 500 Index).
The formula he shared on Twitter uses the Fed Balance Sheet, TGA (Treasury General Account), and Reverse Repo.
Net Liquidity = Fed Balance Sheet - (TGA + Reverse Repo)
The data for each component above is accessible on the FRED website.
Fed Balance Sheet fred.stlouisfed.org
Treasury General Account (TGA) fred.stlouisfed.org
Reverse Repo fred.stlouisfed.org
This script uses net liquidity (NL) fair value calculation for SPX, then estimates entry and next target exit target for both long and short trades on SPY.
The script added RSI oversold/overbought signal to the original NL signal from Max... improving the "precision" of the buy/sell signals.
The script also uses RSI to estimate targets based on how overbought or oversold the index/SPY is.
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.
Tickers Info ExtensionWith the indicator you can easily evaluate or compare any ticker with the one you choose in the options.
You can choose any of the tickers I provide in the mod options to your liking :
XAU
DXY
BTC
ETH
SPX
NASDAQ
AVG Stable Dominance
AVG Stock Price
Custom
You can also select or create your own ticker if you select the Custom in Mode option.
If the Compare mode is enabled, then the current ticker you are viewing is divided by the ticker selected in the indicator (in the Mode option).
Thus, you create a new pair and can evaluate the strength of this or that asset.
For example, if you have the ticker BTCUSDT open. And the ticker XAU is selected in the Mode option in the indicator. And the Compare mode is also enabled. Then you will get a new BTCUSDT/XAU pair. That means that now you can see the bitcoin/gold ratio. (Same as EUR/USD etc.)
If the Compare option is switched off then you will see the usual ticker you choose in the Mode option. You can also see if there is a correlation between the selected pairs.
Option ' AVG STABLE.D ' = Calculated as: USDT.D + USDC.D + DAI.D
- This is the average domination of the most important Stable Coins
Option ' AVG STOCK Price ' = Calculated as: (DJI + SPX + NDQ) / 3
- This is the average price of the most important Indexes.
Auto Fibonacci Levels + Auto Trend Line generatorAnother indicator for you guys!!!
This indicator consists of the 5 key Fibonacci retracement levels, plotted automatically to user input settings. I also have included an auto support/resistance trend line generator.
What is a Fibonacci retracement?
'Fibonacci retracement is a method of technical analysis for determining support and resistance levels. It is named after the Fibonacci sequence of numbers, whose ratios provide price levels to which markets tend to retrace a portion of a move before a trend continues in the original direction.' - Wikipedia
How to use the Fibonacci retracement?
- The Fibonacci levels are default. These percentiles from price to the average of the high in a sample and low in a sample give you a guideline of where a bottom may be, where a top may be, and where a range is being created.
- Look for the price to reject from 61.8% and 76.4%, and also look for price to bounce from 38.2% and 23.6%. If a lower low/higher high is made, the fib levels will follow and the percentiles within will be recalculated after a 5 candle offset period.
- If you see price trending towards the lower percentiles (38&23) and using the 50% as resistance, look for a break downwards and vice versa.
-This Fibonacci set as all others is subject to fake-out, always use this with another series indicator, or don't use it as a signal for entry at all (unless you have a backdated strategy)
How to use the trend line generator?
-The trend line generator will only plot when a lower low/higher high has taken place within the input amount of candles. It is also offset by a user amount.
-The check box will give the option to have the trend line's plot or not.
- If you see a green/red dot it means that that will be your first coordinate for the trend line, and until the computations are complete it will give you an idea of which direction it will be in (resistance or support)
-When opening this indicator zoom out all the way to connect any trend lines that do not load automatically.
Let me know if you have any questions, suggestions or issues! Thank you everyone!
-Cheatcode1 :)
SP:SPX TVC:DXY BMFBOVESPA:EUR1! CME:BTC1! BINANCE:BTCUSDT
Rate Of Change Trend Strategy (ROC)This is very simple trend following or momentum strategy. If the price change over the past number of bars is positive, we buy. If the price change over the past number of bars is negative, we sell. This is surprisingly robust, simple, and effective especially on trendy markets such as cryptos.
Works for many markets such as:
INDEX:BTCUSD
INDEX:ETHUSD
SP:SPX
NASDAQ:NDX
NASDAQ:TSLA
Intraday Super SectorsMotivated by Cody to finish what I'd started ...
This indicator plots the two 'Super Sectors' (Cyclical and Defensive) intraday change, viz-a-viz SPX price
* for convenience, it uses the ETF's, rather than the actual sectors. This might make it 0.0001% inaccurate.
For reference:
Defensive Sectors:
XLE Energy (not always considered a true defensive sector, but I've thrown it in here for balance)
XLP Consumer Staples
XLU Utilities
XLV Health Care
Cyclical Sectors:
XLB Materials
XLC Communication Services
XLF Financials
XLI Industrials
XLK Information Technology
XLRE Real Estate
XLY Consumer Discretionary
Why the (soft) red/green cloud?
Well, the theory says is that if the Cyclical Sector is down, while the Defensive Sector is up, this isn't exactly bullish (so a soft red cloud), or if Defensive Stocks are down, while Cyclical Stocks are up, this is perhaps bullish.
Of course, if SPX is down 10%, with Defensive Stocks down 20%, and Cyclical Stocks down 5%, you might get a green cloud, but it ain't exactly a bullish sign
US Sector CorrelationsA new and interesting way to look at Breadth. As for the usefulness of it, one would have to do some proper backtesting to get a full grasp of the capabilities. This is just a concept currently. But in general, SPX holding near ATHs with very low sector correlations can be a topping indicator. SPX selling off with Correlations all very positive across each sector...can be a sign of an impending bottom. But, needs the "full bake" of proper testing and analysis versus just guessing. I like the concept and want to explore it further, and I will. This is just the start.
Gap RiderThis Indicator allows you to make statistics on the performance of any underlying on the days in which an opening gap occurs.
Specifically, the indicator was designed for "0 dte" options trades. In fact, it is possible to find parameters that give a good statistical advantage by opening a spread in the direction of the gap, creating a trade that has a risk-return ratio of 1: 1.
The indicator shows flags on the graph (green in case of gap up, red in case of gap down) and colored boxes (green in case the stock closed in the direction of the gap, red in case the stock closed in the opposite direction to the gap, yellow in the event that the stock closed at a distance that did not allow the spread in options to close in maximum loss or maximum profit, and therefore in breakeven)
The statistics panel, on the other hand, contains all the information necessary to search for parameters that give the trader a good statistical advantage.
In the settings you can filter the days of the week, only gap up or only gap down, ATR thresholds (volatility), points or minimum percentage for which a gap is taken into account, measure of the breakeven (which for options traders should represent the half the width of the spread to open), large gaps filter that takes into consideration only gaps that open out of range compared to the previous session. The Lookback parameter of course is used to set how many bars to take into account for the statistics.
Parameters and recommended strategy:
TODAY 31/08/2021 - Lookback 500 bars (2 years)
UNDERLYING: SPX
FILTERS: only Monday and Wednesday, only gap up, only gap> 0.01%
STRATEGY: exactly at opening, cover an ATM spread in the direction of the gap (example: gap up, I open a long call spread) that has the opening price as a break even, with a risk-return ratio of 1: 1 and leave it open until closing session, or set take profit at 90-95%. It is advisable to take into consideration the SPX statistics but to operate on the ES future so as to be able to open the spread a couple of minutes before the opening of the cash session and prevent the trade from "running away" due to too sudden movements of the opening. .
RESULTS:
124 Trade
70% profitable trades
30% losing trades
Max drawdown 3 trades
So assuming a spread on ES 10 points wide, each trade would gain or lose $ 250, applying the described strategy we would have in two years, investing only $ 250, a profit of $ 12500, with a max drawdown of $ 750. We would therefore have a profit of 5000%, or rather 2500% per year on the invested capital, with a drawdown of a much lower proportion of the profit ($ 750 compared to $ 6250 of annual profit).
The strategy is infinitely scalable by increasing the options contracts used and the impact of the commissions is almost zero.
MONEY MANAGEMENT: Example on a 50K account, with a spread that earns or loses $ 500, in two years it earns $ 25,000, therefore about 12500 per year, with a max drawdown of $ 1500, therefore 25% per year on the ENTIRE ACCOUNT with a maximum drawdown of 3%.
Note: the test was performed without a break even parameter, so the actual result will be more moderate, but of the same explosive nature.
** BUG STILL LOOKING FOR SOLUTION **
only in case the filters are set to take into account ONLY the gap down, the drawdown count in the statistics panel shows an incorrect result "
Divergence of Stocks Above MA50 v.s. US-Stock MarketEnglish:
This indicator has been developed as an early warning tool to estimate the probability of correction in the US stock market. It works best in the daily chart.
Function:
1.) "Index-line"
The underlying stock index is converted to a scale between 0% and 100% based on its 52-week highs and lows. Where 100% is closing price at 52-week high and 0% is closing price at 52-week low.
2nd) "Stocks Above MA50".
For each major stock index, there is an index that determines the percentage of stocks above its 50 moving average. For example, for the S&P 500, this is the S5FI.
3) "Divergence
In an efficient market, both lines (index and number of stocks above the 50 MA) would run more or less in sync. A new high in the index would also mean a new high in the stocks trading above the 50 moving average. Often, however, a correction in the index is announced when the number of stocks trading above their 50 MA do not make a new, or even a lower, high while the underlying index marks a new high. The divergence signal measures this divergence of the indices. The higher the bar, the more pronounced the divergence.
How to read the indicator?
If a divergence occurs, then the stops should be tightened. As with any indicator, false signals can occur because a divergence does not automatically lead to a correction. The higher the divergence is indicated, the higher the probability. The strength of a correction cannot be predicted with the indicator.
For which symbols does the indicator work?
The indicator works exclusively for the following symbols:
S&P500: SPX, SPY, ES1!, US500 Index above MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index above MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index above MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index above MA50: NCFI
NYSE: XAX, NYA Index above MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index above MA50: DIFI
DowJonesComp: DOW, IYY Index above MA50: DCFI
Deutsch:
Dieser Indikator ist als Frühwarninstrument zur Einschätzung der Korrekturwahrscheinlichkeit im US-Aktienmarkt entwickelt worden. Er funktioniert am besten im Tages-Chart.
Funktion:
1.) „Index-line“
Der zugrunde liegende Aktienindex wird bezogen auf seine 52Wochen Hochs und Tiefs in eine Skala zwischen 0% und 100% umgerechnet. Dabei sind 100% Schlusskurs auf 52-Wochen Hoch und 0% Schlusskurs auf 52-Wochen Tief.
2.) „Stocks Above MA50“
Zu jedem Hauptaktienindex gibt es einen Index, der den Prozentwert der Aktien über Ihrem 50 gleitenden Durchschnitt ermittelt. Beim S&P 500 ist das z.B. der S5FI.
3.) „Divergence“
In einem effizienten Markt würden beide Linien (Index und Anzahl Aktien über dem 50 MA) mehr oder weniger synchron laufen. Ein neues Hoch im Index würde auch ein neues Hoch bei den Aktien, die über dem 50 gleitenden Durchschnitt notieren, bedeuten. Oft jedoch kündigt sich eine Korrektur im Index an, wenn die Anzahl der Aktien, die über ihrem 50 MA notieren kein neues, oder sogar ein niedrigeres Hoch machen, während der zu Grunde liegende Index ein neues Hoch markiert. Das Divergenz-Signal misst diese auseinanderlaufen der Indices. Je höher der Balken, umso stärker ist die Divergenz ausgeprägt.
Wie ist der Indikator zu lesen?
Wenn eine Divergenz auftritt, dann sollten die Stopps enger herangezogen werden. Es kann wie bei jedem Indikator zu Fehlsignalen kommen, da eine Divergenz nicht automatisch zu einer Korrektur führen muss. Die Wahrscheinlichkeit ist um so höher, je höher die Divergenz angezeigt wird. Die Stärke einer Korrektur kann mit dem Indikator nicht prognostiziert werden.
Für welche Symbole funktioniert der Indikator?
Der Indikator funktioniert ausschließlich für folgende Symbole:
S&P500: SPX, SPY, ES1!, US500 Index über MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index über MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index über MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index über MA50: NCFI
NYSE: XAX, NYA Index über MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index über MA50: DIFI
DowJonesComp: DOW, IYY Index über MA50: DCFI
CCI45/SMA50 indy for 30 min SP500SPCFD:SPX
The script determines entry points using 45 period CCI and 50 period SMA.
Long condition: When CCI crosses up 150 treshold while price above 50 period SMA
Short condition: When CCI crosses down -150 treshold while price below 50 period SMA
Trades are executed above/below 1 point of high/low for long/short positions. Stops are just 1 point below/above of SMA. After 4 points of profit stops should be tightened. If you do not plan to hold the position for a long time, it can produce quick profit within 5-6 bars namely 2.5-3 hour. Otherwise you can manage the trade using SMA as trailing stop. This can be treated as a strategy of scalping which turns out a trend trading eventually if conditions good.
Have a nice trading
CHOP Zone Entry Strategy + DMI/PSAR ExitThis is a Strategy with associated visual indicators and Long/Short and Reverse/Close Position Alerts for the Choppiness Index (CHOP) . It is used to determine if the market is choppy (trading sideways) or not choppy (trading within a trend in either direction). CHOP is not directional, so a DMI script was ported into this strategy to allow for trend confirmation and direction determination; it consists of an Average Directional Index (ADX) , Plus Directional Indicator (+DI) and Minus Directional Indicator (-DI) . In addition, a Parabolic SAR is also included to act as a trailing stop during any strong trends.
Development Notes
---------------------------
This indicator, and most of the descriptions below, were derived largely from the TradingView reference manual. Feedback and suggestions for improvement are more than welcome, as well are recommended Input settings and best practices for use.
www.tradingview.com
www.tradingview.com
www.tradingview.com
Recommend using the below DMI and PSAR indicators in conjunction with this script to fully visualize and understand how entry and exit conditions are chosen. Variable inputs should correlate between the scripts for uniformity and visual compatibility.
THANKS to LazyBear and his Momentum Squeeze script for helping me quickly develop a momentum state model for coloring the Chop line by trend.
Strategy Description
---------------------------
CHOP produces values that determine whether the market is choppy or trending . The closer the value is to 100 , the higher the choppiness levels , while the closer it is to 0 , the stronger the market is trending . Territories for both levels, and their associated upper and lower thresholds, are popularly defined using the Fibonacci Retracements, 61.8 and 38.2.
Basic Use
---------------------------
CHOP is often used to confirm the market condition to help you stay out of sideways markets and only enter when there is movement or imminent explosions. When readings are above the upper threshold, continued sideways movement may be expected, while readings below the lower threshold are typically indicative of a continuing trend. It is also used to anticipate upcoming trendiness changes, with the general belief that extended periods of consolidation (sideways movement) are followed by extended periods of strong, trending, directional movement, and vice versa.
One limitation in this index is that you must be cautious in deciding whether the range or trend will likely continue, or if it will reverse.
Confidence in price action and trend is higher when two or more indicators are in agreement -- while this strategy combines CHOP with both DMI and PSAR, we would still recommend pairing with other indicators to determine entry or exit trade opportunities.
Recommend also choosing 'Once Per Bar Close' when creating alerts.
Inputs
---------------------------
Strategy Direction - an option to only trade Short, Long, Both, or only in the direction of the Trend (Follow Trend is the Default).
Sensitivity - an incremental variable to test whether the past n candles are in the same trend state before triggering a delayed long or short alert (1 is the Default). Can help filter out noise and reduces active alerts.
Show Chop Index - two visual styles are provided for user preference, a visible Chop line with a background overlay, or a compact column and label only view.
Chop Lookback Period - the time period to be used in calculating CHOP (14 is the Default).
Chop Offset - changing this number will move the CHOP either forwards or backwards relative to the current market (0 is the Default).
Smooth Chop Line and Length - if enabled, the entered time period will be used in calculating a smooth average of the index (Enabled and 4 are the Defaults).
Color Line to Trend Direction - toggles whether the index line is colored to visually depict the current trend direction (Enabled is the Default).
Color Background - toggles the visibility of a background color based on the index state (Enabled is the Default).
Enable DMI Option - if enabled, then entry will be confirmed by and dependent on the ADX Key Level, with any close or reversal confirmed by both ADX and +/-DI to determine whether there is a strong trend present or not (Enabled is the Default).
ADX Smoothing - the time period to be used in calculating the ADX which has a smoothing component (14 is the Default).
DI Length - the time period to be used in calculating the DI (14 is the Default).
ADX Key Level - any trade with the ADX above the key level is a strong indicator that it is trending (23 to 25 is the suggested setting).
Enable PSAR Option - enables trailing stop loss orders (Enabled is the Default).
PSAR Start - the starting value for the Acceleration Force (0.015 is our chosen Default, 0.02 is more common).
PSAR Increment - the increment in which the Acceleration Force will move (0.001 is our chosen Default, 0.02 is more common).
PSAR Max Value - the maximum value of the Acceleration Factor (0.2 is the Default).
Color Candles Option - an option to transpose the CHOP condition levels to the main candle bars. Note that the outer red and green border will still be distinguished by whether each individual candle is bearish or bullish during the specified timeframe.
Note too that if both DMI and PSAR are deselected, then close determinations will default to a CHOP reversal strategy (e.g., close long when below 38.2 and close short when above 61.8). Though if either DMI or PSAR are enabled, then the CHOP reversal for close determination will automatically be disabled.
Indicator Visuals
---------------------------
For the candle colors, black indicates tight chop (45 to 55), yellow is loose chop (38.2 to 45 and 55 to 61.8), dark purple is trending down (< 38.2), and dark blue is trending up (> 61.8).
The background color has additional shades to differentiate a wider range of more levels…
• < 30 is dark purple
• 30 to 38.2 is purple
• 38.2 to 45 is light purple
• 45 to 55 is black
• 55 to 61.8 is light blue
• 61.8 to 70 is blue
• > 70 is dark blue
Long, Short, Close, and Reverse labels are plotted on the Chop line, which itself can be colored based on the trend. The chop line can also be hidden for a clean and compact, columnar view, which is my preferred option (see example image below).
Visual cues are intended to improve analysis and decrease interpretation time during trading, as well as to aid in understanding the purpose of this strategy and how its inclusion can benefit a comprehensive trading plan.
DMI and Trend Strength
---------------------------
To analyze trend strength, the focus should be on the ADX line and not the +DI or -DI lines. An ADX reading above 25 indicates a strong trend , while a reading below 20 indicates a weak or non-existent trend . A reading between those two values would be considered indeterminable. Though what is truly a strong trend or a weak trend depends on the financial instrument being examined; historical analysis can assist in determining appropriate values.
DMI exits trade when ADX is below the user selected key level (e.g., default is 25) and when the +/- DI lines cross (e.g., -DI > +DI exits long position and +DI > -DI exits short position).
PSAR and Trailing Stop
---------------------------
PSAR is a time and price based indicator that excels at measuring direction and duration, though not the actual strength of a trend, which is why we use this in conjunction with DMI. It is also included in this script as a trailing stop option to maximize gains during strong trends and to mitigate any false ADX strengthening signals.
This creates a parabola that is located below the candle during a Bullish trend and above during a Bearish trend. A buy or reversal is signaled when the price crosses above or below the Parabolic SAR.
Long/Short Entry
---------------------------
1. CHOP must be over 61.8 (long) or under 38.2 (short).
2. If DMI is enabled, then the ADX signal line must be above the user selected Key Level (default is 25).
3. If Sensitivity is selected, then that past candle must meet the criteria in step 1, as well as all the intermediate candles in between.
4. If "Follow Trend" is selected and PSAR is enabled, then a long position can only open when the momentum and PSAR are in an uptrend, or short when both are in a downtrend, to include all intermediate candles if the Sensitivity option is set on a past candle.
Close/Reverse
---------------------------
1. If DMI is enabled, then a close flag will be raised when the ADX signal drops below the Key Level (of 25), and -DI crosses over +DI (if long), or +DI crosses over -DI (if short).
2. If PSAR is enabled, then a close flag will be raised when the current trend state is opposite the last state.
3. If both DMI and PSAR are disabled, then a close flag will be raised if the Chop line drops under 38.2 (if long) or goes over 61.8 (if short).
4. If a Long or Short Entry is triggered on the same candle as any of the above close flags, then the position will be reversed, else the position will be closed.
Strategy Alerts
---------------------------
1. Long Entry
2. Short Entry
3. Reverse
4. Close
The provided backtest result is based on a position sizing of 10% equity with 100k initial capital. When testing SPX, disabling the DMI performed the best, but EURUSD performed poorly without it enabled, and TSLA had a small reduction in net profit. Timeframe likewise differed between commodities with TSLA performing best at 30M, SPX at 15M, and EURUSD at 4H. I do not plan on using this as a standalone strategy, but I also was expecting better results with the inclusion of EMI and PSAR to compliment the CHOP. Key elements of this script will likely be included in future, more holistic strategies.
Disclaimer
---------------------------
Past performance may not be indicative of future results. Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting. This post and the script are not intended to provide any financial advice. Trade at your own risk.
No known repainting, though there may be if an offset is introduced in the Inputs. I did my best not to code any other variables that repaint, but cannot fully attest to this fact.
Normalized Volatility IndicatorFrom an article by Rajesh Kayakkal:
"Early bear phase signals can help you get out of the market before it turns down. This indicator tells you how.
There are many ways to identify the trend of a financial market, the most common being the 200-day exponential moving average (Ema). When price is trending down below the 200-day Ema, the market is believed to be in a bear phase. If the market is trending up above the 200-day Ema, it is considered to be in a bull phase.
Since every indicator fails at times, I wanted to find other indicators to confirm a trend. In my quest for another indicator to determine the trend for the financial markets, I found the Cboe Volatility Index (Vix) to be a good indicator of the market direction. The Vix is calculated from the weighted average of the implied volatilities of various options on the Standard & Poor’s 500 index futures.
J. Welles Wilder’s average true range can also give an indication of the financial market trends; that is, when the market is in a bull phase, the average true range narrows, and when it is in a bear phase, the average true range expands. The normalized volatility indicator (Nvi) is based on this behavior.
Normalized volatility indicator (Nvi)
Average true range (Atr) varies depending on time. But how do we determine the phase of the financial market with Atr? Perhaps some type of ratio could give us a clue. A ratio presents a relationship of a quantity with respect to another. I did some research based on a ratio of the 64-day average true range and the end-of-day value of equity indexes such as the Standard & Poor’s 500 (Spx). I selected the 64-day period since it is close to the average number of trading days in a quarter. The ratio of the 64-day average true range and closing price does discount seasonal variations in the average true range and gives a single number that can be used to compare volatility of an instrument across many decades. I call this ratio the normalized volatility indicator.
I found an interesting correlation between Nvi and cycles of major equity market indexes. The formula for the Nvi is:
Nvi = 64 - Day average true range/End-of-day price * 100
The NVI gave advanced signals before the cyclical bear phase of SPX commenced in October 2000 and was almost on the spot with the bull phase that began in 2003 and the current secular bear market cycle, which started in November 2007."
Includes options to show inverse NVI and change the ATR length and smoothing.
Reversal closing priceThe reversal closing price (RCP) is a candlestick pattern which follows two simples rules:
the low price of current candle needs to be lower than the low price of the last 2 candles
the closing price of current candle needes to be higher than the closing price of the last candle
This generates a signal for a long position. For a short position, the conditions are inverted:
the high price of current candle needs to be higher than the high price of the last 2 candles
the closing price of current candle needes to be lower than the closing price of the last candle
Since RCP is a trend follower indicator, the strategy is programmed in such a way that long positions are only placed if the short period EMA is above the long period EMA, and short positions are only placed if the short EMA is bellow the long EMA. Both periods are configurable, and should be ajusted for each asset.
This strategy uses a fixed stop loss and take profit, and the it's ratio is configurable. The stop price is one tick lower than the lowest price of X candles prior to the order execution for long positions, while in short positions it's one tick higher than the higher price. The amount of candles to lookback (X) is configurable. Both stop and take profit prices are displayed, the first as a red line, and the second as a green line.
This is the setting that I've found to work best with TVC:SPX , but you may find a better setting. While the RCP is universal, it's placement depends on the trend and it's strenght, something that is very heterogeneous among assets.
I really wish that I was able to place images, but I don't have PRO, so text will have to do.
This strategy was designed by Alexandre Wolwacz, a.k.a. Stormer.
Hide Extended Hours/non-intraday American BarsOnly works with American bar style.
Not works with Candles.
--------
This script can hide the extended hours/non-intraday bars and leave the intraday bars only, especially for future users, such as ES/NQ/RTY/YM, etc.,.
Now you can find the intraday support/resistance quite easily!
Example, as a ES investor, you can easily find the intraday support/resistance level ,which is almost equal to SPY / SPX , no longer need to check SPY / SPX separately again, saving your time a lot.
--------
IMPORTANT INSTRUCTION
In order to make the script work, you have to bring it to the most top visual layer.
Please do as the following steps:
Add the script to chart
Hover mouse on the script name, and tap the right-most 'more' button (which appears as 3 dots)
Select "Visual Order", then select "Bring to front".
Done!
Also, in order to have a better view effect and make the bars COMPLETELY "Hidden", you can adjust the hidden bar color in the "setting" menu to the exact color of your chart background.
Options Decay Speed for 0DTEUse only for:
SPX, 5 minutes time frame
This indicator is complementing options 0DTE strategy - selling options for SPX index in the same day as they are expiring. Output of the indicator (red or green color of the curve) indicates whether is profitable to sell options at given moment at delta and VIX specified in the parameters. Changing parameter "Candles" is not recommended.
Main thought is that options expire with certain speed (theta decay) when stock doesnt move. When stock moves in unfavorable direction slowly enough, decay speed can compensate for disadvantage coming from option delta. Intuitively there must be certain speed of stock value change (expressed in stock value per 5 minutes) that is exactly compensating theta decay. This indicator calculates those two values (details below) and shows, where theta decay is faster than stock movement in the last hour and thus favorable to sell options.
Indicator gets its result from comparing two values:
1) volatility in the form of highest high and lowest low for past 12 candles (one hour in total) divided by 12 - meaning average movement of stock expressed in
2) speed of options value decay in form of combination of theta decay and option delta. Formulas are approximation of Black-Scholes model as Pine script doesnt allow for advanced functions. Approximations are accurate to 2 decimal points from market open to one hour before market close and will not indicate green when accuracy is not sufficient. Its value is also expressed in so its mutualy comparable.
My focus was not on code elegance but on practical usability.
Written by Ondřej Škop.
Strategy - Bobo PAPATRHi I've revamped this bot mentioned in the linked idea to make it work with v4 of pine. In doing so there are some very significant changes to how it works. The main one is that it no longer uses traditional daily pivot calculations to calculate the bands. It creates a more dynamic intraday set of pivot points based on recent price action rather than yesterday's ohlc. As published, the bot is tuned for a 15 min time frame. But it actually works well on lower time frames you just need to adjust the lookback periods in settings a bit to re tune it. It's also tuned to ES really but will need tweaking for a different instrument at the very least.
The basic concept is recent price action is used to calculate a 'middle' around which red and green bands are located. Their position or width is largely determined by recent volatility. The middle line is again calculated from recent price action. The three lines from that form a tradeable range with green at the top and red at the bottom. The strategy is simple enough, it shorts as it sinks from outside red, and longs when rising above green. The basic principle being that once you enter that range you have a high probability of hitting the middle before you hit your stop loss. So the basic principle is you are trying to capture the inherent ranginess of liquid indices like S&P 500. That back and forth movement that happens. The bot is capturing this by fading extremes of a recent range but the problem with that is you'dd get murdered in a strong trend. To mitigate that there is a trend calculation running in the background the will prevent trading against firm trends mostly. So the bot should trade mostly in rangy conditions because that is what it is trying to do.
Bot will close issue close signals automatically upon crossing the middle, it also will close automatically at predefined stops or limits. These values are denominated in market mintick values. For example the CFD SPX500 has a mintick of 0.1. Therefore a stop value of 100 will equate to 10 points on the index. If trading the same market via ES1! the mintick value is different - 0.25. So in this case a value of 40 is required to set the stop at 10 points.
Anyway shout if you have questions. Hope it's useful.
TVC:SPX OANDA:SPX500USD
Simple EMA Trading SignalUse it on:
1. Heiken Ashi, Bitstamp: BTCUSD , M15
2. Heiken Ashi, Bitstamp: BTCUSD, D1
3. USOIL Candlesticks H1
4. EURUSD Daily Candlesticks
5. GBPUSD Daily Candlesticks
6. SPX W1 Candlesticks
7. SPX H1 Heiken Ashi
8. XAUUSD Daily
Mansfield Relative Strength indicatorUse this indicator to compare how security is performing in compare with preferred index (SPX by default).
> 0 outperforming
< 0 underperforming
Works best for weekly, but can be applied to monthly and daily charts. It will be rather useless to use it in smaller timeframes
Apply it to SPX, industry index, sector index or other security in similar sector
AK TREND ID v1.00Hello,
"Are we at the top yet ? "........ " Is it a good time to invest ? " ......." Should I buy or sell ? " These are the many questions I hear and get on the daily basis. 1000's of investors do not know when to go in and out of the market. Most of them rely on the opinion of "experts" on television to make their investment decisions. Bad idea.Taking a systematic approach when investing, could save you a lot of time and headache. If there was only a way to know when to get in and out of the market !! hmmmm. The good news is that there many ways to do that. The bad news is , are you disciplined enough to follow it ?
I coded the AK_TREND ID specifically to identified trends in the SPX or SPY only . How does it work ? very simply , I simply plot the spread between the 3 month and 8 month moving average on the chart.
If the spread > 0 @ month end = BUY
if the spread < 0 @ month end = SELL
The AK TREND ID is a LAGGING Indicator , so it will not get you in at the very bottom or get you out at the very top. I did a backtest on the SPX from 1984 to 7/2/2014 (yesterday), The rule was to buy only when the AK TREND ID was green. let's look at the result:
14 trades : 11 W 3 L , 78.75 % winning %
Biggest winner (%) = 108 %
Biggest loser (%) = -10.7 %
Average Return = 27 %
Total Return since 1984 = 351.3 %
You can see the result in detail here : docs.google.com
Although the backtesting results are good, the AK TREND ID is not to be used as a trading system. It is simply design to let you know when to invest and when to get out. I'm working a more accurate version of this Indicator , that will use both technical and fundamental data. In the mean time , I hope this will give some of you piece of mind, and eliminate emotions from your trading decision. Feel free to modify the code as you wish, but please share your finding with the rest of Trading View community.
All the best
Algo
jaems_Double BB[Alert]/W-Bottom/Dashboard// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Kingjmaes
//@version=6
strategy("jaems_Double BB /W-Bottom/Dashboard", shorttitle="jaems_Double BB /W-Bottom/Dashboard", overlay=true, commission_type=strategy.commission.percent, commission_value=0.05, slippage=1, process_orders_on_close=true)
// ==========================================
// 1. 사용자 입력 (Inputs)
// ==========================================
group_date = "📅 백테스트 기간 설정"
startTime = input.time(timestamp("2024-01-01 00:00"), "시작일", group=group_date)
endTime = input.time(timestamp("2099-12-31 23:59"), "종료일", group=group_date)
group_bb = "📊 더블 볼린저 밴드 설정"
bb_len = input.int(20, "길이 (Length)", minval=5, group=group_bb)
bb_mult_inner = input.float(1.0, "내부 밴드 승수 (Inner A)", step=0.1, group=group_bb)
bb_mult_outer = input.float(2.0, "외부 밴드 승수 (Outer B)", step=0.1, group=group_bb)
group_w = "📉 W 바닥 패턴 설정"
pivot_left = input.int(3, "피벗 좌측 봉 수", minval=1, group=group_w)
pivot_right = input.int(1, "피벗 우측 봉 수", minval=1, group=group_w)
group_dash = "🖥️ 대시보드 설정"
show_dash = input.bool(true, "대시보드 표시", group=group_dash)
comp_sym = input.symbol("NASDAQ:NDX", "비교 지수 (GS Trend)", group=group_dash, tooltip="S&P500은 'SP:SPX', 비트코인은 'BINANCE:BTCUSDT' 등을 입력하세요.")
rsi_len = input.int(14, "RSI 길이", group=group_dash)
group_risk = "🛡 리스크 관리"
use_sl_tp = input.bool(true, "손절/익절 사용", group=group_risk)
sl_pct = input.float(2.0, "손절매 (%)", step=0.1, group=group_risk) / 100
tp_pct = input.float(4.0, "익절매 (%)", step=0.1, group=group_risk) / 100
// ==========================================
// 2. 데이터 처리 및 계산 (Calculations)
// ==========================================
// 기간 필터
inDateRange = time >= startTime and time <= endTime
// 더블 볼린저 밴드
basis = ta.sma(close, bb_len)
dev_inner = ta.stdev(close, bb_len) * bb_mult_inner
dev_outer = ta.stdev(close, bb_len) * bb_mult_outer
upper_A = basis + dev_inner
lower_A = basis - dev_inner
upper_B = basis + dev_outer
lower_B = basis - dev_outer
percent_b = (close - lower_B) / (upper_B - lower_B)
// W 바닥형 (W-Bottom) - 리페인팅 방지
pl = ta.pivotlow(low, pivot_left, pivot_right)
var float p1_price = na
var float p1_pb = na
var float p2_price = na
var float p2_pb = na
var bool is_w_setup = false
if not na(pl)
p1_price := p2_price
p1_pb := p2_pb
p2_price := low
p2_pb := percent_b
// 패턴 감지
bool cond_w = (p1_price < lower_B ) and (p2_price > p1_price) and (p2_pb > p1_pb)
is_w_setup := cond_w ? true : false
w_bottom_signal = is_w_setup and close > open and close > lower_A
if w_bottom_signal
is_w_setup := false
// GS 트렌드 (나스닥 상대 강도)
ndx_close = request.security(comp_sym, timeframe.period, close)
rs_ratio = close / ndx_close
rs_sma = ta.sma(rs_ratio, 20)
gs_trend_bull = rs_ratio > rs_sma
// RSI & MACD
rsi_val = ta.rsi(close, rsi_len)
= ta.macd(close, 12, 26, 9)
macd_bull = macd_line > signal_line
// ==========================================
// 3. 전략 로직 (Strategy Logic)
// ==========================================
long_cond = (ta.crossover(close, lower_A) or ta.crossover(close, basis) or w_bottom_signal) and inDateRange and barstate.isconfirmed
short_cond = (ta.crossunder(close, upper_B) or ta.crossunder(close, upper_A) or ta.crossunder(close, basis)) and inDateRange and barstate.isconfirmed
// 진입 실행 및 알람 발송
if long_cond
strategy.entry("Long", strategy.long, comment="Entry Long")
alert("Long Entry Triggered | Price: " + str.tostring(close), alert.freq_once_per_bar_close)
if short_cond
strategy.entry("Short", strategy.short, comment="Entry Short")
alert("Short Entry Triggered | Price: " + str.tostring(close), alert.freq_once_per_bar_close)
// 청산 실행
if use_sl_tp
if strategy.position_size > 0
strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - sl_pct), limit=strategy.position_avg_price * (1 + tp_pct), comment_loss="L-SL", comment_profit="L-TP")
if strategy.position_size < 0
strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + sl_pct), limit=strategy.position_avg_price * (1 - tp_pct), comment_loss="S-SL", comment_profit="S-TP")
// 별도 알람: W 패턴 감지 시
if w_bottom_signal
alert("W-Bottom Pattern Detected!", alert.freq_once_per_bar_close)
// ==========================================
// 4. 대시보드 시각화 (Dashboard Visualization)
// ==========================================
c_bg_head = color.new(color.black, 20)
c_bg_cell = color.new(color.black, 40)
c_text = color.white
c_bull = color.new(#00E676, 0)
c_bear = color.new(#FF5252, 0)
c_neu = color.new(color.gray, 30)
get_trend_color(is_bull) => is_bull ? c_bull : c_bear
get_pos_text() => strategy.position_size > 0 ? "LONG 🟢" : strategy.position_size < 0 ? "SHORT 🔴" : "FLAT ⚪"
get_pos_color() => strategy.position_size > 0 ? c_bull : strategy.position_size < 0 ? c_bear : c_neu
var table dash = table.new(position.top_right, 2, 7, border_width=1, border_color=color.gray, frame_color=color.gray, frame_width=1)
if show_dash and (barstate.islast or barstate.islastconfirmedhistory)
table.cell(dash, 0, 0, "METRIC", bgcolor=c_bg_head, text_color=c_text, text_size=size.small)
table.cell(dash, 1, 0, "STATUS", bgcolor=c_bg_head, text_color=c_text, text_size=size.small)
table.cell(dash, 0, 1, "GS Trend", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 1, gs_trend_bull ? "Bullish" : "Bearish", bgcolor=c_bg_cell, text_color=get_trend_color(gs_trend_bull), text_size=size.small)
rsi_col = rsi_val > 70 ? c_bear : rsi_val < 30 ? c_bull : c_neu
table.cell(dash, 0, 2, "RSI (14)", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 2, str.tostring(rsi_val, "#.##"), bgcolor=c_bg_cell, text_color=rsi_col, text_size=size.small)
table.cell(dash, 0, 3, "MACD", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 3, macd_bull ? "Bullish" : "Bearish", bgcolor=c_bg_cell, text_color=get_trend_color(macd_bull), text_size=size.small)
w_status = w_bottom_signal ? "DETECTED!" : is_w_setup ? "Setup Ready" : "Waiting"
w_col = w_bottom_signal ? c_bull : is_w_setup ? color.yellow : c_neu
table.cell(dash, 0, 4, "W-Bottoms", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 4, w_status, bgcolor=c_bg_cell, text_color=w_col, text_size=size.small)
table.cell(dash, 0, 5, "Position", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 5, get_pos_text(), bgcolor=c_bg_cell, text_color=get_pos_color(), text_size=size.small)
last_sig = long_cond ? "BUY SIGNAL" : short_cond ? "SELL SIGNAL" : "HOLD"
last_col = long_cond ? c_bull : short_cond ? c_bear : c_neu
table.cell(dash, 0, 6, "Signal", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small)
table.cell(dash, 1, 6, last_sig, bgcolor=c_bg_cell, text_color=last_col, text_size=size.small)
// ==========================================
// 5. 시각화 (Visualization)
// ==========================================
p_upper_B = plot(upper_B, "Upper B", color=color.new(color.red, 50))
p_upper_A = plot(upper_A, "Upper A", color=color.new(color.red, 0))
p_basis = plot(basis, "Basis", color=color.gray)
p_lower_A = plot(lower_A, "Lower A", color=color.new(color.green, 0))
p_lower_B = plot(lower_B, "Lower B", color=color.new(color.green, 50))
fill(p_upper_B, p_upper_A, color=color.new(color.red, 90))
fill(p_lower_A, p_lower_B, color=color.new(color.green, 90))
plotshape(long_cond, title="Long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(short_cond, title="Short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
GEX Walls + Market Open Shading### Overview
This Pine Script (version 6) creates a TradingView indicator called **"GEX Walls + Market Open Shading"**. It overlays directly on the price chart and is designed for intraday trading, particularly for indices like SPX or ES futures. The script combines two main features:
- **GEX Walls**: Visual boxes and labels highlighting "Gamma Exposure" (GEX) levels—key support (Put Wall) and resistance (Call Wall) zones based on options gamma. It includes approach alerts.
- **Market Open Shading**: A semi-transparent background shade during a customizable post-market-open session (e.g., first 2 hours after 9:30 AM EST).
It uses up to 20 boxes and 20 labels, with right-scale positioning for better visibility on the price axis. The script detects new trading days to reset visuals dynamically.
### Key Inputs
The script is highly customizable via inputs grouped into sections:
#### GEX Walls Inputs
- **Call Wall** (default: 6900.0): Upper resistance level.
- **Put Wall** (default: 6850.0): Lower support level.
- **Buffer** (default: 3.0 points): Vertical padding around each wall for box thickness.
- **Alert Distance** (default: 10.0 points): Threshold for triggering "approach" alerts.
- **Colors**: Semi-transparent yellow for Call Wall boxes (#ffeb3b at 80% opacity), orange for Put Wall (#ff9800 at 80%).
- **Toggles**: Show/hide boxes; enable/disable alerts; restrict alerts to shaded session only.
- **Labels**: Text color (white), offset (bars to the right, default -2), size (tiny/small/normal/large).
#### Market Open Shading Inputs
- **Shade Color** (default: white at 90% transparency): Background fill during session.
- **Transparency** (0-100, default: 90): Opacity level.
- **Open Time** (default: 9:30 EST): Hour/minute for session start.
- **Duration**: Dropdown with pre-formatted options (e.g., "120 min: 11:30a EST / 8:30a PST" up to 195 min), showing both EST and PST end times for convenience.
- **Toggle**: Show/hide shading.
### How It Works
#### 1. Market Open Shading
- Calculates end time from open hour/minute + selected duration (e.g., 120 minutes from 9:30 AM EST = 11:30 AM EST).
- Builds a session string (e.g., "0930-1130") for TradingView's `time()` function.
- Detects if the current bar is within the session using `not na(time("", sessionString))`.
- Applies `bgcolor()` with the user-defined color/transparency only during the session.
- Helper functions format times in 12-hour AM/PM style (e.g., "11:30a") for labels, with EST/PST variants.
#### 2. Day Detection
- Uses `time("D")` to track daily changes (`ta.change(dayTime) != 0` signals a new day).
- Maintains variables for the current day's start bar index (`todayStartIndex`) and previous day's start (`prevStartIndex`).
- This ensures boxes span exactly from yesterday's open to today (intraday reset on new days).
#### 3. GEX Walls Visualization
- **Boxes**: Drawn once `prevStartIndex` is known (i.e., on the second day onward).
- Left edge: Previous day's start bar.
- Right edge: Current bar (extends live).
- Height: Wall level ± buffer (e.g., Call Wall box from 6900-3 to 6900+3).
- Updated dynamically with `box.set_*` functions; hidden (100% transparent) if toggled off.
- **Labels**: Placed at exact wall levels, offset to the right (e.g., 2 bars ahead for readability).
- Text: "CALL WALL: 6900.0" or "PUT WALL: 6850.0".
- Style: Right-aligned, black background (transparent), user-defined text color/size.
- Deleted if toggled off.
- All visuals use `xloc.bar_index` for bar-based positioning.
#### 4. Alerts
- **Call Wall Approach**: Triggers when close enters within `alertDistance` below the wall, but prior bar was further away (rising toward resistance). Message: "Price approaching Call Wall at from below (within points)".
- **Put Wall Approach**: Symmetric for falling toward support (within distance above wall).
- Filtered optionally to shaded session only.
- Uses `alertcondition()` with hidden plots (`display=display.none`) for dynamic message placeholders (e.g., `{{plot_0}}` inserts wall level).
### Notable Features & Behaviors
- **Intraday Focus**: Boxes/labels reset daily, making it ideal for day trading without historical clutter.
- **Time Zone Handling**: Defaults to EST for market open but shows PST equivalents in dropdowns (subtracts 3 hours).
- **Efficiency**: Uses `var` declarations for persistent objects (boxes/labels) to avoid recreation on every bar.
- **Edge Cases**: Handles label offsets (clamped -10 to 50 bars); session wrapping (e.g., overnight via %24); new chart loads (initializes on first bar).
- **Customization Depth**: 20+ inputs allow fine-tuning without code edits. Alerts integrate seamlessly with TradingView's system.
- **Limitations**: Relies on bar_index for historical spanning (best on lower timeframes like 1-5 min); no historical backfill for walls (live-only).
This script is a practical tool for options-aware traders monitoring gamma squeezes or pinning levels during market open volatility. To use it, paste into TradingView's Pine Editor, adjust inputs for your asset (e.g., update walls for current GEX data), and add to chart.
Entry ChecklistEntry Checklist
A comprehensive multi-factor analysis tool for stock and crypto entry decisions, combining fundamental, technical, and market sentiment indicators in a dynamic table display.
🎯 Overview
This advanced Pine Script indicator provides traders and investors with a systematic checklist for evaluating potential entry points. It consolidates critical market data into a clean, color-coded table that adapts based on asset type and data availability.
📊 Key Features
Market Context Analysis:
Seasonality: Historical S&P 500 monthly return patterns with strength/weakness labels
Market Breadth (S5TH): Percentage of S&P 500 stocks above their 50-day moving average
Fear/Greed Index (VIX): Market sentiment indicator with threshold-based color coding
Fundamental Analysis (Stocks Only):
Earnings Dates: Upcoming earnings announcement tracking with 14-day warning
Growth Metrics: Year-over-year sales and EPS growth rates
Acceleration: Quarter-over-quarter growth acceleration analysis
Sector & Industry Analysis:
Sector Relative Strength: 20-day performance vs SPY benchmark
Industry Relative Strength: Granular industry ETF performance comparison
120+ Industry ETF Mappings: Comprehensive sector and industry classifications
Technical Analysis:
IBD-Style RS Rating: Multi-timeframe relative strength scoring (1-99 scale)
RS vs SPX: Stock performance relative to S&P 500
RS vs Sector: Performance relative to sector ETF
RS vs Industry: Performance relative to industry ETF
🎨 Visual Design
Dynamic Table: Bottom-right overlay with professional dark theme
Color-Coded Signals: Green (bullish), red (bearish), neutral (white)






















