[LanZhu] - Bursa Index/Sector Trend With PortfolioDescription
Hi all, this is a simple indicator that shows trend of both KLCI and sectors of Bursa . The sector finding is using my Bursa_Sector library. Besides, I have also included portfolio tracker which is by Mohamed3nan in this script.
Usage
Top Trend - Malaysia KLCI Index Trend
Bottom Trend - Any Bursa Sector Trend
Portfolio Table - Copy from Portfolio Tracker by Mohamed3nan
Cerca negli script per "track"
Liquidity Pair Impermanent Asset LossWith limited tracking of impermanent loss for liquidity pairs across all chains, I wanted a very simple display of live dollar value loss in an asset pair. This should allow you to set alerts based on how much you are down and take action if needed. The output column is by default set to show your losses in USD. For those that need it, I also setup an option to track the output in something other than USDT, e.g., GBP or ETH, etc..
The Signal - Hunt Bitcoin CoT Buy/SellThe Signal - Hunt Bitcoin CoT Buy/Sell
Why Bother with another CoT signal?
Its different & focused on the Insider's. The Largest 4 Open Interest Seller and the Largest 4 open Interest Longs, plus the distance they are apart, the Delta, what does high percentage of Largest 4 sellers mean with a low 4 OI Buyers. , what when the usually higher Sellers are low and the largest 4 buyers almost the same value , Time to track the insiders Delta..
Performance -
This Indicator provided a
1. Signal 1 = 26th March 2019 = SUPER LONG at $4,500 that saw a near $14,000 run up
2. Signal 2 = 18th & 24th June 2019 = SHORT at the second & final level $11,700 after repeated attempts & failure in the $13K range, the mini Echo Bitcoin Bull of 2019
3. Signal 3 = 17th December 2019 = LONG $6,900, Bitcoin rallied to Mid $10,500's
4. Signal 4 = 18th Feb 2020 = SUPER SHORT from $9,700's to a final extreme Low of $3,000, calling the CV-19 collapse
5. Signal 5 = 17th March 2020 = LONG from $5,400 no closure point yet
6. Signal 6 = 29th June 2020 = SUPER LONG reiterate from $10,700 no closure sell signal yet
7. Signal 7 = 17th May 2020 = LONG another accumulate LONG with no sell signal yet generated at Post H&S's low of $33,000
Note - This indicator only commences March 2019, as Bitcoin futures were a recent introduction and needed to settle for 6 months in both use and data, no signals were meaningful prior & data was light.
What is Provided. - Please note the need to also add the Hunt Bitcoin Historical Volatility Indicator for full understanding.
We provide 3 things with the 3 indicators.
'Insider' indications from Largest players in the futures market.
1. Bitcoin Macro Buy Signals.
a) The Bitcoin Commitment of Traders results see us focus solely on Largest 4 Short Open Interest & Largest 4 Long Open Interest aspects of the CoT Release data.
When the difference - is tight, a kind of pinch, these have been great Buy signals in Bitcoin.
We call this difference the Delta & When Delta is 5% or less Bitcoin is a Buy.
2. Bitcoin Macro Sells.
a) A sell signal is Triggered in Bitcoin at any point the Largest 4 short OI > or = to 70
3. AMPLIFIER Trade signals 'Super' Longs or Shorts -
Extreme low volatility events leads to highly impulsive & volatile subsequent moves, if either of 1 or 2 above occur, combined with extreme low volatility
a 'Super Long' or 'SUPER SELL' is generated. In the case of the short side, given Bitcoins general expansive and MACRO Bull trend since inception, we seek an additional component
that is an extreme differential/Delta reading between 4 biggest Longs & Shorts OI.
Namely CoT Delta also must be > 47.5%
We also have a Cautionary level, where it is not necessarily a good idea to accumulate Bitcon, as a better opportunity lower may avail itself, see conditions below.
So the required logic explicitly stated below for all Signals.
1. Long - Hunt Bitcoin CoT Delta < or = 5
2. SUPER Long - Hunt Bitcoin CoT Delta < or = 5; and 2 Day Historical Bitcoin Volatility = or < 20
3. Short - Largest 4 Sellers OI = or > 70
4. SUPER Short - Largest 4 Sellers OI = or > 70; AND..
Hunt Bitcoin CoT Delta = or > 47.5 AND 2 Day Historical BTC Volatility = or < 20
5. Caution - Largest 4 Sellers OI = or > 67.5 AND Hunt Bitcoin CoT Delta = or > 45
WARNING SEE Notes Below
Note 1 - = Largest 4 Open Interest Shorts
Note 2 - = Largest 4 Open Interest Longs
Note 3 - = Hunt Cot Delta = (Largest 4 sellers OI) -( Largest 4 Buyers OI)
Caution = Avoid new Bitcoin Accumulation Right Now, A sell signal might follow Enter on next Long
Note 4 - The Hunt Bitcoin COT Delta signal is a Largest 'Insider' Tracking tool based on a segment of Commitment of Traders data on Bitcoin Futures, released once a week on a Friday.
It is a Macro Timeframe signal , and should not be used for Day trading and Short Timeframe analysis , Entries may be optimised after a Hunt Bitcoin CoT Signal is generated by separate shorter Timeframe analysis.
Note 5 - The Historical Bitcoin Volatility is an additional 'Amplifier' component to the 'Hunt Bitcoin Cot Delta' Insider Signal
Note 6 - The Historical Bitcoin Volatility criteria varies by timeframe, the above levels are those applying on a Two Day TF Chart, select this custom timeframe in Trading View.
if additional criteria are met for LONG & SHORT insider signals, they may become 'Super Longs/Shorts', see conditions box above.
User-Inputed Time Range & FibsGreetings Traders! I have decided to release a few scripts as open-source as I'm sure others can benefit from them and perhaps make them better.(Be sure to check my Profile for the other scripts as well: www.tradingview.com).
This one is called User-Inputed Time Range & Fibs.
The idea behind this script is to record the Range Highs and Lows of a User Defined Period, and plot potential Targets based on either Fibonacci Extensions or a Multiple of the Range Size. I created this originally for use with the US Session Initial Balance(From 9:30-10:30AM EST), however it can be set to any time period.
What is Initial Balance? In simple words, Initial Balance (IB) is the price data, which are formed during the first hour of a trading session. Activity of traders forms the so-called Initial Balance at this time. This concept was introduced for the first time by Peter Steidlmayer when he presented the market profile to traders(atas.net).
The IB is monitored as a break-out area for Range Extension traders. The IB High is also seen as an area of resistance and the IB Low as an area of support until it is broken(www.mypivots.com).
As a note, depending on the Time Zone you are in, you may need to manually add or subtract from the Timed Range to match the desired Time. For example in NY Eastern Time, I have to use 8:30-9:30AM to Capture the 9:30-10-30AM IB for ES and NQ. Similarly, I must use 14:30-15:30PM to Capture the 9:30-10-30AM IB for BTC. You will need to make adjustments based on the Time Zone you are located in.
I wanted to give a Special Thanks to @PineCoders for the Custom Rounding Function from Backtesting/Trading Engine--> (), Pinecoders.com for help with Tracking the Highs/Lows--> (www.pinecoders.com), and @TradeChartist for allowing me to use some of the code for the Fibonacci Extensions from his script here--> ().
If you like User-Inputed Time Range & Fibs, be sure to Like, Follow, and if you have any questions, don't be afraid to drop a comment below.
Polynomial Regression Bands + Channel [DW]This is an experimental study designed to calculate polynomial regression for any order polynomial that TV is able to support.
This study aims to educate users on polynomial curve fitting, and the derivation process of Least Squares Moving Averages (LSMAs).
I also designed this study with the intent of showcasing some of the capabilities and potential applications of TV's fantastic new array functions.
Polynomial regression is a form of regression analysis in which the relationship between the independent variable x and the dependent variable y is modeled as a polynomial of nth degree (order).
For clarification, linear regression can also be described as a first order polynomial regression. The process of deriving linear, quadratic, cubic, and higher order polynomial relationships is all the same.
In addition, although deriving a polynomial regression equation results in a nonlinear output, the process of solving for polynomials by least squares is actually a special case of multiple linear regression.
So, just like in multiple linear regression, polynomial regression can be solved in essentially the same way through a system of linear equations.
In this study, you are first given the option to smooth the input data using the 2 pole Super Smoother Filter from John Ehlers.
I chose this specific filter because I find it provides superior smoothing with low lag and fairly clean cutoff. You can, of course, implement your own filter functions to see how they compare if you feel like experimenting.
Filtering noise prior to regression calculation can be useful for providing a more stable estimation since least squares regression can be rather sensitive to noise.
This is especially true on lower sampling lengths and higher degree polynomials since the regression output becomes more "overfit" to the sample data.
Next, data arrays are populated for the x-axis and y-axis values. These are the main datasets utilized in the rest of the calculations.
To keep the calculations more numerically stable for higher periods and orders, the x array is filled with integers 1 through the sampling period rather than using current bar numbers.
This process can be thought of as shifting the origin of the x-axis as new data emerges.
This keeps the axis values significantly lower than the 10k+ bar values, thus maintaining more numerical stability at higher orders and sample lengths.
The data arrays are then used to create a pseudo 2D matrix of x power sums, and a vector of x power*y sums.
These matrices are a representation the system of equations that need to be solved in order to find the regression coefficients.
Below, you'll see some examples of the pattern of equations used to solve for our coefficients represented in augmented matrix form.
For example, the augmented matrix for the system equations required to solve a second order (quadratic) polynomial regression by least squares is formed like this:
(∑x^0 ∑x^1 ∑x^2 | ∑(x^0)y)
(∑x^1 ∑x^2 ∑x^3 | ∑(x^1)y)
(∑x^2 ∑x^3 ∑x^4 | ∑(x^2)y)
The augmented matrix for the third order (cubic) system is formed like this:
(∑x^0 ∑x^1 ∑x^2 ∑x^3 | ∑(x^0)y)
(∑x^1 ∑x^2 ∑x^3 ∑x^4 | ∑(x^1)y)
(∑x^2 ∑x^3 ∑x^4 ∑x^5 | ∑(x^2)y)
(∑x^3 ∑x^4 ∑x^5 ∑x^6 | ∑(x^3)y)
This pattern continues for any n ordered polynomial regression, in which the coefficient matrix is a n + 1 wide square matrix with the last term being ∑x^2n, and the last term of the result vector being ∑(x^n)y.
Thanks to this pattern, it's rather convenient to solve the for our regression coefficients of any nth degree polynomial by a number of different methods.
In this script, I utilize a process known as LU Decomposition to solve for the regression coefficients.
Lower-upper (LU) Decomposition is a neat form of matrix manipulation that expresses a 2D matrix as the product of lower and upper triangular matrices.
This decomposition method is incredibly handy for solving systems of equations, calculating determinants, and inverting matrices.
For a linear system Ax=b, where A is our coefficient matrix, x is our vector of unknowns, and b is our vector of results, LU Decomposition turns our system into LUx=b.
We can then factor this into two separate matrix equations and solve the system using these two simple steps:
1. Solve Ly=b for y, where y is a new vector of unknowns that satisfies the equation, using forward substitution.
2. Solve Ux=y for x using backward substitution. This gives us the values of our original unknowns - in this case, the coefficients for our regression equation.
After solving for the regression coefficients, the values are then plugged into our regression equation:
Y = a0 + a1*x + a1*x^2 + ... + an*x^n, where a() is the ()th coefficient in ascending order and n is the polynomial degree.
From here, an array of curve values for the period based on the current equation is populated, and standard deviation is added to and subtracted from the equation to calculate the channel high and low levels.
The calculated curve values can also be shifted to the left or right using the "Regression Offset" input
Changing the offset parameter will move the curve left for negative values, and right for positive values.
This offset parameter shifts the curve points within our window while using the same equation, allowing you to use offset datapoints on the regression curve to calculate the LSMA and bands.
The curve and channel's appearance is optionally approximated using Pine's v4 line tools to draw segments.
Since there is a limitation on how many lines can be displayed per script, each curve consists of 10 segments with lengths determined by a user defined step size. In total, there are 30 lines displayed at once when active.
By default, the step size is 10, meaning each segment is 10 bars long. This is because the default sampling period is 100, so this step size will show the approximate curve for the entire period.
When adjusting your sampling period, be sure to adjust your step size accordingly when curve drawing is active if you want to see the full approximate curve for the period.
Note that when you have a larger step size, you will see more seemingly "sharp" turning points on the polynomial curve, especially on higher degree polynomials.
The polynomial functions that are calculated are continuous and differentiable across all points. The perceived sharpness is simply due to our limitation on available lines to draw them.
The approximate channel drawings also come equipped with style inputs, so you can control the type, color, and width of the regression, channel high, and channel low curves.
I also included an input to determine if the curves are updated continuously, or only upon the closing of a bar for reduced runtime demands. More about why this is important in the notes below.
For additional reference, I also included the option to display the current regression equation.
This allows you to easily track the polynomial function you're using, and to confirm that the polynomial is properly supported within Pine.
There are some cases that aren't supported properly due to Pine's limitations. More about this in the notes on the bottom.
In addition, I included a line of text beneath the equation to indicate how many bars left or right the calculated curve data is currently shifted.
The display label comes equipped with style editing inputs, so you can control the size, background color, and text color of the equation display.
The Polynomial LSMA, high band, and low band in this script are generated by tracking the current endpoints of the regression, channel high, and channel low curves respectively.
The output of these bands is similar in nature to Bollinger Bands, but with an obviously different derivation process.
By displaying the LSMA and bands in tandem with the polynomial channel, it's easy to visualize how LSMAs are derived, and how the process that goes into them is drastically different from a typical moving average.
The main difference between LSMA and other MAs is that LSMA is showing the value of the regression curve on the current bar, which is the result of a modelled relationship between x and the expected value of y.
With other MA / filter types, they are typically just averaging or frequency filtering the samples. This is an important distinction in interpretation. However, both can be applied similarly when trading.
An important distinction with the LSMA in this script is that since we can model higher degree polynomial relationships, the LSMA here is not limited to only linear as it is in TV's built in LSMA.
Bar colors are also included in this script. The color scheme is based on disparity between source and the LSMA.
This script is a great study for educating yourself on the process that goes into polynomial regression, as well as one of the many processes computers utilize to solve systems of equations.
Also, the Polynomial LSMA and bands are great components to try implementing into your own analysis setup.
I hope you all enjoy it!
--------------------------------------------------------
NOTES:
- Even though the algorithm used in this script can be implemented to find any order polynomial relationship, TV has a limit on the significant figures for its floating point outputs.
This means that as you increase your sampling period and / or polynomial order, some higher order coefficients will be output as 0 due to floating point round-off.
There is currently no viable workaround for this issue since there isn't a way to calculate more significant figures than the limit.
However, in my humble opinion, fitting a polynomial higher than cubic to most time series data is "overkill" due to bias-variance tradeoff.
Although, this tradeoff is also dependent on the sampling period. Keep that in mind. A good rule of thumb is to aim for a nice "middle ground" between bias and variance.
If TV ever chooses to expand its significant figure limits, then it will be possible to accurately calculate even higher order polynomials and periods if you feel the desire to do so.
To test if your polynomial is properly supported within Pine's constraints, check the equation label.
If you see a coefficient value of 0 in front of any of the x values, reduce your period and / or polynomial order.
- Although this algorithm has less computational complexity than most other linear system solving methods, this script itself can still be rather demanding on runtime resources - especially when drawing the curves.
In the event you find your current configuration is throwing back an error saying that the calculation takes too long, there are a few things you can try:
-> Refresh your chart or hide and unhide the indicator.
The runtime environment on TV is very dynamic and the allocation of available memory varies with collective server usage.
By refreshing, you can often get it to process since you're basically just waiting for your allotment to increase. This method works well in a lot of cases.
-> Change the curve update frequency to "Close Only".
If you've tried refreshing multiple times and still have the error, your configuration may simply be too demanding of resources.
v4 drawing objects, most notably lines, can be highly taxing on the servers. That's why Pine has a limit on how many can be displayed in the first place.
By limiting the curve updates to only bar closes, this will significantly reduce the runtime needs of the lines since they will only be calculated once per bar.
Note that doing this will only limit the visual output of the curve segments. It has no impact on regression calculation, equation display, or LSMA and band displays.
-> Uncheck the display boxes for the drawing objects.
If you still have troubles after trying the above options, then simply stop displaying the curve - unless it's important to you.
As I mentioned, v4 drawing objects can be rather resource intensive. So a simple fix that often works when other things fail is to just stop them from being displayed.
-> Reduce sampling period, polynomial order, or curve drawing step size.
If you're having runtime errors and don't want to sacrifice the curve drawings, then you'll need to reduce the calculation complexity.
If you're using a large sampling period, or high order polynomial, the operational complexity becomes significantly higher than lower periods and orders.
When you have larger step sizes, more historical referencing is used for x-axis locations, which does have an impact as well.
By reducing these parameters, the runtime issue will often be solved.
Another important detail to note with this is that you may have configurations that work just fine in real time, but struggle to load properly in replay mode.
This is because the replay framework also requires its own allotment of runtime, so that must be taken into consideration as well.
- Please note that the line and label objects are reprinted as new data emerges. That's simply the nature of drawing objects vs standard plots.
I do not recommend or endorse basing your trading decisions based on the drawn curve. That component is merely to serve as a visual reference of the current polynomial relationship.
No repainting occurs with the Polynomial LSMA and bands though. Once the bar is closed, that bar's calculated values are set.
So when using the LSMA and bands for trading purposes, you can rest easy knowing that history won't change on you when you come back to view them.
- For those who intend on utilizing or modifying the functions and calculations in this script for their own scripts, I included debug dialogues in the script for all of the arrays to make the process easier.
To use the debugs, see the "Debugs" section at the bottom. All dialogues are commented out by default.
The debugs are displayed using label objects. By default, I have them all located to the right of current price.
If you wish to display multiple debugs at once, it will be up to you to decide on display locations at your leisure.
When using the debugs, I recommend commenting out the other drawing objects (or even all plots) in the script to prevent runtime issues and overlapping displays.
Alpha Performance of PeriodAlpha Performance of Period (PoP) produces a visualization of returns (gains and losses) over a quarterly, monthly, or annual period. It also displays the total % gain and loss over any length of days, months, and years as defined by the user.
Performance of Period (PoP) can be used to understand the performance of an asset over multiple periods using a single chart layout, and to compare the performance of different assets by using a multi-chart layout.
This can, for example, be used to compare the NASDAQ, S&P, and DJI over the past 20 years to create a dow vs. nasdaq vs. s&p performance chart. This can help you understand a comparison of historical returns by showing which performs the best month-over-month, quarter-to-quarter, year-to-year, throughout any custom period of days/months/years.
The ability to get a visualization of the % gain/loss can help to better understand how markets have performed over time and which markets have historically performed the best.
Check out the up and coming Educational Idea we will be releasing soon after this is live to see an example of how we use this tool.
Current Period Label
-----
Current Period : This label shows the current period's performance only when you hover over it.
(This label is located to the left of the current period's open candle and at the current candles close price)
TICKER "Time Period" Performance Label
-----
Total Period Gain : The total of all % gain periods from the start to end date.
Largest Period Gain : The biggest % gain period from the start to end date.
Total Period Loss : The total of all % loss periods from the start to end date.
Largest Period Loss : The biggest % loss period from the start to end date.
Total period Performance : The total % performance, the difference between the total gain and total loss.
NOTE : The "Current Period" performance is excluded from ALL five of the above-mentioned figures. This was done to avoid giving inaccurate comparison figures due to the period not being finished yet.
Inputs
-----
Current Script Version + Info : A drop-down list of instructions for the user to refer to.
Dark Mode Labels : Toggle on for Dark Mode. This is done since Labels text and background color can not be adjusted separately within the visual inputs so this is the best fit solution.
Time Period of Returns : Pick the period of performance you would like to emulate monthly/quarterly/annual.
Start Date : The day to start tracking performance.
Start Month : The month to start tracking performance.
Start Year : The year to start tracking performance.
End Date : The day to stop tracking performance.
End Month : The month to stop tracking performance.
End Year : The year to stop tracking performance.
As always if you have any feedback let us know in the comments and leave a like if you enjoy this tool :)
Visual RSI [LucF]Visual RSI offers a different way of looking at RSI by providing a composite representation of 9 different RSI-generated components. Instead of focusing on one line only, this approach blends multiple sources to provide the viewer with a larger context RSI-based picture.
For those who don’t want to read
• Green in bullish (>50) zone is the most bullish.
• Red in bullish zone doesn’t necessarily mean bearish—it just means bullish strength is weakening. It may be just a pause before a reprise or exhaustion signalling a reversal—impossible to tell.
• The same in inverse applies to the bearish zone (<50).
For those who want to understand
The nine components making up Visual RSI are:
• a current timeframe RSI
• a higher timeframe RSI
• the delta between these two RSI lines
• for each of these three basic components, two independent Bollinger band: one calculated for the bullish section of the scale (>50) and a separate one calculated for the lower bearish region.
Dual BBs
In my view, RSI’s position with regards to the centerline is much more important than its position in extreme areas. Why? Because the building block of RSI is the ratio of the averages of up/down moves during the RSI period. When the average of ups is greater, RSI is > 50. So while a rising signal starting from 20 let’s say, indicates that the rate of change is increasing, only when it crosses 50 can we say that sentiment balance has truly become bullish, and this information is more reliable than the signal being at a level corresponding to whatever estimate we make of what constitutes an extreme value. In my landscape, the general balance of a ratio provides more valuable information than the ratio’s exact value.
The idea behind the dual BBs is to provide independent tracking information for both halves of the indicator’s space, which I find more useful than the normal method of simply adding a multiple of the standard deviation on both sides of the mean. With dual BBs, the upper BB will never go lower than the indicator’s centerline, and the lower BB will never go higher. The upper BB focuses on upper-bound volatility when the signal is bearish, and the lower BB focuses on downside volatility when the signal is bearish.
The functions used to calculate the independent BBs are reusable on other signals if a centerline can be defined for them. A clamping percentage is implemented, so that when a BB line is hugging the centerline it clamps to it. This helps in providing earlier signals when they use the BB line states.
Providing context to RSI
What RSI measures indirectly is the balance in the rate of change—or the speed of price movement, but not its instant value, otherwise RSI would be even noisier. More precisely, RSI represents the relative strength of the up/down movement in the last n bars of RSI’s length, with 14 often used because that’s what Wilder proposed (Visual RSI’s defaults are 20 for the current timeframe and 40 for the higher timeframe). At every bar, a new value is added to the equation and an old value carrying equal weight is dropped, so a large dropped off value will have more impact on RSI’s value if the new bar’s move is small. This accounts for some of RSI’s speed in identifying exhaustion after important moves, but almost for some of its noise.
Visual RSI is the result of trying to drown RSI’s noise in the context of other informational streams, while simultaneously providing even faster information than RSI alone, by giving more visual weight to the delta between the current and higher timeframe RSI’s.
How to read Visual RSI
The default settings show all 9 basic components as green/red areas of intensities varying with their importance. The most intense colors are reserved for the delta RSI and the BBs have the lightest intensities. The individual lines of components are intentionally difficult to distinguish so that focus is first on the general picture, including the all-important six-state background, and then on the delta RSI.
One entry setup could be reversals in a larger trend context, so low pivots of the delta in a fully bullish context (a green background in the upper section of the indicator), and inversely, high pivots in a fully bearish context (a red background in the lower section of the indicator).
Please resist the common misconception, when interpreting RSI, that a reversal in the signal will necessarily lead to a reversal in price. Each trend has its rhythm. Only machine-generated price action can progress regularly. It’s normal for trends to take a breather for some time before they continue or reverse, as traders driving the trend experience emotional fatigue and gradual fear. RSI reversals merely signify that such a breather has occurred—nothing more. Only the larger context can provide information that can situate that pause and put more meaningful odds on it having more probability of continuing in one direction or the other. This is the reasoning behind the setup just described.
Features
• All components can be hidden, displayed as a simple line, a uniformly colored fill, or a green/red fill (the default).
• The background can be colored using 9 different methods, including 3 six-state methods using the rising/falling BB lines of the 3 basic components. These six states allow for bullish/bearish/neutral sentiment in both the upper and lower regions of the indicator. A bearish (dark red) background in the bullish (>50) section of the indicator represents decreasing bullishness. A bearish (slightly brighter red) in the bearish (<50) section of the indicator means incresingly bearish sentiment. The six-state backgrounds allow for neutral (no color) sentiment when no compelling signs can be found to conclude anything with meaningful odds. The default background uses the six-state method on the higher timeframe RSI’s BBs because I find it the most useful, as it represents the largest—and slowest—context sentiment among all the indicator’s components.
• A thin status bar in the top part of the indicator also allows selection of the same 9 methods to color it. The default is a triple-state system using the rising/falling characteristics of the current timeframe RSI’s BBs to provide a short-term counterbalance to the long-term background.
• Three different markers can be configured using approximately 70 permutations each, each filtered by 20 different filter permutations. When modification of the relevant parameters in the script’s Settings/Settings/Parameters section is added, possibilities are almost endless. If the generated signals are then fed into the PineCoders Engine and combined with the Engine’s own options, the permutations go up another order of magnitude, and changes to any setting can be instantly evaluated using the Engine’s backtesting results.
• Five simple filters can be combined. They are additive. They include volume-related conditions and a chandelier, which I find useful because both volume and volatility (the chandelier using highs/lows and ATR) are sensible complementary sources to RSI’s momentum information. The filter’s state can be shown as a thin line at the bottom of the indicator.
• Alerts can be configured using any of the marker/filter combinations mentioned. As usual, once your markers/filters are set up the way you want, create your alert from the chart/timeframe you want the alert to run on and be sure to use the “Once Per Bar Close” triggering condition. Use an alert message that will remind you of which combination of markers were used when creating the alert.
• A plot providing entry signals for the PineCoders Backtesting & Trading Engine is supplied. It will use whichever marker/filter configuration is active to generate signals.
• All higher timeframe information is non-repainting. Higher timeframe lines can be smoothed (the default). The selection of the higher timeframe can be made using 3 different methods:
1. By steps (if current timeframe <= 1 minute: 60 min, <= 60 min: 1D, <= 6H: 3D, <= 1D: 1W, <=1W: 1M, >1W: 12M)
2. By a user-defined multiple of the current timeframe
3. Using a fixed timeframe
Thanks to:
• Alex Orekhov aka @everget for the chandelier code.
• @RicardoSantos who through a small remark early on, unknowingly put me on the track of eliminating noise through visual crowding.
• The brilliant guys in the PineCoders Pro room for your knowledge, limitless creativity and constant companionship.
Ease of Movement WatcherHere’s a handy Ease of Movement(EMV) Indicator. I tried to include detailed comments so that anyone that’s learning pine can follow along.
The Ease of Movement Indicator is a volume based oscillator that is designed to measure the ease (or movability) of price movement for a security. The EMV is a centered oscillator, meaning that values can fluctuate above and below zero.
To understand how to use and interpret the EMV Indicator, its crucial to first understand its two main calculations :
Distance Moved = ((high + low) / 2) - ((high + low ) / 2)
-This is the difference between the current period’s midpoint and the previous period’s
midpoint.
Box Ratio = (volume / 100,000) / (high - low)
-When calculating the Box Ratio, it is common to divide the volume by 100,000 for a clearer visualization of the data. However, users can choose
to modify this value with the ‘volumeDiv’ input.
The Ease of Movement Value is then pretty simple to calculate:
EMV = (Distance Moved / Box Ratio)
The indicator then plots a SMA of the previous 24 EMV Values.
Looking at the formula, we know that combining low volume with a large {high, low} range will result in a relatively small box ratio value. Thus, we know that the EMV value for that period will be higher since EMV is found by dividing the Distance Moved by the Box Ratio.
Here’s a simple guide to interpreting the EMV:
- If (EMV > 0)
then price is increasing with relative ease.
-If (EMV < 0)
then price is decreasing with relative ease.
- If high-low range is large and volume is low
then ease of movement is high.
-If high-low range is small and volume is high
then ease of movement is low.
The Chart:
-The histogram represents the Simple Moving Average of EMV Values. The default length is 24, but users can adjust this value at the inputs menu(I've
found 24 works best).
-The teal and pink dotted lines represent the standard deviation of the SMA of EMV values multiplied by 2.5.
-The histogram turns dark green when the EMV SMA is greater than the top teal dotted standard deviations line.
-The histogram turns maroon when the EMV SMA falls below the bottom pink standard deviation line.
How To Use:
Enter a long position when the most recent EMV SMA value was below the lower pink stand. dev. line and the current EMV SMA value rises above that
same pink line. That means the previous bar was maroon and the current bar is not.
If the user enables the option to show entry points, a green dot will be plotted when it is time to enter a long position.
Exit the long position when the most recent EMV SMA value was above the upper green standard deviation line and the current EMV SMA value falls
below that same line. If this is true, then the previous bar will be dark green, and the current will be light green.
If the ‘showExits’ option is enabled, then a red dot will be plotted when it is time to exit the long position.
Input Options:
- 'volumeDiv' : Integer. Used in the calculation of Box Ratio.
- 'lenSMA' : Integer. The length of the Simple Moving Average of Ease of Movement Values.
- 'showStDev' : Bool. If true, dotted green and red lines will be shown at values equal to 2.5 * standard deviation of emvSMA and -2.5 * standard deviation of
emvSMA.
- 'showEntries' and 'showExits' : Bool. If true, a green circle will be plotted at long entry points and a red circle will be plotted at long exit points.
- 'changeBgColor': Bool. If true, the background color will change to green when it is time to enter a long position and red when it is time to exit.
Alerts:
- When it is time to enter a long position, an alert with the message "EMV Tracker - Enter Long" is sent.
- When it is time to exit a long position, an alert with the message "EMV Tracker - Exit Long" is sent.
NOTE:
- I usually use this indicator to confirm signals from other indicators rather than relying on it solely.
- Most accurate signals are generated on 30 minutes with the default input values I've set in the script.
Shoot me a message if you have any ideas for modifications or questions.
~ Happy Trading ~
UNITY[ALGO] PO3 V3Of course. Here is a complete and professional description in English for the indicator we have built, detailing all of its features and functionalities.
Indicator: UNITY PO3 V7.2
Overview
The UNITY PO3 is an advanced, multi-faceted technical analysis tool designed to identify high-probability reversal setups based on the Swing Failure Pattern (SFP). It combines real-time SFP detection on the current timeframe with a sophisticated analysis of key institutional liquidity zones from the H4 timeframe, presenting all information in a clear, dynamic, and interactive visual interface.
This indicator is built for traders who use liquidity concepts, providing a complete dashboard of entries, targets, and invalidation levels directly on the chart.
Core Features & Functionality
1. Swing Failure Pattern (SFP) Detection (Current Timeframe)
The indicator's primary engine identifies SFPs on the chart's active timeframe with two layers of logic:
Standard SFP: Detects a classic liquidity sweep where the current candle's wick takes out the high or low of the previous candle and the body closes back within the previous candle's range.
Outside Bar SFP Logic: Intelligently analyzes engulfing candles that sweep both the high and low of the previous candle. A valid signal is only generated if the candle has a clear directional close:
Bullish Signal: If the outside bar closes higher than its open.
Bearish Signal: If the outside bar closes lower than its open.
Neutral (doji-like) outside bars are ignored to filter for indecision.
2. Comprehensive On-Chart SFP Markings
When a valid SFP is detected, a full suite of dynamic drawings appears on the chart:
Failure Line: A dashed line (red for bearish, green for bullish) marking the precise price level of the liquidity sweep.
PREMIUM ZONE (SFP Candle Wick): A transparent, colored rectangle highlighting the rejection wick of the signal candle (the upper wick for bearish SFPs, the lower wick for bullish SFPs). This zone automatically extends to the right, following the current price, until the DOL is hit.
CRT BOX (Reference Candle): A transparent box with a colored border drawn around the entire range of the candle that was swept (Candle 1). This highlights the full liquidity zone and also extends dynamically until the DOL is hit.
Dynamic Target Line: A blue dashed line marking the primary objective (the low of the signal candle for shorts, the high for longs).
The line begins with a "⏳ Target" label and extends with the current price.
Upon being touched by price, the line freezes, and its label permanently changes to "✅ Target".
Dynamic DOL (Draw on Liquidity) Line: An orange dashed line marking the invalidation level, defined as the opposite extremity of the swept candle (Candle 1).
It begins with a "⏳ dol" label and extends with the price.
Upon being touched, it freezes, and its label changes to "✅ dol".
3. Multi-Session Killzone Liquidity Levels (H4 Analysis)
The indicator automatically analyzes the H4 timeframe in the background to identify and plot key liquidity levels from three major trading sessions, based on their UTC opening times.
1am Killzone (London Lunch): Tracks the high/low of the 05:00 UTC H4 candle.
5am Killzone (London Open): Tracks the high/low of the 09:00 UTC H4 candle.
9am Killzone (NY Open): Tracks the high/low of the 13:00 UTC H4 candle.
For each of these Killzones, the indicator provides two types of analysis:
Last KZ Lines: Plots the high and low of the most recent qualifying Killzone candle. These lines are dynamic, extending with price and showing a ⏳/✅ status when touched.
Fresh Zones: A powerful feature that scans the entire available history of Killzones to find and display the closest untouched high (above the current price) and the closest untouched low (below the current price). These "Fresh" lines are also fully dynamic and provide a real-time view of the most relevant nearby liquidity targets.
4. Advanced User Settings & Chart Management
The indicator is designed for a clean and user-centric experience with powerful customization:
Show Only Last SFP: Keeps the chart clean by automatically deleting the previous SFP setup when a new one appears.
Hide SFP on DOL Reset: When checked, automatically removes all drawings related to an SFP setup the moment its invalidation level (DOL line) is touched. This leaves only active, valid setups on the chart.
Hide Consumed KZ: When checked, automatically removes any Killzone or Fresh Zone line from the chart as soon as it is touched by the price.
Independent Toggles: Every visual element—SFP signals, each of the three Killzones, and their respective "Fresh" zone counterparts—can be turned on or off independently from the settings menu for complete control over the visual display.
Z-Order Priority: All indicator drawings are rendered in front of the chart candles, ensuring they are always clearly visible and never hidden from view.
BACAP PRICE STRUCTURE 21 EMA TREND21dma-STRUCTURE
Overview
The 21dma-STRUCTURE indicator is a sophisticated overlay indicator that visualizes price action relative to a triple 21-period exponential moving average structure. Originally developed by BalarezoCapital and enhanced by PrimeTrading, this indicator provides clear visual cues for trend direction and momentum through dynamic bar coloring and EMA structure analysis.
Key Features
Triple EMA Structure
- 21 EMA High: Tracks the exponential moving average of high prices
- 21 EMA Close: Tracks the exponential moving average of closing prices
- 21 EMA Low: Tracks the exponential moving average of low prices
- Dynamic Cloud: Gray fill between high and low EMAs for visual structure reference
Smart Bar Coloring System
- Blue Bars: Price closes above all three EMAs (strong bullish momentum)
- Pink Bars: Daily high falls below the lowest EMA (strong bearish signal)
- Gray Bars: Neutral conditions or transitional phases
- Color Memory: Maintains previous color until new condition is met
Dynamic Center Line
- Trend-Following Color: Green when all EMAs are rising, red when all are falling
- Color Persistence: Maintains trend color during sideways movement
- Visual Clarity: Thicker center line for easy trend identification
Customizable Visual Elements
- Adjustable line thickness for all EMA plots
- Customizable colors for bullish and bearish conditions
- Configurable trend colors for uptrend and downtrend phases
- Optional bar color changes with toggle control
How to Use
Trend Identification
- Rising Green Center Line: All EMAs trending upward (bullish structure)
- Falling Red Center Line: All EMAs trending downward (bearish structure)
- Flat Center Line: Maintains last trend color during consolidation
Momentum Analysis
- Blue Bars: Strong bullish momentum with price above entire EMA structure
- Pink Bars: Strong bearish momentum with high below lowest EMA
- Gray Bars: Neutral or transitional momentum phases
Entry and Exit Signals
- Bullish Setup: Look for blue bars during green center line periods
- Bearish Setup: Look for pink bars during red center line periods
- Exit Consideration: Watch for color changes as potential momentum shifts
Structure Trading
- Support/Resistance: Use EMA cloud as dynamic support and resistance zones
- Breakout Confirmation: Bar color changes can confirm structure breakouts
- Trend Continuation: Color persistence suggests ongoing momentum
Settings
Visual Customization
- Change Bar Color: Toggle to enable/disable bar coloring
- Line Size: Adjust thickness of EMA lines (default: 3)
- Bullish Candle Color: Customize blue bar color
- Bearish Candle Color: Customize pink bar color
Trend Colors
- Uptrend Color: Color for rising EMA center line (default: green)
- Downtrend Color: Color for falling EMA center line (default: red)
- Cloud Color: Fill color between high and low EMAs (default: gray)
Advanced Features
Modified Bar Logic
Unlike traditional EMA systems, this indicator uses refined conditions:
- Bullish signals require close above ALL three EMAs
- Bearish signals require high below the LOWEST EMA
- Enhanced precision reduces false signals compared to single EMA systems
Trend Memory System
- Intelligent color persistence during sideways movement
- Reduces noise from minor EMA fluctuations
- Maintains trend context during consolidation periods
Performance Optimization
- Efficient calculation methods for real-time performance
- Clean visual design that doesn't clutter charts
- Compatible with all timeframes and instruments
Best Practices
Multi-Timeframe Analysis
- Use higher timeframes to identify overall trend direction
- Apply on multiple timeframes for confluence
- Combine with weekly/monthly charts for position trading
Risk Management
- Use bar color changes as early warning signals
- Consider position sizing based on EMA structure strength
- Set stops relative to EMA support/resistance levels
Combination Strategies
- Pair with volume indicators for confirmation
- Use alongside RSI or MACD for momentum confirmation
- Combine with key support/resistance levels
Market Context
- More effective in trending markets than choppy conditions
- Consider overall market environment and sector strength
- Adjust expectations during high volatility periods
Technical Specifications
- Based on 21-period exponential moving averages
- Uses Pine Script v6 for optimal performance
- Overlay indicator that works with any chart type
- Maximum 500 lines for clean performance
Ideal Applications
- Swing trading on daily charts
- Position trading on weekly charts
- Intraday momentum trading (adjust timeframe accordingly)
- Trend following strategies
- Structure-based trading approaches
Disclaimer
This indicator is for educational and informational purposes only. It should not be used as the sole basis for trading decisions. Always combine with other forms of analysis, proper risk management, and consider your individual trading plan and risk tolerance.
Compatible with Pine Script v6 | Works on all timeframes | Optimized for trending markets
Dskyz (DAFE) Aurora Divergence – Quant Master Dskyz (DAFE) Aurora Divergence – Quant Master
Introducing the Dskyz (DAFE) Aurora Divergence – Quant Master , a strategy that’s your secret weapon for mastering futures markets like MNQ, NQ, MES, and ES. Born from the legendary Aurora Divergence indicator, this fully automated system transforms raw divergence signals into a quant-grade trading machine, blending precision, risk management, and cyberpunk DAFE visuals that make your charts glow like a neon skyline. Crafted with care and driven by community passion, this strategy stands out in a sea of generic scripts, offering traders a unique edge to outsmart institutional traps and navigate volatile markets.
The Aurora Divergence indicator was a cult favorite for spotting price-OBV divergences with its aqua and fuchsia orbs, but traders craved a system to act on those signals with discipline and automation. This strategy delivers, layering advanced filters (z-score, ATR, multi-timeframe, session), dynamic risk controls (kill switches, adaptive stops/TPs), and a real-time dashboard to turn insights into profits. Whether you’re a newbie dipping into futures or a pro hunting reversals, this strat’s got your back with a beginner guide, alerts, and visuals that make trading feel like a sci-fi mission. Let’s dive into every detail and see why this original DAFE creation is a must-have.
Why Traders Need This Strategy
Futures markets are a battlefield—fast-paced, volatile, and riddled with institutional games that can wipe out undisciplined traders. From the April 28, 2025 NQ 1k-point drop to sneaky ES slippage, the stakes are high. Meanwhile, platforms are flooded with unoriginal, low-effort scripts that promise the moon but deliver noise. The Aurora Divergence – Quant Master rises above, offering:
Unmatched Originality: A bespoke system built from the ground up, with custom divergence logic, DAFE visuals, and quant filters that set it apart from copycat clutter.
Automation with Precision: Executes trades on divergence signals, eliminating emotional slip-ups and ensuring consistency, even in chaotic sessions.
Quant-Grade Filters: Z-score, ATR, multi-timeframe, and session checks filter out noise, targeting high-probability reversals.
Robust Risk Management: Daily loss and rolling drawdown kill switches, plus ATR-based stops/TPs, protect your capital like a fortress.
Stunning DAFE Visuals: Aqua/fuchsia orbs, aurora bands, and a glowing dashboard make signals intuitive and charts a work of art.
Community-Driven: Evolved from trader feedback, this strat’s a labor of love, not a recycled knockoff.
Traders need this because it’s a complete, original system that blends accessibility, sophistication, and style. It’s your edge to trade smarter, not harder, in a market full of traps and imitators.
1. Divergence Detection (Core Signal Logic)
The strategy’s core is its ability to detect bullish and bearish divergences between price and On-Balance Volume (OBV), pinpointing reversals with surgical accuracy.
How It Works:
Price Slope: Uses linear regression over a lookback (default: 9 bars) to measure price momentum (priceSlope).
OBV Slope: OBV tracks volume flow (+volume if price rises, -volume if falls), with its slope calculated similarly (obvSlope).
Bullish Divergence: Price slope negative (falling), OBV slope positive (rising), and price above 50-bar SMA (trend_ma).
Bearish Divergence: Price slope positive (rising), OBV slope negative (falling), and price below 50-bar SMA.
Smoothing: Requires two consecutive divergence bars (bullDiv2, bearDiv2) to confirm signals, reducing false positives.
Strength: Divergence intensity (divStrength = |priceSlope * obvSlope| * sensitivity) is normalized (0–1, divStrengthNorm) for visuals.
Why It’s Brilliant:
- Divergences catch hidden momentum shifts, often exploited by institutions, giving you an edge on reversals.
- The 50-bar SMA filter aligns signals with the broader trend, avoiding choppy markets.
- Adjustable lookback (min: 3) and sensitivity (default: 1.0) let you tune for different instruments or timeframes.
2. Filters for Precision
Four advanced filters ensure signals are high-probability and market-aligned, cutting through the noise of volatile futures.
Z-Score Filter:
Logic: Calculates z-score ((close - SMA) / stdev) over a lookback (default: 50 bars). Blocks entries if |z-score| > threshold (default: 1.5) unless disabled (useZFilter = false).
Impact: Avoids trades during extreme price moves (e.g., blow-off tops), keeping you in statistically safe zones.
ATR Percentile Volatility Filter:
Logic: Tracks 14-bar ATR in a 100-bar window (default). Requires current ATR > 80th percentile (percATR) to trade (tradeOk).
Impact: Ensures sufficient volatility for meaningful moves, filtering out low-volume chop.
Multi-Timeframe (HTF) Trend Filter:
Logic: Uses a 50-bar SMA on a higher timeframe (default: 60min). Longs require price > HTF MA (bullTrendOK), shorts < HTF MA (bearTrendOK).
Impact: Aligns trades with the bigger trend, reducing counter-trend losses.
US Session Filter:
Logic: Restricts trading to 9:30am–4:00pm ET (default: enabled, useSession = true) using America/New_York timezone.
Impact: Focuses on high-liquidity hours, avoiding overnight spreads and erratic moves.
Evolution:
- These filters create a robust signal pipeline, ensuring trades are timed for optimal conditions.
- Customizable inputs (e.g., zThreshold, atrPercentile) let traders adapt to their style without compromising quality.
3. Risk Management
The strategy’s risk controls are a masterclass in balancing aggression and safety, protecting capital in volatile markets.
Daily Loss Kill Switch:
Logic: Tracks daily loss (dayStartEquity - strategy.equity). Halts trading if loss ≥ $300 (default) and enabled (killSwitch = true, killSwitchActive).
Impact: Caps daily downside, crucial during events like April 27, 2025 ES slippage.
Rolling Drawdown Kill Switch:
Logic: Monitors drawdown (rollingPeak - strategy.equity) over 100 bars (default). Stops trading if > $1000 (rollingKill).
Impact: Prevents prolonged losing streaks, preserving capital for better setups.
Dynamic Stop-Loss and Take-Profit:
Logic: Stops = entry ± ATR * multiplier (default: 1.0x, stopDist). TPs = entry ± ATR * 1.5x (profitDist). Longs: stop below, TP above; shorts: vice versa.
Impact: Adapts to volatility, keeping stops tight but realistic, with TPs targeting 1.5:1 reward/risk.
Max Bars in Trade:
Logic: Closes trades after 8 bars (default) if not already exited.
Impact: Frees capital from stagnant trades, maintaining efficiency.
Kill Switch Buffer Dashboard:
Logic: Shows smallest buffer ($300 - daily loss or $1000 - rolling DD). Displays 0 (red) if kill switch active, else buffer (green).
Impact: Real-time risk visibility, letting traders adjust dynamically.
Why It’s Brilliant:
- Kill switches and ATR-based exits create a safety net, rare in generic scripts.
- Customizable risk inputs (maxDailyLoss, dynamicStopMult) suit different account sizes.
- Buffer metric empowers disciplined trading, a DAFE signature.
4. Trade Entry and Exit Logic
The entry/exit rules are precise, filtered, and adaptive, ensuring trades are deliberate and profitable.
Entry Conditions:
Long Entry: bullDiv2, cooldown passed (canSignal), ATR filter passed (tradeOk), in US session (inSession), no kill switches (not killSwitchActive, not rollingKill), z-score OK (zOk), HTF trend bullish (bullTrendOK), no existing long (lastDirection != 1, position_size <= 0). Closes shorts first.
Short Entry: Same, but for bearDiv2, bearTrendOK, no long (lastDirection != -1, position_size >= 0). Closes longs first.
Adaptive Cooldown: Default 2 bars (cooldownBars). Doubles (up to 10) after a losing trade, resets after wins (dynamicCooldown).
Exit Conditions:
Stop-Loss/Take-Profit: Set per trade (ATR-based). Exits on stop/TP hits.
Other Exits: Closes if maxBarsInTrade reached, ATR filter fails, or kill switch activates.
Position Management: Ensures no conflicting positions, closing opposites before new entries.
Built To Be Reliable and Consistent:
- Multi-filtered entries minimize false signals, a stark contrast to basic scripts.
- Adaptive cooldown prevents overtrading, especially after losses.
- Clean position handling ensures smooth execution, even in fast markets.
5. DAFE Visuals
The visuals are a DAFE hallmark, blending function with clean flair to make signals intuitive and charts stunning.
Aurora Bands:
Display: Bands around price during divergences (bullish: below low, bearish: above high), sized by ATR * bandwidth (default: 0.5).
Colors: Aqua (bullish), fuchsia (bearish), with transparency tied to divStrengthNorm.
Purpose: Highlights divergence zones with a glowing, futuristic vibe.
Divergence Orbs:
Display: Large/small circles (aqua below for bullish, fuchsia above for bearish) when bullDiv2/bearDiv2 and canSignal. Labels show strength (0–1).
Purpose: Pinpoints entries with eye-catching clarity.
Gradient Background:
Display: Green (bullish), red (bearish), or gray (neutral), 90–95% transparent.
Purpose: Sets the market mood without clutter.
Strategy Plots:
- Stop/TP Lines: Red (stops), green (TPs) for active trades.
- HTF MA: Yellow line for trend context.
- Z-Score: Blue step-line (if enabled).
- Kill Switch Warning: Red background flash when active.
What Makes This Next-Level?:
- Visuals make complex signals (divergences, filters) instantly clear, even for beginners.
- DAFE’s unique aesthetic (orbs, bands) sets it apart from generic scripts, reinforcing originality.
- Functional plots (stops, TPs) enhance trade management.
6. Metrics Dashboard
The top-right dashboard (2x8 table) is your command center, delivering real-time insights.
Metrics:
Daily Loss ($): Current loss vs. day’s start, red if > $300.
Rolling DD ($): Drawdown vs. 100-bar peak, red if > $1000.
ATR Threshold: Current percATR, green if ATR exceeds, red if not.
Z-Score: Current value, green if within threshold, red if not.
Signal: “Bullish Div” (aqua), “Bearish Div” (fuchsia), or “None” (gray).
Action: “Consider Buying”/“Consider Selling” (signal color) or “Wait” (gray).
Kill Switch Buffer ($): Smallest buffer to kill switch, green if > 0, red if 0.
Why This Is Important?:
- Consolidates critical data, making decisions effortless.
- Color-coded metrics guide beginners (e.g., green action = go).
- Buffer metric adds transparency, rare in off-the-shelf scripts.
7. Beginner Guide
Beginner Guide: Middle-right table (shown once on chart load), explains aqua orbs (bullish, buy) and fuchsia orbs (bearish, sell).
Key Features:
Futures-Optimized: Tailored for MNQ, NQ, MES, ES with point-value adjustments.
Highly Customizable: Inputs for lookback, sensitivity, filters, and risk settings.
Real-Time Insights: Dashboard and visuals update every bar.
Backtest-Ready: Fixed qty and tick calc for accurate historical testing.
User-Friendly: Guide, visuals, and dashboard make it accessible yet powerful.
Original Design: DAFE’s unique logic and visuals stand out from generic scripts.
How to Use
Add to Chart: Load on a 5min MNQ/ES chart in TradingView.
Configure Inputs: Adjust instrument, filters, or risk (defaults optimized for MNQ).
Monitor Dashboard: Watch signals, actions, and risk metrics (top-right).
Backtest: Run in strategy tester to evaluate performance.
Live Trade: Connect to a broker (e.g., Tradovate) for automation. Watch for slippage (e.g., April 27, 2025 ES issues).
Replay Test: Use bar replay (e.g., April 28, 2025 NQ drop) to test volatility handling.
Disclaimer
Trading futures involves significant risk of loss and is not suitable for all investors. Past performance is not indicative of future results. Backtest results may not reflect live trading due to slippage, fees, or market conditions. Use this strategy at your own risk, and consult a financial advisor before trading. Dskyz (DAFE) Trading Systems is not responsible for any losses incurred.
Backtesting:
Frame: 2023-09-20 - 2025-04-29
Fee Typical Range (per side, per contract)
CME Exchange $1.14 – $1.20
Clearing $0.10 – $0.30
NFA Regulatory $0.02
Firm/Broker Commis. $0.25 – $0.80 (retail prop)
TOTAL $1.60 – $2.30 per side
Round Turn: (enter+exit) = $3.20 – $4.60 per contract
Final Notes
The Dskyz (DAFE) Aurora Divergence – Quant Master isn’t just a strategy—it’s a movement. Crafted with originality and driven by community passion, it rises above the flood of generic scripts to deliver a system that’s as powerful as it is beautiful. With its quant-grade logic, DAFE visuals, and robust risk controls, it empowers traders to tackle futures with confidence and style. Join the DAFE crew, light up your charts, and let’s outsmart the markets together!
(This publishing will most likely be taken down do to some miscellaneous rule about properly displaying charting symbols, or whatever. Once I've identified what part of the publishing they want to pick on, I'll adjust and repost.)
Use it with discipline. Use it with clarity. Trade smarter.
**I will continue to release incredible strategies and indicators until I turn this into a brand or until someone offers me a contract.
Created by Dskyz, powered by DAFE Trading Systems. Trade fast, trade bold.
Pulse of Cycle Oscillator"Pulse of Cycle" Oscillator: Logic and Usage
What Is It and How Does It Work?
The "Pulse of Cycle" is an oscillator that measures the cycles of price rises and falls, helping you spot overbought and oversold conditions. Unlike classic indicators, it doesn’t focus on how much the price moves but tracks its direction (up or down) like a "pulse." Here’s the logic:
Price Movement:
If the price rises compared to the previous bar, it adds +1.
If the price falls, it subtracts -1.
If the price stays the same, it adds 0.
Decay Factor: Each step, the previous value is multiplied by a factor (e.g., 0.9) to shrink it slightly. This keeps the oscillator from growing too big and focuses it on recent price action.
Signals: The oscillator moves around zero. When it crosses certain levels (e.g., 5 and 10), it warns you about overbought or oversold zones:
Weak Signal: Above ±5, the market might be stretching a bit.
Strong Signal: Above ±10, a reversal is more likely.
In short, it tracks the "rhythm" of price streaks (consecutive ups or downs) and signals when things might be getting extreme.
How It Looks on the Chart
Line: The oscillator moves around a zero line.
Colors:
Blue: Normal zone (between -5 and +5).
Orange: Weak overbought (+5 and up) or oversold (-5 and down).
Red: Strong overbought (+10 and up).
Lime: Strong oversold (-10 and down).
Threshold Lines: You’ll see lines at 0, ±5, and ±10 on the chart to show where you are.
How to Use It?
Here’s how to trade with this oscillator:
Buy Opportunity (Long Position):
When?: The oscillator drops below -5 (weak) or -10 (strong), then starts moving back toward zero. This suggests the price has hit a bottom and might rise.
Example: It falls to -12 (lime), then rises to -8. You could buy, expecting a bounce.
Tip: Wait for a green candle to confirm if you want to be safer.
Sell Opportunity (Short Position):
When?: The oscillator rises above +5 (weak) or +10 (strong), then starts dropping back toward zero. This indicates the price might have peaked and could fall.
Example: It hits +11 (red), then drops to +7. You could sell, expecting a decline.
Tip: Look for a red candle to confirm the turn.
Neutral Zone: If it’s between -5 and +5, the market is balanced. You can wait for a clearer signal.
Practical Steps to Use
Add to TradingView:
Paste the code into Pine Editor and click “Add to Chart.”
Adjust Settings (Optional):
Decay (0.9): Lower to 0.7 for faster response, raise to 0.95 for smoother movement.
Thresholds (5 and 10): Change them (e.g., 4 and 8) based on your market.
Watch Signals:
Follow the color changes and threshold crossings.
Set Alerts:
Right-click the oscillator > “Add Alert” to get notified on overbought/oversold signals.
Things to Watch Out For
Confirmation: Pair it with support/resistance levels or candlestick patterns for stronger signals.
Market Type: Works best in range-bound (sideways) markets. In strong trends (all up or down), signals might mislead.
Risk: Always use a stop loss—below the last low for buys, above the last high for sells.
Summary
The "Pulse of Cycle" is a simple yet powerful tool that tracks price movement streaks. Use it to catch reversals at strong signals (-10/+10) or get early warnings at weak signals (±5). The colors and lines on the chart make it easy to see when to act.
PseudoPlotLibrary "PseudoPlot"
PseudoPlot: behave like plot and fill using polyline
This library enables line plotting by polyline like plot() and fill().
The core of polyline() is array of chart.point array, polyline() is called in its method.
Moreover, plotarea() makes a box in main chart, plotting data within the box is enabled.
It works so slowy to manage array of chart.point, so limit the target to visible area of the chart.
Due to polyline specifications, na and expression can not be used for colors.
1. pseudoplot
pseudoplot() behaves like plot().
//use plot()
plot(close)
//use pseudoplot()
pseudoplot(close)
Pseudoplot has label. Label is enabled when title argument is set.
In the example bellow, "close value" label is shown with line.
The label is shown at right of the line when recent bar is visible.
It is shown at 15% from the left of visible area when recent bar is not visible.
Just set "" if you don't need label.
//use plot()
plot(close,"close value")
//use pseudoplot
pseudoplot(close, "close value")
Arguments are designed in an order as similar as possible to plot.
plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display, format, precision, force_overlay) → plot
pseudoplot(series, title, ,linecolor ,linewidth, linestyle, labelbg, labeltext, labelsize, shorttitle, format, xpos_from_left, overlay) → pseudo_plot
2. pseudofill
pseudofill() behaves like fill().
The label is shown(text only) at right of the line when recent bar is visible.
It is shown at 10% from the left of visible area when recent bar is not visible.
Just set "" if you don't need label.
//use plot() and fill()
p1=plot(open)
p2=plot(close)
fill(p1,p2)
//use pseudofill()
pseudofill(open,close)
Arguments are designed in an order as similar as possible to fill.
fill(hline1, hline2, color, title, editable, fillgaps, display) → void
pseudofill(series1, series2, fillcolor, title, linecolor, linewidth, linestyle, labeltext, labelsize, shorttitle, format, xpos_from_left, overlay) → pseudo_plot
3. plotarea and its methods
plotarea() makes a box in main chart. You can set the box position to top or bottom, and
the box height in percentage of the range of visible high and low prices.
x-coordinate of the box is from chart.left_visible_bar_time to chart.right_visible_bar_time,
y-coordinate is highest and lowest price of visible bars.
pseudoplot() and pseudofill() work as method of plotarea(box).
Usage is almost same as the function version, just set min and max value, y-coodinate is remapped automatically.
hline() is also available. The y-coordinate of hline is specified as a percentage from the bottom.
plotarea() and its associated methods are overlay=true as default.
Depending on the drawing order of the objects, plot may become invisible, so the bgcolor of plotarea should be na or tranceparent.
//1. make a plotarea
// bgcolor should be na or transparent color.
area=plotarea("bottom",30,"plotarea",bgcolor=na)
//2. plot in a plotarea
//(min=0, max=100 is omitted as it is the default.)
area.pseudoplot(ta.rsi(close,14))
//3. draw hlines
area.hline(30,linestyle="dotted",linewidth=2)
area.hline(70,linestyle="dotted",linewidth=2)
4. Data structure and sub methods
Array management is most imporant part of using polyline.
I don't know the proper way to handle array, so it is managed by array and array as intermediate data.
(type xy_arrays to manage bar_time and price as independent arrays.)
method cparray() pack arrays to array, when array includes both chart.left_visible_bar_time and chart.right_visible_bar.time.
Calling polyline is implemented as methods of array of chart.point.
Method creates polyline object if array is not empty.
method polyline(linecolor, linewidth, linestyle, overlay) → series polyline
method polyline_fill(fillcolor, linecolor, linewidth, linestyle, overlay) → series polyline
Also calling label is implemented as methods of array of chart.point.
Method creates label ofject if array is not empty.
Label is located at right edge of the chart when recent bar is visible, located at left side when recent bar is invisible.
label(title, labelbg, labeltext, labelsize, format, shorttitle, xpos_from_left, overlay) → series label
label_for_fill(title, labeltext, labelsize, format, shorttitle, xpos_from_left, overlay) → series label
visible_xyInit(series)
make arrays of visible x(bar_time) and y(price/value).
Parameters:
series (float) : (float) series variable
Returns: (xy_arrays)
method remap(this, bottom, top, min, max)
Namespace types: xy_arrays
Parameters:
this (xy_arrays)
bottom (float) : (float) bottom price to ajust.
top (float) : (float) top price to ajust.
min (float) : (float) min of src value.
max (float) : (float) max of src value.
Returns: (xy_arrays)
method polyline(this, linecolor, linewidth, linestyle, overlay)
Namespace types: array
Parameters:
this (array)
linecolor (color) : (color) color of polyline.
linewidth (int) : (int) width of polyline.
linestyle (string) : (string) linestyle of polyline. default is line.style_solid("solid"), others line.style_dashed("dashed"), line.style_dotted("dotted").
overlay (bool) : (bool) force_overlay of polyline. default is false.
Returns: (polyline)
method polyline_fill(this, fillcolor, linecolor, linewidth, linestyle, overlay)
Namespace types: array
Parameters:
this (array)
fillcolor (color)
linecolor (color) : (color) color of polyline.
linewidth (int) : (int) width of polyline.
linestyle (string) : (string) linestyle of polyline. default is line.style_solid("solid"), others line.style_dashed("dashed"), line.style_dotted("dotted").
overlay (bool) : (bool) force_overlay of polyline. default is false.
Returns: (polyline)
method label(this, title, labelbg, labeltext, labelsize, format, shorttitle, xpos_from_left, overlay)
Namespace types: array
Parameters:
this (array)
title (string) : (string) label text.
labelbg (color) : (color) color of label bg.
labeltext (color) : (color) color of label text.
labelsize (int) : (int) size of label.
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
shorttitle (string) : (string) another label text for recent bar is not visible.
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 15%.
overlay (bool) : (bool) force_overlay of label. default is false.
Returns: (label)
method label_for_fill(this, title, labeltext, labelsize, format, shorttitle, xpos_from_left, overlay)
Namespace types: array
Parameters:
this (array)
title (string) : (string) label text.
labeltext (color) : (color) color of label text.
labelsize (int) : (int) size of label.
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
shorttitle (string) : (string) another label text for recent bar is not visible.
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 10%.
overlay (bool) : (bool) force_overlay of label. default is false.
Returns: (label)
pseudoplot(series, title, linecolor, linewidth, linestyle, labelbg, labeltext, labelsize, shorttitle, format, xpos_from_left, overlay)
polyline like plot with label
Parameters:
series (float) : (float) series variable to plot.
title (string) : (string) title if need label. default value is ""(disable label).
linecolor (color) : (color) color of line.
linewidth (int) : (int) width of line.
linestyle (string) : (string) style of plotting line. default is "solid", others "dashed", "dotted".
labelbg (color) : (color) color of label bg.
labeltext (color) : (color) color of label text.
labelsize (int) : (int) size of label text.
shorttitle (string) : (string) another label text for recent bar is not visible.
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 15%.
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (pseudo_plot)
method pseudoplot(this, series, title, linecolor, linewidth, linestyle, labelbg, labeltext, labelsize, shorttitle, format, xpos_from_left, min, max, overlay)
Namespace types: series box
Parameters:
this (box)
series (float) : (float) series variable to plot.
title (string) : (string) title if need label. default value is ""(disable label).
linecolor (color) : (color) color of line.
linewidth (int) : (int) width of line.
linestyle (string) : (string) style of plotting line. default is "solid", others "dashed", "dotted".
labelbg (color) : (color) color of label bg.
labeltext (color) : (color) color of label text.
labelsize (int) : (int) size of label text.
shorttitle (string) : (string) another label text for recent bar is not visible.
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 15%.
min (float)
max (float)
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (pseudo_plot)
pseudofill(series1, series2, fillcolor, title, linecolor, linewidth, linestyle, labeltext, labelsize, shorttitle, format, xpos_from_left, overlay)
fill by polyline
Parameters:
series1 (float) : (float) series variable to plot.
series2 (float) : (float) series variable to plot.
fillcolor (color) : (color) color of fill.
title (string)
linecolor (color) : (color) color of line.
linewidth (int) : (int) width of line.
linestyle (string) : (string) style of plotting line. default is "solid", others "dashed", "dotted".
labeltext (color)
labelsize (int)
shorttitle (string)
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 15%.
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (pseudoplot)
method pseudofill(this, series1, series2, fillcolor, title, linecolor, linewidth, linestyle, labeltext, labelsize, shorttitle, format, xpos_from_left, min, max, overlay)
Namespace types: series box
Parameters:
this (box)
series1 (float) : (float) series variable to plot.
series2 (float) : (float) series variable to plot.
fillcolor (color) : (color) color of fill.
title (string)
linecolor (color) : (color) color of line.
linewidth (int) : (int) width of line.
linestyle (string) : (string) style of plotting line. default is "solid", others "dashed", "dotted".
labeltext (color)
labelsize (int)
shorttitle (string)
format (string) : (string) textformat of label. default is text.format_none("none"). others text.format_bold("bold"), text.format_italic("italic"), text.format_bold+text.format_italic("bold+italic").
xpos_from_left (int) : (int) another label x-position(percentage from left of chart width), when recent bar is not visible. default is 15%.
min (float)
max (float)
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (pseudo_plot)
plotarea(pos, height, title, bordercolor, borderwidth, bgcolor, textsize, textcolor, format, overlay)
subplot area in main chart
Parameters:
pos (string) : (string) position of subplot area, bottom or top.
height (int) : (float) percentage of visible chart heght.
title (string) : (string) text of area box.
bordercolor (color) : (color) color of border.
borderwidth (int) : (int) width of border.
bgcolor (color) : (string) color of area bg.
textsize (int)
textcolor (color)
format (string)
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (box)
method hline(this, ypos_from_bottom, linecolor, linestyle, linewidth, overlay)
Namespace types: series box
Parameters:
this (box)
ypos_from_bottom (float) : (float) percentage of box height from the bottom of box.(bottom is 0%, top is 100%).
linecolor (color) : (color) color of line.
linestyle (string) : (string) style of line.
linewidth (int) : (int) width of line.
overlay (bool) : (bool) force_overlay of polyline and label.
Returns: (line)
pseudo_plot
polyline and label.
Fields:
p (series polyline)
l (series label)
xy_arrays
x(bartime) and y(price or value) arrays.
Fields:
t (array)
p (array)
Globex Trap ZoneGlobex Trap Indicator
A powerful tool designed to identify potential trading opportunities by analyzing the relationship between Globex session ranges and Supply & Demand zones during regular trading hours.
Key Features
Tracks and visualizes Globex session price ranges
Identifies key Supply & Demand zones during regular trading hours
Highlights potential trap areas where price might experience significant reactions
Fully customizable time ranges and visual settings
Clear labeling of Globex highs and lows
How It Works
The indicator tracks two key periods:
Globex Session (Default: 6:00 PM - 9:30 AM)
Monitors overnight price action
Marks session high and low
Helps identify potential range breakouts
Supply & Demand Zone (Default: 8:00 AM - 11:00 AM)
Tracks price action during key market hours
Identifies potential reaction zones
Helps spot institutional trading areas
Best Practices for Using This Indicator
Use on 1-hour timeframe or lower for optimal visualization
Best suited for futures and other instruments traded during Globex sessions
Pay attention to areas where Globex range and Supply/Demand zones overlap
Use in conjunction with your existing trading strategy for confirmation
Recommended minimum of 10 days of historical data for context
Settings Explanation
Globex Session: Customizable time range for overnight trading session
Supply & Demand Zone: Adjustable time range for regular trading hours
Days to Look Back: Number of historical days to display (default: 10)
Visual Settings: Customizable colors and transparency for both zones
Important Notes
All times are based on exchange timezone
The indicator respects overnight sessions and properly handles timezone transitions
Historical data requirements: Minimum 10 days recommended
Performance impact: Optimized for smooth operation with minimal resource usage
Disclaimer
Past performance is not indicative of future results. This indicator is designed to be used as part of a comprehensive trading strategy and should not be relied upon as the sole basis for trading decisions.
Updates and Support
I actively maintain this indicator and welcome feedback from the trading community. Please feel free to leave comments or suggestions for improvements.
Prometheus Topological Persistent EntropyPersistence Entropy falls under the branch of math topology. Topology is a study of shapes as they twist and contort. It can be useful in the context of markets to determine how volatile they may be and different from the past.
The key idea is to create a persistence diagram from these log return segments. The persistence diagram tracks the "birth" and "death" of price features:
A birth occurs when a new price pattern or feature emerges in the data.
A death occurs when that pattern disappears.
By comparing prices within each segment, the script tracks how long specific price features persist before they die out. The lifetime of each feature (difference between death and birth) represents how robust or fleeting the pattern is. Persistent price features tend to reflect stable trends, while shorter-lived features indicate volatility.
Entropy Calculation: The lifetimes of these patterns are then used to compute the entropy of the system. Entropy, in this case, measures the amount of disorder or randomness in the price movements. The more varied the lifetimes, the higher the entropy, indicating a more volatile market. If the price patterns exhibit longer, more consistent lifetimes, the entropy is lower, signaling a more stable market.
Calculation:
We start by getting log returns for a user defined look back value. In the compute_persistent_entropy function we separate the overall log returns into windows. We then compute persistence diagrams of the windows. It tracks the birth and death of price patterns to see how persistent they are. Then we calculate the entropy of the windows.
After we go through that process we get an array of entropies, we then smooth it by taking the sum of all of them and dividing it by how many we have so the indicator can function better.
// Calculate log returns
log_returns = array.new()
for i = 1 to lgr_lkb
array.push(log_returns, math.log(close / close ))
// Function to compute a simplified persistence diagram
compute_persistence_diagram(segment) =>
n = array.size(segment)
lifetimes = array.new()
for i = 0 to n - 1
for j = i + 1 to n - 1
birth = array.get(segment, i)
death = array.get(segment, j-1)
if birth != death
array.push(lifetimes, math.abs(death - birth))
lifetimes
// Function to compute entropy of a list of values
compute_entropy(values) =>
n = array.size(values)
if n == 0
0.0
else
freq_map = map.new()
total_sum = 0.0
for i = 0 to n - 1
value = array.get(values, i)
//freq_map := freq_map.get(value, 0.0) + 1
map.put(freq_map, value, value + 1)
total_sum += 1
entropy = 0.0
for in freq_map
p = count / total_sum
entropy -= p * math.log(p)
entropy
compute_persistent_entropy(log_returns, window_size) =>
n = (lgr_lkb) - (2 * window_size) + 1
entropies = array.new()
for i = 0 to n - 1
segment1 = array.new()
segment2 = array.new()
for j = 0 to window_size - 1
array.push(segment1, array.get(log_returns, i + j))
array.push(segment2, array.get(log_returns, i + window_size + j))
dgm1 = compute_persistence_diagram(segment1)
dgm2 = compute_persistence_diagram(segment2)
combined_diagram = array.concat(dgm1, dgm2)
entropy = compute_entropy(combined_diagram)
array.push(entropies, entropy)
entropies
//---------------------------------------------
//---------------PE----------------------------
//---------------------------------------------
// Calculate Persistent Entropy
entropies = compute_persistent_entropy(log_returns, window_size)
smooth_pe = array.sum(entropies) / array.size(entropies)
This image illustrates how the indicator works for traders. The purple line is the actual indicator value. The line that changes from green to red is a SMA of the indicator value, we use this to determine bullish or bearish. When the smoothed persistence entropy is above it’s SMA that signals bearishness.
The indicator tends to look prettier on higher time frames, we see NASDAQ:TSLA on a 4 hour here and below we see it on the 5 minute.
On a lower time frame it looks a little weird but still functions the same way.
Prometheus encourages users to use indicators as tools along with their own discretion. No indicator is 100% accurate. We encourage comments about requested features and criticism.
Prior Day High/Low and Highest High/Lowest LowFeatures:
Prior Day High and Low:
The script tracks and displays the previous trading day's high and low prices. These levels can serve as important areas of support or resistance, helping traders to make informed decisions about potential price reversals or breakouts.
Highest High and Lowest Low Over N Days:
This indicator also tracks and displays the highest high and lowest low over the last N days, where N is user-configurable. This allows traders to see broader trends in price action and identify key levels for potential trend changes.
User-Configurable Inputs:
Show Prior Day High/Low: Toggle whether to display the prior day’s high and low levels.
Days to Consider for Highest High/Lowest Low: Define the number of days over which the highest high and lowest low are calculated.
Show Highest High/Lowest Low: Toggle whether to display the highest high and lowest low levels over the specified period.
Low Source and High Source: Customize the data sources for the high and low values.
Automatic Data Handling:
The script automatically tracks the daily high and low prices, storing them in arrays, and calculates the highest and lowest prices over the user-specified number of days. When a new day begins, the prior day's data is saved, and the calculations are updated accordingly.
Visual Display:
The indicator uses distinct colors and plotting styles:
Prior day’s high and low are plotted as blue circles.
The highest high over N days is plotted as a red circle.
The lowest low over N days is plotted as a green circle.
This indicator helps traders stay informed about significant price levels, which are often used in trading strategies for breakouts, trend following, or reversals.
Essa's Indicator 2.0Essa's Indicator V2: Beginner's Guide
This custom TradingView indicator has been designed to help you identify key trading opportunities based on session highs/lows, volatility, and moving averages. Below is a breakdown of the main features:
1. Exponential Moving Averages (EMAs)
Fast EMA (Blue Line): Tracks the short-term market trend (default: 9-period EMA).
Slow EMA (Red Line): Tracks the longer-term market trend (default: 21-period EMA).
You can turn on/off the EMAs using the "Show EMAs" option in the settings.
EMAs help smooth out price action and give a clearer picture of trends. A crossover of the fast EMA above the slow EMA can signal an upward trend, while the reverse may indicate a downward trend.
2. Session Highs and Lows
The indicator tracks price highs and lows for three major trading sessions:
London Session (Red): Highlighted in red. Active between 08:00 and 17:00 (LDN timezone) or 03:00 and 12:00 (NY timezone).
New York Session (Blue): Highlighted in blue. Active between 12:00 and 21:00 (LDN timezone) or 07:00 and 16:00 (NY timezone).
Asia Session (Yellow): Highlighted in yellow. Active between 22:00 and 08:00 (LDN timezone) or 18:00 and 03:00 (NY timezone).
Highs and lows for each session are plotted on the chart as lines. Breakouts from these levels can signal important trading opportunities:
London High/Low: Red lines.
New York High/Low: Blue lines.
Asia High/Low: Yellow lines.
The background color also changes depending on the active session:
London: Light red background.
New York: Light blue background.
Asia: Light yellow background.
3. Breakout Alerts
You can set alerts when the price breaks above or below session highs/lows:
Break Above London High: Alert triggered when the price crosses the London session high.
Break Below London Low: Alert triggered when the price falls below the London session low.
Similar alerts exist for the New York and Asia sessions as well.
4. Volatility-Adjusted EMA
The EMAs in this indicator are adjusted based on volatility (ATR - Average True Range). This allows the EMAs to respond to market conditions more dynamically, giving you more accurate trend readings in volatile markets.
5. ZigZag Feature (Optional)
You can enable the ZigZag feature to help visualize the price action's highs and lows:
ZigZag Lines: Highlight major peaks and troughs in price movements, helping you spot trends more easily.
This is helpful for identifying reversals or trend continuations.
6. Fractal Markers
This indicator uses fractals to mark potential turning points in the market:
Green Triangles (Above the Price): Indicate up fractals (potential reversal points where the price could move upwards).
Red Triangles (Below the Price): Indicate down fractals (potential reversal points where the price could move downwards).
Fractals can be a helpful confirmation tool when identifying entry and exit points.
7. Custom Timezone Options
You can choose between London (LDN) and New York (NY) timezones in the settings to adapt the session times to your trading location. This ensures the session high/low markers are displayed correctly for your trading region.
By default, the New York (NY) timezone is enabled for FXCM charts in the UK.
For BTC charts, you will need to switch to the appropriate time zone manually.
Thanks
Essa
Multi SMA EMA WMA HMA BB (4x5 MAs Bollinger Bands) Adv MTF - RRBMulti SMA EMA WMA HMA 4x5 Moving Averages with Bollinger Bands Advanced MTF by RagingRocketBull 2019
Version 1.0
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group, a total of 4 TFs * 5 MAs = 20 MAs. You can assign any type/timeframe combo to a group, for example:
- EMAs 12,26,50,100,200 x H1, H4, D1, W1 (4 TFs x 5 MAs x 1 type)
- EMAs 8,10,13,21,30,50,55,100,200,400 x M15, H1 (2 TFs x 10 MAs x 1 type)
- D1 EMAs and SMAs 8,10,12,26,30,50,55,100,200,400 (1 TF x 10 MAs x 2 types)
- H1 WMAs 7,77,89,167,231; H4 HMAs 12,26,50,100,200; D1 EMAs 89,144,169,233,377; W1 SMAs 12,26,50,100,200 (4 TFs x 5 MAs x 4 types)
- +1 extra MA type/timeframe for BB
There are several versions: Simple, MTF, Pro MTF, Advanced MTF and Ultimate MTF. This is the Advanced MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF) +1 TF for BB, TF XY smoothing
- Pro MTF: 4 custom Timeframes for each group (4x3 MTF), 1 TF for BB, MA levels and show max bars back options
- Advanced MTF: +2 extra MAs/group (4x5 MTF), custom Ticker/Symbols, Timeframe <>= filter, Remove Duplicates Option
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
Features:
- 4x5 = 20 MAs of any type
- 4x MTF groups with XY step line smoothing
- +1 extra TF/type for BB MAs
- 4x5 = 20 MA levels with adjustable group offsets, indents and shift
- supports any existing type of MA: SMA, EMA, WMA, Hull Moving Average (HMA)
- custom tickers/symbols for each group - you can compare MAs of the same symbol across exchanges
- show max bars back option
- show/hide both groups of MAs/levels/BB and individual MAs
- timeframe filter: show only MAs/Levels with TFs <>= Current TF
- hide MAs/Levels with duplicate TFs
- support for custom TFs that are not available in free accounts: 2D, 3D etc
- support for timeframes in H: H, 2H, 4H etc
Notes:
- Uses timeframe textbox instead of input resolution dropdown to allow for 240 120 and other custom TFs
- Uses symbol textbox instead of input symbol to avoid establishing multiple dummy security connections to the current ticker - otherwise empty symbols will prevent script from running
- Possible reasons for missing MAs on a chart:
- there may not be enough bars in history to start plotting it. For example, W1 EMA200 needs at least 200 bars on a weekly chart.
- price << default Y smoothing step 5. For charts with low/fractional prices (i.e. 0.00002 << 5) adjust X Y smoothing as needed (set Y = 0.0000001) or disable it completely (set X,Y to 0,0)
- TradingView Replay Mode UI and Pinescript security calls are limited to TFs >= D (D,2D,W,MN...) for free accounts
- attempting to plot any TF < D1 in Replay Mode will only result in straight lines, but all TFs will work properly in history and real-time modes. This is not a bug.
- Max Bars Back (num_bars) is limited to 5000 for free accounts (10000 for paid), will show error when exceeded. To plot on all available history set to 0 (default)
- Slow load/redraw times. This indicator becomes slower, its UI less responsive when:
- Pinescript Node.js graphics library is too slow and inefficient at plotting bars/objects in a browser window. Code optimization doesn't help much - the graphics engine is the main reason for general slowness.
- the chart has a long history (10000+ bars) in a browser's cache (you have scrolled back a couple of screens in a max zoom mode).
- Reload the page/Load a fresh chart and then apply the indicator or
- Switch to another Timeframe (old TF history will still remain in cache and that TF will be slow)
- in max possible zoom mode around 4500 bars can fit on 1 screen - this also slows down responsiveness. Reset Zoom level
- initial load and redraw times after a param change in UI also depend on TF. For example:
D1/W1 - 2 sec, H1/H4 - 5-6 sec, M30 - 10 sec, M15/M5 - 4 sec, M1 - 5 sec.
M30 usually has the longest history (up to 16000 bars) and W1 - the shortest (1000 bars).
- when indicator uses more MAs (plots) and timeframes it will redraw slower. Seems that up to 5 Timeframes is acceptable, but 6+ Timeframes can become very slow.
- show_last=last_bars plot limit doesn't affect load/redraw times, so it was removed from MA plot
- Max Bars Back (num_bars) default/custom set UI value doesn't seem to affect load/redraw times
- In max zoom mode all dynamic levels disappear (they behave like text)
1. based on 3EmaBB, uses plot*, barssince and security functions
2. you can't set certain constants from input due to Pinescript limitations - change the code as needed, recompile and use as a private version
3. Levels = trackprice implementation
4. Show Max Bars Back = show_last implementation
5. swma has a fixed length = 4, alma and linreg have additional offset and smoothing params
6. Smoothing is applied by default for visual aesthetics on MTF. To use exact ma mtf values (lines with stair stepping) - disable it
Good Luck! You can explore, modify/reuse the code to build your own indicators.
Seasonality (advanced)Script show up to 7 previous values of 'source' input for a specified period of days. Use inputs to select period: 365 (approximately) for years, or any other period (1, 7, 30, 90...). You can hide extra plots, customize their colors, apply this to another indicator or enable 'trackprice'.
On showcase:
Top indicator shows a close price for previous 3 years, and curent year
Bottom: a volume ma for previous years.
Correlation HeatMap [TradingFinder] Sessions Data Science Stats🔵 Introduction
n financial markets, correlation describes the statistical relationship between the price movements of two assets and how they interact over time. It plays a key role in both trading and investing by helping analyze asset behavior, manage portfolio risk, and understand intermarket dynamics. The Correlation Heatmap is a visual tool that shows how the correlation between multiple assets and a central reference asset (the Main Symbol) changes over time.
It supports four market types forex, stocks, crypto, and a custom mode making it adaptable to different trading environments. The heatmap uses a color-coded grid where warmer tones represent stronger negative correlations and cooler tones indicate stronger positive ones. This intuitive color system allows traders to quickly identify when assets move together or diverge, offering real-time insights that go beyond traditional correlation tables.
🟣 How to Interpret the Heatmap Visually ?
Each cell represents the correlation between the main symbol and one compared asset at a specific time.
Warm colors (e.g. red, orange) suggest strong negative correlation as one asset rises, the other tends to fall.
Cool colors (e.g. blue, green) suggest strong positive correlation both assets tend to move in the same direction.
Lighter shades indicate weaker correlations, while darker shades indicate stronger correlations.
The heatmap updates over time, allowing users to detect changes in correlation during market events or trading sessions.
One of the standout features of this indicator is its ability to overlay global market sessions such as Tokyo, London, New York, or major equity opens directly onto the heatmap timeline. This alignment lets traders observe how correlation structures respond to real-world session changes. For example, they can spot when assets shift from being inversely correlated to moving together as a new session opens, potentially signaling new momentum or macro flow. The customizable symbol setup (including up to 20 compared assets) makes it ideal not only for forex and crypto traders but also for multi-asset and sector-based stock analysis.
🟣 Use Cases and Advantages
Analyze sector rotation in equities by tracking correlation to major indices like SPX or DJI.
Monitor altcoin behavior relative to Bitcoin to find early entry opportunities in crypto markets.
Detect changes in currency alignment with DXY across trading sessions in forex.
Identify correlation breakdowns during market volatility, signaling possible new trends.
Use correlation shifts as confirmation for trade setups or to hedge multi-asset exposure
🔵 How to Use
Correlation is one of the core concepts in financial analysis and allows traders to understand how assets behave in relation to one another. The Correlation Heatmap extends this idea by going beyond a simple number or static matrix. Instead, it presents a dynamic visual map of how correlations shift over time.
In this indicator, a Main Symbol is selected as the reference point for analysis. In standard modes such as forex, stocks, or crypto, the symbol currently shown on the main chart is automatically used as the main symbol. This allows users to begin correlation analysis right away without adjusting any settings.
The horizontal axis of the heatmap shows time, while the vertical axis lists the selected assets. Each cell on the heatmap shows the correlation between that asset and the main symbol at a given moment.
This approach is especially useful for intermarket analysis. In forex, for example, tracking how currency pairs like OANDA:EURUSD EURUSD, FX:GBPUSD GBPUSD, and PEPPERSTONE:AUDUSD AUDUSD correlate with TVC:DXY DXY can give insight into broader capital flow.
If these pairs start showing increasing positive correlation with DXY say, shifting from blue to light green it could signal the start of a new phase or reversal. Conversely, if negative correlation fades gradually, it may suggest weakening relationships and more independent or volatile movement.
In the crypto market, watching how altcoins correlate with Bitcoin can help identify ideal entry points in secondary assets. In the stock market, analyzing how companies within the same sector move in relation to a major index like SP:SPX SPX or DJ:DJI DJI is also a highly effective technique for both technical and fundamental analysts.
This indicator not only visualizes correlation but also displays major market sessions. When enabled, this feature helps traders observe how correlation behavior changes at the start of each session, whether it's Tokyo, London, New York, or the opening of stock exchanges. Many key shifts, breakouts, or reversals tend to happen around these times, and the heatmap makes them easy to spot.
Another important feature is the market selection mode. Users can switch between forex, crypto, stocks, or custom markets and see correlation behavior specific to each one. In custom mode, users can manually select any combination of symbols for more advanced or personalized analysis. This makes the heatmap valuable not only for forex traders but also for stock traders, crypto analysts, and multi-asset strategists.
Finally, the heatmap's color-coded design helps users make sense of the data quickly. Warm colors such as red and orange reflect stronger negative correlations, while cool colors like blue and green represent stronger positive relationships. This simplicity and clarity make the tool accessible to both beginners and experienced traders.
🔵 Settings
Correlation Period: Allows you to set how many historical bars are used for calculating correlation. A higher number means a smoother, slower-moving heatmap, while a lower number makes it more responsive to recent changes.
Select Market: Lets you choose between Forex, Stock, Crypto, or Custom. In the first three options, the chart’s active symbol is automatically used as the Main Symbol. In Custom mode, you can manually define the Main Symbol and up to 20 Compared Symbols.
Show Open Session: Enables the display of major trading sessions such as Tokyo, London, New York, or equity market opening hours directly on the timeline. This helps you connect correlation shifts with real-world market activity.
Market Mode: Lets you select whether the displayed sessions relate to the forex or stock market.
🔵 Conclusion
The Correlation Heatmap is a robust and flexible tool for analyzing the relationship between assets across different markets. By tracking how correlations change in real time, traders can better identify alignment or divergence between symbols and gain valuable insights into market structure.
Support for multiple asset classes, session overlays, and intuitive visual cues make this one of the most effective tools for intermarket analysis.
Whether you’re looking to manage portfolio risk, validate entry points, or simply understand capital flow across markets, this heatmap provides a clear and actionable perspective that you can rely on.
Drawdown Distribution Analysis (DDA) ACADEMIC FOUNDATION AND RESEARCH BACKGROUND
The Drawdown Distribution Analysis indicator implements quantitative risk management principles, drawing upon decades of academic research in portfolio theory, behavioral finance, and statistical risk modeling. This tool provides risk assessment capabilities for traders and portfolio managers seeking to understand their current position within historical drawdown patterns.
The theoretical foundation of this indicator rests on modern portfolio theory as established by Markowitz (1952), who introduced the fundamental concepts of risk-return optimization that continue to underpin contemporary portfolio management. Sharpe (1966) later expanded this framework by developing risk-adjusted performance measures, most notably the Sharpe ratio, which remains a cornerstone of performance evaluation in financial markets.
The specific focus on drawdown analysis builds upon the work of Chekhlov, Uryasev and Zabarankin (2005), who provided the mathematical framework for incorporating drawdown measures into portfolio optimization. Their research demonstrated that traditional mean-variance optimization often fails to capture the full risk profile of investment strategies, particularly regarding sequential losses. More recent work by Goldberg and Mahmoud (2017) has brought these theoretical concepts into practical application within institutional risk management frameworks.
Value at Risk methodology, as comprehensively outlined by Jorion (2007), provides the statistical foundation for the risk measurement components of this indicator. The coherent risk measures framework developed by Artzner et al. (1999) ensures that the risk metrics employed satisfy the mathematical properties required for sound risk management decisions. Additionally, the focus on downside risk follows the framework established by Sortino and Price (1994), while the drawdown-adjusted performance measures implement concepts introduced by Young (1991).
MATHEMATICAL METHODOLOGY
The core calculation methodology centers on a peak-tracking algorithm that continuously monitors the maximum price level achieved and calculates the percentage decline from this peak. The drawdown at any time t is defined as DD(t) = (P(t) - Peak(t)) / Peak(t) × 100, where P(t) represents the asset price at time t and Peak(t) represents the running maximum price observed up to time t.
Statistical distribution analysis forms the analytical backbone of the indicator. The system calculates key percentiles using the ta.percentile_nearest_rank() function to establish the 5th, 10th, 25th, 50th, 75th, 90th, and 95th percentiles of the historical drawdown distribution. This approach provides a complete picture of how the current drawdown compares to historical patterns.
Statistical significance assessment employs standard deviation bands at one, two, and three standard deviations from the mean, following the conventional approach where the upper band equals μ + nσ and the lower band equals μ - nσ. The Z-score calculation, defined as Z = (DD - μ) / σ, enables the identification of statistically extreme events, with thresholds set at |Z| > 2.5 for extreme drawdowns and |Z| > 3.0 for severe drawdowns, corresponding to confidence levels exceeding 99.4% and 99.7% respectively.
ADVANCED RISK METRICS
The indicator incorporates several risk-adjusted performance measures that extend beyond basic drawdown analysis. The Sharpe ratio calculation follows the standard formula Sharpe = (R - Rf) / σ, where R represents the annualized return, Rf represents the risk-free rate, and σ represents the annualized volatility. The system supports dynamic sourcing of the risk-free rate from the US 10-year Treasury yield or allows for manual specification.
The Sortino ratio addresses the limitation of the Sharpe ratio by focusing exclusively on downside risk, calculated as Sortino = (R - Rf) / σd, where σd represents the downside deviation computed using only negative returns. This measure provides a more accurate assessment of risk-adjusted performance for strategies that exhibit asymmetric return distributions.
The Calmar ratio, defined as Annual Return divided by the absolute value of Maximum Drawdown, offers a direct measure of return per unit of drawdown risk. This metric proves particularly valuable for comparing strategies or assets with different risk profiles, as it directly relates performance to the maximum historical loss experienced.
Value at Risk calculations provide quantitative estimates of potential losses at specified confidence levels. The 95% VaR corresponds to the 5th percentile of the drawdown distribution, while the 99% VaR corresponds to the 1st percentile. Conditional VaR, also known as Expected Shortfall, estimates the average loss in the worst 5% of scenarios, providing insight into tail risk that standard VaR measures may not capture.
To enable fair comparison across assets with different volatility characteristics, the indicator calculates volatility-adjusted drawdowns using the formula Adjusted DD = Raw DD / (Volatility / 20%). This normalization allows for meaningful comparison between high-volatility assets like cryptocurrencies and lower-volatility instruments like government bonds.
The Risk Efficiency Score represents a composite measure ranging from 0 to 100 that combines the Sharpe ratio and current percentile rank to provide a single metric for quick asset assessment. Higher scores indicate superior risk-adjusted performance relative to historical patterns.
COLOR SCHEMES AND VISUALIZATION
The indicator implements eight distinct color themes designed to accommodate different analytical preferences and market contexts. The EdgeTools theme employs a corporate blue palette that matches the design system used throughout the edgetools.org platform, ensuring visual consistency across analytical tools.
The Gold theme specifically targets precious metals analysis with warm tones that complement gold chart analysis, while the Quant theme provides a grayscale scheme suitable for analytical environments that prioritize clarity over aesthetic appeal. The Behavioral theme incorporates psychology-based color coding, using green to represent greed-driven market conditions and red to indicate fear-driven environments.
Additional themes include Ocean, Fire, Matrix, and Arctic schemes, each designed for specific market conditions or user preferences. All themes function effectively with both dark and light mode trading platforms, ensuring accessibility across different user interface configurations.
PRACTICAL APPLICATIONS
Asset allocation and portfolio construction represent primary use cases for this analytical framework. When comparing multiple assets such as Bitcoin, gold, and the S&P 500, traders can examine Risk Efficiency Scores to identify instruments offering superior risk-adjusted performance. The 95% VaR provides worst-case scenario comparisons, while volatility-adjusted drawdowns enable fair comparison despite varying volatility profiles.
The practical decision framework suggests that assets with Risk Efficiency Scores above 70 may be suitable for aggressive portfolio allocations, scores between 40 and 70 indicate moderate allocation potential, and scores below 40 suggest defensive positioning or avoidance. These thresholds should be adjusted based on individual risk tolerance and market conditions.
Risk management and position sizing applications utilize the current percentile rank to guide allocation decisions. When the current drawdown ranks above the 75th percentile of historical data, indicating that current conditions are better than 75% of historical periods, position increases may be warranted. Conversely, when percentile rankings fall below the 25th percentile, indicating elevated risk conditions, position reductions become advisable.
Institutional portfolio monitoring applications include hedge fund risk dashboard implementations where multiple strategies can be monitored simultaneously. Sharpe ratio tracking identifies deteriorating risk-adjusted performance across strategies, VaR monitoring ensures portfolios remain within established risk limits, and drawdown duration tracking provides valuable information for investor reporting requirements.
Market timing applications combine the statistical analysis with trend identification techniques. Strong buy signals may emerge when risk levels register as "Low" in conjunction with established uptrends, while extreme risk levels combined with downtrends may indicate exit or hedging opportunities. Z-scores exceeding 3.0 often signal statistically oversold conditions that may precede trend reversals.
STATISTICAL SIGNIFICANCE AND VALIDATION
The indicator provides 95% confidence intervals around current drawdown levels using the standard formula CI = μ ± 1.96σ. This statistical framework enables users to assess whether current conditions fall within normal market variation or represent statistically significant departures from historical patterns.
Risk level classification employs a dynamic assessment system based on percentile ranking within the historical distribution. Low risk designation applies when current drawdowns perform better than 50% of historical data, moderate risk encompasses the 25th to 50th percentile range, high risk covers the 10th to 25th percentile range, and extreme risk applies to the worst 10% of historical drawdowns.
Sample size considerations play a crucial role in statistical reliability. For daily data, the system requires a minimum of 252 trading days (approximately one year) but performs better with 500 or more observations. Weekly data analysis benefits from at least 104 weeks (two years) of history, while monthly data requires a minimum of 60 months (five years) for reliable statistical inference.
IMPLEMENTATION BEST PRACTICES
Parameter optimization should consider the specific characteristics of different asset classes. Equity analysis typically benefits from 500-day lookback periods with 21-day smoothing, while cryptocurrency analysis may employ 365-day lookback periods with 14-day smoothing to account for higher volatility patterns. Fixed income analysis often requires longer lookback periods of 756 days with 34-day smoothing to capture the lower volatility environment.
Multi-timeframe analysis provides hierarchical risk assessment capabilities. Daily timeframe analysis supports tactical risk management decisions, weekly analysis informs strategic positioning choices, and monthly analysis guides long-term allocation decisions. This hierarchical approach ensures that risk assessment occurs at appropriate temporal scales for different investment objectives.
Integration with complementary indicators enhances the analytical framework. Trend indicators such as RSI and moving averages provide directional bias context, volume analysis helps confirm the severity of drawdown conditions, and volatility measures like VIX or ATR assist in market regime identification.
ALERT SYSTEM AND AUTOMATION
The automated alert system monitors five distinct categories of risk events. Risk level changes trigger notifications when drawdowns move between risk categories, enabling proactive risk management responses. Statistical significance alerts activate when Z-scores exceed established threshold levels of 2.5 or 3.0 standard deviations.
New maximum drawdown alerts notify users when historical maximum levels are exceeded, indicating entry into uncharted risk territory. Poor risk efficiency alerts trigger when the composite risk efficiency score falls below 30, suggesting deteriorating risk-adjusted performance. Sharpe ratio decline alerts activate when risk-adjusted performance turns negative, indicating that returns no longer compensate for the risk undertaken.
TRADING STRATEGIES
Conservative risk parity strategies can be implemented by monitoring Risk Efficiency Scores across a diversified asset portfolio. Monthly rebalancing maintains equal risk contribution from each asset, with allocation reductions triggered when risk levels reach "High" status and complete exits executed when "Extreme" risk levels emerge. This approach typically results in lower overall portfolio volatility, improved risk-adjusted returns, and reduced maximum drawdown periods.
Tactical asset rotation strategies compare Risk Efficiency Scores across different asset classes to guide allocation decisions. Assets with scores exceeding 60 receive overweight allocations, while assets scoring below 40 receive underweight positions. Percentile rankings provide timing guidance for allocation adjustments, creating a systematic approach to asset allocation that responds to changing risk-return profiles.
Market timing strategies with statistical edges can be constructed by entering positions when Z-scores fall below -2.5, indicating statistically oversold conditions, and scaling out when Z-scores exceed 2.5, suggesting overbought conditions. The 95% VaR serves as a stop-loss reference point, while trend confirmation indicators provide additional validation for position entry and exit decisions.
LIMITATIONS AND CONSIDERATIONS
Several statistical limitations affect the interpretation and application of these risk measures. Historical bias represents a fundamental challenge, as past drawdown patterns may not accurately predict future risk characteristics, particularly during structural market changes or regime shifts. Sample dependence means that results can be sensitive to the selected lookback period, with shorter periods providing more responsive but potentially less stable estimates.
Market regime changes can significantly alter the statistical parameters underlying the analysis. During periods of structural market evolution, historical distributions may provide poor guidance for future expectations. Additionally, many financial assets exhibit return distributions with fat tails that deviate from normal distribution assumptions, potentially leading to underestimation of extreme event probabilities.
Practical limitations include execution risk, where theoretical signals may not translate directly into actual trading results due to factors such as slippage, timing delays, and market impact. Liquidity constraints mean that risk metrics assume perfect liquidity, which may not hold during stressed market conditions when risk management becomes most critical.
Transaction costs are not incorporated into risk-adjusted return calculations, potentially overstating the attractiveness of strategies that require frequent trading. Behavioral factors represent another limitation, as human psychology may override statistical signals, particularly during periods of extreme market stress when disciplined risk management becomes most challenging.
TECHNICAL IMPLEMENTATION
Performance optimization ensures reliable operation across different market conditions and timeframes. All technical analysis functions are extracted from conditional statements to maintain Pine Script compliance and ensure consistent execution. Memory efficiency is achieved through optimized variable scoping and array usage, while computational speed benefits from vectorized calculations where possible.
Data quality requirements include clean price data without gaps or errors that could distort distribution analysis. Sufficient historical data is essential, with a minimum of 100 bars required and 500 or more preferred for reliable statistical inference. Time alignment across related assets ensures meaningful comparison when conducting multi-asset analysis.
The configuration parameters are organized into logical groups to enhance usability. Core settings include the Distribution Analysis Period (100-2000 bars), Drawdown Smoothing Period (1-50 bars), and Price Source selection. Advanced metrics settings control risk-free rate sourcing, either from live market data or fixed rate specification, along with toggles for various risk-adjusted metric calculations.
Display options provide flexibility in visual presentation, including color theme selection from eight available schemes, automatic dark mode optimization, and control over table display, position lines, percentile bands, and standard deviation overlays. These options ensure that the indicator can be adapted to different analytical workflows and visual preferences.
CONCLUSION
The Drawdown Distribution Analysis indicator provides risk management tools for traders seeking to understand their current position within historical risk patterns. By combining established statistical methodology with practical usability features, the tool enables evidence-based risk assessment and portfolio optimization decisions.
The implementation draws upon established academic research while providing practical features that address real-world trading requirements. Dynamic risk-free rate integration ensures accurate risk-adjusted performance calculations, while multiple color schemes accommodate different analytical preferences and use cases.
Academic compliance is maintained through transparent methodology and acknowledgment of limitations. The tool implements peer-reviewed statistical techniques while clearly communicating the constraints and assumptions underlying the analysis. This approach ensures that users can make informed decisions about the appropriate application of the risk assessment framework within their broader trading and investment processes.
BIBLIOGRAPHY
Artzner, P., Delbaen, F., Eber, J.M. and Heath, D. (1999) 'Coherent Measures of Risk', Mathematical Finance, 9(3), pp. 203-228.
Chekhlov, A., Uryasev, S. and Zabarankin, M. (2005) 'Drawdown Measure in Portfolio Optimization', International Journal of Theoretical and Applied Finance, 8(1), pp. 13-58.
Goldberg, L.R. and Mahmoud, O. (2017) 'Drawdown: From Practice to Theory and Back Again', Journal of Risk Management in Financial Institutions, 10(2), pp. 140-152.
Jorion, P. (2007) Value at Risk: The New Benchmark for Managing Financial Risk. 3rd edn. New York: McGraw-Hill.
Markowitz, H. (1952) 'Portfolio Selection', Journal of Finance, 7(1), pp. 77-91.
Sharpe, W.F. (1966) 'Mutual Fund Performance', Journal of Business, 39(1), pp. 119-138.
Sortino, F.A. and Price, L.N. (1994) 'Performance Measurement in a Downside Risk Framework', Journal of Investing, 3(3), pp. 59-64.
Young, T.W. (1991) 'Calmar Ratio: A Smoother Tool', Futures, 20(1), pp. 40-42.
TBL Session Highs&LowsBL Session Highs&Lows is a versatile intraday tool that highlights key price levels within up to 11 configurable trading sessions. It displays session highs, lows, and optional open levels, with customizable lines, labels, and boxes — perfect for tracking price behavior across sessions like Asia, London, and New York.
🔧 Key Features
🧩 Up to 11 fully customizable sessions
📍 High, Low, and Open lines with adjustable color, style, and width
🧱 Optional boxes showing session range, dynamically colored based on price movement
🏷️ Session labels for visual orientation
🔁 Extendable lines to project levels beyond the session
🌐 Custom time zone support for each session
🎨 Fully customizable visuals for clear chart integration
📈 Designed for:
Intraday session tracking (e.g., Asia, London, NY)
Session-based strategies (breakouts, reversals, liquidity zones)
Open-level reference (e.g., NY open)
Visual separation of trading periods
Example Scenarios:
🟦 "Asia" session: 18:00–00:00 GMT-4 with full box and lines
🟩 "London" session: 00:00–06:00 with high/low lines only
🟥 Segmented NY sessions (Q1–Q4) for fine-grained intraday tracking
✅ Tip: Enable only the sessions you need to keep your chart clean and focused.
Options Risk Manager v2.2.0 - Priority 7 CompleteScript Description for TradingView Publication
Options Risk Manager v2.2.0 - Priority 7 Complete
What does this script do?
Options Risk Manager v2.2.0 is a comprehensive position management system designed specifically for options traders. The indicator calculates precise stop loss levels, risk/reward targets, and position sizing based on user-defined risk parameters. It provides real-time profit/loss tracking, options Greeks monitoring, and automated alert systems for critical price levels.
The script displays entry points, stop losses, and profit targets directly on the chart while continuously calculating position metrics including dollar risk, account exposure, and probability of success. Version 2.2.0 introduces Priority 7 advanced alerts with dynamic risk warnings and multi-condition notifications.
How does it do it?
The script performs several key calculations:
1. Risk-Based Stop Loss Calculation - Determines stop loss levels based on percentage of entry price, automatically adjusting for calls versus puts. Put positions place stops above entry, while calls place stops below.
2. Position Sizing Algorithm - Calculates optimal contract quantities using account size, risk
percentage, and stop distance to ensure consistent risk per trade regardless of underlying price.
3. Options-Specific P&L Tracking - Incorporates Delta, Gamma, Vega, and Theta to provide accurate profit/loss calculations for options positions, including time decay effects.
4. Three-Phase Trade Management - Implements systematic position management through Entry
Phase (initial risk), Profit Phase (approaching target), and Trailing Phase (EMA-based exit
management).
5. Multi-Level Alert System - Monitors price action, Greeks thresholds, time decay acceleration, and account risk levels to generate context-aware notifications.
How to use it?
Initial Setup:
1. Apply indicator to any optionable security
2. Toggle "In Position" ON when entering a trade
3. Set Direction (Call/Put) and Side (Long/Short)
4. Enter the underlying price at position entry
5. Specify number of contracts and risk percentage
Position Management:
Blue line shows entry price
Red line indicates stop loss level
Orange line displays risk/reward target
Purple EMA line activates after target hit
Monitor real-time P&L in trade panels
Alert Configuration:
Enable Advanced Alerts in settings
Set profit/loss notification thresholds
Configure Greek-based warnings
Activate time decay alerts for expiration
Risk Parameters:
Risk % determines stop distance from entry
Account Value sets position sizing limits
Contract Multiplier (standard = 100)
R:R Ratio defines profit targets
What makes it unique?
Options Risk Manager addresses the specific challenges of options trading that generic indicators miss. The script accounts for the inverse relationship in put options (profiting from price declines), incorporates Greeks for accurate P&L calculations, and provides options-specific limit orders for TradeStation integration.
The three-phase management system removes emotional decision-making by defining clear rules for position management. Phase transitions occur automatically based on price action, shifting from initial risk management to profit protection to trend-following modes.
Version 2.2.0's Priority 7 alert system provides intelligent notifications that include live metrics, risk warnings, and market context rather than simple price crosses.
Key Features Summary
Options-Specific Calculations - Proper handling of calls/puts with inverse relationships
Risk-Based Position Sizing - Consistent risk regardless of underlying price
Greeks Integration - Delta, Gamma, Vega, Theta for accurate tracking
Phase Management System - Systematic three-stage position handling
Advanced Alert System - Context-aware notifications with metrics
TradeStation Integration - Option limit orders for execution
Visual Risk Display - Clear chart overlays for all levels
Probability Calculator - Win/loss probability with expected value
Multi-Account Support - Scales from small to large accounts
Important Notes
This indicator requires manual input of option prices and Greeks (available from your broker's option chain). It functions as a risk management overlay and does not generate entry signals. The calculations assume standard options contracts of 100 shares.
Designed for TradeStation platform with full functionality. Basic features available on other platforms
without options data integration. Always verify calculations with your broker's risk system before placing
trades.