[LunaOwl] 智慧型RSI (Smart RSI - a handy tool with less noise)Relative Strength Index is a common technical analysis tool, it is classified as a momentum oscillator, measuring the velocity and magnitude of directional price movements. it is most typically used on a 14-period timeframe, measured on a scale from 0 to 100, with high and low levels marked at 70 and 30.
相對強弱指標是常見的技術分析工具,它被歸類為動量振盪器,用於測量定向價格運動的速度和幅度,通常會使用14期數,擺盪範圍在0到100間,超買超賣分別標記成70、30。
after simple improvement and addition of logical judgment, it becomes a passive judge from subjective judgments, avoid the shortcomings of peoples in watching passivation, and the trade can be more consistent.
經過簡單的改良與添加邏輯判斷,能夠使RSI指標的使用,從主觀的判斷成為被動的確認指標,有效避免人們判斷指標鈍化的主觀缺失,並能夠使得交易更加一致。
--------------------------*
1) parameter
RSI period 1 - default is 14, same as general RSI.
RSI period 2 - default is 5, due to its own formula, the amplitude of the oscillator will become larger and more agile or fast. When the parameter is small.
exponential moving avg of RSI - using the result of RSI period 1 as the source of Ema's formula, the default length is 14, which can filter the excessive agility of RSI period 2 to reduce noise, and compared to using the baseline as the criterion for long and short judgments, The characteristics of exponential moving avg are more suitable to become flexible filtering standards.
Overbought - default is 70, you can set your overbought level.
Oversold - same as above, the default is 30.
2) Options
Open Candle color(開啟蠟燭線趨勢) - choose whether to start the color of the candle.
Open background color(開啟指標背景色) - the default is false, you can turn on.
--------------------------*
1. 設置參數
RSI期數1:預設值是14,是普通的RSI指標。
RSI期數2:預設值是5,由於RSI公式的算法,造成參數愈小擺盪幅度就會變大,反應比較快。
指數平均化的RSI期數1:將RSI期數1的結果帶入指數移動平均公式,預設值14,它能過濾RSI期數2過度敏捷的缺點,減少雜訊,相較於單純使用基準線作為多空判斷標準,用EMA的判斷標準更加因時制宜。
超買線:預設值是70,可以隨意調。
超賣線:預設值是30,一樣的。
2. 設定選項
開啟蠟燭線趨勢:顧名思義。已經幫您開好了。
開啟指標背景色:顏色太淺的話可以調深一點。
--------------------------*
ver.2- adjust new style design and create two options.
修改2: 調整新的樣式設計與建立兩個選項。
--------------------------*
ver.3- Create alert condition. maybe I should refer to the Alert Creation Framework,
there is also room for improvement.
修改3: 建立快訊選項。我應該參考警報創建框架,還有進步空間。
--------------------------*
Indicator Style - 指標樣式
The design uses casual light color style, light gray between overbought and oversold.
--------------------------*
Market Example - 市場範例
1. Bitcoin/Tether, Binance, 1 day
2. Bitcoin/USD, Coinbase, 4 hour
3. EUR/USD, Forex Market, 4 hour
4. GBP/USD, Forex Market, 30 min
5. TAIEX, Taiwan SE Weighted Index, 1 week
--------------------------*
postscript - 後記感想
The purpose of publishing Chinese Scripts is to make Pine close to more Chinese user.
I hope English skills enhancement...staggered writing makes me feel hard.
發布中文腳本的目的,是希望可以讓 Pine 親近更多中文圈的使用者。希望我的英語進步,中英文交錯撰寫有一些困難。
--------------------------*
If you find my works useful, you can give me encouragement. I can buy more books to sophisticated themselves.
如果您發現我的作品有用,可以給我鼓勵。讓我可以買更多書籍來精進自己。
Cari dalam skrip untuk "30年国债收益率"
MacD (Future Known or Unknown) StrategyThis indicator/strategy is to be used as a way to baseline the top potential any strategy could have with other strategies and indicators.
What I have created literally shows the BEST moves possible you could have made in my opinion for SHORTING or LONGING using only the MacD values of the 4 hour while on the 30 minute chart.
To use this, try checking out XBTUSD on the 30 minute chart . It will work under different time frames but works best on the 30 minute chart in my opinion. It WILL NOT WORK Above 2 hours time frame.
DO NOT TRADE WITH THIS indicator . I can't emphasize this enough. These results only work because of the lookahead_on parameter. A lot of scam indicators and strategies use this to trick people on tradingView into buying their scripts.
This code is OPEN SOURCE and as such there is nothing to hide and no scam!
I like to use this as a comparison tool for how good I 'could' have traded and at what points those were. By knowing where the perfect trading positions are, you can create real indicators and scripts that try to find patterns in those positions.
This also shows that IF you could know the direction the MacD was going what amazing results you could get ^_~.
This is meant purely for entertainment purposes and for comparing against your own scripts.
I've included the options in the settings to allow ONLY LONG or ONLY SHORTS. By default it attempts both buy attempts. You can also change your starting ($) amount and commission percentage that is taken per trade as well.
Also included in the options is the ability to set the back testing time frame to see how it performs during just certain time periods.
Finally a color explanation
Red - MacD 4 hour going down
Green - MacD 4 hour going up
Purple - MacD 4 hour going down (from an up position)
Yellow - MacD 4 hour going up (from a down position)
Notice the program will always buy right before it turns into a yellow color since it knows the future.
In the options you can turn off 'use the future' to see the horrible results if you trade the moment you know which direction the MacD 4 hour is actually going. I will revise this script in the future with attempts to work without knowing the future as play options to get better results.
If you have any questions or comments, please do not hesitate to ask!
(JS)DMI BarsAlright - so this is my own version of John Carter's "10x Bars"... I have done multiple things that are different from his version so they are slightly different..
So first of all the main indicator is based off of the ADX and the DMI;
For those who aren't familiar with it, Directional Movement is what you'd pull up under "built-in's" from the indicators tab (if you want to check it out).
The standard interpretation of this however, is when the ADX is above 20 that suggests the trend is strong, whereas under 20 suggests it is weak.
Also, when the D+ is above the D- that suggests a bullish trend, and D- above D+ suggests a bearish trend.
These bars take away the need to have it at the bottom of your screen, and places the data on the bars on your chart instead.
=========================================================================================================================================
So here's what the colors stand for -
Yellow - The ADX is under 20, no strength in trend
Shades of green occur when the ADX is above 20 and there's a bullish trend (D+ higher than D-)
Bright Green (Lime) - Bullish trend, D+ above 30
Green - Bullish Trend
Yellow Green - Bullish trend, D+ below 15
Shades of red occur when the ADX is above 20 and there's a bearish trend (D- higher than D+)
Bright Red - Bearish trend, D- above 30
Red - Bearish Trend
Orange - Bearish trend, D- below 15
=========================================================================================================================================
I have also added multiple time frame labels (label script used is the one created by Ricardo Santos)
These labels are color coded the same as the bars/candles, and they appear off to the right of your screen using every built in time increment from TradingView.
The purpose is to show you in real time, and on any chart resolution, what the current trend is on every individual time frame.
So using just one single chart you'll see your current resolutions candles, but also on the labels you'll see:
1 Minute
3 Minute
5 Minute
15 Minute
30 Minute
45 Minute
1 Hour
2 Hour
3 Hour
4 Hour
Daily
Weekly
Monthly
There is an input I added that allows you to adjust where your labels appear on the side of your screen as well!
=========================================================================================================================================
Now onto the volume spike portion of the indicator. This will plot a blue dot under each bar that has a spike in volume which meets your specified criteria.
I have 500% as the default setting.
What that means is that this indicator looks back and gets the 50 bar volume average and then applies dots where volume is 500% above average.
=========================================================================================================================================
Now finally, the reversal arrows. This is another simple to understand concept that I first read in John Carter's book "Mastering the Trade" that he calls "HOLP/LOHP".
I have added the ability to change the look back period you'd like the indicator to watch for highs and lows on.
What that stands for is 'High of Low Period' and 'Low of High Period', and it is used like this-
Whenever a bar makes a new high the indicator watches the low on that highest bar. Then when a bar afterwards makes a lower low then the one on the high bar,
a reversal arrow is given. Apply this same concept in the other direction in for the highs on the lowest bars.
=========================================================================================================================================
Now, I didn't want to make a "set" or have a bunch of different indicators out there that are all intended for the same package, so I took the time to put them together,
and if there's a part of it you don't care for they can easily be turned off in the settings.
Enjoy!
ADX +- DiThis Adx +-Di is just a complete version of what the ADX is supposed to signal.
So you have:
15 (contraction), 20 (threshold), 30 (expansion), 40 (resistance) levels.
Below 20 the price is not trending
Above 30 the price is trending
Below 15 price has been in contraction for too long
Between 20 and 30 price is in a "transition zone".
I finally added a "Resistance" level (40), which has to be adapted to best represent the historical levels where price usually encounters resistance, and where the price can be declared "overtrending", which means a return to lower levels is likely to happen.
I've chosen mild colors, and set the Adx Color to White, because I use black background, you can easily change that.
Enjoy
-Maurice
ICHIMOKU MTFMultiple Time Frame Version of Ichimoku Kinko Hyo Indicator.
Created in 1940's by Goichi Hosoda withe the help of University students in Japan.
Ichimoku is one of the best trend following indicators that works nearly perfect in all markets and time frames.
Ichimoku is originally an built in indicator in Tradingview but there are some problems like:
the indicator hast 5 lines but you can change only 4 parameters in the settings menu of Tradingview Charts which you could only control 3 of the lines effectively. A second problem is that Tradingview preferred to use English titles for the ICHIMOKU lines instead of giving them the most common original Japanese ones. (So I rewrite the indicator)
Kijun Sen (blue line): Also called standard line or base line, this is calculated by averaging the highest high and the lowest low for the past 26 periods.
Tenkan Sen (red line): This is also known as the turning line and is derived by averaging the highest high and the lowest low for the past nine periods.
Chikou Span (Plum line): This is called the lagging line. It is today’s closing price plotted 26 periods behind.
Senkou SpanA (green line): The first Senkou line is calculated by averaging the Tenkan Sen and the Kijun Sen and plotted 26 periods ahead.
Senkou SpanB (purple line):
The second Senkou line is determined by averaging the highest high and the lowest low for the past 52 periods and plotted 26 periods ahead.
PERSONALLY I ADVISE YOU TO USE ICHIMOKU WITH DEAFULT LENGTHS (9,26,26,52,26) IN ORDER FOR STOCK MARKETS AND FOREX MARKETS
FOR CRYPTO YOU'D BETTER USE:
10,30,30,60,30 OR 20,60,60,120,60
THE TRICKY THING IS THAT KEEPING THE 1-3-3-6-3 RATIO CONSTANT IS NECESSARY
Here's a link of my Youtube video explaining ICHIMOKU but unfortunately only in TURKISH:
www.youtube.com
Developed by: Goichi Hosoda
Here's the link to a complete list of all my indicators:
tr.tradingview.com
Ichimoku kullanımı anlattığım detaylı video serisini linkten izleyebilirsiniz:
www.youtube.com
İndikatörü geliştiren: Goichi Hosoda
ICHIMOKU Kinko Hyo by KIVANC fr3762Created in 1940's by Goichi Hosoda withe the help of University students in Japan.
Ichimoku is one of the best trend following indicators that works nearly perfect in all markets and time frames.
Ichimoku is originally an built in indicator in Tradingview but there are some problems like:
the indicator hast 5 lines but you can change only 4 parameters in the settings menu of Tradingview Charts which you could only control 3 of the lines effectively. A second problem is that Tradingview preferred to use English titles for the ICHIMOKU lines instead of giving them the most common original Japanese ones. (So I rewrite the indicator)
Kijun Sen (blue line): Also called standard line or base line, this is calculated by averaging the highest high and the lowest low for the past 26 periods.
Tenkan Sen (red line): This is also known as the turning line and is derived by averaging the highest high and the lowest low for the past nine periods.
Chikou Span (Plum line): This is called the lagging line. It is today’s closing price plotted 26 periods behind.
Senkou SpanA (green line): The first Senkou line is calculated by averaging the Tenkan Sen and the Kijun Sen and plotted 26 periods ahead.
Senkou SpanB (purple line):
The second Senkou line is determined by averaging the highest high and the lowest low for the past 52 periods and plotted 26 periods ahead.
PERSONALLY I ADVISE YOU TO USE ICHIMOKU WITH DEAFULT LENGTHS (9,26,26,52,26) IN ORDER FOR STOCK MARKETS AND FOREX MARKETS
FOR CRYPTO YOU'D BETTER USE:
10,30,30,60,30 OR 20,60,60,120,60
THE TRICKY THING IS THAT KEEPING THE 1-3-3-6-3 RATIO CONSTANT IS NECESSARY
Here's a link of my Youtube video explaining ICHIMOKU but unfortunately only in TURKISH:
www.youtube.com
Developed by: Goichi Hosoda
RSI Multi-TimeframeThe Relative Strength Index (RSI) is an extremely useful oscillating momentum indicator that was developed by J. Welles Wilder and is one of the most widely used indicators in technical analysis.
HOW IS IT USED ?
In the classic view, a security is thought to be overbought when its RSI reading is above 70 and oversold when its RSI reading falls below 30. This makes it a good indicator for mean-reversion systems. Wilder recommended using the 70 and 30 levels as overbought and oversold levels respectively. When the RSI moves up over the 30 line it is considered a possible bullish reversal while a move down below the 70 line is considered a possible bearish reversal.
When the RSI is above 70 it is a potential exit signal if you are in a long position and when it is below 30 it is a potential exit signal if you are in a short position. Some traders use extreme readings for entry points in the direction of the long-term trend. Thus, if the long-term trend is bullish, then you'd wait for the RSI to reach oversold territory, which would be a potential entry point for a long position. Conversely, if the long-term trend is bearish, then overbought conditions could be a potential point to short the security.
I added the possibility to add on the chart a 2nd timeframe for confirmation.
If you found this script useful, a tip is always welcome... :)
Ichimoku Cloud w/SelIchimoku Cloud with selection for:
Regular:
conversionPeriods = 9,
basePeriods = 26
laggingSpan2Periods = 52,
displacement = 26
Crypto:
conversionPeriods = 10,
basePeriods = 30,
laggingSpan2Periods = 60,
displacement = 30
Crypto Doubled:
conversionPeriods = 20,
basePeriods = 60,
laggingSpan2Periods = 120,
displacement = 30
CM_Ultimate RSI Multi Time FrameAvailable Options on Inputs Tab!!!
RSI with ability to change first RSI to a different Time Frame.(Defaults To Current Chart Time Frame).
Ability To Turn On/Off Background Highlighting if First RSI is Above/Below 70 or 30 Lines.
Ability To Turn On/Off Background Highlighting When First RSI Crosses Above 30 Or Below 70.
Ability To Turn On/Off "B" Or "S" When First RSI Crosses Above 30 Or Below 70.
Ability To Turn On/Off Mid -Line Plot.
Option To Plot 2nd RSI to show different Time Frames on same chart!!!
Ability To Use Different Look Back Period If You Plot 2nd RSI.
Opening Range Breakout with 2 Profit Targets.Opening Range Breakout with 2 Profit Targets.
Updated Indicator now works on all Symbols with Many Different Session Options.
***Known PineScript Issue…While the Opening Range is being Formed the lines only adjust for that individual bar. Just reset Indicator after Opening Range Completes.
***All Times are Based on New York Time
Session Options Forex U.S. Banks Open (8:00), Gold U.S. Open (8:20), Oil U.S. Open (9:00), U.S. Cash Session - Stocks (9:30), NY Forex Open (17:00) , Europe Open (02:00), or if you choose Setting 0 the Session Runs from 00:00 to 00:00 (Midnight to Midnight).
***Ability to use 60 minute Opening Range, 30 minute, 15 minute, and many other options.
***However you can manually change the times in the Inputs Tab to adjust for any session you prefer. This is useful for Day Light Savings Adjustments. Also the default times work if your charts are set to EST Time. If you use A different time zone in your settings you need to Adjust the times in the inputs tab.
Initially Opening Range High and Low plot as Yellow Lines. If Price Goes Above Opening Range then Line Turns Green. If Price Goes Below Opening Range Line Turns Red.
By default the First Profit Target is 1/2 the Width of the Opening Range and the 2nd Profit Target is 1 Times the Opening Range. However these are Adjustable in the Inputs Tab.
By Default the Opening Range Length is 1 Hour. However, you can Change the Opening Range Length to 15 min, 30 min, 2 hours etc. in the Inputs Tab.
Plots a 1 Above or Below Candle when 1st Profit Target is Achieved, and a 2 when 2nd Profit Target is Achieved.
Price Action Brooks ProPrice Action Brooks Pro (PABP) - Professional Trading Indicator
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 OVERVIEW
Price Action Brooks Pro (PABP) is a professional-grade TradingView indicator developed based on Al Brooks' Price Action trading methodology. It integrates decades of Al Brooks' trading experience and price action analysis techniques into a comprehensive technical analysis tool, helping traders accurately interpret market structure and identify trading opportunities.
• Applicable Markets: Stocks, Futures, Forex, Cryptocurrencies
• Timeframes: 1-minute to Daily (5-minute chart recommended)
• Theoretical Foundation: Al Brooks Price Action Trading Method
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 CORE FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1️⃣ INTELLIGENT GAP DETECTION SYSTEM
Automatically identifies and marks three critical types of gaps in the market.
TRADITIONAL GAP
• Detects complete price gaps between bars
• Upward gap: Current bar's low > Previous bar's high
• Downward gap: Current bar's high < Previous bar's low
• Hollow border design - doesn't obscure price action
• Color coding: Upward gaps (light green), Downward gaps (light pink)
• Adjustable border: 1-5 pixel width options
TAIL GAP
• Detects price gaps between bar wicks/shadows
• Analyzes across 3 bars for precision
• Identifies hidden market structure
BODY GAP
• Focuses only on gaps between bar bodies (open/close)
• Filters out wick noise
• Disabled by default, enable as needed
Trading Significance:
• Gaps signal strong momentum
• Gap fills provide trading opportunities
• Consecutive gaps indicate trend continuation
✓ Independent alert system for all gap types
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2️⃣ RTH BAR COUNT (Trading Session Counter)
Intelligent counting system designed for US stock intraday trading.
FEATURES
• RTH Only Display: Regular Trading Hours (09:30-15:00 EST)
• 5-Minute Chart Optimized: Displays every 3 bars (15-minute intervals)
• Daily Auto-Reset: Counting starts from 1 each trading day
SMART COLOR CODING
• 🔴 Red (Bars 18 & 48): Critical turning moments (1.5h & 4h)
• 🔵 Sky Blue (Multiples of 12): Hourly markers (12, 24, 36...)
• 🟢 Light Green (Bar 6): Half-hour marker (30 minutes)
• ⚫ Gray (Others): Regular 15-minute interval markers
Al Brooks Time Theory:
• Bar 18 (90 min): First 90 minutes determine daily trend
• Bar 48 (4 hours): Important afternoon turning point
• Hourly markers: Track institutional trading rhythm
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3️⃣ FOUR-LINE EMA SYSTEM
Professional-grade configurable moving average system.
DEFAULT CONFIGURATION
• EMA 20: Short-term trend (Al Brooks' most important MA)
• EMA 50: Medium-short term reference
• EMA 100: Medium-long term confirmation
• EMA 200: Long-term trend and bull/bear dividing line
FLEXIBLE CUSTOMIZATION
Each EMA can be independently configured:
• On/Off toggle
• Data source selection (close/high/low/open, etc.)
• Custom period length
• Offset adjustment
• Color and transparency
COLOR SCHEME
• EMA 20: Dark brown, opaque (most important)
• EMA 50/100/200: Blue-purple gradient, 70% transparent
TRADING APPLICATIONS
• Bullish Alignment: Price > 20 > 50 > 100 > 200
• Bearish Alignment: 200 > 100 > 50 > 20 > Price
• EMA Confluence: All within <1% = major move precursor
Al Brooks Quote:
"The EMA 20 is the most important moving average. Almost all trading decisions should reference it."
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4️⃣ PREVIOUS VALUES (Key Prior Price Levels)
Automatically marks important price levels that often act as support/resistance.
THREE INDEPENDENT CONFIGURATIONS
Each group configurable for:
• Timeframe (1D/60min/15min, etc.)
• Price source (close/high/low/open/CurrentOpen, etc.)
• Line style and color
• Display duration (Today/TimeFrame/All)
SMART OPEN PRICE LABELS ⭐
• Auto-displays "Open" label when CurrentOpen selected
• Label color matches line color
• Customizable label size
TYPICAL SETUP
• 1st Line: Previous close (Support/Resistance)
• 2nd Line: Previous high (Breakout target)
• 3rd Line: Previous low (Support level)
Al Brooks Magnet Price Theory:
• Previous open: Price frequently tests opening price
• Previous high/low: Strongest support/resistance
• Breakout confirmation: Breaking prior levels = trend continuation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5️⃣ INSIDE & OUTSIDE BAR PATTERN RECOGNITION
Automatically detects core candlestick patterns from Al Brooks' theory.
ii PATTERN (Consecutive Inside Bars)
• Current bar contained within previous bar
• Two or more consecutive
• Labels: ii, iii, iiii (auto-accumulates)
• High-probability breakout setup
• Stop loss: Outside both bars
Trading Significance:
"Inside bars are one of the most reliable breakout setups, especially three or more consecutive inside bars." - Al Brooks
OO PATTERN (Consecutive Outside Bars)
• Current bar engulfs previous bar
• Two or more consecutive
• Labels: oo, ooo (auto-accumulates)
• Indicates indecision or volatility increase
ioi PATTERN (Inside-Outside-Inside)
• Three-bar combination: Inside → Outside → Inside
• Auto-detected and labeled
• Tug-of-war pattern
• Breakout direction often very strong
SMART LABEL SYSTEM
• Auto-accumulation counting
• Dynamic label updates
• Customizable size and color
• Positioned above bars
✓ Independent alerts for all patterns
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 USE CASES
INTRADAY TRADING
✓ Bar Count (timing rhythm)
✓ Traditional Gap (strong signals)
✓ EMA 20 + 50 (quick trend)
✓ ii/ioi Patterns (breakout points)
SWING TRADING
✓ Previous Values (key levels)
✓ EMA 20 + 50 + 100 (trend analysis)
✓ Gaps (trend confirmation)
✓ iii Patterns (entry timing)
TREND FOLLOWING
✓ All four EMAs (alignment analysis)
✓ Gaps (continuation signals)
✓ Previous Values (targets)
BREAKOUT TRADING
✓ iii Pattern (high-reliability setup)
✓ Previous Values (targets)
✓ EMA 20 (trend direction)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎨 DESIGN FEATURES
PROFESSIONAL COLOR SCHEME
• Gaps: Hollow borders + light colors
• Bar Count: Smart multi-color coding
• EMAs: Gradient colors + transparency hierarchy
• Previous Values: Customizable + smart labels
CLEAR VISUAL HIERARCHY
• Important elements: Opaque (EMA 20, bar count)
• Reference elements: Semi-transparent (other EMAs, gaps)
• Hollow design: Doesn't obscure price action
USER-FRIENDLY INTERFACE
• Clear functional grouping
• Inline layout saves space
• All colors and sizes customizable
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 AL BROOKS THEORY CORE
READING PRICE ACTION
"Don't try to predict the market, read what the market is telling you."
PABP converts core concepts into visual tools:
• Trend Assessment: EMA system
• Time Rhythm: Bar Count
• Market Structure: Gap analysis
• Trade Setups: Inside/Outside Bars
• Support/Resistance: Previous Values
PROBABILITY THINKING
• ii pattern: Medium probability
• iii pattern: High probability
• iii + EMA 20 support: Very high probability
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ TECHNICAL SPECIFICATIONS
• Pine Script Version: v6
• Maximum Objects: 500 lines, 500 labels, 500 boxes
• Alert Functions: 8 independent alerts
• Supported Timeframes: All (5-min recommended for Bar Count)
• Compatibility: All TradingView plans, Mobile & Desktop
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 RECOMMENDED INITIAL SETTINGS
GAPS
• Traditional Gap: ✓
• Tail Gap: ✓
• Border Width: 2
BAR COUNT
• Use Bar Count: ✓
• Label Size: Normal
EMA
• EMA 20: ✓
• EMA 50: ✓
• EMA 100: ✓
• EMA 200: ✓
PREVIOUS VALUES
• 1st: close (Previous close)
• 2nd: high (Previous high)
• 3rd: low (Previous low)
INSIDE & OUTSIDE BAR
• All patterns: ✓
• Label Size: Large
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌟 WHY CHOOSE PABP?
✅ Solid Theoretical Foundation
Based on Al Brooks' decades of trading experience
✅ Complete Professional Features
Systematizes complex price action analysis
✅ Highly Customizable
Every feature adjustable to personal style
✅ Excellent Performance
Optimized code ensures smooth experience
✅ Continuous Updates
Constantly improving based on feedback
✅ Suitable for All Levels
Benefits beginners to professionals
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 RECOMMENDED LEARNING
Al Brooks Books:
• "Trading Price Action Trends"
• "Trading Price Action Trading Ranges"
• "Trading Price Action Reversals"
Learning Path:
1. Understand basic candlestick patterns
2. Learn EMA applications
3. Master market structure analysis
4. Develop trading system
5. Continuous practice and optimization
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ RISK DISCLOSURE
IMPORTANT NOTICE:
• For educational and informational purposes only
• Does not constitute investment advice
• Past performance doesn't guarantee future results
• Trading involves risk and may result in capital loss
• Trade according to your risk tolerance
• Test thoroughly in demo account first
RESPONSIBLE TRADING:
• Always use stop losses
• Control position sizes reasonably
• Don't overtrade
• Continuous learning and improvement
• Keep trading journal
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📜 COPYRIGHT
Price Action Brooks Pro (PABP)
Author: © JimmC98
License: Mozilla Public License 2.0
Pine Script Version: v6
Acknowledgments:
Thanks to Dr. Al Brooks for his contributions to price action trading. This indicator is developed based on his theories.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Experience professional-grade price action analysis now!
"The best traders read price action, not indicators. But when indicators help you read price action better, use them." - Al Brooks
Saty Pivot Ribbon Pro// Saty Pivot Ribbo Pro
// Copyright (C) 2022-2025 Saty Mahajan
//
// A Moving Average Ribbon system that simplifies measuring and using Moving Averages for trend and support/resistance.
// Special thanks to Ripster for his education and EMA Clouds which inspired this indicator.
//@version=5
indicator('Saty Pivot Ribbon Pro', 'Saty Pivot Ribbon Pro', overlay=true)
// Saty Color Theme
saty_green = color.rgb(0, 255, 30)
saty_blue = color.rgb(0, 185, 255)
saty_red = color.rgb(255, 0, 0)
saty_orange = color.rgb(255, 150, 0)
saty_yellow = color.rgb(255,255,0)
saty_violet = color.rgb(150, 100, 255)
saty_purple = color.rgb(150, 0, 150)
saty_pink = color.rgb(255, 0, 255)
saty_white = color.rgb(255, 255, 255)
saty_light_gray = color.rgb(200,200,200)
saty_gray = color.rgb(150,150,150)
saty_dark_gray = color.rgb(100,100,100)
saty_black = color.rgb(0, 0, 0)
// Settings
time_warp = input.string("off", 'Time Warp', options= )
fast_ema = input(title='Fast EMA Length', defval=8)
show_fast_ema_highlight = input(false, 'Show Fast EMA Highlight')
fast_ema_highlight_color = input(saty_white, 'Fast EMA Highlight Color')
show_pullback_overlap = input(true, 'Show Pullback Overlap')
pullback_overlap_ema = input(title='Pullback Overlap EMA Length',defval=13)
show_pullback_overlap_ema_highlight = input(false, 'Show Pullback EMA Highlight')
pullback_overlap_ema_highlight_color = input(saty_white, 'Pullback EMA Highlight Color')
pivot_ema = input(title='Pivot EMA Length', defval=21)
show_pivot_ema_highlight = input(true, 'Show Pivot EMA Highlight')
pivot_ema_highlight_color = input(saty_white, 'Pivot EMA Highlight Color')
show_pivot_bias = input(true, 'Show Pivot Bias')
pivot_bias_ema = input(title = 'Pivot Bias EMA Length', defval=8)
slow_ema = input(title='Slow EMA Length', defval=48)
show_slow_ema_highlight = input(false, 'Show Slow EMA Highlight')
slow_ema_highlight_color = input(saty_white, 'Slow EMA Highlight Color')
show_long_term_ema = input(true, 'Show Long-Term EMA')
long_term_ema = input(title='Long-term EMA Length', defval=200)
show_long_term_bias = input(true, 'Show Long-term Bias')
long_term_bias_ema = input(title = 'Long-term Bias EMA Length', defval=21)
show_candle_bias = input(true, "Show Candle Bias")
bias_ema = input(48, 'Bias EMA')
show_candle_bias_compression_candles = input(false, "Show Candle Bias Compression Candles")
bullish_fast_cloud_color = input(color.green, 'Bullish Fast Cloud Color')
bearish_fast_cloud_color = input(color.red, 'Bearish Fast Cloud Color')
bullish_slow_cloud_color = input(color.aqua, 'Bullish Slow Cloud Color')
bearish_slow_cloud_color = input(color.orange, 'Bearish Slow Cloud Color')
cloud_transparency = input(title='Cloud Transparency (0-100)', defval=60)
show_conviction_arrows = input(true, 'Show Conviction Arrows')
bullish_conviction_color = input(saty_blue, 'Bullish Conviction Arrow Color')
bearish_conviction_color = input(saty_orange, 'Bearish Conviction Arrow Color')
show_fast_conviction_ema = input(false, 'Show Fast Conviction EMA')
fast_conviction_ema = input(13, 'Fast Conviction EMA Length')
fast_conviction_ema_color = input(saty_light_gray, 'Fast Conviction EMA Color')
show_slow_conviction_ema = input(false, 'Show Slow Conviction EMA')
slow_conviction_ema = input(48, 'Slow Conviction EMA Length')
slow_conviction_ema_color = input(saty_purple, 'Slow Conviction EMA Color')
// Time Warp timeframe
// Set the appropriate timeframe based on trading mode
timeframe_func() =>
timeframe = timeframe.period
if time_warp == 'off'
timeframe := timeframe.period
else if time_warp == '1m'
timeframe := '1'
else if time_warp == '2m'
timeframe := '2'
else if time_warp == '3m'
timeframe := '3'
else if time_warp == '4m'
timeframe := '4'
else if time_warp == '5m'
timeframe := '5'
else if time_warp == '10m'
timeframe := '10'
else if time_warp == '15m'
timeframe := '15'
else if time_warp == '20m'
timeframe := '20'
else if time_warp == '30m'
timeframe := '30'
else if time_warp == '1h'
timeframe := '60'
else if time_warp == '2h'
timeframe := '120'
else if time_warp == '4h'
timeframe := '240'
else if time_warp == 'D'
timeframe := 'D'
else if time_warp == 'W'
timeframe := 'W'
else if time_warp == 'M'
timeframe := 'M'
else if time_warp == 'Y'
timeframe := '12M'
else
timeframe := timeframe.period
// Calculations
ticker = ticker.new(syminfo.prefix, syminfo.ticker, session=session.extended)
price = request.security(ticker, timeframe_func(), close, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
fast_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, fast_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
pullback_overlap_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, pullback_overlap_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
pivot_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, pivot_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
pivot_bias_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, pivot_bias_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
slow_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, slow_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
long_term_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, long_term_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
long_term_bias_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, long_term_bias_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
fast_conviction_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, fast_conviction_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
slow_conviction_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, slow_conviction_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
// Create plots
fast_ema_plot = plot(fast_ema_value, color=show_fast_ema_highlight ? fast_ema_highlight_color : na, title='Fast EMA')
pullback_overlap_ema_plot = plot(pullback_overlap_ema_value, color=(show_pullback_overlap_ema_highlight and show_pullback_overlap) ? pullback_overlap_ema_highlight_color : na, title='Pullback Overlap EMA')
pivot_ema_bias_color = show_pivot_bias ? (pivot_bias_ema_value >= pivot_ema_value ? saty_green : saty_red) : pivot_ema_highlight_color
pivot_ema_plot = plot(pivot_ema_value, color=show_pivot_ema_highlight ? pivot_ema_bias_color : na, title='Pivot EMA')
slow_ema_plot = plot(slow_ema_value, color=show_slow_ema_highlight ? slow_ema_highlight_color : na, title='Slow EMA')
long_term_ema_bias_color = show_long_term_bias ? (long_term_bias_ema_value >= long_term_ema_value ? saty_blue : saty_orange) : saty_white
long_term_ema_plot = plot(long_term_ema_value, color=show_long_term_ema ? long_term_ema_bias_color : na, title='Long-term EMA')
// Fill in the plots to create clouds
fast_cloud_color = fast_ema_value >= pivot_ema_value ? color.new(bullish_fast_cloud_color, cloud_transparency) : color.new(bearish_fast_cloud_color, cloud_transparency)
fill(fast_ema_plot, pivot_ema_plot, color=fast_cloud_color, title='Fast Cloud', transp=90)
pullback_overlap_cloud_color = pullback_overlap_ema_value >= slow_ema_value ? color.new(bullish_slow_cloud_color, cloud_transparency) : color.new(bearish_slow_cloud_color, cloud_transparency)
fill(pullback_overlap_ema_plot, slow_ema_plot, color=show_pullback_overlap ? pullback_overlap_cloud_color : na, title='Slow Cloud', transp=90)
slow_cloud_color = pivot_ema_value >= slow_ema_value ? color.new(bullish_slow_cloud_color, cloud_transparency) : color.new(bearish_slow_cloud_color, cloud_transparency)
fill(pivot_ema_plot, slow_ema_plot, color=show_pullback_overlap ? na : slow_cloud_color, title="Slow Cloud Overlapped", transp=90)
// Conviction Arrows (default based on 13/48)
bullish_conviction = fast_conviction_ema_value >= slow_conviction_ema_value
bearish_conviction = fast_conviction_ema_value < slow_conviction_ema_value
bullish_conviction_confirmed = bullish_conviction == true and bullish_conviction == false
bearish_conviction_confirmed = bearish_conviction == true and bearish_conviction == false
plotshape(bullish_conviction_confirmed and show_conviction_arrows, style=shape.triangleup, color=bullish_conviction_color, location=location.abovebar, size=size.tiny)
plotshape(bearish_conviction_confirmed and show_conviction_arrows, style=shape.triangledown, color=bearish_conviction_color, location=location.belowbar, size=size.tiny)
fast_conviction_ema_plot = plot(fast_conviction_ema_value, color=show_fast_conviction_ema ? fast_conviction_ema_color : na, title='Fast Conviction EMA')
slow_conviction_ema_plot = plot(slow_conviction_ema_value, color=show_slow_conviction_ema ? slow_conviction_ema_color : na, title='Slow Conviction EMA')
// # Bollinger Band Compression Signal
compression_pivot = ta.ema(close, 21)
above_compression_pivot = close >= compression_pivot
bband_offset = 2.0 * ta.stdev(close, 21)
bband_up = compression_pivot + bband_offset
bband_down = compression_pivot - bband_offset
compression_threshold_up = compression_pivot + (2.0 * ta.atr(14))
compression_threshold_down = compression_pivot - (2.0 * ta.atr(14))
expansion_threshold_up = compression_pivot + (1.854 * ta.atr(14))
expansion_threshold_down = compression_pivot - (1.854 * ta.atr(14))
compression = above_compression_pivot ? (bband_up - compression_threshold_up) : (compression_threshold_down - bband_down)
in_expansion_zone = above_compression_pivot ? (bband_up - expansion_threshold_up) : (expansion_threshold_down - bband_down)
expansion = compression <= compression
compression_tracker = false
if expansion and in_expansion_zone > 0
compression_tracker := false
else if compression <= 0
compression_tracker := true
else
compression_tracker := false
// Candle Bias
bias_ema_value = request.security(syminfo.tickerid, timeframe_func(), ta.ema(price, bias_ema) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
above_pivot = close >= bias_ema_value
below_pivot = close < bias_ema_value
up = open < close
doji = open == close
down = open > close
bias_candle_color = compression_tracker and up and show_candle_bias and show_candle_bias_compression_candles ? saty_violet :
compression_tracker and down and show_candle_bias and show_candle_bias_compression_candles ? saty_purple :
above_pivot and up and show_candle_bias ? saty_green :
below_pivot and up and show_candle_bias ? saty_orange :
above_pivot and down and show_candle_bias ? saty_blue :
below_pivot and down and show_candle_bias ? saty_red :
doji and show_candle_bias ? color.gray :
na
plotcandle(open,high,low,close,color = bias_candle_color, bordercolor = bias_candle_color, wickcolor = bias_candle_color)
Liquidity & SMT Detector//@version=5
indicator("Liquidity & SMT Detector", overlay=true, max_lines_count=500, max_labels_count=500)
// ============================================
// INPUT SETTINGS
// ============================================
// Group 1: Liquidity Detection
swing_length = input.int(15, "Swing Length", minval=5, maxval=50, group="Liquidity Detection")
swing_strength = input.int(3, "Swing Strength (bars clear)", minval=1, maxval=10, group="Liquidity Detection")
max_lines = input.int(10, "Max Lines Displayed", minval=3, maxval=50, group="Liquidity Detection")
line_color_high = input.color(color.red, "High Line Color", group="Liquidity Detection")
line_color_low = input.color(color.green, "Low Line Color", group="Liquidity Detection")
line_width = input.int(2, "Line Width", minval=1, maxval=5, group="Liquidity Detection")
show_labels = input.bool(true, "Show H/L Labels", group="Liquidity Detection")
// Group 2: Displacement Detection
enable_displacement = input.bool(true, "Enable Displacement Detection", group="Displacement")
displacement_min_points = input.float(10.0, "Min Points Move", minval=1.0, maxval=100.0, step=1.0, group="Displacement")
displacement_multiplier = input.float(3.0, "Size Multiplier", minval=2.0, maxval=10.0, step=0.5, group="Displacement")
displacement_period = input.int(30, "Average Period", minval=10, maxval=100, group="Displacement")
displacement_color_bull = input.color(color.new(color.aqua, 70), "Bullish Color", group="Displacement")
displacement_color_bear = input.color(color.new(color.orange, 70), "Bearish Color", group="Displacement")
show_displacement_label = input.bool(true, "Show Labels", group="Displacement")
// Group 3: SMT Detection
enable_smt = input.bool(true, "Enable SMT Detection", group="SMT Divergence")
nq_symbol = input.string("NQ1!", "Nasdaq Symbol", group="SMT Divergence")
es_symbol = input.string("ES1!", "S&P500 Symbol", group="SMT Divergence")
smt_lookback = input.int(20, "Lookback Period", minval=5, maxval=100, group="SMT Divergence")
smt_line_color = input.color(color.yellow, "SMT Line Color", group="SMT Divergence")
smt_text_color = input.color(color.yellow, "SMT Text Color", group="SMT Divergence")
// Group 4: Consolidation Zone
enable_consolidation = input.bool(true, "Enable Consolidation Zone", group="Consolidation")
consol_lookback = input.int(10, "Lookback Period", minval=5, maxval=50, group="Consolidation")
consol_range_percent = input.float(0.5, "Max Range %", minval=0.1, maxval=2.0, step=0.1, group="Consolidation")
consol_vol_threshold = input.float(0.7, "Volume Threshold", minval=0.3, maxval=1.0, step=0.1, group="Consolidation")
consol_color = input.color(color.new(color.red, 85), "Zone Color", group="Consolidation")
// ============================================
// ARRAYS FOR LINE/LABEL MANAGEMENT
// ============================================
var line high_lines = array.new_line()
var line low_lines = array.new_line()
var label high_labels = array.new_label()
var label low_labels = array.new_label()
var float high_levels = array.new_float()
var float low_levels = array.new_float()
var line smt_lines = array.new_line()
var label smt_labels = array.new_label()
var float smt_nq_levels = array.new_float()
var float smt_es_levels = array.new_float()
var bool smt_nq_lower = array.new_bool()
// ============================================
// FUNCTION: DETECT SWING HIGHS (STRONGER)
// ============================================
isSwingHigh(len, strength) =>
is_pivot = true
pivot_high = high
for i = 1 to strength
if high >= pivot_high or high >= pivot_high
is_pivot := false
break
if is_pivot
for i = strength + 1 to len
if high > pivot_high or high > pivot_high
is_pivot := false
break
is_pivot
// ============================================
// FUNCTION: DETECT SWING LOWS (STRONGER)
// ============================================
isSwingLow(len, strength) =>
is_pivot = true
pivot_low = low
for i = 1 to strength
if low <= pivot_low or low <= pivot_low
is_pivot := false
break
if is_pivot
for i = strength + 1 to len
if low < pivot_low or low < pivot_low
is_pivot := false
break
is_pivot
// ============================================
// SWING HIGH DETECTION & LINE DRAWING
// ============================================
if isSwingHigh(swing_length, swing_strength)
swing_high = high
new_line = line.new(bar_index - swing_length, swing_high, bar_index, swing_high, color=line_color_high, width=line_width, style=line.style_dashed)
array.push(high_lines, new_line)
array.push(high_levels, swing_high)
if show_labels
new_label = label.new(bar_index - swing_length, swing_high, "H", color=color.new(line_color_high, 80), textcolor=line_color_high, style=label.style_label_down, size=size.small)
array.push(high_labels, new_label)
if array.size(high_lines) > max_lines
line.delete(array.shift(high_lines))
array.shift(high_levels)
if show_labels and array.size(high_labels) > 0
label.delete(array.shift(high_labels))
// ============================================
// SWING LOW DETECTION & LINE DRAWING
// ============================================
if isSwingLow(swing_length, swing_strength)
swing_low = low
new_line = line.new(bar_index - swing_length, swing_low, bar_index, swing_low, color=line_color_low, width=line_width, style=line.style_dashed)
array.push(low_lines, new_line)
array.push(low_levels, swing_low)
if show_labels
new_label = label.new(bar_index - swing_length, swing_low, "L", color=color.new(line_color_low, 80), textcolor=line_color_low, style=label.style_label_up, size=size.small)
array.push(low_labels, new_label)
if array.size(low_lines) > max_lines
line.delete(array.shift(low_lines))
array.shift(low_levels)
if show_labels and array.size(low_labels) > 0
label.delete(array.shift(low_labels))
// ============================================
// UPDATE EXISTING LINES & CHECK FOR SWEEPS
// ============================================
if array.size(high_lines) > 0
for i = array.size(high_lines) - 1 to 0
current_line = array.get(high_lines, i)
current_level = array.get(high_levels, i)
if close > current_level
line.delete(current_line)
array.remove(high_lines, i)
array.remove(high_levels, i)
if show_labels and i < array.size(high_labels)
label.delete(array.get(high_labels, i))
array.remove(high_labels, i)
else
line.set_x2(current_line, bar_index)
if array.size(low_lines) > 0
for i = array.size(low_lines) - 1 to 0
current_line = array.get(low_lines, i)
current_level = array.get(low_levels, i)
if close < current_level
line.delete(current_line)
array.remove(low_lines, i)
array.remove(low_levels, i)
if show_labels and i < array.size(low_labels)
label.delete(array.get(low_labels, i))
array.remove(low_labels, i)
else
line.set_x2(current_line, bar_index)
// ============================================
// DISPLACEMENT CANDLE DETECTION
// ============================================
body_size = math.abs(close - open)
avg_body = ta.sma(math.abs(close - open), displacement_period)
candle_range = high - low
points_moved = body_size
is_min_points = points_moved >= displacement_min_points
is_strong_body = body_size > (avg_body * displacement_multiplier)
is_impulsive = body_size > (candle_range * 0.6)
is_displacement = enable_displacement and is_min_points and is_strong_body and is_impulsive
is_bullish = close > open
if is_displacement and show_displacement_label
label.new(bar_index, low, "D", color=color.new(is_bullish ? color.aqua : color.orange, 30), textcolor=is_bullish ? color.aqua : color.orange, style=label.style_label_down, size=size.small, yloc=yloc.belowbar)
// ============================================
// CONSOLIDATION ZONE DETECTION
// ============================================
consol_highest = ta.highest(high, consol_lookback)
consol_lowest = ta.lowest(low, consol_lookback)
consol_range = consol_highest - consol_lowest
consol_range_pct = (consol_range / close) * 100
consol_avg_volume = ta.sma(volume, consol_lookback)
consol_current_vol = ta.sma(volume, math.min(consol_lookback, bar_index + 1))
consol_low_volume = consol_current_vol < (consol_avg_volume * consol_vol_threshold)
consol_body_sizes = array.new_float()
for i = 0 to math.min(consol_lookback - 1, bar_index)
array.push(consol_body_sizes, math.abs(close - open ))
consol_avg_body = array.avg(consol_body_sizes)
consol_overall_avg = ta.sma(math.abs(close - open), 50)
consol_small_candles = consol_avg_body < (consol_overall_avg * 0.7)
consol_tight_range = consol_range_pct <= consol_range_percent
is_consolidation = enable_consolidation and consol_tight_range and consol_low_volume and consol_small_candles
bgcolor(is_consolidation ? consol_color : na, title="Consolidation Zone")
// ============================================
// SMT DIVERGENCE DETECTION
// ============================================
current_symbol = syminfo.ticker
comparison_symbol = str.contains(current_symbol, "NQ") ? es_symbol : nq_symbol
comparison_high = request.security(comparison_symbol, timeframe.period, high, lookahead=barmerge.lookahead_off)
comparison_low = request.security(comparison_symbol, timeframe.period, low, lookahead=barmerge.lookahead_off)
var float prev_current_low = na
var float prev_comparison_low = na
var int prev_swing_bar = na
current_is_swing_low = isSwingLow(swing_length, swing_strength)
comparison_is_swing_low = ta.lowestbars(comparison_low, swing_length * 2 + 1) == -swing_length
if enable_smt and current_is_swing_low
current_swing_low = low
comparison_swing_low = comparison_low
if not na(prev_current_low) and not na(prev_comparison_low)
current_lower = current_swing_low < prev_current_low
comparison_lower = comparison_swing_low < prev_comparison_low
is_smt = (current_lower and not comparison_lower) or (not current_lower and comparison_lower)
if is_smt
smt_line = line.new(prev_swing_bar, prev_current_low, bar_index - swing_length, current_swing_low, color=smt_line_color, width=2, style=line.style_solid)
mid_bar = math.round((prev_swing_bar + bar_index - swing_length) / 2)
mid_price = (prev_current_low + current_swing_low) / 2
smt_label = label.new(mid_bar, mid_price, "SMT", color=color.new(smt_line_color, 80), textcolor=smt_text_color, style=label.style_label_center, size=size.normal)
array.push(smt_lines, smt_line)
array.push(smt_labels, smt_label)
array.push(smt_nq_levels, str.contains(current_symbol, "NQ") ? current_swing_low : comparison_swing_low)
array.push(smt_es_levels, str.contains(current_symbol, "NQ") ? comparison_swing_low : current_swing_low)
array.push(smt_nq_lower, str.contains(current_symbol, "NQ") ? current_lower : comparison_lower)
prev_current_low := current_swing_low
prev_comparison_low := comparison_swing_low
prev_swing_bar := bar_index - swing_length
if enable_smt and array.size(smt_lines) > 0
for i = array.size(smt_lines) - 1 to 0
nq_level = array.get(smt_nq_levels, i)
es_level = array.get(smt_es_levels, i)
nq_was_lower = array.get(smt_nq_lower, i)
current_nq_low = str.contains(current_symbol, "NQ") ? low : comparison_low
current_es_low = str.contains(current_symbol, "NQ") ? comparison_low : low
es_now_lower = current_es_low < es_level
nq_now_lower = current_nq_low < nq_level
smt_invalidated = (nq_was_lower and es_now_lower) or (not nq_was_lower and nq_now_lower)
if smt_invalidated
line.delete(array.get(smt_lines, i))
label.delete(array.get(smt_labels, i))
array.remove(smt_lines, i)
array.remove(smt_labels, i)
array.remove(smt_nq_levels, i)
array.remove(smt_es_levels, i)
array.remove(smt_nq_lower, i)
// ============================================
// ALERTS
// ============================================
alertcondition(array.size(high_lines) < array.size(high_lines) , title="Liquidity Sweep High", message="High liquidity swept at {{close}}")
alertcondition(array.size(low_lines) < array.size(low_lines) , title="Liquidity Sweep Low", message="Low liquidity swept at {{close}}")
alertcondition(is_displacement, title="Displacement Candle", message="Displacement candle detected at {{close}}")
alertcondition(is_consolidation, title="Consolidation Zone", message="Market entering consolidation at {{close}}")
Sessions High/Low with Break LogicSessions High/Low with Break Logic – Indicator Description
Update 27.10.25
Overview
This indicator marks the highs and lows of key trading sessions (Tokyo, London, New York) and highlights when these levels are broken. It is ideal for traders using session-based strategies to monitor breakouts or support/resistance levels in real time.
Key Features
Session-Based Highs/Lows:
Tracks highs and lows for three trading sessions:
Tokyo: 02:00–09:00 (UTC+1)
London: 09:00–17:00 (UTC+1)
New York: 15:30–22:00 (UTC+1)
Break Logic:
Detects when the current price breaks a session high or low.
Labels are updated with a "Break" note when a level is breached.
Visual Display:
Draws horizontal lines for highs and lows of each session.
Adds labels with values (optionally including price).
Colors are customizable for each session:
Tokyo: Purple
London: Teal
New York: Orange
Customizable Settings:
Horizontal Offset: Shifts lines and labels horizontally for clarity.
Time Zone: Adjustable to UTC+1 (default).
Price Display: Option to show the exact price next to the label.
Settings and Translations
Display Settings
Horizontal Offset: Horizontal shift for lines and labels.
Show Price with Text: Displays the price next to the label (e.g., "London High: 123.45").
Time Settings
UTC: Time zone (default: UTC+1).
Session 1 (Tokyo)
Session 1: 02:00–09:00
High Text: "Tokyo High"
Low Text: "Tokyo Low"
High Color: Purple
Low Color: Purple
Session 2 (London)
Session 2: 09:00–17:00
High Text: "London High"
Low Text: "London Low"
High Color: Teal
Low Color: Teal
Session 3 (New York)
Session 3: 15:30–22:00
High Text: "New York High"
Low Text: "New York Low"
High Color: Orange
Low Color: Orange
Liquidity Grab + RSI Divergence═══════════════════════════════════════════════════════════════
LIQUIDITY GRAB + RSI DIVERGENCE INDICATOR
═══════════════════════════════════════════════════════════════
📌 OVERVIEW
This indicator identifies high-probability reversals by combining:
• Liquidity sweeps (stop hunts)
• RSI divergence confirmation
• Filters false breakouts automatically
═══════════════════════════════════════════════════════════════
🟢 BUY SIGNAL (Green Triangle Up)
REQUIRES BOTH CONDITIONS:
1. Liquidity Grab Below Previous Low
• Price breaks BELOW recent low
• Candle CLOSES ABOVE that low
• Traps sellers who shorted the breakdown
2. Bullish RSI Divergence
• Price: Lower Low (LL)
• RSI: Higher Low (HL)
• Shows weakening downward momentum
➜ Result: Potential bullish reversal
═══════════════════════════════════════════════════════════════
🔴 SELL SIGNAL (Red Triangle Down)
REQUIRES BOTH CONDITIONS:
1. Liquidity Grab Above Previous High
• Price breaks ABOVE recent high
• Candle CLOSES BELOW that high
• Traps buyers who bought the breakout
2. Bearish RSI Divergence
• Price: Higher High (HH)
• RSI: Lower High (LH)
• Shows weakening upward momentum
➜ Result: Potential bearish reversal
═══════════════════════════════════════════════════════════════
📊 VISUAL INDICATORS
Main Signals:
🔺 Large Green Triangle = BUY (Liq Grab + Bullish Div)
🔻 Large Red Triangle = SELL (Liq Grab + Bearish Div)
Reference Levels:
━ Red Line = Previous High Level
━ Green Line = Previous Low Level
Additional Markers (Optional):
○ Small Green Circle = Liquidity grab low only
○ Small Red Circle = Liquidity grab high only
✕ Small Blue Cross = Bullish divergence only
✕ Small Orange Cross = Bearish divergence only
═══════════════════════════════════════════════════════════════
⚙️ SETTINGS
1. Lookback Period (Default: 20)
• Range: 5-100
• Sets how far back to identify previous highs/lows
• Higher = fewer but stronger levels
• Lower = more frequent but weaker levels
2. RSI Length (Default: 14)
• Range: 5-50
• Standard RSI calculation period
• 14 is industry standard
3. RSI Divergence Lookback (Default: 5)
• Range: 3-20
• Controls pivot point sensitivity
• Higher = fewer divergence signals
• Lower = more divergence signals
4. Show Labels (Default: ON)
• Toggle BUY/SELL text labels
• Disable for cleaner chart view
═══════════════════════════════════════════════════════════════
💡 HOW TO USE
Step 1: WAIT FOR CONFIRMATION
• Only trade LARGE TRIANGLE signals
• Ignore small circles/crosses alone
Step 2: CHECK TIMEFRAME
• Best on: 15min, 1H, 4H, Daily
• Avoid: 1min, 5min (too noisy)
Step 3: CONFIRM CONTEXT
• Check overall market trend
• Identify key support/resistance
• Look for confluence with price action
Step 4: ENTRY & RISK MANAGEMENT
• Enter on signal candle close or pullback
• Stop loss below/above the liquidity grab wick
• Target: Previous swing high/low or key levels
• Risk/Reward: Minimum 1:2 ratio
Step 5: SET ALERTS
• Create alert for "BUY Signal"
• Create alert for "SELL Signal"
• Never miss opportunities
═══════════════════════════════════════════════════════════════
✅ BEST PRACTICES
DO:
✓ Use on multiple timeframes for confluence
✓ Combine with support/resistance zones
✓ Wait for both conditions (liq grab + divergence)
✓ Practice on demo account first
✓ Use proper position sizing
DON'T:
✗ Trade every small circle/cross
✗ Use on very low timeframes (<15min)
✗ Ignore overall market context
✗ Trade without stop loss
✗ Risk more than 1-2% per trade
═══════════════════════════════════════════════════════════════
⚠️ IMPORTANT NOTES
• This is a CONFIRMATION tool, not a holy grail
• No indicator is 100% accurate
• Combine with your trading strategy
• Backtest on your preferred instruments
• Adjust parameters for your trading style
• Higher timeframes = more reliable signals
• Always use risk management
═══════════════════════════════════════════════════════════════
🔔 ALERTS INCLUDED
Two alert conditions are built-in:
1. "BUY Signal" - Liquidity Grab + Bullish RSI Divergence
2. "SELL Signal" - Liquidity Grab + Bearish RSI Divergence
═══════════════════════════════════════════════════════════════
📈 RECOMMENDED SETTINGS BY TIMEFRAME
5-15 Min Charts:
• Lookback: 10-15
• RSI Length: 14
• RSI Div Lookback: 3-5
1H-4H Charts:
• Lookback: 20-30
• RSI Length: 14
• RSI Div Lookback: 5-7
Daily Charts:
• Lookback: 30-50
• RSI Length: 14
• RSI Div Lookback: 7-10
═══════════════════════════════════════════════════════════════
Good luck and trade safe! 🚀
Reverse RSI LevelsSimple reverse RSI calculation
As default RSI values 30-50-70 are calculated into price.
This can be used similar to a bollinger band, but has also multiple other uses.
70 RSI works as overbought/resistance level.
50 RSI works as both support and resistance depending on the trend.
30 RSI works as oversold/support level.
Keep in mind that RSI levels can go extreme, specially in Crypto.
I haven't made it possible to adjust the default levels, but I've added 4 more calculations where you can plot reverse RSI calculations of your desired RSI values.
If you're a RSI geek, you probably use RSI quite often to see how high/low the RSI might go before finding a new support or resistance level. Now you can just put the RSI level into on of the 4 slots in the settings and see where that support/resistance level might be on the chart.
RBLR - GSK Vizag AP IndiaThis indicator identifies the Opening Range High (ORH) and Low (ORL) based on the first 15 minutes of the Indian equity market session (9:15 AM to 9:30 AM IST). It draws horizontal lines extending these levels until market close (3:30 PM IST) and generates visual signals for price breakouts above ORH or below ORL, as well as reversals back into the range.
Key features:
- **Range Calculation**: Captures the high and low during the opening period using real-time bar data.
- **Line Extension**: Lines are dynamically extended bar-by-bar within the session for clear visualization.
- **Signals**:
- Green triangle up: Crossover above ORH (potential bullish breakout).
- Red triangle down: Crossunder below ORL (potential bearish breakout).
- Yellow labels: Reversals from breakout levels back into the range.
- **Labels**: "RAM BAAN" marks the ORH (inspired by a precise arrow from the Ramayana), and "LAKSHMAN REKHA" marks the ORL (inspired by a protective boundary line from the same epic).
- **Customization**: Toggle signals on/off and select line styles (Dotted, Dashed, Solid, or Smoothed, with transparency for Smoothed).
The state-tracking logic prevents redundant signals by monitoring if price remains outside the range after a breakout. This helps users observe range-bound behavior or directional moves without built-in alerts. This indicator is particularly useful for day trading on longer intraday timeframes (e.g., 15-minute charts) to identify session-wide trends and avoid noise in shorter frames. For best results, apply on intraday timeframes on NSE/BSE symbols. Note that lines and labels are limited to the script's max counts to avoid performance issues on long histories.
**Disclaimer**: This indicator is for educational and informational purposes only and does not constitute financial, investment, or trading advice. Trading in financial markets involves significant risk of loss and is not suitable for all investors. Past performance is not indicative of future results. Users should conduct their own research, consider their financial situation, and consult with qualified professionals before making any investment decisions. The author and TradingView assume no liability for any losses incurred from its use.
NOVA Breakout Signals v2.2 (TF M30)A clean, rules-based breakout signal tool for 30-minute charts.
It detects Dow swing breakouts and filters them with RSI, MACD and Volume so you only see the higher-quality entries. The script does not place trades and does not calculate SL/TP – it only prints clear LONG/SHORT labels at the entry price.
⸻
How it works
1. Timeframe enforcement – Signals are generated only on M30. On other timeframes the script shows a notice and stays silent.
2. Breakout engine (Dow swings) – The last confirmed swing high/low (pivots) is tracked.
• Breakout Up: bar closes above the last swing high by a small buffer.
• Breakout Down: bar closes below the last swing low by a small buffer.
3. Quality filters (all must be true):
• RSI (default length 30):
• Long: RSI > threshold and rising.
• Short: RSI < threshold and falling.
• MACD (12/26/9):
• Long: histogram > 0 and line > signal.
• Short: histogram < 0 and line < signal.
• Volume: current volume > SMA(volume, 20) × multiplier.
4. Debounce / anti-spam
• Cooldown of 4 hours (8 M30 bars) after any signal.
• Minimum price distance from the previous signal to avoid clustered labels.
Signals appear once the bar closes (barstate.isconfirmed). No swing lines are drawn to keep the chart clean; only entry labels are shown.
⸻
Inputs (key)
• RSI length & thresholds for Long/Short confirmation.
• MACD uses 12/26/9 (fixed).
• Volume multiplier (relative to SMA 20).
• Breakout buffer %, Cooldown hours, Min distance %.
• Show labels (on/off).
⸻
Usage tips
• Start with gold/major FX/indices on M30; use “Once per bar close” if you attach alerts.
• Increase the breakout buffer and volume multiplier in choppy markets.
• Tighten RSI thresholds (e.g., 55/45) if you want fewer but stronger signals.
⸻
Notes & limitations
• Pivots confirm after a few bars by definition; signals themselves are printed only on confirmed bar close and do not repaint once shown.
• This is a signal indicator, not investment advice. Always manage risk.
High Zone MapperHigh Zone and Low Zone Mapper — Quick Manual (Short-Term Trading)
Author: hkpress | Script date: 2025-10-26
This indicator draws: PDH/PDL (Prior Day High/Low), PWH/PWL (Prior Week High/Low), ORH/ORL (Opening Range High/Low), IDH/IDL (Intraday High/Low), plus a shaded Opening Range box.
I built this script after watching an interview on TradingLion with a Hong Kong trader who uses prior-day, opening-range, intraday, and prior-week levels to plan entries and exits. The approach is especially useful for traders who run tight stops (about 1.5%–3%) while aiming to size up into bigger positions. (Youtube: www.youtube.com)
1) Quick Start (15-minute default)
Timeframe: use 1–15m for scalps, 5–30m for intraday.
Opening Range (OR — Opening Range): default 15 minutes.
Turn on “Show OR lines while opening range builds” if you want to see ORH/ORL during the first 15 minutes.
Session mode:
Stocks → Use Trading Session = ON (RTH — Regular Trading Hours, e.g., 09:30–16:00).
Crypto/24h → Use Trading Session = OFF (day-start mode).
Visuals: enable PDH/PDL, PWH/PWL, ORH/ORL, IDH/IDL, and the Opening Range box (fill).
2) What each line means
PDH/PDL (Prior Day High/Low): Yesterday’s extremes; frequent reaction zones.
PWH/PWL (Prior Week High/Low): Last week’s extremes; stronger “fences.”
ORH/ORL (Opening Range High/Low): High/low of the first 15 minutes by default; key breakout compass.
IDH/IDL (Intraday High/Low): Today’s high/low so far; confirms momentum after a break.
3) Short-Term Playbook (step-by-step)
A. Before the open
Note where price is vs PDH/PDL and PWH/PWL to set a bias.
Above PDH and pushing up → bullish lean.
Below PDL and slipping → bearish lean.
B. First 15 minutes (Opening Range forms)
Let the Opening Range box print (ORH top, ORL bottom).
Think of this box as the day’s first “battlefield.”
C. Breakout entries
Long: Clean break above ORH (preferably with momentum/volume).
Stop: just below ORH (aggressive) or below ORL (conservative).
Targets: step up through PDH → PWH.
Short: Clean break below ORL.
Stop: just above ORL (aggressive) or above ORH (conservative).
Targets: step down through PDL → PWL.
D. Retest entries (missed the first move?)
After a break, wait for a retest of ORH/ORL from the other side.
Enter on rejection/continuation; place stop on the opposite side of the retested level.
E. Momentum confirmation
New IDH (Intraday High) after an ORH break = trend strengthening (consider add/hold).
New IDL after an ORL break = downtrend strengthening.
Trail stops below higher lows (long) or above lower highs (short).
F. Range mode (no break yet)
If price stays inside the box, fade edges: buy near ORL, sell near ORH, until a decisive break.
4) Risk rules (keep it simple)
Aim for R:R (Risk-to-Reward) ≥ 1:2.
Set a daily max loss (e.g., 1–2R) and respect it.
Invalidation: if price breaks and then re-enters the box and holds, exit—don’t argue.
5) Quick example
The 15-minute OR prints: ORL = 100, ORH = 105.
Price breaks 106 with momentum → Long.
Stop 104.8 (below ORH) or 99.8 (below ORL).
Targets: PDH, then PWH. Trail as IDH keeps making new highs.
6) Handy tweaks
Noisy/news days: widen to 30-minute OR to reduce whipsaws.
Strong trend open: tighten to 5–10-minute OR to engage earlier.
Choppy session: stick to box-edge fades or stand aside after two failed breaks.
7) Built-in alerts to consider
“Break Above ORH / Below ORL” → entry triggers.
“New IDH / New IDL” → momentum confirms; tighten stops or scale.
“Break Above PDH / Below PDL / Above PWH / Below PWL” → target hits or bigger trend shifts.
8) Troubleshooting
No lines? Switch to an intraday timeframe (1–60m).
ORH/ORL missing? Turn ON Show OR lines while opening range builds.
Session mismatch? Use correct RTH hours, or turn session OFF for 24h symbols.
Abbreviation cheat-sheet
OR (Opening Range), ORH/ORL (Opening Range High/Low)
PDH/PDL (Prior Day High/Low)
PWH/PWL (Prior Week High/Low)
IDH/IDL (Intraday High/Low)
RTH (Regular Trading Hours), R:R (Risk-to-Reward)
Buy And Hold Performance Screener - [JTCAPITAL]Buy And Hold Performance Screener – is a script designed to track and display multi-asset “buy and hold” performance curves and performance statistics over defined timeframes for selected symbols. It doesn’t attempt to time entries or exits; rather, it shows what would happen if one simply bought the asset at the defined start date and held it.
The indicator works by calculating in the following steps:
Start Date Definition
The script begins by reading an input for the start date. This defines the bar from which the equity curves begin.
Symbol Definitions & Close Price Retrieval
The script allows the user to specify up to ten tickers. For each ticker it uses request.security() on the “1D” timeframe to retrieve the daily close price of that symbol.
Plot Enable Inputs
For each ticker there is an input boolean controlling whether the equity curve for that ticker should be plotted.
Asset Name Cleaning
The helper function clean_name(string asset) => … takes the asset string (e.g., “CRYPTO:SOLUSD”) and manipulates it (via string splitting and replacements) to derive a cleaned short name (e.g., “SOL”). This name is used for visuals (labels, table headers).
Equity Curve Calculation (“HODL”)
The helper function f_HODL(closez) defines a variable equity that assumes a starting equity of 1 unit at the start date and then multiplies by the ratio of each bar’s close to the prior bar’s close: i.e. daily compounding of returns.
Performance Metrics Calculation
The helper function f_performance(closez) calculates, for each symbol’s close series, the percentage change of the current close relative to its close 30 days ago, 90 days ago, 180 days ago, 1 year ago (365 days), 2 years ago (730 days) and 3 years ago (1095 days).
Equity Curve Plots
For each ticker, if the corresponding plot input is true, the script assigns a plotted variable equal to the equity curve value. Its then drawing each selected equity curve on the chart, each in a distinct color.
Table Construction
If the plottable input is true, the script constructs a table and populates it with rows and column corresponding to the assigned tickers and the set 6 timeframes used for display.
Buy and Sell Conditions:
Since this is strictly a “buy-and-hold” performance screener, there are no explicit buy or sell signals generated or plotted. The script assumes: buy at the defined start_date, hold continuously to present. There are no filters, no exit logic, no take-profit or stop-loss. The benefit of this approach is to provide a clean benchmark of how selected assets would have performed if one simply adopted a passive “buy & hold” approach from a given start date.
Features and Parameters:
start_date (input.time) : Defines the date from which performance and equity curves begin.
ticker1 … ticker10 (input.symbol) : User-selectable asset symbols to include in the screener.
plot1 … plot10 (input.bool) : Boolean flags to enable/disable plotting of each asset’s equity curve.
plottable (input.bool) : Flag to enable/disable drawing the performance table.
Colored plotting + Labels for identifying each asset curve on the chart.
Specifications:
Here is a detailed breakdown of every calculation/variable/function used in the script and what each part means:
start_date
This is defined via input.time(timestamp("1 Jan 2025"), title = "Start Date"). It allows the user to pick a specific calendar date from which the equity curves and performance calculations will start.
ticker1 … ticker10
These inputs allow the user to select up to ten different assets (symbols) to monitor. The script uses each of these to fetch daily close prices.
plot1 … plot10
Boolean inputs controlling which of the ten asset equity curves are plotted. If plotX is true, the equity curve for ticker X will be visible; otherwise it will be not plotted. This gives the user flexibility to include or exclude specific assets on the chart.
Returns the cleaned asset short name.
This provides friendly text labels like “BTC”, “ETH”, “SOL”, etc., instead of full symbol codes.
The choice of distinct colours for each asset helps differentiate curves visually when multiple assets are overlaid.
Colour definitions
Variables color1…color10 are explicitly defined via color.rgb(r,g,b) to give each asset a unique colour (e.g., red, orange, yellow, green, cyan, blue, purple, pink, etc.).
What are the benefits of combining these calculations?
By computing equity curves for multiple assets from the same start date and overlaying them, you can visualise comparative performance of different assets under a uniform “buy & hold” assumption.
The performance table adds multi-horizon returns (30 D, 90 D, 180 D, 1 Y, 2 Y, 3 Y) which helps the user see both short-term and longer-term performance without having to manually compute returns.
The use of daily close data via request.security(..., "1D") removes dependency on the chart’s timeframe, thereby standardising the comparison across assets.
The equity curve and table together provide both visual (curve) and numerical (table) summaries of performance, making it easier to spot trends, divergences, and cross-asset comparisons at a glance.
Because it uses compounding (equity := equity * (closez / closez )), the curves reflect the real growth of a 1-unit investment held over time, rather than only simple returns.
The labelling of curves and the color-coding make the multi-asset overlay easier to interpret.
Using a clean start date ensures that all curves begin at the same point (1 unit at start_date), making relative performance intuitive.
Because of this, the script is useful as a benchmarking tool: rather than trying to pick entries or exit points, you can simply compare “what if I had held these assets since Jan 1 2025” (or your chosen date), and see which assets out-/under-performed in that period. It helps an investor or trader evaluate the long-term benefits of passive vs. active management, or of allocation decisions.
Please note:
The script assumes continuous daily data and does not account for dividends, fees, slippage, or tax implications.
It does not attempt to optimise timing or provide trading signals.
Returns prior to the start date are ignored (equity only begins once time >= start_date).
For newly listed assets with fewer than 365 or 730 or 1095 days of history, the longer-horizon returns may return na or misleading values.
Because it uses request.security() without specifying lookahead, and on “1D” timeframe, it complies with standard usage but you should verify there is no look-ahead bias in your particular setup.
ENJOY!
Relative Valuation OscillatorThis is a Relative Valuation Oscillator (RVO) this is attempt of replication OTC Valuation - a sophisticated multi-asset comparison indicator designed to measure whether the current asset is overvalued or undervalued relative to up to three reference assets.
Overview
The RVO compares the current chart's asset against reference assets (default: 30-Year Treasury Bonds, Gold, and US Dollar Index) to determine relative strength and valuation extremes. It outputs normalized oscillator values ranging from -100 (undervalued) to +100 (overvalued).
Key Features
Multiple Calculation Methods
The indicator offers 5 different calculation approaches:
Simple Ratio - Normalized ratio deviation from average
Percentage Difference - Percentage change comparison
Ratio Z-Score - Standard deviation-based comparison
Rate of Change Comparison - Momentum differential analysis (default)
Normalized Ratio - Min-max normalized ratio
Configurable Reference Assets
Asset 1: Default ZB (30-Year Treasury Bond Futures) - tracks interest rate sensitivity
Asset 2: Default GC (Gold Futures) - tracks safe-haven and inflation dynamics
Asset 3: Default DXY (US Dollar Index) - tracks currency strength
Each asset can be enabled/disabled independently
Fully customizable symbols
Visual Components
Multiple oscillator lines - One for each active reference asset (color-coded)
Average line - Combined signal from all active assets
Overbought/Oversold zones - Configurable threshold levels (default: ±80)
Zero line - Neutral valuation reference
Background coloring - Visual zones for extreme conditions
Signal line - Optional smoothed average
Entry markers - Long/short signals at key reversals
Signal Generation
Crossover alerts - When crossing overbought/oversold levels
Entry signals - Reversals from extreme zones
Divergence detection - Bullish/bearish divergences between price and oscillator
Zero-line crosses - Trend strength changes
Customization Options
Lookback period (10-500): Controls statistical calculation window
Normalization period (50-1000): Determines scaling sensitivity
Smoothing toggle: Optional EMA/SMA smoothing with adjustable period
Visual customization: Colors, levels, and display options
Information Table
Real-time dashboard showing:
Average oscillator value
Current status (Overvalued/Undervalued/Neutral)
Current asset price
Individual values for each active reference asset
Use Cases
Mean reversion trading - Identify extreme relative valuations for reversal trades
Sector rotation - Compare assets within similar categories
Hedging strategies - Understand correlation dynamics
Multi-asset analysis - Simultaneously compare against bonds, commodities, and currencies
Divergence trading - Spot price/oscillator divergences
Trading Strategy Applications
Long signals: When oscillator crosses above oversold level (asset recovering from undervaluation)
Short signals: When oscillator crosses below overbought level (asset declining from overvaluation)
Confirmation: Use multiple reference assets for stronger signals
Risk management: Avoid trading when all assets show neutral readings
This indicator is particularly useful for traders who want to incorporate inter-market analysis and relative strength concepts into their trading decisions, especially in OTC (Over-The-Counter) and futures markets.
Institutional Zones: Opening & Closing Trend HighlightsDescription / Content:
Track key institutional trading periods on Nifty/Bank Nifty charts with dynamic session zones:
Opening Volatility Zone: 9:15 AM – 9:45 AM IST (Green)
Closing Institutional Zone: 1:30 PM – 3:30 PM IST (Orange)
Both zones are bounded by the day’s high and low to help visualize institutional activity and price behavior.
Key Observations:
Breakout in both closing trend and opening trends often occurs on uptrending days.
Breakdown in both closing range and opening range usually happens on downside trending days.
Price opening above the previous closing trend is often a sign of a strong opening.
This script helps traders identify trend strength, breakout/breakdown zones, and institutional participation during critical market hours.
Disclaimer:
This indicator is for educational and informational purposes only. It is not a financial advice or recommendation to buy or sell any instrument. Always confirm with your own analysis before taking any trade.
Pine Script Features:
Dynamic boxes for opening and closing sessions
Boxes adjust to the day’s high and low
Optional labels at session start
Works on intraday charts (1m, 5m, 15m, etc.)
Usage Tip:
Use this indicator in combination with trend analysis and volume data to spot strong breakout/breakdown opportunities in Nifty and Bank Nifty.
ema200 plus Description:
This advanced indicator displays Exponential Moving Averages (EMA) across multiple timeframes to help traders identify trend direction and strength across different market perspectives.
Key Features:
Multi-Timeframe EMA Analysis:
Plots 200-period EMA on four different timeframes: 30-minute, 1-hour, 4-hour, and Daily
Each timeframe is displayed with distinct colors for easy visual identification
Visual Elements:
Chart Lines: Four colored EMA lines plotted directly on the price chart
Price Labels: Clear labels showing each EMA's current value at the latest bar
Color-coded Table: Comprehensive data table showing price position relative to each EMA
Trend Identification:
Bullish Signal: When price closes above an EMA (green background in table)
Bearish Signal: When price closes below an EMA (dark background in table)
Helps identify confluence when multiple timeframes align in direction
Customizable Settings:
Adjustable EMA length (default: 200 periods)
Customizable line width and offset
Flexible table positioning (top/middle/bottom, left/center/right)
Configurable table cell size and text appearance
Swing traders analyzing multiple timeframes
Position traders looking for trend confirmation
Technical analysts seeking confluence across time horizons
This indicator provides a comprehensive view of market trends across different time perspectives, helping traders make more informed decisions based on multi-timeframe analysis.
This indicator does not provide trading advice. It is for educational and informational purposes only.
**指标名称:多时间框架200 EMA**
**描述:**
这款高级指标在多个时间框架上显示指数移动平均线(EMA),帮助交易者识别不同市场视角下的趋势方向和强度。
**主要特点:**
1. **多时间框架EMA分析:**
- 在四个不同时间框架上绘制200周期EMA:30分钟、1小时、4小时和日线
- 每个时间框架使用独特颜色显示,便于视觉识别
2. **视觉元素:**
- **图表线:** 在价格图表上直接绘制四条彩色EMA线
- **价格标签:** 清晰显示最新K线处各EMA的当前值
- **颜色编码表格:** 综合数据表格显示价格相对于各EMA的位置
3. **趋势识别:**
- **看涨信号:** 当价格收于EMA上方时(表格中显示绿色背景)
- **看跌信号:** 当价格收于EMA下方时(表格中显示深色背景)
- 帮助识别多个时间框架方向一致时的共振信号
4. **可自定义设置:**
- 可调整EMA长度(默认:200周期)
- 可自定义线宽和偏移量
- 灵活的表格定位(上/中/下,左/中/右)
- 可配置表格单元格大小和文本外观
**适合人群:**
- 分析多时间框架的摆动交易者
- 寻求趋势确认的头寸交易者
- 寻找不同时间维度共振信号的技术分析师






















