Relative Directional Index (RDI)🔍 Overview
The Relative Directional Index (RDI) is a hybrid tool that fuses the Average Directional and the Relative Strength Indices (ADX and RSI) into a single, highly visual interface. While the former captures trend strength, the latter reveals momentum shifts and potential exhaustion. Together, they can confirm trend structure, anticipate reversals, and sharpen the timing entries and exits.
📌 Why Combine ADX with RSI?
Most indicators focus on either trend-following (like ADX) or momentum detection (like RSI)—but rarely both. Each comes with trade-offs:
- ADX alone confirms trend strength but ignores momentum.
- RSI alone signals overbought/oversold, but lacks trend context.
The RDI resolves this by integrating both, offering:
- Smarter filters for trend entries
- Early warnings of momentum breakdowns
- More confident signal validation
🧠 Design Note: Fibonacci Harmony
All default values—5, 13, 21—are Fibonacci numbers. This is intentional, as these values reflect the natural rhythm of market cycles, and promote harmonic calibration between price action and indicator logic.
🔥 Key Features
✅ ADX Histogram
- Green bars = trend gaining strength
- Red bars = trend weakening
- Adjustable transparency for visual tuning
✅ ADX Line (Orange)
- Measures trend strength over time
- Rising = accelerating trend
- Falling = trend may be fading
✅ RSI Line (Lemon Yellow)
- Captures momentum surges and slowdowns
- Above 50 = bullish control
- Below 50 = bearish pressure
✅ Trend Strength Squares
- Bright green = strong uptrend
- Bright red = strong downtrend
- Faded colors = range-bound or indecisive
✅ ADX/RSI Crossover Markers
- Yellow square = RSI crosses above ADX → momentum building
- Orange square = ADX crosses above RSI → trend still dominant
✅ Customizable Reference Lines
- Yellow (50) = strong trend threshold
- Red (30) = weak trend zone
- Green (70) = overextended, potential exhaustion
_______________________________________________________
🎯 How to Trade with the RDI
The RDI helps traders identify momentum-supported trends, catch early reversals, and avoid false signals during consolidation.
✅ Trend Confirmation Entries
🔼 Bullish → Enter long on pullbacks or resistance breakouts
- ADX rising above 30
- RSI above 50
- Green trend square visible
🔽 Bearish → Enter short on breakdowns or failed retests
- ADX rising
- RSI below 50
- Red trend square visible
🧯 Exit if RSI crosses back against trend direction or ADX flattens
🚨 Reversal Setups Using Divergence
📈 Bullish Divergence → Long entry after confirmation (e.g. engulfing bar, volume spike)
- Price prints lower low
- RSI prints higher low
- Green triangle
📉 Bearish Divergence → Short entry on breakdown
- Price prints higher high
- RSI prints lower high
- Red triangle
Tip: Stronger if ADX is declining (fading trend strength)
🔂 Breakout Detection via Cross Markers
- Yellow square = RSI > ADX → breakout brewing
- Orange square = ADX > RSI → trend continuation likely
⏸️ Avoid Choppy Markets
- RSI between 45–55
- Faded trend squares
- Flat ADX below 20–30
🧠 Pro Tips
- Combine RDI with VWAPs, moving averages and/or pitchforks
- Watch for alignment between trend and momentum
- Use divergence markers as confirmation, not stand-alone triggers
_______________________________________________________
⚠️ Hidden Divergence (Optional)
The RDI includes optional hidden divergence detection. These signals suggest trend continuation but are off by default. Use with discretion—best in established trends, not sideways markets.
🙈 Hidden Bullish
- Price prints higher low
- RSI prints lower low
🙈 Hidden Bearish
- Price prints lower high
- RSI prints higher high
Komut dosyalarını "南方标普中国A股大盘红利低波50指数成分股行业分布及权重" için ara
Psych Level ScreenerThis Script is intended for Pine Screener and is not designed as a indicator!!!
Pine Screener is something TradingView has recently added and is still only a Beta version.
Pine Screener itself is currently only available to members that are Premium and above.
What it does:
This screener will actively look for tickers that are close to Pysch level in your watchlist.
Psych level here refers to price levels that are round numbers such as 50,100,1000.
Users can specify the offset from a psych level (in %) and scanner will scan for tickers that are within the offset. For example if offset is set at 5% then it will scan for tickers that are within +/-5% of a ticker. (for $100 psych level it will scan for ticker in $95-105 range)
Once scan is completed you will be able to see:
- Current price of ticker
- Closest psych level for that ticker
- % and $ move required for it to hit that psych level
- Ticker's day range and Average range (with % of average range completed for the day)
- Ticker volume and average volume
Setting up:
www.tradingview.com
Above link will help you guide how to setup Pine screener.
Use steps below to guide you the setup for this specific screener:
1. Open Pine Screener (open new tab, select screener the "Pine")
2. At the top, click on "Choose Indicator" and select "Psych Level Screener"
3. At the top again, click "Indicator Psych Level Screener" and select settings.
4. Change setting to your needs. Hit Apply when done.
a)"% offset from Psych Level" will scan for any stocks in your watchlist which are +/- from the offset you chose for any given psych level. Default is 5. (e.g. If offset is 5%, it will scan for stocks that are between $95-$105 vs $100 psych level, $190-$210 for $200 psych level and so on)
b) ATR length is number of previous trading days you want to include in your calculation. Moving Average Type is calculation method.
c) Rvol length is number of previous trading days you want to include in your calculation.
5. On top left, click "Price within specified offset of Psych. Level" and select true. Then select "Scan" which is located at the top next to "Indicator Psych Level Screener". This will filter out all the stock that meets the condition.
6. At the end of the column on the right there is a "+" symbol. From there you can add/remove columns. 30min/1hr/4hr/1D Trend are disabled by default so if this is needed please enable them.
7. You can change the order of ticker by ascending and descending order of each column label if needed. Just click on the arrow that comes up when you move the cursor to any of the column items.
8. You can specify advanced filter settings based on the variables in the column. (e.g., set price range of stock to filter out further) To do so, click on the column variable name in interest, located above the screener table (or right below "scan") and select "manual setup".
How to read the column:
Current Price: Shows current price of the ticker when scan was done. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH price.
Psych Level: Psych level the current price is near to.
% to Psych Level: Price movement in % necessary to get to the Psych level.
$ to Psych Level: Price movement in $ necessary to get to the Psych level.
DTR: Daily True Range of the stock. i.e. High - Low of the ticker on the day.
ATR: Average True Range of stock in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
DTR vs ATR: Amount of DTR a ticker has done in % with respect to ATR. (e.g., 90% means DTR is 90% of ATR)
Vol.: Volume of a ticker for the day. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH volume.
Avg. Vol: Average volume of a ticker in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
Rvol: Relative volume in percentage, measured by the ratio of day's volume and average volume.
30min/1hr/4hr/1D Trend: Trend status to see if the chart is Bullish or Bearish on each of the time frame. Bullishness or Bearishness is defined by the price being over or under the 34/50 cloud on each of the time frame. Output of 1 is Bullish, -1 is Bearish. 0 means price is sitting inside the 34/50 cloud. Currently Pine Screener does NOT support pre/post-hours data so 34/50 cloud is based on regular trading hours data ONLY.
Some things user should be aware of:
- Pine Screener itself is currently only available to TradingView members with Premium Subscription and above. (I can't to anything about this as this is NOT set by me, I have no control) For more info: www.tradingview.com
- The Pine Screener itself is a Beta version and this screener can stop working anytime depending on changes made by TradingView themselves. (Again I cannot control this)
- Pine Screener can only run on Watchlists for now. (as of 03/31/2025) You will have to prepare your own watchlists. In a Watchlist no more than 1000 tickers may be added. (This is TradingView rules)
- Psych level included are currently 50 to 1500 in steps of 50. If you need a specific number please let me know. Will add accordingly.
- Unfortunately this screener does not update automatically, so please hit "scan" to get latest screener result.
- I cannot add 10min trend to the column as Pine Screener does NOT support 10min timeframe as of now. (03/31/2025)
- This code is only meant for Pine Screener. I do NOT recommend using this as an indicator.
- Currently Pine Screener does NOT support pre/post-hours data. So data such as Price, Volume and EMA values are based on market hours data ONLY! (If I'm wrong about this please correct me / let me know and will make look into and make changes to the code)
Other useful links about Pine Screener:
Quick overview of the Screener’s functionality: www.tradingview.com
what do you need to know before you start working? : www.tradingview.com
These links will go over the setting up with GIFs so is easier to understand.
-----------------------------------------------------------------------------------------------------------------
If there are other column variables that you think is worth adding please let me know! Will try add it to the screener!
If you have any questions let me know as well, will reply soon as I can!
Have a good trading day and hope it helps!
MA Trend ScoreA Trend Score Indicator inspired by an interview by Navy Ramavat, where I liked the idea presented and decided to publish a script for it.
Disclaimer: I am not associated with Navy Ramavat in any manner.
The goal is to objectify the trend of an instrument and calculate a score which represents the trend strength and direction.
The score is calculated as follows:
If price is > EMA 20 add 1 to the score
If price is > EMA 50 add 1 to the score
If price is > EMA 100 add 1 to the score
If EMA 20 is > EMA 50 add 1 to the score
If EMA 20 is > EMA 100 add 1 to the score
If EMA 50 is > EMA 100 add 1 to the score
If EMA 20 is < EMA 50 deduct 1 from the score
If EMA 20 is < EMA 100 deduct 1 from the score
If EMA 50 is < EMA 100 deduct 1 from the score
The highest score can be 6, and lowest score can be -6
The trend score can be used as per your discretion on the long and short side.
An example of using the trend score on the long side for position sizing is:
100% position size if Score greater than 4
75% position size if Score between 2-4
50% position size if Score between 0-2
25% position size if Score between 0 and -2
0% position size if Score is less than -2
Trend Strength & Direction📌 Assumptions of the "Trend Strength & Direction" Model
This model is designed to measure both trend strength and trend direction, using a modified version of the ADX (Average Directional Index) while also identifying ranging markets. Below is a detailed breakdown of all key assumptions.
1️⃣ Using ADX as the Basis for Trend Strength
Why ADX?
The ADX (Average Directional Index) is one of the most commonly used indicators for measuring trend strength, regardless of direction.
How is it calculated?
ATR (Average True Range) is used to normalize volatility.
Directional movement (+DM and -DM) is smoothed with an Exponential Moving Average (EMA) to obtain the +DI (Positive Directional Indicator) and -DI (Negative Directional Indicator).
Trend strength is derived by normalizing the absolute difference between +DI and -DI, divided by the sum of both.
🔹 Assumption: A high ADX means the trend is strong (whether bullish or bearish).
2️⃣ 50-Period Moving Average for Trend Strength
Why add a moving average?
ADX can be very volatile in the short term.
A 50-period SMA (Simple Moving Average) is used to smooth out trend strength and identify sustained trends.
🔹 Assumption: The SMA reduces false signals caused by short-term ADX spikes.
3️⃣ Identifying a Ranging Market (ADX Below 35)
How is a ranging market defined?
If the trend strength (ADX) is below 35, the market is considered "ranging".
The 35-level threshold is chosen empirically since ADX values below this level often indicate a lack of strong price direction.
When the market is ranging, the background color turns yellow.
🔹 Assumption: ADX < 35 indicates a sideways market, so the indicator colors the background yellow.
4️⃣ Determining Trend Direction Using +DI and -DI
How is direction determined?
If +DI > -DI, the trend is bullish (green).
If -DI > +DI, the trend is bearish (red).
If ADX is below 35, the market is ranging and turns yellow.
🔹 Assumption: Trend direction is determined by the relationship between +DI and -DI, not ADX values.
5️⃣ Background Color to Highlight Market Conditions
Yellow background if ADX < 35 → Ranging market.
Green background if ADX ≥ 35 and bullish.
Red background if ADX ≥ 35 and bearish.
🔹 Assumption: The background color visually differentiates trending vs. ranging phases.
6️⃣ Reference Levels for ADX
Lateral Threshold (35) → Below this, the trend is weak or ranging.
Neutral Threshold (50) → Intermediate level indicating moderate trend strength.
Strong Trend Threshold (75) → Above this, the trend is very strong and possibly overextended.
🔹 Assumption: ADX above 75 indicates a very strong trend, potentially near exhaustion.
🔹 Summary of Key Assumptions
1️⃣ ADX is the core strength metric → Strong trends when ADX > 35, weak below 35.
2️⃣ The 50-period SMA smooths out volatility → Prevents false signals.
3️⃣ Ranging markets are defined as ADX < 35 → Yellow background color.
4️⃣ Trend direction is based on +DI vs. -DI → Green = bullish, Red = bearish.
5️⃣ Background colors enhance readability → Helps distinguish different market phases.
6️⃣ ADX reference levels (35, 50, 75) indicate increasing trend strength.
Conclusion
This model combines ADX with a moving average and color-based logic to highlight trend strength, trend direction, and sideways markets. It helps traders quickly identify the best conditions for entering or exiting trades. 🚀
Smooth RSI [MarktQuant]This indicator combines elements of the Relative Strength Index (RSI) and Rate of Change (RoC) to provide a smoother and potentially more insightful view of market momentum and price movement. The Smooth RSI calculates RSI values across four price points (high, open, low, close) to average them, offering a less volatile RSI signal. Additionally, it incorporates a Rate of Change for trend confirmation, enhancing the decision-making process for trade entries and exits.
Features:
Multi-RSI Calculation: RSI is computed for high, open, low, and close prices, then averaged to reduce noise.
Trend Confirmation with RoC: Uses the Rate of Change to validate the RSI signals, coloring bars based on the trend direction.
Visual Signals:
Bar colors change based on combined RSI and RoC signals.
Green for bullish signals (RSI above 50 and positive RoC).
Red for bearish signals (RSI below 50 and negative RoC).
Horizontal lines at 30, 50, and 70 to denote overbought, neutral, and oversold conditions.
Customizable Display:
Option to show/hide RSI plot or RoC plot for cleaner charts.
Candle plot overlay option to visualize current price action alongside the indicator.
Inputs:
RSI Length: Default 28. Adjusts the lookback period for RSI calculation.
RoC Length: Default 28. Sets the period for the Rate of Change calculation.
Plot Settings:
Show RSI - Toggle RSI plot visibility.
Show RoC - Toggle RoC plot visibility.
Usage:
Long signals are indicated when the average RSI is above 50 and the RoC is positive.
Short signals are suggested when the average RSI falls below 50 with a negative RoC.
The color coding helps visually confirm trends at a glance.
Notes:
This indicator is best used in conjunction with other analysis methods to confirm signals.
Adjust the length parameters based on your trading timeframe for optimal results.
Disclaimer:
This indicator does not guarantee trading success; use it as part of a comprehensive trading strategy. Always conduct your own analysis before making trading decisions.
Advanced MA and MACD PercentageIntroduction
The "Advanced MA and MACD Percentage" indicator is a powerful and innovative tool designed to help traders analyze financial markets with ease and precision. This indicator combines Moving Averages (MA) with the MACD indicator to assess the market’s overall trend and calculate the percentage of buy and sell signals based on current data.
Features
Multi-Timeframe Analysis:
Allows selecting your preferred timeframe for trend analysis, such as minute, hourly, daily, or weekly charts.
Support for Multiple Moving Average Types:
Offers the option to use either Simple Moving Average (SMA) or Exponential Moving Average (EMA), based on user preference.
Comprehensive MACD Analysis:
Analyzes the relationship between multiple moving averages (e.g., 20/50, 50/100) using MACD to provide deeper insights into market dynamics.
Calculation of Buy and Sell Percentages:
Computes the percentage of indicators signaling buy or sell conditions, providing a clear summary to assist trading decisions.
Intuitive Visual Interface:
Displays buy and sell percentages as two visible lines (green and red) on the chart.
Includes reference lines to clarify the range of percentages (100% to 0%).
How It Works
Moving Averages Calculation:
Calculates moving averages (20, 50, 100, 150, and 200) for the selected timeframe.
MACD Pair Analysis:
Computes the MACD to compare the performance between various moving average pairs, such as (20/50) and (50/100).
Identifying Buy and Sell Signals:
Counts the number of indicators signaling buy (price above MAs or positive MACD histogram).
Converts the count into percentages for both buy and sell signals.
Visual Representation:
Plots buy and sell percentages as clear lines (green for buy, red for sell).
Adds reference lines (100% and 0%) for easier interpretation.
How to Use the Indicator?
Settings:
Choose the type of moving average (SMA or EMA).
Select the timeframe that suits your strategy (e.g., 15 minutes, 1 hour, or daily).
Reading the Results:
If the buy percentage (green line) is above 50%, the overall trend is bullish (buy).
If the sell percentage (red line) is above 50%, the overall trend is bearish (sell).
Integrating Into Your Strategy:
Combine it with other indicators to confirm entry and exit signals.
Use it to quickly understand the market’s overall trend without needing complex manual analysis.
Benefits of the Indicator
Simplified Analysis: Provides a straightforward summary of the market's overall trend.
Adaptable to All Timeframes: Works perfectly on all timeframes.
Customizable: Allows users to adjust settings according to their needs.
Important Notes
This indicator does not provide direct buy or sell signals. Instead, it offers a summary of the market’s condition based on a combination of indicators.
It is recommended to use it alongside other technical analysis tools for precise trading signals.
Conclusion
The "Advanced MA and MACD Percentage" indicator is an ideal tool for traders who want to analyze the market using a combination of Moving Averages and MACD. It gives you a comprehensive overview of the overall trend, helping you make informed and quick trading decisions. Try it now and see the difference!
Triple CCI Strategy MFI Confirmed [Skyrexio]Overview
Triple CCI Strategy MFI Confirmed leverages 3 different periods Commodity Channel Index (CCI) indicator in conjunction Money Flow Index (MFI) and Exponential Moving Average (EMA) to obtain the high probability setups. Fast period CCI is used for having the high probability to enter in the direction of short term trend, middle and slow period CCI are used for confirmation, if market now likely in the mid and long-term uptrend. MFI is used to confirm trade with the money inflow/outflow with the high probability. EMA is used as an additional trend filter. Moreover, strategy uses exponential moving average (EMA) to trail the price when it reaches the specific level. More information in "Methodology" and "Justification of Methodology" paragraphs. The strategy opens only long trades.
Unique Features
Dynamic stop-loss system: Instead of fixed stop-loss level strategy utilizes average true range (ATR) multiplied by user given number subtracted from the position entry price as a dynamic stop loss level.
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Four layers trade filtering system: Strategy utilizes two different period CCI indicators, MFI and EMA indicators to confirm the signals produced by fast period CCI.
Trailing take profit level: After reaching the trailing profit activation level scrip activate the trailing of long trade using EMA. More information in methodology.
Methodology
The strategy opens long trade when the following price met the conditions:
Fast period CCI shall crossover the zero-line.
Slow and Middle period CCI shall be above zero-lines.
Price shall close above the EMA. Crossover is not obligatory
MFI shall be above 50
When long trade is executed, strategy set the stop-loss level at the price ATR multiplied by user-given value below the entry price. This level is recalculated on every next candle close, adjusting to the current market volatility.
At the same time strategy set up the trailing stop validation level. When the price crosses the level equals entry price plus ATR multiplied by user-given value script starts to trail the price with EMA. If price closes below EMA long trade is closed. When the trailing starts, script prints the label “Trailing Activated”.
Strategy settings
In the inputs window user can setup the following strategy settings:
ATR Stop Loss (by default = 1.75)
ATR Trailing Profit Activation Level (by default = 2.25)
CCI Fast Length (by default = 14, used for calculation short term period CCI)
CCI Middle Length (by default = 25, used for calculation short term period CCI)
CCI Slow Length (by default = 50, used for calculation long term period CCI)
MFI Length (by default = 14, used for calculation MFI
EMA Length (by default = 50, period of EMA, used for trend filtering EMA calculation)
Trailing EMA Length (by default = 20)
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Before understanding why this particular combination of indicator has been chosen let's briefly explain what is CCI, MFI and EMA.
The Commodity Channel Index (CCI) is a momentum-based technical indicator that measures the deviation of a security's price from its average price over a specific period. It helps traders identify overbought or oversold conditions and potential trend reversals.
The CCI formula is:
CCI = (Typical Price − SMA) / (0.015 × Mean Deviation)
Typical Price (TP): This is calculated as the average of the high, low, and closing prices for the period.
Simple Moving Average (SMA): This is the average of the Typical Prices over a specific number of periods.
Mean Deviation: This is the average of the absolute differences between the Typical Price and the SMA.
The result is a value that typically fluctuates between +100 and -100, though it is not bounded and can go higher or lower depending on the price movement.
The Money Flow Index (MFI) is a technical indicator that measures the strength of money flowing into and out of a security. It combines price and volume data to assess buying and selling pressure and is often used to identify overbought or oversold conditions. The formula for MFI involves several steps:
1. Calculate the Typical Price (TP):
TP = (high + low + close) / 3
2. Calculate the Raw Money Flow (RMF):
Raw Money Flow = TP × Volume
3. Determine Positive and Negative Money Flow:
If the current TP is greater than the previous TP, it's Positive Money Flow.
If the current TP is less than the previous TP, it's Negative Money Flow.
4. Calculate the Money Flow Ratio (MFR):
Money Flow Ratio = Sum of Positive Money Flow (over n periods) / Sum of Negative Money Flow (over n periods)
5. Calculate the Money Flow Index (MFI):
MFI = 100 − (100 / (1 + Money Flow Ratio))
MFI above 80 can be considered as overbought, below 20 - oversold.
The Exponential Moving Average (EMA) is a type of moving average that places greater weight and significance on the most recent data points. It is widely used in technical analysis to smooth price data and identify trends more quickly than the Simple Moving Average (SMA).
Formula:
1. Calculate the multiplier
Multiplier = 2 / (n + 1) , Where n is the number of periods.
2. EMA Calculation
EMA = (Current Price) × Multiplier + (Previous EMA) × (1 − Multiplier)
This strategy leverages Fast period CCI, which shall break the zero line to the upside to say that probability of short term trend change to the upside increased. This zero line crossover shall be confirmed by the Middle and Slow periods CCI Indicators. At the moment of breakout these two CCIs shall be above 0, indicating that there is a high probability that price is in middle and long term uptrend. This approach increases chances to have a long trade setup in the direction of mid-term and long-term trends when the short-term trend starts to reverse to the upside.
Additionally strategy uses MFI to have a greater probability that fast CCI breakout is confirmed by this indicator. We consider the values of MFI above 50 as a higher probability that trend change from downtrend to the uptrend is real. Script opens long trades only if MFI is above 50. As you already know from the MFI description, it incorporates volume in its calculation, therefore we have another one confirmation factor.
Finally, strategy uses EMA an additional trend filter. It allows to open long trades only if price close above EMA (by default 50 period). It increases the probability of taking long trades only in the direction of the trend.
ATR is used to adjust the strategy risk management to the current market volatility. If volatility is low, we don’t need the large stop loss to understand the there is a high probability that we made a mistake opening the trade. User can setup the settings ATR Stop Loss and ATR Trailing Profit Activation Level to realize his own risk to reward preferences, but the unique feature of a strategy is that after reaching trailing profit activation level strategy is trying to follow the trend until it is likely to be finished instead of using fixed risk management settings. It allows sometimes to be involved in the large movements. It’s also important to make a note, that script uses another one EMA (by default = 20 period) as a trailing profit level.
Backtest Results
Operating window: Date range of backtests is 2022.04.01 - 2024.11.25. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 50%
Maximum Single Position Loss: -4.13%
Maximum Single Profit: +19.66%
Net Profit: +5421.21 USDT (+54.21%)
Total Trades: 108 (44.44% win rate)
Profit Factor: 2.006
Maximum Accumulated Loss: 777.40 USDT (-7.77%)
Average Profit per Trade: 50.20 USDT (+0.85%)
Average Trade Duration: 44 hours
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 2h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
Dynamic Support and Resistance by HCDuranThis indicator dynamically plots support and resistance levels based on price action. It calculates the strongest support and resistance levels using the highest and lowest prices over a specified period, and visualizes these levels with different colors. Strong support and resistance are marked in **green** and **red** respectively, while **mid-range** support and resistance levels are displayed in **yellow**.
### Features:
- **Strong Support (Green):** The lowest price level over the last 50 bars.
- **Strong Resistance (Red):** The highest price level over the last 50 bars.
- **Mid Support (Yellow):** A support level above the strong support but below the resistance range.
- **Mid Resistance (Yellow):** A resistance level below the strong resistance but above the support range.
### Usage:
1. **Support and Resistance:** The indicator calculates dynamic support and resistance levels based on the most recent price action over a specified lookback period (e.g., 50 bars). These levels are then plotted on the chart for easy visualization.
2. **Alerts:** Alerts are triggered when the price crosses below the strong support or above the strong resistance. This can be useful for identifying potential breakouts or reversals.
### Help for Users:
This indicator helps to identify potential price reversal points by plotting dynamic support and resistance levels. Strong support or resistance levels can indicate areas where the price is likely to reverse, while mid-range levels can provide additional insights into price trends and ranges.
**Note:** The performance of this indicator may vary depending on the selected lookback period and time frame. It is recommended to experiment with different timeframes to see how the indicator performs under various market conditions.
-------------------------------------------------------------------------------------------------------------------
Bu indikatör, fiyat hareketlerine dayalı olarak dinamik destek ve direnç seviyelerini çizer. En yüksek ve en düşük seviyeler arasındaki farkı göz önünde bulundurarak, güçlü direnç ve destek seviyelerini kırmızı ve yeşil renklerle, orta seviyeleri ise sarı renk ile gösterir.
### Özellikler:
- **Güçlü Destek (Yeşil):** En düşük fiyat seviyesinin 50 barlık bir zaman dilimi boyunca belirlenen seviyesi.
- **Güçlü Direnç (Kırmızı):** En yüksek fiyat seviyesinin 50 barlık bir zaman dilimi boyunca belirlenen seviyesi.
- **Orta Destek (Sarı):** Destek seviyesinin üstünde, ancak güçlü destek seviyesinden daha yüksek bir seviyedir.
- **Orta Direnç (Sarı):** Direnç seviyesinin altında, ancak güçlü direnç seviyesinden daha düşük bir seviyedir.
### Kullanım:
1. **Destek ve Direnç:** Bu indikatör, belirli bir süre dilimindeki fiyat hareketlerine dayalı olarak destek ve direnç seviyelerini belirler ve çizer. Fiyat bu seviyelere yaklaşırken, seviyelerin ne kadar güçlü olduğunu görsel olarak değerlendirebilirsiniz.
2. **Uyarılar:** İndikatör, fiyatın güçlü destek seviyesinin altına düşmesi veya güçlü direnç seviyesinin üstüne çıkması durumunda uyarılar tetikler. Bu, trade kararları alırken önemli sinyaller sağlayabilir.
### Kullanıcıya Yardım:
Bu indikatör, dinamik destek ve direnç seviyeleri belirleyerek, potansiyel geri dönüş noktalarını ve fiyat hareketinin yönünü anlamaya yardımcı olur. Fiyatın güçlü seviyeleri kırması, önemli trade fırsatları gösterebilir.
**Not:** İndikatörün performansı, bakılan zaman dilimine ve seçilen lookback periyoduna göre değişebilir. Farklı zaman dilimlerinde kullanarak daha doğru sinyaller elde edebilirsiniz.
Universal Ratio Trend Matrix [InvestorUnknown]The Universal Ratio Trend Matrix is designed for trend analysis on asset/asset ratios, supporting up to 40 different assets. Its primary purpose is to help identify which assets are outperforming others within a selection, providing a broad overview of market trends through a matrix of ratios. The indicator automatically expands the matrix based on the number of assets chosen, simplifying the process of comparing multiple assets in terms of performance.
Key features include the ability to choose from a narrow selection of indicators to perform the ratio trend analysis, allowing users to apply well-defined metrics to their comparison.
Drawback: Due to the computational intensity involved in calculating ratios across many assets, the indicator has a limitation related to loading speed. TradingView has time limits for calculations, and for users on the basic (free) plan, this could result in frequent errors due to exceeded time limits. To use the indicator effectively, users with any paid plans should run it on timeframes higher than 8h (the lowest timeframe on which it managed to load with 40 assets), as lower timeframes may not reliably load.
Indicators:
RSI_raw: Simple function to calculate the Relative Strength Index (RSI) of a source (asset price).
RSI_sma: Calculates RSI followed by a Simple Moving Average (SMA).
RSI_ema: Calculates RSI followed by an Exponential Moving Average (EMA).
CCI: Calculates the Commodity Channel Index (CCI).
Fisher: Implements the Fisher Transform to normalize prices.
Utility Functions:
f_remove_exchange_name: Strips the exchange name from asset tickers (e.g., "INDEX:BTCUSD" to "BTCUSD").
f_remove_exchange_name(simple string name) =>
string parts = str.split(name, ":")
string result = array.size(parts) > 1 ? array.get(parts, 1) : name
result
f_get_price: Retrieves the closing price of a given asset ticker using request.security().
f_constant_src: Checks if the source data is constant by comparing multiple consecutive values.
Inputs:
General settings allow users to select the number of tickers for analysis (used_assets) and choose the trend indicator (RSI, CCI, Fisher, etc.).
Table settings customize how trend scores are displayed in terms of text size, header visibility, highlighting options, and top-performing asset identification.
The script includes inputs for up to 40 assets, allowing the user to select various cryptocurrencies (e.g., BTCUSD, ETHUSD, SOLUSD) or other assets for trend analysis.
Price Arrays:
Price values for each asset are stored in variables (price_a1 to price_a40) initialized as na. These prices are updated only for the number of assets specified by the user (used_assets).
Trend scores for each asset are stored in separate arrays
// declare price variables as "na"
var float price_a1 = na, var float price_a2 = na, var float price_a3 = na, var float price_a4 = na, var float price_a5 = na
var float price_a6 = na, var float price_a7 = na, var float price_a8 = na, var float price_a9 = na, var float price_a10 = na
var float price_a11 = na, var float price_a12 = na, var float price_a13 = na, var float price_a14 = na, var float price_a15 = na
var float price_a16 = na, var float price_a17 = na, var float price_a18 = na, var float price_a19 = na, var float price_a20 = na
var float price_a21 = na, var float price_a22 = na, var float price_a23 = na, var float price_a24 = na, var float price_a25 = na
var float price_a26 = na, var float price_a27 = na, var float price_a28 = na, var float price_a29 = na, var float price_a30 = na
var float price_a31 = na, var float price_a32 = na, var float price_a33 = na, var float price_a34 = na, var float price_a35 = na
var float price_a36 = na, var float price_a37 = na, var float price_a38 = na, var float price_a39 = na, var float price_a40 = na
// create "empty" arrays to store trend scores
var a1_array = array.new_int(40, 0), var a2_array = array.new_int(40, 0), var a3_array = array.new_int(40, 0), var a4_array = array.new_int(40, 0)
var a5_array = array.new_int(40, 0), var a6_array = array.new_int(40, 0), var a7_array = array.new_int(40, 0), var a8_array = array.new_int(40, 0)
var a9_array = array.new_int(40, 0), var a10_array = array.new_int(40, 0), var a11_array = array.new_int(40, 0), var a12_array = array.new_int(40, 0)
var a13_array = array.new_int(40, 0), var a14_array = array.new_int(40, 0), var a15_array = array.new_int(40, 0), var a16_array = array.new_int(40, 0)
var a17_array = array.new_int(40, 0), var a18_array = array.new_int(40, 0), var a19_array = array.new_int(40, 0), var a20_array = array.new_int(40, 0)
var a21_array = array.new_int(40, 0), var a22_array = array.new_int(40, 0), var a23_array = array.new_int(40, 0), var a24_array = array.new_int(40, 0)
var a25_array = array.new_int(40, 0), var a26_array = array.new_int(40, 0), var a27_array = array.new_int(40, 0), var a28_array = array.new_int(40, 0)
var a29_array = array.new_int(40, 0), var a30_array = array.new_int(40, 0), var a31_array = array.new_int(40, 0), var a32_array = array.new_int(40, 0)
var a33_array = array.new_int(40, 0), var a34_array = array.new_int(40, 0), var a35_array = array.new_int(40, 0), var a36_array = array.new_int(40, 0)
var a37_array = array.new_int(40, 0), var a38_array = array.new_int(40, 0), var a39_array = array.new_int(40, 0), var a40_array = array.new_int(40, 0)
f_get_price(simple string ticker) =>
request.security(ticker, "", close)
// Prices for each USED asset
f_get_asset_price(asset_number, ticker) =>
if (used_assets >= asset_number)
f_get_price(ticker)
else
na
// overwrite empty variables with the prices if "used_assets" is greater or equal to the asset number
if barstate.isconfirmed // use barstate.isconfirmed to avoid "na prices" and calculation errors that result in empty cells in the table
price_a1 := f_get_asset_price(1, asset1), price_a2 := f_get_asset_price(2, asset2), price_a3 := f_get_asset_price(3, asset3), price_a4 := f_get_asset_price(4, asset4)
price_a5 := f_get_asset_price(5, asset5), price_a6 := f_get_asset_price(6, asset6), price_a7 := f_get_asset_price(7, asset7), price_a8 := f_get_asset_price(8, asset8)
price_a9 := f_get_asset_price(9, asset9), price_a10 := f_get_asset_price(10, asset10), price_a11 := f_get_asset_price(11, asset11), price_a12 := f_get_asset_price(12, asset12)
price_a13 := f_get_asset_price(13, asset13), price_a14 := f_get_asset_price(14, asset14), price_a15 := f_get_asset_price(15, asset15), price_a16 := f_get_asset_price(16, asset16)
price_a17 := f_get_asset_price(17, asset17), price_a18 := f_get_asset_price(18, asset18), price_a19 := f_get_asset_price(19, asset19), price_a20 := f_get_asset_price(20, asset20)
price_a21 := f_get_asset_price(21, asset21), price_a22 := f_get_asset_price(22, asset22), price_a23 := f_get_asset_price(23, asset23), price_a24 := f_get_asset_price(24, asset24)
price_a25 := f_get_asset_price(25, asset25), price_a26 := f_get_asset_price(26, asset26), price_a27 := f_get_asset_price(27, asset27), price_a28 := f_get_asset_price(28, asset28)
price_a29 := f_get_asset_price(29, asset29), price_a30 := f_get_asset_price(30, asset30), price_a31 := f_get_asset_price(31, asset31), price_a32 := f_get_asset_price(32, asset32)
price_a33 := f_get_asset_price(33, asset33), price_a34 := f_get_asset_price(34, asset34), price_a35 := f_get_asset_price(35, asset35), price_a36 := f_get_asset_price(36, asset36)
price_a37 := f_get_asset_price(37, asset37), price_a38 := f_get_asset_price(38, asset38), price_a39 := f_get_asset_price(39, asset39), price_a40 := f_get_asset_price(40, asset40)
Universal Indicator Calculation (f_calc_score):
This function allows switching between different trend indicators (RSI, CCI, Fisher) for flexibility.
It uses a switch-case structure to calculate the indicator score, where a positive trend is denoted by 1 and a negative trend by 0. Each indicator has its own logic to determine whether the asset is trending up or down.
// use switch to allow "universality" in indicator selection
f_calc_score(source, trend_indicator, int_1, int_2) =>
int score = na
if (not f_constant_src(source)) and source > 0.0 // Skip if you are using the same assets for ratio (for example BTC/BTC)
x = switch trend_indicator
"RSI (Raw)" => RSI_raw(source, int_1)
"RSI (SMA)" => RSI_sma(source, int_1, int_2)
"RSI (EMA)" => RSI_ema(source, int_1, int_2)
"CCI" => CCI(source, int_1)
"Fisher" => Fisher(source, int_1)
y = switch trend_indicator
"RSI (Raw)" => x > 50 ? 1 : 0
"RSI (SMA)" => x > 50 ? 1 : 0
"RSI (EMA)" => x > 50 ? 1 : 0
"CCI" => x > 0 ? 1 : 0
"Fisher" => x > x ? 1 : 0
score := y
else
score := 0
score
Array Setting Function (f_array_set):
This function populates an array with scores calculated for each asset based on a base price (p_base) divided by the prices of the individual assets.
It processes multiple assets (up to 40), calling the f_calc_score function for each.
// function to set values into the arrays
f_array_set(a_array, p_base) =>
array.set(a_array, 0, f_calc_score(p_base / price_a1, trend_indicator, int_1, int_2))
array.set(a_array, 1, f_calc_score(p_base / price_a2, trend_indicator, int_1, int_2))
array.set(a_array, 2, f_calc_score(p_base / price_a3, trend_indicator, int_1, int_2))
array.set(a_array, 3, f_calc_score(p_base / price_a4, trend_indicator, int_1, int_2))
array.set(a_array, 4, f_calc_score(p_base / price_a5, trend_indicator, int_1, int_2))
array.set(a_array, 5, f_calc_score(p_base / price_a6, trend_indicator, int_1, int_2))
array.set(a_array, 6, f_calc_score(p_base / price_a7, trend_indicator, int_1, int_2))
array.set(a_array, 7, f_calc_score(p_base / price_a8, trend_indicator, int_1, int_2))
array.set(a_array, 8, f_calc_score(p_base / price_a9, trend_indicator, int_1, int_2))
array.set(a_array, 9, f_calc_score(p_base / price_a10, trend_indicator, int_1, int_2))
array.set(a_array, 10, f_calc_score(p_base / price_a11, trend_indicator, int_1, int_2))
array.set(a_array, 11, f_calc_score(p_base / price_a12, trend_indicator, int_1, int_2))
array.set(a_array, 12, f_calc_score(p_base / price_a13, trend_indicator, int_1, int_2))
array.set(a_array, 13, f_calc_score(p_base / price_a14, trend_indicator, int_1, int_2))
array.set(a_array, 14, f_calc_score(p_base / price_a15, trend_indicator, int_1, int_2))
array.set(a_array, 15, f_calc_score(p_base / price_a16, trend_indicator, int_1, int_2))
array.set(a_array, 16, f_calc_score(p_base / price_a17, trend_indicator, int_1, int_2))
array.set(a_array, 17, f_calc_score(p_base / price_a18, trend_indicator, int_1, int_2))
array.set(a_array, 18, f_calc_score(p_base / price_a19, trend_indicator, int_1, int_2))
array.set(a_array, 19, f_calc_score(p_base / price_a20, trend_indicator, int_1, int_2))
array.set(a_array, 20, f_calc_score(p_base / price_a21, trend_indicator, int_1, int_2))
array.set(a_array, 21, f_calc_score(p_base / price_a22, trend_indicator, int_1, int_2))
array.set(a_array, 22, f_calc_score(p_base / price_a23, trend_indicator, int_1, int_2))
array.set(a_array, 23, f_calc_score(p_base / price_a24, trend_indicator, int_1, int_2))
array.set(a_array, 24, f_calc_score(p_base / price_a25, trend_indicator, int_1, int_2))
array.set(a_array, 25, f_calc_score(p_base / price_a26, trend_indicator, int_1, int_2))
array.set(a_array, 26, f_calc_score(p_base / price_a27, trend_indicator, int_1, int_2))
array.set(a_array, 27, f_calc_score(p_base / price_a28, trend_indicator, int_1, int_2))
array.set(a_array, 28, f_calc_score(p_base / price_a29, trend_indicator, int_1, int_2))
array.set(a_array, 29, f_calc_score(p_base / price_a30, trend_indicator, int_1, int_2))
array.set(a_array, 30, f_calc_score(p_base / price_a31, trend_indicator, int_1, int_2))
array.set(a_array, 31, f_calc_score(p_base / price_a32, trend_indicator, int_1, int_2))
array.set(a_array, 32, f_calc_score(p_base / price_a33, trend_indicator, int_1, int_2))
array.set(a_array, 33, f_calc_score(p_base / price_a34, trend_indicator, int_1, int_2))
array.set(a_array, 34, f_calc_score(p_base / price_a35, trend_indicator, int_1, int_2))
array.set(a_array, 35, f_calc_score(p_base / price_a36, trend_indicator, int_1, int_2))
array.set(a_array, 36, f_calc_score(p_base / price_a37, trend_indicator, int_1, int_2))
array.set(a_array, 37, f_calc_score(p_base / price_a38, trend_indicator, int_1, int_2))
array.set(a_array, 38, f_calc_score(p_base / price_a39, trend_indicator, int_1, int_2))
array.set(a_array, 39, f_calc_score(p_base / price_a40, trend_indicator, int_1, int_2))
a_array
Conditional Array Setting (f_arrayset):
This function checks if the number of used assets is greater than or equal to a specified number before populating the arrays.
// only set values into arrays for USED assets
f_arrayset(asset_number, a_array, p_base) =>
if (used_assets >= asset_number)
f_array_set(a_array, p_base)
else
na
Main Logic
The main logic initializes arrays to store scores for each asset. Each array corresponds to one asset's performance score.
Setting Trend Values: The code calls f_arrayset for each asset, populating the respective arrays with calculated scores based on the asset prices.
Combining Arrays: A combined_array is created to hold all the scores from individual asset arrays. This array facilitates further analysis, allowing for an overview of the performance scores of all assets at once.
// create a combined array (work-around since pinescript doesn't support having array of arrays)
var combined_array = array.new_int(40 * 40, 0)
if barstate.islast
for i = 0 to 39
array.set(combined_array, i, array.get(a1_array, i))
array.set(combined_array, i + (40 * 1), array.get(a2_array, i))
array.set(combined_array, i + (40 * 2), array.get(a3_array, i))
array.set(combined_array, i + (40 * 3), array.get(a4_array, i))
array.set(combined_array, i + (40 * 4), array.get(a5_array, i))
array.set(combined_array, i + (40 * 5), array.get(a6_array, i))
array.set(combined_array, i + (40 * 6), array.get(a7_array, i))
array.set(combined_array, i + (40 * 7), array.get(a8_array, i))
array.set(combined_array, i + (40 * 8), array.get(a9_array, i))
array.set(combined_array, i + (40 * 9), array.get(a10_array, i))
array.set(combined_array, i + (40 * 10), array.get(a11_array, i))
array.set(combined_array, i + (40 * 11), array.get(a12_array, i))
array.set(combined_array, i + (40 * 12), array.get(a13_array, i))
array.set(combined_array, i + (40 * 13), array.get(a14_array, i))
array.set(combined_array, i + (40 * 14), array.get(a15_array, i))
array.set(combined_array, i + (40 * 15), array.get(a16_array, i))
array.set(combined_array, i + (40 * 16), array.get(a17_array, i))
array.set(combined_array, i + (40 * 17), array.get(a18_array, i))
array.set(combined_array, i + (40 * 18), array.get(a19_array, i))
array.set(combined_array, i + (40 * 19), array.get(a20_array, i))
array.set(combined_array, i + (40 * 20), array.get(a21_array, i))
array.set(combined_array, i + (40 * 21), array.get(a22_array, i))
array.set(combined_array, i + (40 * 22), array.get(a23_array, i))
array.set(combined_array, i + (40 * 23), array.get(a24_array, i))
array.set(combined_array, i + (40 * 24), array.get(a25_array, i))
array.set(combined_array, i + (40 * 25), array.get(a26_array, i))
array.set(combined_array, i + (40 * 26), array.get(a27_array, i))
array.set(combined_array, i + (40 * 27), array.get(a28_array, i))
array.set(combined_array, i + (40 * 28), array.get(a29_array, i))
array.set(combined_array, i + (40 * 29), array.get(a30_array, i))
array.set(combined_array, i + (40 * 30), array.get(a31_array, i))
array.set(combined_array, i + (40 * 31), array.get(a32_array, i))
array.set(combined_array, i + (40 * 32), array.get(a33_array, i))
array.set(combined_array, i + (40 * 33), array.get(a34_array, i))
array.set(combined_array, i + (40 * 34), array.get(a35_array, i))
array.set(combined_array, i + (40 * 35), array.get(a36_array, i))
array.set(combined_array, i + (40 * 36), array.get(a37_array, i))
array.set(combined_array, i + (40 * 37), array.get(a38_array, i))
array.set(combined_array, i + (40 * 38), array.get(a39_array, i))
array.set(combined_array, i + (40 * 39), array.get(a40_array, i))
Calculating Sums: A separate array_sums is created to store the total score for each asset by summing the values of their respective score arrays. This allows for easy comparison of overall performance.
Ranking Assets: The final part of the code ranks the assets based on their total scores stored in array_sums. It assigns a rank to each asset, where the asset with the highest score receives the highest rank.
// create array for asset RANK based on array.sum
var ranks = array.new_int(used_assets, 0)
// for loop that calculates the rank of each asset
if barstate.islast
for i = 0 to (used_assets - 1)
int rank = 1
for x = 0 to (used_assets - 1)
if i != x
if array.get(array_sums, i) < array.get(array_sums, x)
rank := rank + 1
array.set(ranks, i, rank)
Dynamic Table Creation
Initialization: The table is initialized with a base structure that includes headers for asset names, scores, and ranks. The headers are set to remain constant, ensuring clarity for users as they interpret the displayed data.
Data Population: As scores are calculated for each asset, the corresponding values are dynamically inserted into the table. This is achieved through a loop that iterates over the scores and ranks stored in the combined_array and array_sums, respectively.
Automatic Extending Mechanism
Variable Asset Count: The code checks the number of assets defined by the user. Instead of hardcoding the number of rows in the table, it uses a variable to determine the extent of the data that needs to be displayed. This allows the table to expand or contract based on the number of assets being analyzed.
Dynamic Row Generation: Within the loop that populates the table, the code appends new rows for each asset based on the current asset count. The structure of each row includes the asset name, its score, and its rank, ensuring that the table remains consistent regardless of how many assets are involved.
// Automatically extending table based on the number of used assets
var table table = table.new(position.bottom_center, 50, 50, color.new(color.black, 100), color.white, 3, color.white, 1)
if barstate.islast
if not hide_head
table.cell(table, 0, 0, "Universal Ratio Trend Matrix", text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.merge_cells(table, 0, 0, used_assets + 3, 0)
if not hide_inps
table.cell(table, 0, 1,
text = "Inputs: You are using " + str.tostring(trend_indicator) + ", which takes: " + str.tostring(f_get_input(trend_indicator)),
text_color = color.white, text_size = fontSize), table.merge_cells(table, 0, 1, used_assets + 3, 1)
table.cell(table, 0, 2, "Assets", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, 2, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.cell(table, 0, x + 3, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = f_asset_col(array.get(ranks, x)), text_size = fontSize)
for r = 0 to (used_assets - 1)
for c = 0 to (used_assets - 1)
table.cell(table, c + 1, r + 3, text = str.tostring(array.get(combined_array, c + (r * 40))),
text_color = hl_type == "Text" ? f_get_col(array.get(combined_array, c + (r * 40))) : color.white, text_size = fontSize,
bgcolor = hl_type == "Background" ? f_get_col(array.get(combined_array, c + (r * 40))) : na)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, x + 3, "", bgcolor = #010c3b)
table.cell(table, used_assets + 1, 2, "", bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 1, x + 3, "==>", text_color = color.white)
table.cell(table, used_assets + 2, 2, "SUM", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
table.cell(table, used_assets + 3, 2, "RANK", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 2, x + 3,
text = str.tostring(array.get(array_sums, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_sum(array.get(array_sums, x), array.get(ranks, x)))
table.cell(table, used_assets + 3, x + 3,
text = str.tostring(array.get(ranks, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_rank(array.get(ranks, x)))
Stronger Buy/Sell Signals This custom Pine Script indicator is designed to detect strong buy and sell signals based on price action trends and momentum, with an emphasis on using two simple moving averages (SMAs) for trend identification and RSI (Relative Strength Index) impulses for additional confirmation. The script is optimized to ensure that signals are not triggered too frequently, only highlighting strong trend-based opportunities. Additionally, the script is built as an overlay to keep the chart clean and prevent any visual shrinking caused by extra indicators.
Key Features
1. Moving Averages (SMAs):
- 11-period SMA (short-term trend): This moving average is used to track short-term price movement and serves as the primary trend filter.
- 50-period SMA (medium-term trend): This moving average is used to track the medium-term price trend, providing additional confirmation for trend direction.
The price must be above both SMAs for a buy signal or below both SMAs for a sell signal, ensuring that signals are only triggered in well-defined trends.
2. RSI Momentum Confirmation:
- Although the RSI is not displayed on the chart, it plays a critical role in filtering the signals.
- The RSI is calculated using the standard 14-period formula, and an additional condition requires that the RSI must show an upward or downward momentum (impulse) for buy or sell signals, respectively.
- The RSI impulse is measured by comparing the RSI value to its 5-period moving average:
- Upward impulse for a buy signal.
- Downward impulse for a sell signal.
3. Buy Signal:
- A strong buy signal is triggered when:
- The price is above both the 11-period and 50-period SMAs (confirming a bullish trend).
- The RSI is showing upward momentum, implying growing buying pressure.
- When both of these conditions are met, a green "Strong Buy" label will appear below the price bars, indicating a strong buying opportunity.
4. Sell Signal:
- A strong sell signal is triggered when:
- The price is below both the 11-period and 50-period SMAs (confirming a bearish trend).
- The RSI is showing downward momentum, implying growing selling pressure.
- When both of these conditions are met, a red "Strong Sell" label will appear above the price bars, indicating a strong selling opportunity.
5. No RSI Display:
- While the RSI is used for internal signal filtering, it is not displayed on the chart. This decision ensures that the chart remains uncluttered, with only the important buy/sell signals and moving averages visible.
6. Overlay-Only Indicator:
- This script is designed as an overlay indicator, meaning it plots directly on the price chart without adding additional panes. This helps the chart maintain its size and avoids shrinking the view.
---
Use Case
This indicator is ideal for traders who want to:
- Focus on strong, trend-confirming signals while avoiding noise from weaker setups.
- Trade in alignment with the trend , as defined by both short-term (11-SMA) and medium-term (50-SMA) price action.
- Filter signals based on momentum without cluttering their charts with additional indicators.
Customization Options
- SMA Periods : You can adjust the periods for the 11-SMA and 50-SMA depending on your preferred timeframe and trading strategy.
- RSI Conditions : If you want to add or remove sensitivity from the buy and sell signals, you can modify the RSI impulse logic to adjust the thresholds for what qualifies as an upward or downward impulse.
---
Conclusion
The "Stronger Buy/Sell Signals" Pine Script is a powerful trend-following tool that uses a combination of moving averages and RSI momentum to generate reliable trading signals. The indicator is designed to help traders stay in strong trends, while filtering out weaker signals that don't meet strict criteria. By not displaying the RSI directly and keeping the chart focused on key signals, this script maintains a clean and functional trading setup.
This indicator is best used by traders who prefer clear visual guidance for buying and selling opportunities, especially in trending markets.
---
Feel free to adjust the parameters to suit your specific trading style! Let me know if you'd like any additional features or modifications.
Aurous - Horizontal Rays Define Pip Size:
Since 1 pip for XAUUSD is usually considered as 0.1, the pip Size is set to 0.1. A 50-pip interval is therefore 50 * 0.1 = 5.0.
Nearest Pip Level Calculation:
We find the nearest 50-pip level based on the current price of XAUUSD. The formula nearestPipLevel = round(close / pipInterval) * pipInterval rounds the current price to the nearest multiple of the 50-pip interval.
Loop for Multiple Lines:
We use a loop that runs from -20 to 20 to plot horizontal ray lines 50 pips above and below the current price. The range (-20 to 20) ensures there are enough lines plotted both above and below the price.
Horizontal Ray Lines:
The line.new function is used to draw the horizontal rays, extending to the right.
Plot Current Price:
We also plot the closing price with a blue line to make it easier to track the price against the horizontal rays.
RCYC Bullish Bearish Indicator
Summary: The RCYC Bullish Bearish Indicator is a custom trading tool designed to help traders identify potential bullish and bearish conditions in the market using a combination of KDJ and RSI indicators. This indicator uses color-coded candles to visually represent bullish and bearish signals, making it easy to identify trend changes on the chart. The script is particularly useful for traders who prefer visual signals and want to incorporate both trend momentum (KDJ) and relative strength (RSI) in their analysis.
Description:
The RCYC Bullish Bearish Indicator is a unique mashup of the KDJ and RSI indicators, optimized to provide a clear visual representation of market conditions through color-coded candles. This indicator not only identifies the potential trend shifts but also provides alerts for significant crossover points, enhancing a trader's ability to make informed decisions.
How It Works:
KDJ Calculation:
The KDJ is a variation of the Stochastic Oscillator that includes the %J line, which can go beyond the typical 0-100 range of %K and %D.
The KDJ component of this indicator calculates the highest high and lowest low over a specified period (KDJ Length), using these values to derive the %K line.
The %D line is a smoothed version of %K, and the %J line is derived from %K and %D using the formula: J = 3 * %K - 2 * %D.
This indicator focuses on the behavior of the %J line in relation to a mid-point level (50), identifying crossovers and crossunders that signal potential shifts in market sentiment.
RSI Calculation:
The Relative Strength Index (RSI) is a momentum oscillator that measures the speed and change of price movements. It is widely used to identify overbought or oversold conditions.
In this indicator, RSI values are adjusted and plotted to align visually with the KDJ values, providing a complementary momentum analysis.
Crossover Logic and Candle Coloring:
The indicator tracks two main events:
CrossOver50: When the %J line crosses above the 50 level, indicating potential bullish momentum.
CrossUnder50: When the %J line crosses below the 50 level, indicating potential bearish momentum.
Depending on the crossover events, the script changes the color of the candles on the chart:
Red candles on the initial crossover above 50, followed by dark blue candles to maintain bullish sentiment.
Yellow candles on the initial crossover below 50, followed by light blue candles to maintain bearish sentiment.
Alerts:
The indicator includes alert conditions for both bullish and bearish signals:
Red Candle Alert: Notifies the trader when the %J line crosses above 50.
Yellow Candle Alert: Notifies the trader when the %J line crosses below 50.
These alerts allow traders to react promptly to key market signals without continuously monitoring the chart.
Usage and Benefits:
This indicator is designed for traders looking to combine momentum and trend analysis into a single visual tool. It is particularly useful for those trading in trending markets or looking for entry/exit signals based on momentum shifts.
The color-coded candles provide an intuitive way to assess market conditions at a glance, reducing the complexity associated with analyzing multiple indicators separately.
By integrating both KDJ and RSI, the RCYC Bullish Bearish Indicator offers a balanced approach to trend detection and momentum confirmation, making it versatile for various trading styles, including scalping, swing trading, and position trading.
Originality and Usefulness:
While the indicator builds upon the familiar concepts of KDJ and RSI, it uniquely merges them into a cohesive visual tool with distinct crossover-based alerts and candle coloring.
This approach makes the indicator original, as it simplifies the interpretation of complex signals into straightforward visual cues, enhancing the decision-making process for traders who prefer chart-based analysis.
Enhanced Alligator Trend Indicator By Er. Parvez HaleemPurpose: The Enhanced Alligator Trend Indicator aims to identify strong and reliable buy and sell signals on the price chart by combining the Alligator Indicator with trend strength and volume filters. It is specifically designed for use on a 1-minute chart to enhance precision in short-term trading decisions.
Components:
Alligator Indicator:
Jaw Line (Blue): Calculated as a simple moving average (SMA) of the closing price over a specified period (default: 13 bars). Represents the long-term trend.
Teeth Line (Red): Calculated as a simple moving average (SMA) of the closing price over a shorter period (default: 8 bars). Represents the medium-term trend.
Lips Line (Green): Calculated as a simple moving average (SMA) of the closing price over an even shorter period (default: 5 bars). Represents the short-term trend.
Trend Strength Indicator:
Relative Strength Index (RSI): Measures the strength of the current trend, using a default period of 14 bars. RSI values above 50 suggest a bullish trend, while values below 50 suggest a bearish trend.
Volume Filter:
Volume Threshold: Filters signals based on trading volume to ensure they only appear when volume exceeds a specified threshold (default: 100,000). This helps to avoid low-volume noise and enhance signal reliability.
Additional Trend Filters:
Short-Term SMA: A simple moving average with a default period of 20 bars, used to assess short-term trend direction.
Long-Term SMA: A simple moving average with a default period of 50 bars, used to assess long-term trend direction.
SMA Crossover: A bullish crossover occurs when the short-term SMA is above the long-term SMA, and a bearish crossover occurs when the short-term SMA is below the long-term SMA.
Signal Generation:
Buy Signal: Generated when:
The Lips line is above the Teeth line, and the Teeth line is above the Jaw line (indicating a bullish alignment in the Alligator Indicator).
The RSI is above 50 (indicating strong bullish trend strength).
The trading volume exceeds the specified volume threshold (indicating sufficient trading activity).
The short-term SMA is above the long-term SMA (confirming a bullish trend).
Sell Signal: Generated when:
The Lips line is below the Teeth line, and the Teeth line is below the Jaw line (indicating a bearish alignment in the Alligator Indicator).
The RSI is below 50 (indicating strong bearish trend strength).
The trading volume exceeds the specified volume threshold (indicating sufficient trading activity).
The short-term SMA is below the long-term SMA (confirming a bearish trend).
Plotting on Chart:
Alligator Lines: The Jaw, Teeth, and Lips lines are plotted directly on the price chart in blue, red, and green, respectively, to indicate the long-term, medium-term, and short-term trends.
Buy/Sell Signals: Buy signals are plotted below the price bars in green, and sell signals are plotted above the price bars in red. These signals are marked with labels ("BUY" and "SELL") to clearly indicate trading opportunities.
Debugging: RSI and SMA lines are plotted but hidden by default. They can be revealed for verification purposes to ensure the correctness of the indicator’s calculations.
Alerts:
Buy Alert: Triggers when a buy signal condition is met, sending a notification that a buy opportunity has been identified.
Sell Alert: Triggers when a sell signal condition is met, sending a notification that a sell opportunity has been identified.
Golden Area### Golden Area Indicator Description
The "Golden Area" indicator is a technical analysis tool designed to assist traders by identifying potential buy and sell signals based on moving averages and support/resistance levels within a specific time frame. This indicator can be applied directly to price charts.
#### How It Works
1. **Inputs:**
- **MA50 Length:** The period length for the 50-period Simple Moving Average (SMA).
- **MA200 Length:** The period length for the 200-period Simple Moving Average (SMA).
2. **Calculations:**
- **MA50 (50-period SMA):** Calculated by averaging the closing prices over the past 50 periods.
- **MA200 (200-period SMA):** Calculated by averaging the closing prices over the past 200 periods.
- **Support Level:** The lowest price over the last 50 periods.
- **Resistance Level:** The highest price over the last 50 periods.
3. **Time Filter:**
- **Start Time:** The indicator becomes active at 12:30 IST (07:00 UTC).
- **End Time:** The indicator deactivates at 10:30 IST the next day (05:00 UTC).
- A background color change (yellow) highlights the active time range on the chart.
4. **Signals:**
- **Buy Signal:** Triggered when the current time matches the start time and the closing price is below the support level.
- **Sell Signal:** Triggered when the current time matches the start time and the closing price is above the resistance level.
5. **Plots:**
- **MA50:** Plotted as a blue line on the chart.
- **MA200:** Plotted as a red line on the chart.
- **Buy Signals:** Indicated by a green 'B' below the bars.
- **Sell Signals:** Indicated by a red 'S' above the bars.
This indicator provides visual cues for potential trading opportunities within the specified time frame, aiding traders in making informed decisions.
itradesize /\ Silver Bullet x Macro x KillzoneThis indicator shows the best way to annotate ICT Killzones, Silver Bullet and Macro times on the chart. With the help of a new pane, it will not distract your chart and will not cause any distractions to your eye, or brain but you can see when will they happen.
The indicator also draws everything beforehand when a proper new day starts.
You can customize them how you want to show up.
Collapsed or full view?
You can hide any of them and keep only the ones you would like to.
All the colors can be customized, texts & sizes or just use shortened texts and you are also able to hide those drawings which are older than the actual day.
You should minimize the pane where the script has been automatically drawn to therefore you will have the best experience and not show any distractions.
The script automatically shows the time-based boxes, based on the New York timezone.
Killzone Time windows ( for indices ):
London KZ 02:00 - 05:00
New York AM KZ 07:00 - 10:00
New York PM KZ 13:30 - 16:00
Silver Bullet times:
03:00 - 04:00
10:00 - 11:00
14:00 - 15:00
Macro times:
02:33 - 03:00
04:03 - 04:30
08:50 - 0910
09:50 - 10:10
10:50 - 11:10
11:50 - 12:50
Composite RSI [KFB Quant]The Composite RSI (CRSI) is a momentum oscillator that combines 5 adjustable RSI's. It also has a Z-Score to make it easier to identify potential market extremes.
How to adjust the indicator
Inside the Length & Impact Configuration tab you can adjust the length and impact of each RSI as well as the Z-Score length specific to your needs. The default length inputs are 7, 14, 30, 60, 90 (RSI 1 - RSI 5) and the default impact is set to 1.0 for all RSI's. Default length for Z-Score is 360.
Inside the Style Configuration tab you can pick what you want to display(plot). The options are: CRSI, Z-Score, Overview Table and the individual RSI's.
Inside the Color Configuration tab you can customize the color of each plot.
How the script works
CRSI = rsi_sum / imp_sum
Z-Score = (crsi - crsi_mean) / crsi_stdev
rsi_sum = (rsi_1 -50) + (rsi_2 -50) + (rsi_3 -50) + (rsi_4 -50) + (rsi_5 -50)
imp_sum = imp_1 + imp_2 + imp_3 + imp_4 + imp_5
crsi_mean = Average of the crsi over the defined period in Z-Score Length
crsi_stdev = StDev of crsi over the defined period in Z-Score Length
This is not financial advice. Trading is risky & most traders lose money. Past performance does not guarantee future results. This indicator is for informational & educational purposes only.
RSI + Divergences + Alerts [MisterMoTA]The indicator RSI + Divergences + Alerts by MisterMoTA is an RSI indicator that fills the RSI and RSI moving average with 4 different colors (growing up, falling up, falling down and rising down colors), users can customize colors from dashboard , also can be disabled the fill if the user want a standard RSI.
The dafault value of RSI is 14 and value of the moving average is 50 ( a dynamic 50 rsi line is better for trend identification than a standard 50 line) and users can change the values from indicator settings.
For detecting the divergences displayed in the indicator, I integrated in our script the default Divergences indicator from Tradingview, users can display, hide and change colors for regular and hidden divergences.
RSI indicator display also trend conditions for RSI and RSI MA, the RSI MA angle is calculated using ATR value, the slope of the RSI Noving Average can help to identify trend conditions too.
The script comes with 12 different alerts, if need different alerts please let me know in the comments and will update the script with your request:
Alert for Regular Bullish Divergence
Alert for Regular Bearish Divergence
Alert for Hidden Bullish Divergence
Alert for Hidden Bearish Divergence
Alert for RSI Overbought
Alert for RSI Extreme Overbought
"Alert for RSI Oversold
Alert for RSI Extreme Oversold
Alert for RSI Crossing Above RSI MA
Alert for RSI Crossing Bellow RSI MA
Alert for RSI Crossing Above 50
Alert for RSI Crossing Bellow 50
Please follow me for other script like this one.
Kind regards,
MisterMoTA
ARSIXARSIX
I have written this indicator after two years of continuous experience in writing and backtesting for several different indicators, and I believe that this indicator with its high capabilities can show you the best point of entry into the market as well as exit from it. arsix should work with any time frame and any instrument used.
This indicator has many points to understand so that you can make the best possible use of it, in the following I will try to bring you some of the most important points:
First, we will have an introduction of the different parts of the indicator:
The above line is a relatively simple but very useful formula to determine the momentum of chart. To understand the exact formula, you can refer to the source of the program itself, and its two colors are used to determine the direction of movement.
At the bottom, we have three opposing elements.
The first is the RSI14 line with dark blue color, the second is the RMA or Relative Momentum Index(RMI20) line with the number 20 for Momentum , which will significantly help us understand the overall momentum of the chart, this part is also made in two colors to increase or It will show the decline of the overall momentum of the chart.
And finally, we have a bar chart that is again created in two colors, and this histogram also calculates the momentum chart with a different formula.
And now let's talk about how to interpret these tools and how to use them for Trading:
At first, you may have the question that all these different indicators are not excessive to determine the momentum chart and are all of them necessary? In response, I must say that yes, each of these parts has been selected and made with great care and with my previous experience, the full explanation of each of these parts is beyond the scope of this article, and I will try to explain it in short words. I will give you a general understanding of each one of them and the rest is up to you to find out their capabilities by working more with these tools.
The main thing is to know that none of these tools alone will bring you success and it is their teamwork together that will help you achieve success.
For the sake of simplicity, I will tell you when to open a buy position with this indicator And you can then use this definition of the main thread to interpret the rest of the capabilities of this indicator.
To open a buy position, first the upper indicator should turn light blue, at the same time, the RMI indicator should also turn light blue, and you should also see that this RMI indicator shows the momentum of the overall chart in order to increase. in this case you will be almost sure that the general trend of the chart is towards the rise of the price. In the next step, to determine the exact point of the Entry, you have to wait until the RSI indicator passes the number 50 in this state and at the same time, make sure that the histogram also turns green and shows the increasing direction of momentum in the market, when the RSI is in This state crossed the number 50, you can enter the buy position, it should be noted that due to a series of restrictions, I have moved the RSI indicator down by 50 numbers, so as a result, the number 50 for RSI here is equivalent to The same number zero.
This was an example of how to work with this indicator, I hope that it helped you to understand how to use this indicator. In the end, I would like to point out again that the main topic is understanding the group and mutual behavior of each of the indicators' tools together. For example, if the RSI indicator crosses the number 50 here, but the histogram does not grow or shows a small growth, this indicates that the movement will be low, or for another example, if the RSI indicator cross over From the RMI indicator, This means that the market is very high, and as a result, it is a great opportunity to hold a buy position. In the same way, other parts of this indicator can also be interpreted in opposition to each other.
I hope this indicator will help you in better trades. I look forward to your constructive comments. Thanks Hamid Moradi.
MTF SuperTrends Nexus [DarkWaveAlgo]🧾 Description:
A nexus is a connection, link, or neuronal junction where signals and information are transmitted between different elements.
The MTF SuperTrends Nexus indicator serves as a nexus between MTF SuperTrends by facilitating the visualization of up to eight multi-timeframe SuperTrends, each with its own customizable timeframe, period, factor, and coloring customization. By combining these various SuperTrends, it helps you create a comprehensive view of MTF trend dynamics and cross-timeframe confluence according to the SuperTrend indicator.
It acts as a utility/control center that brings together multiple MTF SuperTrends and allows you to visualize the interactions between them with exceptional ease-of-use and customizability, helping to provide you with valuable insights into potential trend reversals, momentum shifts, and trading opportunities.
💡 Originality and Usefulness:
While there are other multi-timeframe SuperTrend indicators available, MTF SuperTrends Nexus' semi-transparent fills create a compounding opaqueness when SuperTrends from multiple timeframes coalesce - making visual assessment of cross-timeframe confluence extremely easy. We also believe it stands above the rest with its sheer quantity and quality of settings, features, and usability.
✔️ Re-Published to Avoid Misleading Values
This script has been re-published to ensure that it does not use `request.security()` calls using lookahead_on to access future data when referencing SuperTrend calculations from other timeframes. This decreases the likelihood that the indicator will provide deceiving values. This change has been made in accordance with the PineScript documentation: "Using barmerge.lookahead_on at timeframes higher than the chart's without offsetting the `expression` argument like in `close [ ]` will introduce future leak in scripts, as the function will then return the `close` price before it is actually known in the current context" and the Publishing Rule: "Do not use `request.security()` calls using lookahead to access future data". Historical and real-time values may differ when referencing timeframes other than the chart's.
💠 Features:
8 toggleable MTF SuperTrends with customizable timeframes, periods, and factors
Compounding filled areas for easy MTF SuperTrend confluence analysis
Aesthetic and flexible coloring and color theme styling options
End-of chart labels and options for ease-of-use and legibility
⚙️ Settings:
Use a Color Theme: When this setting is enabled, all manual 'Bullish and Bearish Colors' are overridden. All plots will use the colors from your selected Color Theme - excepting those plots set to use the 'Single Color' coloring method.
Color Theme: When 'Use a Color Theme' is enabled, this setting allows you to select the color theme you wish to use.
Fill SuperTrend Areas: When enabled, the area between any MTF SuperTrend and the price bars will be filled with semi-transparent coloring.
Hide SuperTrends on Timeframes Lower Than the Chart: When this setting is enabled, any MTF SuperTrend with a timeframe smaller than that of the chart the indicator is applied to will be hidden from view.
Enable: Show/hide a specific MTF SuperTrend.
Timeframe: Set the timeframe for a specific MTF SuperTrend.
Period: Set the lookback period for a specific MTF SuperTrend.
Factor: Set the multiplier factor used for a specific MTF SuperTrend's calculation.
Bullish Color: When 'Use a Color Theme' is disabled, this will set the 'bullish color' for this specific MTF SuperTrend.
Bearish Color: When 'Use a Color Theme' is disabled, this will set the 'bearish color' for this specific MTF SuperTrend.
Enable Label: When enabled, a label will show at the end of the chart displaying the timeframe, period, factor, and current price value of this specific MTF SuperTrend.
Size: Sets the font size of this specific MTF SuperTrend's label.
Label Offset (in Bars): Sets the distance from the latest bar, in bars, at which this specific MTF SuperTrend's label is displayed.
Show Label Line: When enabled, this specific MTF SuperTrend's label will be accommodated by a dashed line connecting it to its plot.
📈 Chart:
The chart shown in this original publication displays the 5 minute chart on BTCUSDT. Displayed on the chart are 6 MTF SuperTrends: the 5m 50-period/3-factor SuperTrend, 15m 50-period/3-factor SuperTrend, 30m 50-period/3-factor SuperTrend, 1h 50-period/3-factor SuperTrend, 4h 50-period/3-factor SuperTrend, and the 1D 25-period/1.5-factor SuperTrend - offering an exemplary view of how you can easily use these MTF SuperTrends to your advantage in analyzing SuperTrend relationships across multiple timeframes.
5EMA BollingerBand Nifty Stock Scanner
What ?
We all heard about (well: over-heard) 5-EMA strategy. Which falls into the broader category of mean reversal type of trading setup.
What is mean reversal?
Price (or any time series, in fact) tries to follow a mean . Whenever price diverges from the mean it tries to meet it back.
It is empirically observed by some traders (I honestly don't know who first time observed it) that in Indian context specially, 5 Exponential Moving Average (5-EMA) works pretty good as that mean.
So whenever price moves away from that 5-EMA, it ultimately comes back and attain total nirvana :) Means: if price moved way higher than the 5EMA without touching it, then price will correct to meet it's 5-EMA and if price moved way lower, it will be uplifted to meet it's 5-EMA. Funny - but it works !
Now there are already enough social media coverage on this 5-EMA strategy/setup. Even TradingView has some excellent work done on these setups. Kudos to all those great souls.
So when we came to know about this, we were thinking what we should do for the community. Because it is well cover topic (specially in Indian context). Also, there are public indicators.
Then we thought why not come up with a scanner which will scan all the Nifty-50 constituent stocks and find out on the fly, real-time which all stocks are matching this 5-EMA setup and causing a Buy/Sell trade recommendation.
Hence here we are with the first version of our first scanner on the 5EMA setup (well it has some more masala than merely a 5-EMA setup).
Why?
Parts of why is already covered up.
Now instead of blindly following 5-EMA setup, we added the Bollinger band as well. Again: it's also not new. There are enough coverage in social media about the 5-EMA+BB strategy/setup. We mercilessly borrowed from all of these.
Suppose you have an indicator.
Now you apply the indicator in your chart. And then you need to (rock) and roll through your watchlist of Nifty-50 stocks (note: TradingView has no default watchlist of Nifty-50 stock by default - you have to create one custom watchlist to list all manually) to find out which all are matching the setup, need to take a note about the trade recomendations (entry, SL, target) and other stuffs like VWAP, Volume, volatility (Bollinger Band Width).
Not any more.
This scanner will track all the Nifty-50 stocks (technically: 40 stocks other than Banking stocks) and provide which one to Buy or Sell (if any), what's the entry, SL, target, where is the VWAP of the day, what's the picture in volume (high, low, rising, falling) and the implied volatility (using Bolling band width). Also it has a naive alerting mechanism as well.
In fact the code is there to monitor the (Future) OI also and all the OI drama (OI vs price and all the 4 stuffs like long build up, long unwinding, short covering, short buildup). But unfortunately, due to some limitations of the TradingView (that one can not monitor more than 40 `ta.security` call) we have to comment out the code. If you wish you can monitor only 20 stocks and enable the OI monitoring also (20 for stocks + 20 for their OI monitoring .. total 40 `ta.security` call).
How?
To know the divergence from 5-EMA we just check if the high of the candle (on closing) is below the 5-EMA. Then we check if the closing is inside the Bollinger Band (BB). That's a Buy signal. SL: low of the candle, T: middle and higher BB.
Just opposite for selling. 5-EMA low should be above 5-EMA and closing should be inside BB (lesser than BB higher level). That's a Sell signal. SL: high of the candle, T: middle and lower BB.
Along with we compare the current bar's volume with the last-20 bar VWMA (volume weighted moving average) to determine if the volume is high or low.
Present bar's volume is compared with the previous bar's volume to know if it's rising or falling.
VWAP is also determined using `ta.vwap` built-in support of TradingView.
The Bolling Band width is also notified, along with whether it is rising or falling (comparing with previous candle).
Simple, but effective.
Customization
As usual the EMA setup (5 default), the BB setup (20 SMA with 1.5 standard deviation), we provided option wherther to include or exclude BB role in the 5-EMA setup (as we found out there are two schools of thought .. some people use BB some don't. Lets make all happy :))
We also provide options to choose other symbols using Settings if they wish so. We have the default 40 non banking Nifty stocks (why non-banking? - Bank Nifty is in ATH :) .. enough :)). But if user wishes can monitor others too (provided the symbol is there in TradingView).
Although we strongly recommend the timeframe as 30 minutes , you can choose what's fit you most.
The output of the scanner is a table. By default the table is placed in the right-bottom (as we are most comfortable with that). However you can change per your wish. We have the option to choose that.
What is unique in it ?
This is more of an indicator. This is a scanner (of Nifty-50 stocks). So you can apply (our recommendation is in 30m timeframe) it to any chart (does not matter which chart it is) and it will show every 30 mins (which is also configurable) which all stocks (along with trade levels) to Buy and Sell according to the setup.
It will ease your trading activity.
You can concentrate only on the execution, the filtering you can leave it to this one.
Limitations
There is a build in limitation of the TradingView platform is that one can call only upto 40 securities API. Not beyond that. So naturally we are constraint by that. Otherwise we could monitor 190 Nifty F&O stocks itself.
30m is the recommended timeframe. In very lower (say 5m) this script tends to go out of heap (out of memory). Please note that also.
How to trade using this?
Put any chart in 30m (recommended) timeframe.
Apply this screener from Indicators (shortcut to launch indicators is just type / in your keyboard).
This will provide the Buy (shown in green color) or Sell (shown in red color) recommendations in a table, at every 30m candle closing.
Note the volume and BB width as well.
Wait for at least 2 5-minutes candles to close above/below the recommended level .
Take the trade with the SL and target mentioned.
Mentions
@QuantNomad. The whole implementation concept we mercilessly borrowed from him, even some of his code snippet we took it (after asking him through one of his videos comment section and seeking explicit permission which he readily granted within an hour). Thank You sir @QuantNomad. Indebted to you.
Monika (Rawat) ji: for reviewing, correcting, providing real time examples during live market hours, often compromising her own trading activities, about the effectiveness and usefulness of this setup. Thank You madam ji. Indebted to you.
There are innumerable contents in social media about this. Don't even know whom all we checked. Thanks to all of them.
Happy Trading (in stocks - isn't enough of Indices already?)
Disclaimer
This piece of software does not come up with any warrantee or any rights of not changing it over the future course of time.
We are not responsible for any trading/investment decision you are taking out of the outcome of this indicator.
ICT Macros [LuxAlgo]The ICT Macros indicator aims to highlight & classify ICT Macros, which are time intervals where algorithmic trading takes place to interact with existing liquidity or to create new liquidity.
🔶 SETTINGS
🔹 Macros
Macro Time options (such as '09:50 AM 10:10'): Enable specific macro display.
Top Line , Mid Line , Bottom Line and Extending Lines options: Controls the lines for the specific macro.
🔹 Macro Classification
Length : A length to detect Market Structure Brakes and classify macro type based on detection.
Swing Area : Swing or Liquidity Area selection, highest/lowest of the wick or the candle bodies.
Accumulation , Manipulation and Expansion color options for the classified macros.
🔹 Others
Macro Texts : Controls both the size and the visibility of the macro text.
Alert Macro Times in Advance (Minutes) : This option will plot a vertical line presenting the start of the next macro time. The line will not appear all the time, but it will be there based on remaining minutes specified in the option.
Daylight Saving Time (DST) : Adjust time appropriate to Daylight Saving Time of the specific region.
🔶 USAGE
A macro is a way to automate a task or procedure which you perform on a regular basis.
In the context of ICT's teachings, a macro is a small program or set of instructions that unfolds within an algorithm, which influences price movements in the market. These macros operate at specific times and can be related to price runs from one level to another or certain market behaviors during specific time intervals. They help traders anticipate market movements and potential setups during specific time intervals.
To trade these effectively, it is important to understand the time of day when certain macros come into play, and it is strongly advised to introduce the concept of liquidity in your analysis.
Macros can be classified into three categories where the Macro classification is calculated based on the Market Structure prior to macro and the Market Structure during the macro duration:
Manipulation Macro
Manipulation macros are characterized by liquidity being swept both on the buyside and sellside.
Expansion Macro
Expansion macros are characterized by liquidity being swept only on the buyside or sellside. Prices within these macros are highly correlated with the overall trend.
Accumulation Macro
Accumulation macros are characterized by an accumulation of liquidity. Prices within these macros tend to range.
The script returns the maximum/minimum price values reached during the macro interval alongside the average between the maximum/minimum and extends them until a new macro starts. These levels can act as supports and resistances.
🔶 DETAILS
All required data for the macro detection and classification is retrieved using 1 minute data sets, this includes candles as well as pivot/swing highs and lows. This approach guarantees the visually presented objects are same (same highs/lows) on higher timeframes as well as the macro classification remain same as it is in 1 min charts.
8 Macros can be displayed by the script (4 are enabled by default):
02:33 AM 03:00 London Macro
04:03 AM 04:30 London Macro
08:50 AM 09:10 New York Macro
09:50 AM 10:10 New York Macro
10:50 AM 11:10 New York Macro
11:50 AM 12:10 New York Launch Macro
13:10 PM 13:40 New York Macro
15:15 PM 15:45 New York Macro
🔶 ALERTS
When an alert is configured, the user will have the ability to be notified in advance of the next Macro time, where the value specified in 'Alert Macro Times in Advance (Minutes)' option indicates how early to be notified.
🔶 LIMITATIONS
The script is supported on 1 min, 3 mins and 5 mins charts.
🔶 RELATED SCRIPTS
ICT Algorithmic Macro Tracker° (Open-Source) by toodegreesDescription:
The ICT Algorithmic Macro Tracker° Indicator is a powerful tool designed to enhance your trading experience by clearly and efficiently plotting the known ICT Macro Times on your chart.
Based on the teachings of the Inner Circle Trader , these Time windows correspond to periods when the Interbank Price Delivery Algorithm undergoes a series of checks ( Macros ) and is probable to move towards Liquidity.
The indicator allows traders to visualize and analyze these crucial moments in NY Time:
- 2:33-3:00
- 4:03-4:30
- 8:50-9:10
- 9:50-10:10
- 10:50-11:10
- 11:50-12:10
- 13:10-13:50
- 15:15-15:45
By providing a clean and clutter-free representation of ICT Macros, this indicator empowers traders to make more informed decisions, optimize and build their strategies based on Time.
Massive shoutout to @reastruth for his ICT Macros Indicator , and for allowing to create one of my own, go check him out!
Indicator Features:
– Track ongoing ICT Macros to aid your Live analysis.
- Gain valuable insights by hovering over the plotted ICT Macros to reveal tooltips with interval information.
– Plot the ICT Macros in one of two ways:
"On Chart": visualize ICT Macro timeframes directly on your chart, with automatic adjustments as Price moves.
Pro Tip: toggle Projections to see exactly where Macros begin and end without difficulty.
"New Pane": move the indicator two a New Pane to see both Live and Upcoming Macro events with ease in a dedicated section
Pro Tip: this section can be collapsed by double-clicking on the main chart, allowing for seamless trading preparation.
This indicator is available only on the TradingView platform.
⚠️ Open Source ⚠️
Coders and TV users are authorized to copy this code base, but a paid distribution is prohibited. A mention to the original author is expected, and appreciated.
⚠️ Terms and Conditions ⚠️
This financial tool is for educational purposes only and not financial advice. Users assume responsibility for decisions made based on the tool's information. Past performance doesn't guarantee future results. By using this tool, users agree to these terms.
TradePro's 2 EMA + Stoch RSI + ATR StrategySaw TradePro's "NEW BEST HIGHEST PROFITING STRATEGY WITH CRAZY RESULTS - 2 EMA+ Stochastic RSI+ ATR", and was curious on the back testing results. This strategy is an attempt to recreate it.
This strategy uses 50 / 200 EMAs, Stochastic RSI and ATR.
Long Entry Criteria:
- 50 EMA > 200 EMA
- Price closes below 50 EMA
- Stochastic RSI has gone into oversold < 20
- Stochastic RSI crosses up while making higher low from previous cross up
Short Entry Criteria:
- 50 EMA < 200 EMA
- Price closes above 50 EMA
- Stochastic RSI has gone into overbought > 80
- Stochastic RSI crosses down while making lower high from previous cross down
Stop-loss is set to ATR stop-loss
Take Profit is 2x the risk
All parameters are configurable.
Enjoy~~