Time█ OVERVIEW
This library is a Pine Script™ programmer’s tool containing a variety of time related functions to calculate or measure time, or format time into string variables.
█ CONCEPTS
`formattedTime()`, `formattedDate()` and `formattedDay()`
Pine Script™, like many other programming languages, uses timestamps in UNIX format, expressed as the number of milliseconds elapsed since 00:00:00 UTC, 1 January 1970. These three functions convert a UNIX timestamp to a formatted string for human consumption.
These are examples of ways you can call the functions, and the ensuing results:
CODE RESULT
formattedTime(timenow) >>> "00:40:35"
formattedTime(timenow, "short") >>> "12:40 AM"
formattedTime(timenow, "full") >>> "12:40:35 AM UTC"
formattedTime(1000 * 60 * 60 * 3.5, "HH:mm") >>> "03:30"
formattedDate(timenow, "short") >>> "4/30/22"
formattedDate(timenow, "medium") >>> "Apr 30, 2022"
formattedDate(timenow, "full") >>> "Saturday, April 30, 2022"
formattedDay(timenow, "E") >>> "Sat"
formattedDay(timenow, "dd.MM.yy") >>> "30.04.22"
formattedDay(timenow, "yyyy.MM.dd G 'at' hh:mm:ss z") >>> "2022.04.30 AD at 12:40:35 UTC"
These functions use str.format() and some of the special formatting codes it allows for. Pine Script™ documentation does not yet contain complete specifications on these codes, but in the meantime you can find some information in the The Java™ Tutorials and in Java documentation of its MessageFormat class . Note that str.format() implements only a subset of the MessageFormat features in Java.
`secondsSince()`
The introduction of varip variables in Pine Script™ has made it possible to track the time for which a condition is true when a script is executing on a realtime bar. One obvious use case that comes to mind is to enable trades to exit only when the exit condition has been true for a period of time, whether that period is shorter that the chart's timeframe, or spans across multiple realtime bars.
For more information on this function and varip please see our Using `varip` variables publication.
`timeFrom( )`
When plotting lines , boxes , and labels one often needs to calculate an offset for past or future end points relative to the time a condition or point occurs in history. Using xloc.bar_index is often the easiest solution, but some situations require the use of xloc.bar_time . We introduce `timeFrom()` to assist in calculating time-based offsets. The function calculates a timestamp using a negative (into the past) or positive (into the future) offset from the current bar's starting or closing time, or from the current time of day. The offset can be expressed in units of chart timeframe, or in seconds, minutes, hours, days, months or years. This function was ported from our Time Offset Calculation Framework .
`formattedNoOfPeriods()` and `secondsToTfString()`
Our final two offerings aim to confront two remaining issues:
How much time is represented in a given timestamp?
How can I produce a "simple string" timeframe usable with request.security() from a timeframe expressed in seconds?
`formattedNoOfPeriods()` converts a time value in ms to a quantity of time units. This is useful for calculating a difference in time between 2 points and converting to a desired number of units of time. If no unit is supplied, the function automatically chooses a unit based on a predetermined time step.
`secondsToTfString()` converts an input time in seconds to a target timeframe string in timeframe.period string format. This is useful for implementing stepped timeframes relative to the chart time, or calculating multiples of a given chart timeframe. Results from this function are in simple form, which means they are useable as `timeframe` arguments in functions like request.security() .
█ NOTES
Although the example code is commented in detail, the size of the library justifies some further explanation as many concepts are demonstrated. Key points are as follows:
• Pivot points are used to draw lines from. `timeFrom( )` calculates the length of the lines in the specified unit of time.
By default the script uses 20 units of the charts timeframe. Example: a 1hr chart has arrows 20 hours in length.
• At the point of the arrows `formattedNoOfPeriods()` calculates the line length in the specified unit of time from the input menu.
If “Use Input Time” is disabled, a unit of time is automatically assigned.
• At each pivot point a label with a formatted date or time is placed with one of the three formatting helper functions to display the time or date the pivot occurred.
• A label on the last bar showcases `secondsSince()` . The label goes through three stages of detection for a timed alert.
If the difference between the high and the open in ticks exceeds the input value, a timer starts and will turn the label red once the input time is exceeded to simulate a time-delayed alert.
• In the bottom right of the screen `secondsToTfString()` posts the chart timeframe in a table. This can be multiplied from the input menu.
Look first. Then leap.
█ FUNCTIONS
formattedTime(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to a formatted time string.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the time. Optional. The default value is "HH:mm:ss".
Returns: (string) A string containing the formatted time.
formattedDate(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to a formatted date string.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the date. Optional. The default value is "yyyy-MM-dd".
Returns: (string) A string containing the formatted date.
formattedDay(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to the name of the day of the week.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the day of the week. Optional. The default value is "EEEE" (complete day name).
Returns: (string) A string containing the day of the week.
secondsSince(cond, resetCond)
The duration in milliseconds that a condition has been true.
Parameters:
cond : (series bool) Condition to time.
resetCond : (series bool) When `true`, the duration resets.
Returns: The duration in seconds for which `cond` is continuously true.
timeFrom(from, qty, units)
Calculates a +/- time offset in variable units from the current bar's time or from the current time.
Parameters:
from : (series string) Starting time from where the offset is calculated: "bar" to start from the bar's starting time, "close" to start from the bar's closing time, "now" to start from the current time.
qty : (series int) The +/- qty of units of offset required. A "series float" can be used but it will be cast to a "series int".
units : (series string) String containing one of the seven allowed time units: "chart" (chart's timeframe), "seconds", "minutes", "hours", "days", "months", "years".
Returns: (int) The resultant time offset `from` the `qty` of time in the specified `units`.
formattedNoOfPeriods(ms, unit)
Converts a time value in ms to a quantity of time units.
Parameters:
ms : (series int) Value of time to be formatted.
unit : (series string) The target unit of time measurement. Options are "seconds", "minutes", "hours", "days", "weeks", "months". If not used one will be automatically assigned.
Returns: (string) A formatted string from the number of `ms` in the specified `unit` of time measurement
secondsToTfString(tfInSeconds, mult)
Convert an input time in seconds to target string TF in `timeframe.period` string format.
Parameters:
tfInSeconds : (simple int) a timeframe in seconds to convert to a string.
mult : (simple float) Multiple of `tfInSeconds` to be calculated. Optional. 1 (no multiplier) is default.
Returns: (string) The `tfInSeconds` in `timeframe.period` format usable with `request.security()`.
Search in scripts for "价格在30元内股票"
Realtime FootprintThe purpose of this script is to gain a better understanding of the order flow by the footprint. To that end, i have added unusual features in addition to the standard features.
I use "Real Time 5D Profile by LucF" main engine to create basic footprint(profile type) and added some popular features and my favorites.
This script can only be used in realtime, because tradingview doesn't provide historical Bid/Ask date.
Bid/Ask date used this script are up/down ticks.
This script can only be used by time based chart (1m, 5m , 60m and daily etc)
This script use many labels and these are limited max 500, so you can't display many bars.
If you want to display foot print bars longer, turn off the unused sub-display function.
Default setting is footprint is 25 labels, IB count is 1, COT high and Ratio high is 1, COT low and Ratio low is 1 and Delta Box Ratio Volume is 1 , total 29.
plus UA , IB stripes , ladder fading mark use several labels.
///////// General Setting ///////////
Resets on Volume / Range bar
: If you want to use simple time based Resets on, please set Total Volume is 0.
Your timeframe is always the first condition. So if you set Total Volume is 1000, both conditions(Volume >= 1000 and your timeframe start next bar) must be met. (that is, new footprint bar doesn't start at when total volume = exactly 1000).
Ticks per row and Maximum row of Bar
: 1 is minimum size(tick). "Maximum row of Bar" decide the number of rows used in one footprint. 1 row is created from 1 label, so you need to reduce this number to display many footprints (Max label is 500).
Volume Filter and For Calculation and Display
: "Volume Filter" decide minimum size of using volume for this script.
"For Calculation and Display" is used to convert volume to an integer.
This script only use integer to make profile look better (I contained Bid number and Ask number in one row( one label) to saving labels. This require to make no difference in width by the number of digits and this script corresponds integers from 0 to 3 digits).
ex) Symbol average volume size is from 0.0001 to 0.001. You decide only use Volume >= 0.0005 by "Volume Filter".
Next, you convert volume to integer, by setting "For Calculation and Display" is 1000 (0.0005 * 1000 = 5).
If 0.00052 → 5.2 → 5, 0.00058 → 5.8 → 6 (Decimal numbers are rounded off)
This integer is used to all calculation in this script.
//////// Main Display ///////
Footprint, Total, Row Delta, Diagonal Delta and Profile
: "Footprint" display Ask and Bid per row. "Total" display Ask + Bid per row.
"Row Delta" display Ask - Bid per row. "Diagonal Delta" display Ask(row N) - Bid(row N -1) per row.
Profile display Total Volume(Ask + Bid) per row by using Block. Profile Block coloring are decided by Row Delta value(default: positive Row Delta (Ask > Bid) is greenish colors and negative Row Delta (Ask < Bid) is reddish colors.)
Volume per Profile Block, Row Imbalance Ratio and Delta Bull/Bear/Neutral Colors
: "Volume per Profile Block" decide one block contain how many total volume.
ex) When you set 20, Total volume 70 display 3 block.
The maximum number of blocks that can be used per low is 20.
So if you set 20, Total volume 400 is 20 blocks. total volume 800 is 20 blocks too.
"Row Imbalance Ratio" decide block coloring. The row imbalance is that the difference between Ask and Bid (row delta) is large.
default is x3, x2 and x1. The larger the difference, the brighter the color.
ex) Ask 30 Bid 10 is light green. Ask 20 Bid 10 is green. Ask 11 Bid 10 is dark green.
Ask 0 Bid 1 is light red. Ask 1 Bid 2 is red. ask 30 Bid 59 is dark green.
Ask 10 Bid 10 is neutral color(gray)
profile coloring is reflected same row's other elements(Ask, Bid, Total and Delta) too.
It's because one label can only use one text color.
/////// Sub Display ///////
Delta, total and Commitment of Traders
: "Delta" is total Ask - total Bid in one footprint bar. Total is total Ask + total Bid in one footprint bar.
"Commitment of traders" is variation of "Delta". COT High is reset to 0 when current highest is touched. COT Low is opposite.
Basic concept of Delta is to compare price with Delta. Ordinary, when price move up, delta is positive. Price move down is negative delta.
This is because market orders move price and market orders are counted by Delta (although this description is not exactly correct).
But, sometimes prices do not move even though many market orders are putting pressure on price , or conversely, price move strongly without many market orders.
This is key point. Big player absorb market orders by iceberg order(Subdivide large orders and pretend to be small limit orders.
Small limit orders look weak in the order book, but they are added each time you fill, so they are more powerful than they look.), so price don't move.
On the other hand, when the price is moving easily, smart players may be aiming to attract and counterattack to a better price for them.
It's more of a sport than science, and there's always no right response. Pay attention to the relationship between price, volume and delta.
ex) If COT Low is large negative value, it means many sell market orders is coming, but iceberg order is absorbing their attack at limit order.
you should not do buy entry, only this clue. but this is one of the hints.
"Delta, Box Ratio and Total texts is contained same label and its color are "Delta" coloring. Positive Delta is Delta Bull color(green),Negative Delta is Delta Bear Color
and Delta = 0 is Neutral Color(gray). When Delta direction and price direction are opposite is Delta Divergence Color(yellow).
I didn't add the cumulative volume delta because I prefer to display the CVD line on the price chart rather than the number.
Box Ratio , Box Ratio Divisor and Heavy Box Ratio Ratio
: This is not ordinary footprint features, but I like this concept so I added.
Box Ratio by Richard W. Arms is simple but useful tool. calculation is "total volume (one bar) divided by Bar range (highest - lowest)."
When Bull and bear are fighting fiercely this number become large, and then important price move happen.
I made average BR from something like 5 SMA and if current BR exceeds average BR x (Heavy Box Ratio Ratio), BR box mark will be filled.
Box Ratio Divisor is used to good looking display(BR multiplied by Box Ratio Divisor is rounded off and displayed as an integer)
Diagonal Imbalance Count , D IB Mark and D IB Stripes
: Diagonal Imbalance is defined by "Diagonal Imbalance Ratio".
ex) You set 2. When Ask(row N) 30 Bid(row N -1)10, it's 30 > 10*2, so positive Diagonal Imbalance.
When Ask(row N) 4 Bid(row N -1)9, it's 4*2 < 9, so negative Diagonal Imbalance.
This calculation does not use equals to avoid Ask(row N) 0 Bid(row N -1)0 became Diagonal Imbalance.
Ask(row N) 0 Bid(row N -1)0, it's 0 = 0*2, not Diagonal Imbalance. Ask(row N) 10 Bid(row N -1)5, it's 10 = 5*2, not Diagonal Imbalance.
"D IB Mark" emphasize Ask or Bid number which is dominant side(Winner of Diagonal Imbalance calculation), by under line.
"Diagonal Imbalance Count" compare Ask side D IB Mark to Bid side D IB Mark in one footprint.
Coloring depend on which is more aggressive side (it has many IB Mark) and When Aggressive direction and price direction are opposite is Delta Divergence Color(yellow).
"D IB Stripes" is a function that further emphasizes with an arrow Mark, when a DIB mark is added on the same side for three consecutive row. Three consecutive arrow is added at third row.
Unfinished Auction, Ratio Bounds and Ladder fading Mark
: "Unfinished Auction" emphasize highest or lowest row which has both Ask and Bid, by Delta Divergence Color(yellow) XXXXXX mark.
Unfinished Auction sometimes has magnet effect, price may touch and breakout at UA side in the future.
This concept is famous as profit taking target than entry decision.
But, I'm interested in the case that Big player make fake breakout at UA side and trapped retail traders, and then do reversal with retail traders stop-loss hunt.
Anyway, it's not stand alone signal.
"Ratio Bounds" gauge decrease of pressure at extreme price. Ratio Bounds High is number which second highest ask is divided by highest ask.
Ratio Bounds Low is number which second lowest bid is divided by lowest bid. The larger the number, the less momentum the price has.
ex)first footprint bar has Ratio Bounds Low 2, second footprint bar has RBL 4, third footprint bar has RBL 20.
This indicates that the bear's power is gradually diminishing.
"Ladder fading mark" emphasizes the decrease of the value in 3 consecutive row at extreme price. I added two type Marks.
Ask/Bid type(triangle Mark) is Ask/Bid values are decreasing of three consecutive row at extreme price.
Row Imbalance type(Diamond Mark) are row Imbalance values are decreasing of three consecutive row at extreme price.
ex)Third lowest Bid 40, second lowest Bid 10 and lowest Bid 5 have triangle up Mark. That is bear's power is gradually diminishing.
(This Mark only check Bid value at lowest price and Ask value at highest price).
Third highest row delta + 60, second highest row delta + 5, highest delta - 20 have diamond Mark. That is Bull's power is gradually diminishing.
Sub display use Delta colors at bottom of Sub display section.
////// Candle & POC /////////
candle and POC
: Ordinary, "POC" Point of Control is row of largest total volume, but this script'POC is volume weighted average.
This is because the regular POC was visually displayed by the profile ,and I was influenced LucF's ideas.
POC coloring is decided in relation to the previous POC. When current POC is higher than previous POC, color is UP Bar Color(green).
In the opposite case, Down Bar color is used.
POC Divergence Color is used when Current POC is up but current bar close is lower than open (Down price Bar),or in the opposite case.
POC coloring has option also highlight background by Delta Divergence Color(yellow). but bg color is displayed at your time frame current price bar not current footprint bar.
The basic explanation is over.
I add some image to promote understanding basic ideas.
30min_breakEnglish:
It is an indicator that displays the high and low prices as of 30 minutes before the event,
and when you break it, you can see it with a balloon.
The high and low lines at 30 minutes before the front are shown as candidates for support lines and resistance lines.
Used in the minute chart
Japanese:
前場 30分時点の 高値・安値の線を表示し、そこをBreakしたら吹き出しでわかるようにしたインジケーターです
前場 30分時点の 高値安値の線を支持線・抵抗線の候補として図示します。
分足のチャートで利用します
30min_breakEnglish:
It is an indicator that displays the high and low prices as of 30 minutes before the event,
and when you break it, you can see it with a balloon.
The high and low lines at 30 minutes before the front are shown as candidates for support lines and resistance lines.
Used in the minute chart
Japanese:
前場 30分時点の 高値・安値の線を表示し、そこをBreakしたら吹き出しでわかるようにしたインジケーターです
前場 30分時点の 高値安値の線を支持線・抵抗線の候補として図示します。
分足のチャートで利用します
Timeframe Time of Day Buying and Selling StrategyThis strategy allows you to back test longing or shorting or do nothing during time increments of 30 minutes. The price trends in one direction every 30 minutes and this strategy allows you to test various 30 minute time frames across a range of dates to capitalize on this.
Make sure you are in the 30 minute time frame while viewing the performance and trade history.
McClellan Oscillator for DAX (GER30) [aftabmk modified]About McClellan Oscillator
Developed by Sherman and Marian McClellan, the McClellan Oscillator is a breadth indicator derived from Net Advances, the number of advancing issues less the number of declining issues. Subtracting the 39-day exponential moving average of Net Advances from the 19-day exponential moving average of Net Advances forms the oscillator.
As the formula reveals, the McClellan Oscillator is a momentum indicator that works similar to MACD .
McClellan Oscillator signals can be generated with breadth thrusts, centerline crossovers, overall levels and divergences.
About my version
This version here is a modification, though:
- It can only be used on the DAX index (DAX 30 or GER 30)
- It only considers the DAX 30 stocks
- The data window will provide a summary about rising and declining stocks
- The data window will output the last change for each of the 30 stocks
BUG
I am only publishing this version because I am not sure if my current version is saved when I leave tradingview.com without publishing the script.
This version still contains a bug - the if/else clauses do not correctly recognize declining stocks. So the oscillator should not be used as it is.
Working on it these days. Feel free to provide feedback!
Stuff I am working on
- Coloring the area green/red according to the value
- Fixing this bug/making this script more efficient
DISCLAIMER
This script was mainly written for educational purposes (training myself how to write custom indicatotors).
As you can see, the code is really messy.
Credits
Based on the simple version of aftabmk
You can find the original version by searching for McClellan Oscillator for nifty 50.
Gann RetracementThe indicator is based on W. D. Gann's method of retracement studies. Gann looked at stock retracement action in terms of Halves (1/2), Thirds (1/3, 2/3), Fifths (1/5, 2/5, 3/5, and 4/5) and more importantly the Eighths (1/8, 2/8, 3/8, 4/8, 5/8, 6/8, and 7/8). Needless to say, {2, 3, 5, 8} are the only Fibonacci numbers between 1 to 10. These ratios can easily be visualized in the form of division of a Circle as follows :
Divide the circle in 12 equal parts of 30 degree each to produce the Thirds :
30 x 4 = 120 is 1/3 of 360
30 x 8 = 240 is 2/3 of 360
The 30 degree retracement captures fundamental geometric shapes like a regular Triangle (120-240-360), a Square (90-180-270-360), and a regular Hexagon (60-120-180-240-300-360) inscribed inside of the circle.
Now, divide the circle in 10 equal parts of 36 degree each to produce the Fifths :
36 x 2 = 72 is 1/5 of 360
36 x 4 = 144 is 2/5 of 360
36 x 6 = 216 is 3/5 of 360
36 x 8 = 288 is 4/5 of 360
where, (72-144-216-288-360) is a regular Pentagon.
Finally, divide the circle in 8 equal parts of 45 degree each to produce the Eighths :
45 x 1 = 45 is 1/8 of 360
45 x 2 = 90 is 2/8 of 360
45 x 3 = 135 is 3/8 of 360
45 x 4 = 180 is 4/8 of 360
45 x 5 = 225 is 5/8 of 360
45 x 6 = 270 is 6/8 of 360
45 x 7 = 315 is 7/8 of 360
where, (45-90-135-180-225-270-315-360) is a regular Octagon.
How to Use this indicator ?
The indicator generates Gann retracement levels between any two significant price points, such as a high and a low.
Input :
Swing High (significant high price point, such as a top)
Swing Low (significant low price point, such as a bottom)
Degree (degree of retracement)
Output :
Gann retracement levels (color coded as follows) :
Swing High and Swing Low (BLUE)
50% retracement (ORANGE)
Retracements between Swing Low and 50% level (RED)
Retracements between 50% level and Swing High (LIME)
Bollinger Bands %B + ATR This indicator is best suitable for the 30-minutes interval OIL charts, due to ATR accuracy.
BB%B is great for showing oversold/overbought market conditions and offers excellent entry/exit opportunities for Day Trading (30 minutes chart), as well as reliable convergence/divergence patterns. ATR is conveniently combined and shows potential market volatility levels for the day when used in 30-minutes charts, thus demarcating your day trade exit point.
To use the ATR on this indicator: Just read the ATR value of the lowest (for a new bull trend) or the highest (for a new bear trend) candlestick of the newly formed trend leg. Let's suppose the ATR reads 0.2891, then you project a move of 2.891 points towards the given trend direction using the ruler tool (30-minutes charts). That's all, and there you have your take profit target!
Good Luck!!!
ADX strategy (considering ADX and +DI only )I have been checking the strategies on ADX indicator.
I have found that +DI crossing above ADX line under threshold 30 and exit on crossdown when ADX above 30 has better results than just following crossovers of +DI and -DI , ADX crossing above 30 .
BUY Rule
========
fast ema is above slow ema (default 13 and 55 , you can change these values in settings)
+DI cross above ADX well beloe threshold level (default 30)
Exit reule
========
when +DI cross down ADX , well above on threshold level
Stop Loss
=========
Default is set to 8%
Take a look and let me know how your symbol works with this strategy
Note : Bar color changes to yellow when the BUY condition is met.
Bar color and Background color shows to blue --- if Long position is active
fast ema and long ema doesnt print on the chart -- please add manually to the chart
Warning : for the use of educational purposes only
EulerMethod: DeltaEN
Shows the Integral Volume Delta (IVD)
It is a detailed OBV. Each bar sums up the volume for bars of a shorter timeframe.
For example, inside a 1M bar, every 12h bar is added up, and inside a 1h bar, every 1min bar is added. Thus, a conditional volume delta inside the bar is obtained.
The indicator for each bar shows the volume of purchases (positive), sales (negative) and the difference — IVD
The delta histogram is thicker than the volume histograms
Settings detalisation
M — 6 hours, 12 hours and 1 day for the M timeframe (720 by default)
W — 4 hours, 6 hours and 12 hours for the W timeframe (240 by default)
D — 30 minutes, 1 hour and 2 hours for the D timeframe (60 by default)
H — 1 minute, 5 minutes and 15 minutes for timeframes [1h, D) (default is 1)
For timeframes of 15m and less, the calculation is carried out by minute bars
VSA mode
The classic OBV adds volume to the cumulative sum under the condition Сlose (n) > Close (n-1) and subtracts it under the condition Close (n) < Close (n-1)
When VSA mode is disabled, all volumes are summed up under these conditions.
When the VSA approximation is turned on, the volume per bar of detail is divided by the factor (Close - Low) / (High - Low)
That is, it takes into account the spread per bar and closing relative to the spread. VSA is enabled by default
A/D mode
Shows the cumulative Accumulation / Distribution Index
The delta of the detail bar is multiplied by (High + Low + Close) / 3 bars, the result is added to the cumulative sum
No additional price conversions required due to integral summation
Index line view is customizable
EM Delta does not receive intermediate values in real time.
To see the result, wait until the bar closes or switch to a smaller timeframe
RU
Показывает Интегральную Дельту Объёма (ИДО)
Представляет собой детализированный OBV. В каждом баре суммируется объём за бары меньшего таймфрейма.
Например, внутри 1М-бара суммируется каждый 12h-бар, а внутри 1h — каждый 1m-бар. Таким образом получается условная дельта объёма внутри бара
Индикатор на каждый бар показывает объём покупок (положительный), объём продаж (отрицательный) и разницу — ИДО
Гистограмма дельты толще гистограмм объёмов
Настройки детализации внутри бара
M — 6 часов, 12 часов и 1 день для таймфрейма M (по-умолчанию 720)
W — 4 часа, 6 часов и 12 часов для таймфрейма W (по-умолчанию 240)
D — 30 минут, 1 час и 2 часа для таймфрейма D (по-умолчанию 60)
H — 1 минута, 5 минут и 15 минут для таймфреймов [1h, D) (по-умолчанию 1)
Для таймфреймов 15m и меньше расчёт ведётся по минутным барам
Режим VSA
Классический OBV прибавляет объём к кумулятивной сумме при условии Сlose(n) > Close(n-1) и отнимает при условии Close(n) < Close(n-1)
При отключении режима VSA все объёмы суммируются по этим условиям
При включённой VSA-аппроксимации объём за бар детализации делится по фактору (Close - Low) / (High - Low)
То есть учитывает спред за бар и закрытие относительно спреда. По-умолчанию режим VSA включен
Режим A/D
Показывает кумулятивный индекс Накопления/Распределения
Дельта бара детализации умножается на (High + Low + Close) / 3 бара, результат прибавляется к кумулятивной сумме
Дополнительные преобразования цены не требуются ввиду интегрального суммирования
Вид линии индекса настраивается
EM Delta не получает промежуточные значения в реальном времени.
Чтобы увидеть результат, дождитесь закрытия бара или перейдите на меньший таймфрейм
Crypto Trading Hours UTC based on Berlin time (UTC +2)Although crypto markets trade 24/7, there are spikes in volume according to the general hours at which different parts of the world do the majority of their trading.
This Script highlights the US, European and Asian markets when they are most active. The normal market hours are always from 08:00 to 16:30 local time.
US market opens at 8:00 Silicon Valley local time, and closes at 16:30 New York local time.
European market opens at 8:00 London local time, and closes at 16:30 Frankfurt local time.
Asian market opens at 8:00 Hong Kong local time, and closes at 16:30 Sydney local time.
Supertrend MTF LAG ISSUEThis script based on
we all use Super trend but it main issue is the lag as it buy too late or sell too late
using Deavaet study of Heat map MTF we can do a little trick
if you look on his study you can see that major signal for example will happen in the time frame before it happen at larger time frame
so in this example if signal at MTF 30 min and signal at MTF 60 min happen at the same time at 2 hours or 4 hours candles then this signal are more likely to be true then random signal at each time frame specific.
since we use shorter time frame on larger time frame we can remove the lag issue that make supertrend not so effective
In this example I set the signal to be MTF 30 +60 om 2 hour TF , can be good also for 4 hour candles..
So you get the signal to close inside the larger candle
now if you want to make on even shorter TF then change the code to 15 and 30 MTF on candles on 1 hour
or 1 and 5 min on 30 min or 15 min
Panchang Time//This indicator is required in NimblrTA and can be used to define timeslots for the trend confirmation
study("Panchang Time", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
premarket = #C0C0C0
regular = #0000FF
regularslot2 = #00CCFF
postmarket = #5000FF
notrading = na
sessioncolor = timeinrange("30", "0915-0930") ? premarket : timeinrange("30", "0915-0930") ? regular : timeinrange("30", "0931-1200") ? regularslot2 : timeinrange("30", "1201-1305") ? postmarket : notrading
bgcolor(sessioncolor, transp=90)
extended session - Regular Opening-Range- JayyOpening Range and some other scripts updated to plot correctly (see comments below.) There are three variations of the fibonacci expansion beyond the opening range and retracements within the opening range of the US Market session - I have not put in the script for the other markets yet.
The three scripts have different uses and strengths:
The extended session script (with the script here below) will plot the opening range whether you are using the extended session or the regular session. (that is to say whether "ext" in the lower right hand corner is highlighted or not.). While in the extended session the opening range has some plotting issues with periods like 13 minutes or any period that is not divisible into 330 mins with a round number outcome (eg 330/60 =5.5. Therefore an hour long opening range has problems in the extended session.
The pre session script is only for the premarket. You can select any opening range period you like. I have set the opening range to be the full premarket session. If you select a different session you will have to unselect "pre open to 9:30 EST for Opening Range?" in the format section. The script defaults to 15 minutes in the "period Of Pre Opening Range?". To go back to the 4 am to 9:30 pre opening range select "pre open to 9:30 EST for Opening Range?" there is no automatic 330 minute selection.
The past days offset script only works in 5 min or 15 minute period. It will show the opening range from up to 20 days past over the current days price action. Use this for the regular session only. 0 shows the current day's opening range. Use the positive integers for number of days back ie 1, 2, 3 etc not -1, -2, -3 etc. The script is preprogrammed to use the current day (0).
Scripts updated to plot correctly: One thing they all have in common is a way of they deal with a somewhat random problem that shifts the plots 4 hours in one direction or the other ie the plot started at 9:30 EST or 1:30PM EST. This issue started to occur approximately June 22, 2015 and impacts any script that tried to use "session" times to manage a plot in my scripts. The issue now seems to have been resolved during this past week.
Just in case the problem reoccurs I have added a "Switch session plot?" to each script. If the plot looks funny check or uncheck the "Switch session plot?" and see the difference. Of course if a new issue crops up it will likely require a different fix.
I have updated all of the scripts shown on this chart. If you are using a script of mine that suffers from the compiler issue then you will find an update on this chart. You can get any and all of the scripts by clicking on the small sideways wishbone on the left middle of the chart. You will see a dialogue box. Then click "make it mine". This will import all of the scripts to your computer and you can play around with them all to decide what you want and what you don't want. This is the easiest way to get all of the scripts in one fell swoop. It is also the easiest way for me to make all of the scripts available. I do not have all of the plots visible since it is too messy and one of the scripts (pre OR) is only for the regular session. To view the scripts click on the blue eye to the right of the script title to show it on this script. If you can only use the regular session. The scripts will all (with the exception of the pre OR) work fine.
If for any reason this script seems flakey refresh the page r try a slightly different period. I have noticed that sometimes randomly the script loves to return to the 5 min OR. This is a very new issue transient issue. As always if you see an issue please let me know.
Cheers Jayy
Trend Strength Meter [Eˣ]📊 Trend Strength Meter - Free Indicator
Overview
The Trend Strength Meter quantifies market momentum with a simple 0-100 score. No more guessing if a trend is strong or weak - this indicator gives you an objective, numerical measurement of trend strength that combines trend direction, momentum, volatility, and moving average alignment into one clear reading.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Quantifies Trend Strength:
• Measures trend on a scale from -100 (extreme bearish) to +100 (extreme bullish)
• Combines 4 key components: Trend Direction, Momentum, Volatility, MA Alignment
• Provides objective measurement instead of subjective interpretation
• Works on all timeframes and instruments
Visual Display:
• Green Histogram Bars = Bullish strength (0 to +100)
• Red Histogram Bars = Bearish strength (0 to -100)
• Smooth Overlay Line = Trend direction (filters noise)
• Triangle Markers = Trend reversals (zero-line crosses)
• Background Zones = Visual strength categories
Multi-Timeframe Analysis:
• See strength readings from 3 timeframes simultaneously
• Identify when trends align across multiple timeframes
• "ALIGNED" indicator shows when all timeframes agree
• Spot divergences between timeframes
Clean & Professional:
• Minimal clutter, maximum clarity
• Compact info panel in top-right corner
• No overwhelming indicators or text
• Easy to read at a glance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Understanding The Strength Scale
Bullish Readings (0 to +100)
+75 to +100 - VERY STRONG BULL
• Extremely powerful uptrend
• All components aligned bullishly
• Best time for aggressive long positions
• Trend likely to continue
• Strategy: Hold longs, avoid shorts
+50 to +75 - STRONG BULL
• Strong uptrend with good momentum
• High probability of continuation
• Quality long setups
• Pullbacks are buying opportunities
• Strategy: Enter longs on dips
+25 to +50 - BULL
• Moderate bullish trend
• Decent upward momentum
• Trend following longs work
• Watch for weakening signals
• Strategy: Ride the trend, trail stops
+10 to +25 - WEAK BULL
• Weak bullish bias
• Trend may be exhausting
• Lower probability setups
• Consider taking profits
• Strategy: Caution, reduce position sizes
-10 to +10 - NEUTRAL
• No clear trend
• Choppy, range-bound market
• Conflicting signals
• Low probability for trend trades
• Strategy: Stay flat or trade ranges
Bearish Readings (0 to -100)
-10 to -25 - WEAK BEAR
• Weak bearish bias
• Trend may be exhausting
• Lower probability setups
• Consider taking profits on shorts
• Strategy: Caution, reduce position sizes
-25 to -50 - BEAR
• Moderate bearish trend
• Decent downward momentum
• Trend following shorts work
• Watch for weakening signals
• Strategy: Ride the trend down, trail stops
-50 to -75 - STRONG BEAR
• Strong downtrend with momentum
• High probability of continuation
• Quality short setups
• Bounces are selling opportunities
• Strategy: Enter shorts on rallies
-75 to -100 - VERY STRONG BEAR
• Extremely powerful downtrend
• All components aligned bearishly
• Best time for aggressive short positions
• Trend likely to continue
• Strategy: Hold shorts, avoid longs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Basic Usage
1. Check Current Strength
• Look at the histogram height and color
• Read the exact number in the info panel
• Note the status label (STRONG BULL, WEAK BEAR, etc.)
• Higher absolute value = stronger trend
2. Watch For Reversals
• Triangle markers appear when strength crosses zero
• 🟢 Green triangle up = Bullish reversal signal
• 🔴 Red triangle down = Bearish reversal signal
• These mark potential trend changes
3. Monitor Multi-Timeframe Alignment
• Check if all timeframes show same direction
• "✓ ALIGNED" = All timeframes agree (high confidence)
• "✗ Mixed" = Timeframes disagree (lower confidence)
• Aligned trends have higher probability
4. Observe Strength Changes
• Rising strength = Trend strengthening
• Falling strength = Trend weakening
• Strength near extremes (+75/-75) = Potential exhaustion
• Strength near zero = Indecision/consolidation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 Trading Strategies
Strategy 1: Trend Following
Best For: Capturing major moves
Timeframes: 1H, 4H, Daily
Rules:
1. Wait for strength to reach +50 or higher (or -50 or lower)
2. Check MTF alignment - all timeframes should agree
3. Enter on pullbacks in the direction of strength
4. Hold position while strength remains above +25 (or below -25)
5. Exit when strength crosses back to weak zone or reverses
Example - Long Setup:
• Strength crosses above +50 = Strong bull trend
• All MTF readings positive and aligned
• Wait for minor pullback to support
• Enter long with stop below recent swing low
• Hold while strength stays above +25
• Exit if strength drops below +10 or reverses to negative
Strategy 2: Reversal Trading
Best For: Catching trend changes early
Timeframes: 15min, 1H, 4H
Rules:
1. Watch for strength to reach extreme levels (+75 or -75)
2. Look for divergence (price new high/low but strength declining)
3. Wait for zero-line cross (triangle marker appears)
4. Enter in direction of new trend
5. Use tight stops since you're catching early
Example - Bullish Reversal:
• Strength at -80 (very strong bear)
• Price makes new low but strength only at -70 = Divergence
• Green triangle appears = Zero-line cross
• Enter long on confirmation
• Stop below recent swing low
• Target: Strength reaching +50
Strategy 3: Avoid Bad Trades
Best For: Improving win rate
Timeframes: All
Rules:
• DON'T trade when strength is between -10 and +10 (neutral zone)
• DON'T go long when strength is negative
• DON'T go short when strength is positive
• DON'T trade against MTF alignment
• DO wait for clear strength readings
Why It Works: Most losses come from trading in choppy markets or against the trend
Strategy 4: Position Sizing Based On Strength
Best For: Risk management
Timeframes: All
Rules:
• Strength +75 to +100 or -75 to -100 = Full position size (2-3% risk)
• Strength +50 to +75 or -50 to -75 = Normal position (1.5-2% risk)
• Strength +25 to +50 or -25 to -50 = Reduced position (1% risk)
• Strength -10 to +10 = No trades or minimal size (0.5% risk)
Why It Works: Bigger positions in stronger trends, smaller in weak trends
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Multi-Timeframe Analysis
• Toggle ON/OFF the MTF readings in the info panel
• Turn OFF for cleaner display if you only trade one timeframe
Timeframe 1, 2, 3 (Default: 15min, 1H, 4H)
• Choose which timeframes to analyze
• For day trading: Use 5min, 15min, 1H
• For swing trading: Use 1H, 4H, Daily
• For position trading: Use 4H, Daily, Weekly
• Higher timeframes show bigger picture trends
MA Length (Default: 20)
• Moving average period for trend direction component
• Lower values (10-15): More responsive, more signals
• Higher values (25-50): Smoother, fewer signals
• Recommended: 20 for most styles
ATR Length (Default: 14)
• Period for measuring volatility
• Standard setting works well for most markets
• Recommended: Keep at 14
RSI Length (Default: 14)
• Period for momentum measurement
• Standard setting works well for most markets
• Recommended: Keep at 14
Show Trend Labels on Chart
• Toggle ON to display "BULL" / "BEAR" text at reversals
• Keep OFF for cleaner chart (default)
• Useful when backtesting to see historical signals
Show Reversal Signals
• Toggle triangle markers at zero-line crosses
• Keep ON to catch trend changes
• Turn OFF if you only care about current strength
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 How The Calculation Works
The indicator measures 4 components, each worth 25 points (total = 100):
1. Trend Direction (25 points)
• Compares price to moving average
• Checks if MA is rising or falling
• Perfect score: Price above rising MA
• Minimum score: Price below falling MA
2. Momentum (25 points)
• Uses RSI to measure momentum strength
• RSI > 70 = Maximum bullish points
• RSI < 30 = Maximum bearish points
• RSI near 50 = Neutral points
3. Volatility Alignment (25 points)
• Checks if price moves align with volatility
• Strong moves in trending direction = High score
• Weak moves or counter-trend = Low score
• Uses ATR to measure volatility
4. Moving Average Alignment (25 points)
• Checks EMA 8, 21, and 55 positioning
• Perfect bullish: 8 > 21 > 55 above price
• Perfect bearish: 8 < 21 < 55 below price
• Misaligned = Reduced score
Final Score = Sum of all 4 components (-100 to +100)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Current
• Shows exact strength number for current timeframe
• Color-coded background (green = bullish, red = bearish)
• Larger number for quick visibility
Status
• Text description of current trend state
• Examples: "STRONG BULL", "WEAK BEAR", "NEUTRAL"
• Quick interpretation without looking at number
Timeframe Readings
• Shows strength for each selected timeframe
• Color-coded for quick reading
• Compare to spot divergences
MTF Alignment
• ✓ ALIGNED = All timeframes show same direction (high confidence)
• ✗ Mixed = Timeframes disagree (proceed with caution)
• Most reliable trades happen when aligned
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 4 alert types:
1. Bullish Reversal
• Triggers when strength crosses from negative to positive
• Potential trend change from bearish to bullish
• Early warning of new uptrend
2. Bearish Reversal
• Triggers when strength crosses from positive to negative
• Potential trend change from bullish to bearish
• Early warning of new downtrend
3. Very Strong Bull
• Triggers when strength reaches +75 or higher
• Extreme bullish conditions
• Aggressive long opportunity
4. Very Strong Bear
• Triggers when strength reaches -75 or lower
• Extreme bearish conditions
• Aggressive short opportunity
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Trend Strength Meter"
3. Choose your alert type
4. Configure notifications
5. Click "Create"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• Trust the extremes - Readings above +75 or below -75 are highly reliable
• Wait for alignment - Best trades happen when MTF shows "ALIGNED"
• Use with price action - Combine with support/resistance for entries
• Respect the neutral zone - Avoid trading when strength is -10 to +10
• Scale position size - Bigger positions in stronger trends
• Watch for divergence - Price new high but strength declining = Warning
• Follow the trend - Don't fight strong readings (±50 or more)
⚠️ DON'T:
• Don't trade neutral readings - Wait for clear strength above ±25
• Don't fade extremes - Very strong trends (+75/-75) can stay extreme
• Don't ignore MTF - Mixed timeframes = Lower probability
• Don't overtrade - Wait for quality setups with good strength
• Don't use alone - Combine with support/resistance and risk management
• Don't expect perfection - Even strong trends can reverse suddenly
🎯 Best Timeframes:
• Scalping: 1min, 5min (fast readings, quick changes)
• Day Trading: 5min, 15min, 1H (balanced view)
• Swing Trading: 1H, 4H, Daily (stable trends)
• Position Trading: 4H, Daily, Weekly (major trends)
🔥 Best Markets:
• Trending markets (crypto, indices, commodities)
• High liquidity instruments (BTC, ES, NQ, EUR/USD)
• Avoid on low-volume stocks or exotic pairs
⏰ Works Best When:
• Market has clear direction
• Good volatility (not too choppy, not too quiet)
• Multiple timeframes aligned
• Away from major news events
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike subjective trend analysis, the Trend Strength Meter:
• Objective Measurement - No guessing, exact numerical score
• Multi-Component - Combines 4 factors, not just one indicator
• Multi-Timeframe - See alignment across timeframes instantly
• Clean Visual - Professional display, easy to interpret
• Actionable - Clear signals for entries, exits, and position sizing
• Universal - Works on all timeframes and instruments
• Proven Components - Based on trend, momentum, volatility, MA alignment
Perfect For:
• Trend followers who want confirmation
• Swing traders seeking high-probability setups
• Risk managers wanting to size positions properly
• Anyone tired of subjective "is this trend strong?" questions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Patterns To Watch
Pattern 1: The Steady Climb
• Strength gradually rises from +25 to +50 to +75
• Indicates building momentum
• Trade: Hold longs, add on pullbacks
Pattern 2: The Quick Spike
• Strength jumps from 0 to +75 in few bars
• Indicates explosive momentum
• Trade: Enter quickly, but expect pullback
Pattern 3: The Exhaustion
• Strength at +80, price new high, strength drops to +70
• Bearish divergence forming
• Trade: Take profits, prepare for reversal
Pattern 4: The Whipsaw
• Strength oscillates between +10 and -10
• Choppy, range-bound market
• Trade: Stay flat, wait for breakout
Pattern 5: The False Breakout
• Strength briefly crosses +50 then drops back
• Weak momentum, trend not confirmed
• Trade: Wait for sustained strength above +50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Upgrade Your Trading System
This free indicator quantifies trend strength objectively. Want more?
🔥 Check out my premium scripts for:
• Automated entry and exit signals with trend confirmation
• Advanced multi-timeframe strategy systems
• Dynamic position sizing based on trend strength
• Backtested performance with statistics
• Complete trading solutions
• And much more...
👉 Visit my profile for professional-grade trading tools!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Important Notes
• This indicator measures trend strength, not direction alone
• Strong readings don't guarantee continuation (manage risk)
• Always use with proper stop losses
• Combine with support/resistance analysis
• Test on demo before live trading
• Past performance doesn't guarantee future results
• Adjust settings to match your trading style
Disclaimer: For educational purposes only. Trading involves substantial risk. Always do your own research and never risk more than you can afford to lose.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 Support This Work
If this indicator helps your trading:
• ⭐ Give it a thumbs up
• 💬 Share your best strength-based trades in comments
• 🔔 Follow for more free professional tools
• 🚀 Share with traders who need objective trend analysis
Questions about trend strength? Drop a comment and I'll help!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Developed with ❤️ for traders who want objective, quantified analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with 4-component strength calculation and MTF analysis
RSI Profile [Kodexius]RSI Profile is an advanced technical indicator that turns the classic RSI into a distribution profile instead of a single oscillating line. Rather than only showing where the RSI is at the current bar, it displays where the RSI has spent most of its time or most of its volume over a user defined lookback period.
The script builds a histogram of RSI values between 0 and 100, splits that range into configurable bins, and then projects the result to the right side of the chart. This gives you a clear visual representation of the RSI structure, including the Point of Control (POC), the Value Area High (VAH), and the Value Area Low (VAL). The POC marks the RSI level with the highest activity, while VAH and VAL bracket the percentage based value area around it.
By combining standard RSI, a distribution profile, and value area logic, this tool lets you study RSI behavior statistically instead of only bar by bar. You can immediately see whether the current RSI reading is located inside the dominant zone, extended above it, or depressed below it, and whether the recent regime has been biased toward overbought, oversold, or neutral territory. This is particularly useful for swing traders, mean reversion systems, and anyone who wants to integrate RSI context into a more profile oriented workflow.
🔹 Features
1. RSI-Based Distribution Profile
-Builds a histogram of RSI values between 0 and 100.
-The RSI range is divided into a user-defined number of bins (e.g., 30 bins).
-Each bin represents a band of RSI values, such as 0–3.33, 3.33–6.66, ..., 96.66–100.
-For each bar in the lookback period, the script:
-Finds which bin the RSI value belongs to
Adds either:
-1.0 → if using time/frequency
-volume → if using volume-weighted RSI distribution
This creates a clear profile of where RSI has been concentrated over the chosen lookback window.
2. Time / Volume Weighting Mode
Under Profile Settings, you can choose:
-Weight by Volume = false
→ Profile is built using time spent at each RSI level (frequency).
-Weight by Volume = true
→ Profile is built using volume traded at each RSI level.
This flexibility allows you to decide whether you want:
-A pure momentum structure (time spent at each RSI)
-Or a participation-weighted structure (where higher-volume zones are emphasized)
3. Configurable Lookback & Resolution
-Profile Lookback: number of historical bars to analyze.
-Number of Bins: controls the resolution of the histogram:
Fewer bins → smoother, fewer gaps
More bins → more detail, but potentially more visual sparsity
-Profile Width (Bars): defines how wide the histogram extends into the future (visually), converted into time using average bar duration.
This provides a balance between performance, clarity, and visual density.
4. Value Area, POC, VAH, VAL
The script computes:
-POC (Point of Control)
→ The RSI bin with the highest total value (time or volume).
-Value Area (VA)
→ The range of RSI bins that contain a user-specified percentage of total activity (e.g., 70%).
-VAH & VAL
→ Upper and lower RSI boundaries of this Value Area.
These are then drawn as horizontal lines and labeled:
-POC line and label
-VAH line and label
-VAL line and label
This gives you a profile-style view similar to classical volume profile, but entirely on the RSI axis.
5. Color Coding & Visual Design
The histogram bars (boxes) are colored using a smart scheme:
-Below 30 RSI → Oversold zone, uses the Oversold Color (default: green).
-Above 70 RSI → Overbought zone, uses the Overbought Color (default: red).
-Between 30 and 70 RSI → Neutral zone, uses a gradient between:
A soft blue at lower mid levels
A soft orange at higher mid levels
Additional styling:
-POC bin is highlighted in bright yellow.
-Bins inside the Value Area → lower transparency (more solid).
-Bins outside the Value Area → higher transparency (faded).
This makes it easy to visually distinguish:
-Core RSI activity (VA)
-Extremes (oversold/overbought)
-The single dominant zone (POC)
🔹 Calculations
This section summarizes the core logic behind the script and highlights the main building blocks that power the profile.
1. Profile Structure and Bin Initialization
A custom Profile type groups together configuration, bins and drawing objects. During initialization, the script splits the 0 to 100 RSI range into evenly spaced bins, each represented by a Bin record:
method initBins(Profile p) =>
p.bins := array.new()
float step = 100.0 / p.binCount
for i = 0 to p.binCount - 1
float low = i * step
float high = (i + 1) * step
p.bins.push(Bin.new(low, high, 0.0, box(na)))
2. Filling the Profile Over the Lookback Window
On the last bar, the script clears previous drawings and walks backward through the selected lookback window. For each historical bar, it reads the RSI and volume series and feeds them into the profile:
if barstate.islast
myProfile.reset()
int start = math.max(0, bar_index - lookback)
int end = bar_index
for i = 0 to (end - start)
float r = rsi
float v = volume
if not na(r)
myProfile.add(r, v)
The add method converts each RSI value into a bin index and accumulates either a frequency count or the bar volume, depending on the chosen mode:
method add(Profile p, float rsiValue, float volumeValue) =>
int idx = int(rsiValue / (100.0 / p.binCount))
if idx >= p.binCount
idx := p.binCount - 1
if idx < 0
idx := 0
Bin targetBin = p.bins.get(idx)
float addedValue = p.useVolume ? volumeValue : 1.0
targetBin.value += addedValue
3. Finding POC and Building the Value Area
Inside the draw method, the script first scans all bins to determine the maximum value and the total sum. The bin with the highest value becomes the POC. The value area is then constructed by expanding from that center bin until the desired percentage of total activity is covered:
for in p.bins
totalVal += b.value
if b.value > maxVal
maxVal := b.value
pocIdx := i
float vaTarget = totalVal * (p.vaPercent / 100.0)
float currentVaVol = maxVal
int upIdx = pocIdx
int downIdx = pocIdx
while currentVaVol < vaTarget
float upVol = (upIdx < p.binCount - 1) ? p.bins.get(upIdx + 1).value : 0.0
float downVol = (downIdx > 0) ? p.bins.get(downIdx - 1).value : 0.0
if upVol == 0 and downVol == 0
break
if upVol >= downVol
upIdx += 1
currentVaVol += upVol
else
downIdx -= 1
currentVaVol += downVol
RVol based Support & Resistance ZonesDescription:
This indicator is designed to help traders identify significant price levels based on institutional volume. It monitors two higher timeframes (defined by the user) simultaneously. When a candle on these higher timeframes exhibits unusually high volume—known as high Relative Volume (RVol)—the indicator automatically draws a "Zone of Interest" box on your current chart.
These zones are defined by:
Up candle : from candle open to low of candle
Down candle : from candle open to high of candle
Key Features:
Multi-Timeframe Monitoring: You can trade on a lower timeframe (e.g., 5-minute) while the indicator monitors the 30-minute and 1-hour charts for volume spikes.
RVol Boxes: Automatically draws boxes extending from high-volume candles.
Up Candles: Box covers Low to Open.
Down Candles: Box covers High to Open.
Live Dashboard: A neat, color-coded table displays the current Volume, Average Volume, and RVol percentage for your watched timeframes.
Real-Time vs. Confirmed: Choose whether to see boxes appear immediately as volume spikes (Live) or only after the candle has closed and confirmed the volume (Candle Close).
Settings Guide:
1. General Settings
Relative Volume Length: The number of past candles used to calculate the "Average Volume." (Default is 20).
Max Days Back to Draw: To keep your chart clean, this limits how far back in history the script looks for high-volume zones. (e.g., set to 5 to only see zones created in the last 5 days).
Draw Mode:
- Live (Real-time): Draws the box immediately if the current developing candle hits the volume threshold. (Note: The box may disappear if the volume average shifts before the candle closes).
- Candle Close: The box only appears once the candle has finished and permanently confirmed the volume spike.
2. Table Settings
Show Info Table: Toggles the dashboard on or off.
Text Size & Position: Customise where the table appears on your screen and how large the text is.
Colours: Fully customisable colours for the Table Header (Top row) and Data Rows (Bottom rows).
3. Timeframe 1 & 2 Settings
You have two identical sections to configure two different timeframes (e.g., 30m and 1H).
Timeframe: The chart interval to monitor (e.g., "30" for 30 minutes, "60" for 1 Hour, "240" for 4 Hours).
Threshold %: The "Trigger" for drawing a box based on relative candle volume in that timeframe.
Example:
100% = Candle Volume is equal to the average volume for the specified timeframe.
200% = Candle Volume is 2x the average volume for the specified timeframe.
300% = Candle Volume is 3x the average volume for the specified timeframe.
Box & Edge Colour: Distinct colours for each timeframe so you can easily tell which timeframe created the zone.
RS Rating Multi-TimeframeRS Rating Multi-Timeframe (IBD-Style Relative Strength)
Short Description:
IBD-style Relative Strength Rating (1-99) comparing any stock's performance vs the S&P 500 across multiple timeframes.
Full Description:
Overview
This indicator calculates an IBD-style Relative Strength (RS) Rating that measures a stock's price performance relative to the S&P 500 over the past 12 months. The rating scale ranges from 1 (weakest) to 99 (strongest), telling you how a stock ranks against all other stocks in terms of relative performance.
How It Works
The RS Rating uses a weighted formula based on quarterly performance:
Last 63 days (1 quarter): 40% weight
Last 126 days (2 quarters): 20% weight
Last 189 days (3 quarters): 20% weight
Last 252 days (4 quarters): 20% weight
This weighting emphasizes recent performance while still accounting for longer-term strength.
Rating Interpretation
90-99 (Elite): Top 10% of all stocks - exceptional relative strength
80-89 (Excellent): Top 20% - strong leadership candidates
50-79 (Average): Middle of the pack
30-49 (Below Average): Underperforming the market
1-29 (Weak): Bottom 30% - avoid or consider shorting
Features
Multi-Timeframe: Works on any timeframe from 1-hour to weekly (always uses daily data for calculation)
Moving Average: Optional EMA or SMA of the RS Rating to smooth signals
Visual Zones: Color-coded zones for quick identification of strength/weakness
Signal Markers: Triangles appear when RS crosses key levels (80 and 30)
Info Table: Displays current RS Rating, change, MA value, and raw score
Alerts: Built-in alerts for key crossover events
Settings
Show Moving Average: Toggle MA line on/off
MA Length: Period for the moving average (default: 10)
MA Type: Choose between EMA or SMA
Benchmark Index: Change the comparison index (default: SP:SPX)
Show Rating Table: Toggle the info table on/off
How To Use
Buy candidates: Look for stocks with RS Rating above 80, ideally rising
Avoid: Stocks with RS Rating below 30 or falling rapidly
Confirmation: Use RS above its moving average as additional confirmation
Divergence: Watch for RS making new highs before price (bullish) or new lows before price (bearish)
Credits
RS Rating calculation methodology inspired by Investor's Business Daily (IBD) and adapted from Fred6724's RS Rating script. Percentile calibration based on analysis of ~6,600 US stocks.
Tags: relative strength, RS rating, IBD, momentum, CAN SLIM, benchmark, SPX, market leaders, stock ranking
Category: Relative Strength
The Alchemist's Trend [wjdtks255]📊 The Alchemist's Trend - Filtered Trading Guide
This indicator, named The Alchemist's Trend, is a High-Confidence Trend-Following Strategy designed to maximize reliability. It generates a final entry signal only when the QQE (Quantitative Qualitative Estimation) momentum signal is validated by four robust filters: Long-Term Trend (MA200), Mid-Term Trend (HMA), Momentum Strength (CCI), and Higher Timeframe (HTF) Trend.
1. Indicator Mechanism and Core Components
A. Chart Visualization and Trend Identification
Trend Line (HMA): Appears as a Yellow or Purple Thick Line. It represents the direction of the current short/mid-term market trend. Candle colors follow this line.
MA 200: Appears as a Dotted Line (color configurable in settings). It is the Long-Term Trend Line. Price above it suggests a long-term bullish view; below it, a long-term bearish view.
Candle Background: Appears as Light Yellow or Purple. It matches the Trend Line direction, providing a visual cue of the trend's strength.
B. The Four-Filter System
For a confirmed entry signal ('L' or 'S') to fire, the following four conditions must all align in the same direction:
QQE (Momentum Base): Generates the primary Long/Short crossover signal.
MA & HMA (Trend Alignment):
For Long Entries: Price must be above both the MA200 and the HMA Trend Line.
For Short Entries: Price must be below both the MA200 and the HMA Trend Line.
CCI (Momentum Strengthening):
For Long Entries: CCI value must be above +50. (Confirms strong buying momentum)
For Short Entries: CCI value must be below -50. (Confirms strong selling momentum)
HTF (Higher Timeframe Trend): Checks if the price on the set higher timeframe (default 4H) is above its own Trend Line, confirming alignment with the broader market direction.
2. Trading Strategy and Usage Rules
This indicator aims to maximize signal reliability over frequency.
🔔 Entry Rule
Enter a trade only when the 'L' or 'S' label appears on the chart AND the Action panel on the dashboard displays LONG SIGNAL or SHORT SIGNAL.
Long Entry (L):
Condition: 'L' label appears (All Long conditions met).
Verification: Confirm the Trend Line and candle color are in the yellow range.
Short Entry (S):
Condition: 'S' label appears (All Short conditions met).
Verification: Confirm the Trend Line and candle color are in the purple range.
🛡️ Risk and Position Management
Stop-Loss (SL): A common practice is to place the Stop-Loss below the low of the signal candle (for Long) or above the high of the signal candle (for Short), or beyond a recent significant support/resistance level.
Exit Strategy (Three Options):
Opposite Signal: Close the position immediately if the opposite signal ('S' during a Long, or 'L' during a Short) occurs.
RSI Extremes: Consider taking partial profits if the RSI reaches 70 (for Long) or 30 (for Short), indicating potential exhaustion.
Trend Line Crossover: Exit the position if the price breaks or crosses the Trend Line, causing the candle color to change.
🖥️ Dashboard Utilization Tips
The dashboard provides contextual information to validate the signal:
RSI: Signals occurring within the neutral 30-70 zone suggest a stronger developing trend. If near 70/30, consider the risk of reversal.
Vol Status ('High'): If the volume status is 'High' when the signal fires, the signal's power is likely high, indicating a higher probability of significant movement.
Day High/Low: Use these values as a secondary reference for setting initial Stop-Loss or Take-Profit targets.
BAY_PIVOT S/R(4 Full Lines + ALL Labels)//@version=5
indicator("BAY_PIVOT S/R(4 Full Lines + ALL Labels)", overlay=true, max_labels_count=500, max_lines_count=500)
// ────────────────────── TOGGLES ──────────────────────
showPivot = input.bool(true, "Show Pivot (Full Line + Label)")
showTarget = input.bool(true, "Show Target (Full Line + Label)")
showLast = input.bool(true, "Show Last Close (Full Line + Label)")
showPrevClose = input.bool(true, "Show Previous Close (Full Line + Label)")
useBarchartLast = input.bool(true, "Use Barchart 'Last' (Settlement Price)")
showR1R2R3 = input.bool(true, "Show R1 • R2 • R3")
showS1S2S3 = input.bool(true, "Show S1 • S2 • S3")
showStdDev = input.bool(true, "Show ±1σ ±2σ ±3σ")
showFib4W = input.bool(true, "Show 4-Week Fibs")
showFib13W = input.bool(true, "Show 13-Week Fibs")
showMonthHL = input.bool(true, "Show 1M High / Low")
showEntry1 = input.bool(false, "Show Manual Entry 1")
showEntry2 = input.bool(false, "Show Manual Entry 2")
entry1 = input.float(0.0, "Manual Entry 1", step=0.25)
entry2 = input.float(0.0, "Manual Entry 2", step=0.25)
stdLen = input.int(20, "StdDev Length", minval=1)
fib4wBars = input.int(20, "4W Fib Lookback")
fib13wBars = input.int(65, "13W Fib Lookback")
// ────────────────────── DAILY CALCULATIONS ──────────────────────
high_y = request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on)
low_y = request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on)
close_y = request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_on)
pivot = (high_y + low_y + close_y) / 3
r1 = pivot + 0.382 * (high_y - low_y)
r2 = pivot + 0.618 * (high_y - low_y)
r3 = pivot + (high_y - low_y)
s1 = pivot - 0.382 * (high_y - low_y)
s2 = pivot - 0.618 * (high_y - low_y)
s3 = pivot - (high_y - low_y)
prevClose = close_y
last = useBarchartLast ? request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_off) : close
target = pivot + (pivot - prevClose)
// StdDev + Fibs + Monthly (unchanged)
basis = ta.sma(close, stdLen)
dev = ta.stdev(close, stdLen)
stdRes1 = basis + dev
stdRes2 = basis + dev*2
stdRes3 = basis + dev*3
stdSup1 = basis - dev
stdSup2 = basis - dev*2
stdSup3 = basis - dev*3
high4w = ta.highest(high, fib4wBars)
low4w = ta.lowest(low, fib4wBars)
fib382_4w = high4w - (high4w - low4w) * 0.382
fib50_4w = high4w - (high4w - low4w) * 0.500
high13w = ta.highest(high, fib13wBars)
low13w = ta.lowest(low, fib13wBars)
fib382_13w_high = high13w - (high13w - low13w) * 0.382
fib50_13w = high13w - (high13w - low13w) * 0.500
fib382_13w_low = low13w + (high13w - low13w) * 0.382
monthHigh = ta.highest(high, 30)
monthLow = ta.lowest(low, 30)
// ────────────────────── COLORS ──────────────────────
colRed = color.rgb(255,0,0)
colLime = color.rgb(0,255,0)
colYellow = color.rgb(255,255,0)
colOrange = color.rgb(255,165,0)
colWhite = color.rgb(255,255,255)
colGray = color.rgb(128,128,128)
colMagenta = color.rgb(255,0,255)
colPink = color.rgb(233,30,99)
colCyan = color.rgb(0,188,212)
colBlue = color.rgb(0,122,255)
colPurple = color.rgb(128,0,128)
colRed50 = color.new(colRed,50)
colGreen50 = color.new(colLime,50)
// ────────────────────── 4 KEY FULL LINES ──────────────────────
plot(showPivot ? pivot : na, title="PIVOT", color=colYellow, linewidth=3, style=plot.style_linebr)
plot(showTarget ? target : na, title="TARGET", color=colOrange, linewidth=2, style=plot.style_linebr)
plot(showLast ? last : na, title="LAST", color=colWhite, linewidth=2, style=plot.style_linebr)
plot(showPrevClose ? prevClose : na, title="PREV CLOSE",color=colGray, linewidth=1, style=plot.style_linebr)
// ────────────────────── LABELS FOR ALL 4 KEY LEVELS (SAME STYLE AS OTHERS) ──────────────────────
f_label(price, txt, bgColor, txtColor) =>
if barstate.islast and not na(price)
label.new(bar_index, price, txt, style=label.style_label_left, color=bgColor, textcolor=txtColor, size=size.small)
if barstate.islast
showPivot ? f_label(pivot, "PIVOT\n" + str.tostring(pivot, "#.##"), colYellow, color.black) : na
showTarget ? f_label(target, "TARGET\n" + str.tostring(target, "#.##"), colOrange, color.white) : na
showLast ? f_label(last, "LAST\n" + str.tostring(last, "#.##"), colWhite, color.black) : na
showPrevClose ? f_label(prevClose, "PREV CLOSE\n"+ str.tostring(prevClose, "#.##"), colGray, color.white) : na
// ────────────────────── OTHER LEVELS – line stops at label ──────────────────────
f_level(p, txt, tc, lc, w=1) =>
if barstate.islast and not na(p)
lbl = label.new(bar_index, p, txt, style=label.style_label_left, color=lc, textcolor=tc, size=size.small)
line.new(bar_index-400, p, label.get_x(lbl), p, extend=extend.none, color=lc, width=w)
if barstate.islast
if showR1R2R3
f_level(r1, "R1\n" + str.tostring(r1, "#.##"), color.white, colRed)
f_level(r2, "R2\n" + str.tostring(r2, "#.##"), color.white, colRed)
f_level(r3, "R3\n" + str.tostring(r3, "#.##"), color.white, colRed, 2)
if showS1S2S3
f_level(s1, "S1\n" + str.tostring(s1, "#.##"), color.black, colLime)
f_level(s2, "S2\n" + str.tostring(s2, "#.##"), color.black, colLime)
f_level(s3, "S3\n" + str.tostring(s3, "#.##"), color.black, colLime, 2)
if showStdDev
f_level(stdRes1, "+1σ\n" + str.tostring(stdRes1, "#.##"), color.white, colPink)
f_level(stdRes2, "+2σ\n" + str.tostring(stdRes2, "#.##"), color.white, colPink)
f_level(stdRes3, "+3σ\n" + str.tostring(stdRes3, "#.##"), color.white, colPink, 2)
f_level(stdSup1, "-1σ\n" + str.tostring(stdSup1, "#.##"), color.white, colCyan)
f_level(stdSup2, "-2σ\n" + str.tostring(stdSup2, "#.##"), color.white, colCyan)
f_level(stdSup3, "-3σ\n" + str.tostring(stdSup3, "#.##"), color.white, colCyan, 2)
if showFib4W
f_level(fib382_4w, "38.2% 4W\n" + str.tostring(fib382_4w, "#.##"), color.white, colMagenta)
f_level(fib50_4w, "50% 4W\n" + str.tostring(fib50_4w, "#.##"), color.white, colMagenta)
if showFib13W
f_level(fib382_13w_high, "38.2% 13W High\n" + str.tostring(fib382_13w_high, "#.##"), color.white, colMagenta)
f_level(fib50_13w, "50% 13W\n" + str.tostring(fib50_13w, "#.##"), color.white, colMagenta)
f_level(fib382_13w_low, "38.2% 13W Low\n" + str.tostring(fib382_13w_low, "#.##"), color.white, colMagenta)
if showMonthHL
f_level(monthHigh, "1M HIGH\n" + str.tostring(monthHigh, "#.##"), color.white, colRed50, 2)
f_level(monthLow, "1M LOW\n" + str.tostring(monthLow, "#.##"), color.white, colGreen50, 2)
// Manual entries
plot(showEntry1 and entry1 > 0 ? entry1 : na, "Entry 1", color=colBlue, linewidth=2, style=plot.style_linebr)
plot(showEntry2 and entry2 > 0 ? entry2 : na, "Entry 2", color=colPurple, linewidth=2, style=plot.style_linebr)
// Background
bgcolor(close > pivot ? color.new(color.blue, 95) : color.new(color.red, 95))
New Age RSI [R4D1]New Age - Clean RSI with Dynamic Clouds
⚠️ BETA VERSION - Currently in testing phase. Feedback welcome!
A visually enhanced RSI indicator with beautiful gradient clouds, dynamic colors, and an informative dashboard.
🎯 FEATURES:
- Dynamic cloud intensity - glows stronger at extremes
- Gradient RSI line - color changes based on value
- Fill between RSI and midline (50)
- Clean buy/sell signals at zone exits
- Real-time dashboard with trend & momentum
- Fully customizable colors and levels
📊 SIGNALS:
- 🟢 BUY: RSI crosses above oversold level (exits oversold)
- 🔴 SELL: RSI crosses below overbought level (exits overbought)
🎨 VISUAL ELEMENTS:
- Red cloud (70-100): Overbought zone - intensity increases as RSI rises
- Green cloud (0-30): Oversold zone - intensity increases as RSI falls
- Gray zone (30-70): Neutral area
- Gradient line: Green (oversold) → Red (overbought)
- Fill to midline: Shows momentum direction
💡 DASHBOARD SHOWS:
- RSI value with colored background
- RSI MA (14-period moving average)
- Zone status (Overbought/Oversold/Neutral)
- Trend direction (Bullish/Bearish)
- Momentum strength (Strong/Rising/Fading)
⚙️ SETTINGS:
- RSI Length (default: 14)
- Overbought level (default: 70)
- Oversold level (default: 30)
- Bull/Bear colors
📈 CHART TYPE SETTINGS:
- Heikin Ashi charts: Set source to "(O + H + L + C) / 4"
- Normal candles: Set source to "Close"
Works perfectly with Supertrend, MACD, and StochRSI for confirmation signals.
🔧 This indicator is in active development. Please report any bugs or suggestions!
Session Opening Range Breakout (ORBO)This strategy automates a classic Opening Range Breakout (ORBO) approach: it builds a price range for the first minutes after the market opens, then looks for strong breakouts above or below that range to catch early directional moves.
Concept
The idea behind ORBO is simple:
The first minutes after the session open are often highly informative.
Price forms an “opening range” that acts as a mini support/resistance zone.
A clean breakout beyond this zone can lead to high-momentum moves.
This script turns that logic into a fully backtestable strategy in TradingView.
How the strategy works
Opening Range Session
Default session: 09:30–09:50 (exchange time)
During this window, the script tracks:
orHigh → highest high within the session
orLow → lowest low within the session
This forms your Opening Range for the day.
Breakout Logic (after the window ends)
Once the defined session ends:
Long Entry:
If the close crosses above the Opening Range High (orHigh),
→ strategy.entry("OR Long", strategy.long) is triggered.
Short Entry:
If the close crosses below the Opening Range Low (orLow),
→ strategy.entry("OR Short", strategy.short) is triggered.
Only one opening range per day is considered, which keeps the logic clean and easy to interpret.
Daily Reset
At the start of a new trading day, the script resets:
orHigh := na
orLow := na
A fresh Opening Range is then built using the next session’s 09:30–09:50 candles.
This ensures entries are always based on today’s structure, not yesterday’s.
Visuals & Inputs
Inputs:
Opening range session → default: "0930-0950"
Show OR levels → toggle visibility of OR High / Low lines
Fill range body → optional shaded zone between OR High and OR Low
Chart visuals:
A green line marks the Opening Range High.
A red line marks the Opening Range Low.
Optional yellow fill highlights the entire OR zone.
Background shading during the session shows when the range is currently being built.
These visuals make it easy to see:
Where the OR sits relative to current price
How clean / noisy the breakout was
How often price respects or rejects the opening zone
Backtesting & Optimization
Because this is written as a strategy():
You can use TradingView’s Strategy Tester to view:
Win rate
Net profit
Drawdown
Profit factor
Equity curve
Ideas to experiment with:
Change the session window (e.g., 09:15–09:45, 10:00–10:30)
Apply to different:
Markets: indices, FX, crypto, stocks
Timeframes: 1m / 5m / 15m
Add your own:
Stop Loss & Take Profit levels
Time filters (only trade certain days / times)
Volatility filters (e.g., ATR, range size thresholds)
Higher-timeframe trend filter (e.g., only take longs above 200 EMA)
Asia & London Session Boxes (NY Time) + 4H SwingsAsia & London Session Boxes + 4H Swings
Description
A multi-timeframe session analysis tool designed for forex and futures traders operating on NY time. This indicator visualizes major trading sessions with automatic high/low range boxes while simultaneously tracking 4-hour swing levels, giving you a complete picture of institutional trading activity and key price levels.
How It Works
Session Boxes (NY Time Zone)
Asia Session (20:00 – 00:00 NY): Blue-shaded box marking the complete range from open to close
London Session (02:00 – 06:00 NY): Yellow-shaded box capturing the high-volatility London open
Each session box automatically records the highest high and lowest low during that timeframe, providing instant reference for session extremes and potential supply/demand zones.
4-Hour Swing Levels
Detects swing highs and lows on a 30-minute timeframe for ultra-responsive level identification
Red lines: Swing highs (resistance levels)
Green lines: Swing lows (support levels)
Lines extend to the right for continuous monitoring
Auto-removes touched levels: When price breaches a swing, it automatically deletes that level to keep your chart clean and focused on active levels
Key Features
Session-Based Trading Analysis: Identify which session created important price levels and ranges
Multi-Timeframe Architecture: Analyzes 30-minute swings while tracking 4-hour patterns on your current chart
Smart Level Cleanup: Touched swings automatically remove themselves, eliminating clutter
NY Time Conversion: All times automatically adjust to your NY timezone for consistency
Institutional Perspective: View exactly where institutions are trading during major session hours
Zero Lag Detection: Real-time identification of swing extremes
Ideal For
Forex traders (especially EUR/USD, GBP/USD) targeting session breakouts
Scalpers and swing traders needing precise support/resistance levels
Market structure traders analyzing institutional price action
Session traders looking to trade Asia/London opens
1-minute to 4-hour timeframe charts
Trading Applications
Trade Asia session breakouts into London
Identify liquidity zones from previous sessions
Detect swing extremes for entry/exit planning
Confirm trend direction using multi-session structure
Find support/resistance on intraday pullbacks
Default Settings Optimized For
NASDAQ futures and forex pairs
Scalping and short-term swing trading
NY timezone trading (automatically converts UTC-4)
30-minute swing detection for precise level identification






















