Weighted Volume Profile | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Weighted Volume Profile Indicator! This indicator renders a volume profile based on the volume of latest candlesticks. It can be adjusted to give more weight to recent or past candlesticks, or can be used as a normal volume profile. For more information, please read the full write-up.
Features of the new Weighted Volume Profile indicator :
Renders Volume Profile Of Current Ticker
Adjustable Weighthing Towards Past or Recent
Customizable Row Count & Maximum Distance
Left or Right Alignment
More Styling Options
🚩UNIQUENESS
This indicator differs from a normal volume profile indicator by it's ability to weight volumes based on their distance to the current time. Giving weight to volumes may offer new trading opportunities to traders as they can now see the most recent Point Of Control (POC) or a more powerful but past POC based on their choice. The indicator also has a variety of useful styling settings such as aligning the volume profile to the right or the left of the chart, POC Line styling and color settings for bullish & bearish volumes.
📌 HOW DOES IT WORK ?
A volume profile provides an in-depth look at trading activity over a period of time by plotting a histogram on the price axis. This indicator can also give weight to volumes based on their distance to the current time, essentially determining their importance for the profile. Here is how it works step-by-step :
1. Determine how much candlesticks the volume profile will cover (Analyze Bars setting)
2. Make a range from the highest point of chart to the lowest point of chart, then divide it into rows (Row Count setting)
3. For each candlestick, add it's volume to the corresponding row in the range. Note that the volume can be added into several rows if it overlaps with them.
4. If the candlestick is a bullish candlestick, we add it's volume into the bullish volume of the row, if it's a bearish candlestick, we add it to the bearish volume of the row.
With the weighted volume mode, which is activated if "Volume Weighthing" setting is set to "Recent" or "Past", all volumes get a penalty based on their distance to the latest candletstick. For example, if the setting is set to "Recent", the latest candlestick contributes it's volume by 100% to the corresponding row, but the candlestick which is 50 candlesticks far from the current candlestick only contributes it's volume by ~17% to the row. The same applies to the "Past" setting, but in the reversed order, where past candlesticks have more priority than the current ones.
Volume contribution percent for "Recent" setting : ((100 * 0.85) / (i + 1)) + (100 * (1.0 - 0.85))
Volume contribution percent for "Past" setting : ((100 * 0.85) * ((i + 1) / N)) + (100 * (1.0 - 0.85))
Where i = candlestick index from right to left, N = total number of candlesticks analyzed by the volume profile.
The Point Of Control (POC) line is drawn from the row with the most total volume, and is generally considered as a strong level because a lot of trading volume happened on that particular row. Traders may use this line as a support & resistance level.
Traders can use this indicator to have an insight of areas which price moves quickly without much volume, or see areas that holds the price still for much longer and plan their trades accordingly.
⚙️SETTINGS
1. General Configuration
Analyze Bars -> Total amount of bars that will be analyzed by the indicator from right to left.
Row Count -> The amount of rows that will the vertical range of chart will be divided into.
Volume Weighting -> The volume weighting mode as explained in the write-up.
2. Style
Align To -> The alignment of the volume profile.
Cari dalam skrip untuk "想象图:箱线图+折线组合,横轴为国家,纵轴为响应指数(0-100),箱线显示均值±标准差,叠加红色虚线标注各国确诊高峰时间点"
Asset Drawdown & Drawdown HeatMap [InvestorUnknown]Overview
The "Asset Drawdown & Drawdown HeatMap" indicator is designed for educational purposes to help users visualize and analyze the drawdowns of various assets. It highlights both recent and historical drawdowns, offering valuable insights into the performance and risk of different investments. Additionally, it can serve as a complementary analysis tool for trading and investing decisions.
Features
Drawdown Calculation:
Computes the drawdown from the highest value (ATH) to the current value, showing the percentage decline.
Displays both the current drawdown and the maximum historical drawdown for the selected assets.
HeatMap Visualization:
Uses a gradient color scheme to represent the magnitude of drawdowns over a specified lookback period.
Helps identify periods of significant decline and recovery visually.
Multiple Assets:
Supports up to 10 different assets (adding more would make it harder to see the drawdowns of different assets), allowing users to compare drawdowns across various symbols.
Each asset can be individually plotted and color-coded for clarity.
Customizable Settings:
User inputs for high and low value calculations, color preferences, and lookback periods.
Option to color bars based on the drawdown heatmap.
Detailed Functionality
Drawdown Calculation:
The DD() function calculates the current drawdown and the maximum historical drawdown based on the high and low values.
The drawdown is calculated as 100 - (lowvalue / ATH * 100), where ATH is the highest value observed so far.
// - - - - - Custom Function - - - - - //{
DD() =>
ATH = highvalue
ATH := na(ATH ) ? highvalue : math.max(highvalue, ATH )
Drawdown = 100 - lowvalue / ATH * 100
MaxDrawdown = Drawdown
MaxDrawdown := na(MaxDrawdown ) ? Drawdown : math.max(Drawdown, MaxDrawdown )
//}
Security Request:
Uses the request.security() function to fetch drawdown data for each specified asset on a daily timeframe.
Computes both current drawdown (TnDD) and maximum drawdown (TnMDD) for each asset.
// - - - - - Create Variables - - - - - //{
= request.security("", "1D", DD()) // Chart
= request.security(t1, "1D", DD())
= request.security(t2, "1D", DD())
= request.security(t3, "1D", DD())
= request.security(t4, "1D", DD())
= request.security(t5, "1D", DD())
= request.security(t6, "1D", DD())
= request.security(t7, "1D", DD())
= request.security(t8, "1D", DD())
= request.security(t9, "1D", DD())
= request.security(t10, "1D", DD())
//}
Plotting:
Plots the drawdown values for each asset on the chart, with the option to enable or disable plotting for individual assets.
Colors the plotted lines and labels based on user-specified preferences.
HeatMap:
Creates a heatmap color gradient based on the drawdown values over the lookback period.
Colors the bars on the chart according to the heatmap to visualize drawdown severity over time.
// - - - - - HeatMap - - - - - //{
heatcol = color.from_gradient(T0DD, ta.lowest(T0DD,lookback), ta.highest(T0DD,lookback), topcol, botcol)
barcolor(colbars ? heatcol : na)
//}
Labels:
Displays labels for each asset's drawdown value at the end of the chart for quick reference.
This indicator is an excellent tool for educational purposes, helping users understand drawdown dynamics and their implications on asset performance. It also provides a visual aid for monitoring and comparing drawdowns across multiple assets, which can be beneficial for making informed trading and investment decisions.
Directional Movement Index DEThis script uses the existing built-in DMI indicator but adds two lines indicating strength of the ADX trend. The original author J. Welles Wilder, indicated a ADX trending strongly above 25 (yellow by default), and ADX trending weaker at a threshold of 20 or below (dashed yellow by default).
The default colours have been changed so that ADX is yellow, +DI is green, and -DI is red.
Calculation
Calculating the DMI can actually be broken down into two parts. First, calculating the +DI and -DI, and second, calculating the ADX. To calculate the +DI and -DI you need to find the +DM and -DM (Directional Movement). +DM and -DM are calculated using the High, Low and Close for each period. You can then calculate the following:
Current High - Previous High = UpMove
Previous Low - Current Low = DownMove
If UpMove > DownMove and UpMove > 0, then +DM = UpMove, else +DM = 0
If DownMove > Upmove and Downmove > 0, then -DM = DownMove, else -DM = 0
Once you have the current +DM and -DM calculated, the +DM and -DM lines can be calculated and plotted based on the number of user defined periods.
+DI = 100 times Exponential Moving Average of (+DM / Average True Range)
-DI = 100 times Exponential Moving Average of (-DM / Average True Range)
Now that -+DX and -DX have been calculated, the last step is calculating the ADX.
ADX = 100 times the Exponential Moving Average of the Absolute Value of (+DI - -DI) / (+DI + -DI)
The basics
DMI has a value between 0 and 100 and is used to measure the strength of the current trend. +DI and -DI are then used to measure direction. When combined, the indicator can provide some valuable insight. A general interpretation would be that during a strong trend (ADX above 25 but dependent on the analyst's interpretation), when the +DI is above the -DI, then a Bullish Market is defined. When -DI is above +DI, then a Bearish Market is at hand.
One thing to be considered is that what DMI values determine, strength or a potential signal, is up to the trader's interpretation. Acceptable values may change depending on the financial instrument being examined, therefore some historical analysis of the instrument in question would be prudent. A technical analyst can make better decisions based on what has occurred in historical examples.
All credit goes to the original script .
Strategic Multi-Step Supertrend - Strategy [presentTrading]The code is mainly developed for me to stimulate the multi-step taking profit function for strategies. The result shows the drawdown can be reduced but at the same time reduced the profit as well. It can be a heuristic for futures leverage traders.
█ Introduction and How it is Different
The "Strategic Multi-Step Supertrend" is a trading strategy designed to leverage the power of multiple steps to optimize trade entries and exits across the Supertrend indicator. Unlike traditional strategies that rely on single entry and exit points, this strategy employs a multi-step approach to take profit, allowing traders to lock in gains incrementally. Additionally, the strategy is adaptable to both long and short trades, providing a comprehensive solution for dynamic market conditions.
This template strategy lies in its dual Supertrend calculation, which enhances the accuracy of trend detection and provides more reliable signals for trade entries and exits. This approach minimizes false signals and increases the overall profitability of trades by ensuring that positions are entered and exited at optimal points.
BTC 6h L/S Performance
█ Strategy, How It Works: Detailed Explanation
The "Strategic Multi-Step Supertrend Trader" strategy utilizes two Supertrend indicators calculated with different parameters to determine the direction and strength of the market trend. This dual approach increases the robustness of the signals, reducing the likelihood of entering trades based on false signals. Here is a detailed breakdown of how the strategy operates:
🔶 Supertrend Indicator Calculation
The Supertrend indicator is a trend-following overlay on the price chart, typically used to identify the direction of the trend. It is calculated using the Average True Range (ATR) to ensure that the indicator adapts to market volatility. The formula for the Supertrend indicator is:
Upper Band = (High + Low) / 2 + (Factor * ATR)
Lower Band = (High + Low) / 2 - (Factor * ATR)
Where:
- High and Low are the highest and lowest prices of the period.
- Factor is a user-defined multiplier.
- ATR is the Average True Range over a specified period.
The Supertrend changes its direction based on the closing price in relation to these bands.
🔶 Entry-Exit Conditions
The strategy enters long positions when both Supertrend indicators signal an uptrend, and short positions when both indicate a downtrend. Specifically:
- Long Condition: Supertrend1 < 0 and Supertrend2 < 0
- Short Condition: Supertrend1 > 0 and Supertrend2 > 0
- Long Exit Condition: Supertrend1 > 0 and Supertrend2 > 0
- Short Exit Condition: Supertrend1 < 0 and Supertrend2 < 0
🔶 Multi-Step Take Profit Mechanism
The strategy features a multi-step take profit mechanism, which allows traders to lock in profits incrementally. This is achieved through four user-configurable take profit levels. For each level, the strategy specifies a percentage increase (for long trades) or decrease (for short trades) in the entry price at which a portion of the position is exited:
- Step 1: Exit a portion of the trade at Entry Price * (1 + Take Profit Percent1 / 100)
- Step 2: Exit a portion of the trade at Entry Price * (1 + Take Profit Percent2 / 100)
- Step 3: Exit a portion of the trade at Entry Price * (1 + Take Profit Percent3 / 100)
- Step 4: Exit a portion of the trade at Entry Price * (1 + Take Profit Percent4 / 100)
This staggered exit strategy helps in locking profits at multiple levels, thereby reducing risk and increasing the likelihood of capturing the maximum possible profit from a trend.
BTC Local
█ Trade Direction
The strategy is highly flexible, allowing users to specify the trade direction. There are three options available:
- Long Only: The strategy will only enter long trades.
- Short Only: The strategy will only enter short trades.
- Both: The strategy will enter both long and short trades based on the Supertrend signals.
This flexibility allows traders to adapt the strategy to various market conditions and their own trading preferences.
█ Usage
1. Add the strategy to your trading platform and apply it to the desired chart.
2. Configure the take profit settings under the "Take Profit Settings" group.
3. Set the trade direction under the "Trade Direction" group.
4. Adjust the Supertrend settings in the "Supertrend Settings" group to fine-tune the indicator calculations.
5. Monitor the chart for entry and exit signals as indicated by the strategy.
█ Default Settings
- Use Take Profit: True
- Take Profit Percentages: Step 1 - 6%, Step 2 - 12%, Step 3 - 18%, Step 4 - 50%
- Take Profit Amounts: Step 1 - 12%, Step 2 - 8%, Step 3 - 4%, Step 4 - 0%
- Number of Take Profit Steps: 3
- Trade Direction: Both
- Supertrend Settings: ATR Length 1 - 10, Factor 1 - 3.0, ATR Length 2 - 11, Factor 2 - 4.0
These settings provide a balanced starting point, which can be customized further based on individual trading preferences and market conditions.
Fusion MFI RSIHello fellas,
This superb indicator summons two monsters called Relative Strength Index (RSI) and Money Flow Index (MFI) and plays the Yu-Gi-Oh! card "Polymerization" to combine them.
Overview
The Fusion MFI RSI Indicator is an advanced analytical tool designed to provide a nuanced understanding of market dynamics by combining the Relative Strength Index (RSI) and the Money Flow Index (MFI). Enhanced with sophisticated smoothing techniques and the Inverse Fisher Transform (IFT), this indicator excels in identifying key market conditions such as overbought and oversold states, trends, and potential reversal points.
Key Features (Brief Overview)
Fusion of RSI and MFI: Integrates momentum and volume for a comprehensive market analysis.
Advanced Smoothing Techniques: Employs Hann Window, Jurik Moving Average (JMA), T3 Smoothing, and Super Smoother to refine signals.
Inverse Fisher Transform (IFT) Enhances the clarity and distinctiveness of indicator outputs.
Detailed Feature Analysis
Fusion of RSI and MFI
RSI (Relative Strength Index): Developed by J. Welles Wilder Jr., the RSI measures the speed and magnitude of directional price movements. Wilder recommended using a 14-day period and identified overbought conditions above 70 and oversold conditions below 30.
MFI (Money Flow Index): Created by Gene Quong and Avrum Soudack, the MFI combines price and volume to measure trading pressure. It is typically calculated using a 14-day period, with over 80 considered overbought and under 20 as oversold.
Application in Fusion: By combining RSI and MFI, the indicator leverages RSI's sensitivity to price changes with MFI's volume-weighted confirmation, providing a robust analysis tool. This combination is particularly effective in confirming the strength behind price movements, making the signals more reliable.
Advanced Smoothing Techniques
Hann Window: Traditionally used to reduce the abrupt data discontinuities at the edges of a sample, it is applied here to smooth the price data.
Jurik Moving Average (JMA): Known for preserving the timing and smoothness of the data, JMA reduces market noise effectively without significant lag.
T3 Smoothing: Developed to respond quickly to market changes, T3 provides a smoother response to price fluctuations.
Super Smoother: Filters out high-frequency noise while retaining important trends.
Application in Fusion: These techniques are chosen to refine the output of the combined RSI and MFI values, ensuring the indicator remains responsive yet stable, providing clearer and more actionable signals.
Inverse Fisher Transform (IFT):
Developed by John Ehlers, the IFT transforms oscillator outputs to enhance the clarity of extreme values. This is particularly useful in this fusion indicator to make critical turning points more distinct and actionable.
Mathematical Calculations for the Fusion MFI RSI Indicator
RSI (Relative Strength Index)
The RSI is calculated using the following steps:
Average Gain and Average Loss: First, determine the average gain and average loss over the specified period (typically 14 days). This is done by summing all the gains and losses over the period and then dividing each by the period.
Average Gain = (Sum of Gains over the past 14 periods) / 14
Average Loss = (Sum of Losses over the past 14 periods) / 14
Relative Strength (RS): This is the ratio of average gain to average loss.
RS = Average Gain / Average Loss
RSI: Finally, the RSI is calculated using the RS value:
RSI = 100 - (100 / (1 + RS))
MFI (Money Flow Index)
The MFI is calculated using several steps that incorporate both price and volume:
Typical Price: Calculate the typical price for each period.
Typical Price = (High + Low + Close) / 3
Raw Money Flow: Multiply the typical price by the volume for the period.
Raw Money Flow = Typical Price * Volume
Positive and Negative Money Flow: Compare the typical price of the current period to the previous period to determine if the money flow is positive or negative.
If today's Typical Price > Yesterday's Typical Price, then Positive Money Flow = Raw Money Flow; Negative Money Flow = 0
If today's Typical Price < Yesterday's Typical Price, then Negative Money Flow = Raw Money Flow; Positive Money Flow = 0
Money Flow Ratio: Calculate the ratio of the sum of Positive Money Flows to the sum of Negative Money Flows over the past 14 periods.
Money Flow Ratio = (Sum of Positive Money Flows over 14 periods) / (Sum of Negative Money Flows over 14 periods)
MFI: Finally, calculate the MFI using the Money Flow Ratio.
MFI = 100 - (100 / (1 + Money Flow Ratio))
Fusion of RSI and MFI
The final Fusion MFI RSI value could be calculated by averaging the IFT-transformed values of RSI and MFI, providing a single oscillator value that reflects both momentum and volume-weighted price action:
Fusion MFI RSI = (MFI weight * MFI) + (RSI weight * RSI)
Suggested Settings and Trading Rules
Original Usage
RSI: Wilder suggested buying when the RSI moves above 30 from below (enter long) and selling when the RSI moves below 70 from above (enter short). He recommended exiting long positions when the RSI reaches 70 or higher and exiting short positions when the RSI falls below 30.
MFI: Quong and Soudack recommended buying when the MFI is below 20 and starts rising (enter long), and selling when it is above 80 and starts declining (enter short). They suggested exiting long positions when the MFI reaches 80 or higher and exiting short positions when the MFI falls below 20.
Fusion Application
Settings: Use a 14-day period for this indicator's calculations to maintain consistency with the original settings suggested by the inventors.
Trading Rules:
Enter Long Signal: Consider entering a long position when both RSI and MFI are below their respective oversold levels and begin to rise. This indicates strong buying pressure supported by both price momentum and volume.
Exit Long Signal: Exit the long position when either RSI or MFI reaches its respective overbought threshold, suggesting a potential reversal or decrease in buying pressure.
Enter Short Signal: Consider entering a short position when both indicators are above their respective overbought levels and begin to decline, suggesting that selling pressure is mounting.
Exit Short Signal: Exit the short position when either RSI or MFI falls below its respective oversold threshold, indicating diminishing selling pressure and a potential upward reversal.
How to Use the Indicator
Select Source and Timeframe: Choose the data source and the timeframe for analysis.
Configure Fusion Settings: Adjust the weights for RSI and MFI.
Choose Smoothing Technique: Select and configure the desired smoothing method to suit the market conditions and personal preference.
Enable Fisherization: Optionally apply the Inverse Fisher Transform to enhance signal clarity.
Customize Visualization: Set up gradient coloring, background plots, and bands according to your preferences.
Interpret the Indicator: Use the Fusion value and visual cues to identify market conditions and potential trading opportunities.
Conclusion
The Fusion MFI RSI Indicator integrates classical and modern technical analysis concepts to provide a comprehensive tool for market analysis. By combining RSI and MFI with advanced smoothing techniques and the Inverse Fisher Transform, this indicator offers enhanced insights, aiding traders in making more informed and timely trading decisions. Customize the settings to align with your trading strategy and leverage this powerful tool to navigate financial markets effectively.
Best regards,
simwai
---
Credits to:
@loxx – T3
@everget – JMA
@cheatcountry – Hann Window
CPR by MTThe CPR indicator, or Central Pivot Range indicator, is a technical analysis tool used in trading to identify potential support and resistance levels based on the price action of a security. Developed by pivot point theory, it is particularly popular among day traders and swing traders. The CPR indicator consists of three lines:
1. **Pivot Point (PP):** This is the central line and is calculated as the average of the high, low, and closing prices from the previous trading period.
\
2. **Top Central Pivot (TC):** This is calculated by subtracting the low from the PP and then adding the result to the PP.
\
3. **Bottom Central Pivot (BC):** This is calculated by subtracting the high from the PP and then adding the result to the PP.
\
### How to Use the CPR Indicator
- **Trend Identification:** A wide CPR range indicates low volatility and a potential sideways or consolidation phase. A narrow CPR range indicates high volatility and a potential strong trending move.
- **Support and Resistance:** The top and bottom central pivots act as immediate resistance and support levels. If the price is above the TC, it indicates a bullish sentiment, while if it is below the BC, it indicates a bearish sentiment.
- **Entry and Exit Points:** Traders use the CPR lines to determine optimal entry and exit points. For example, if the price breaks above the TC and sustains, it may signal a buy opportunity, whereas a drop below the BC may signal a sell opportunity.
### Practical Example
Suppose a stock had a high of $105, a low of $95, and a closing price of $100 on the previous day. The CPR levels for the next day would be calculated as follows:
1. **Pivot Point (PP):**
\
2. **Top Central Pivot (TC):**
\
3. **Bottom Central Pivot (BC):**
\
The levels for the next day would be PP = $100, TC = $110, and BC = $90. Traders would then use these levels to assess potential trading strategies based on where the price moves relative to these levels.
### Conclusion
The CPR indicator is a useful tool for traders looking to understand market conditions and make informed decisions about entry and exit points. Its effectiveness comes from its ability to highlight key price levels derived from historical price data, helping traders predict potential market movements.
Statistics • Chi Square • P-value • SignificanceThe Statistics • Chi Square • P-value • Significance publication aims to provide a tool for combining different conditions and checking whether the outcome is significant using the Chi-Square Test and P-value.
🔶 USAGE
The basic principle is to compare two or more groups and check the results of a query test, such as asking men and women whether they want to see a romantic or non-romantic movie.
–––––––––––––––––––––––––––––––––––––––––––––
| | ROMANTIC | NON-ROMANTIC | ⬅︎ MOVIE |
–––––––––––––––––––––––––––––––––––––––––––––
| MEN | 2 | 8 | 10 |
–––––––––––––––––––––––––––––––––––––––––––––
| WOMEN | 7 | 3 | 10 |
–––––––––––––––––––––––––––––––––––––––––––––
|⬆︎ SEX | 10 | 10 | 20 |
–––––––––––––––––––––––––––––––––––––––––––––
We calculate the Chi-Square Formula, which is:
Χ² = Σ ( (Observed Value − Expected Value)² / Expected Value )
In this publication, this is:
chiSquare = 0.
for i = 0 to rows -1
for j = 0 to colums -1
observedValue = aBin.get(i).aFloat.get(j)
expectedValue = math.max(1e-12, aBin.get(i).aFloat.get(colums) * aBin.get(rows).aFloat.get(j) / sumT) //Division by 0 protection
chiSquare += math.pow(observedValue - expectedValue, 2) / expectedValue
Together with the 'Degree of Freedom', which is (rows − 1) × (columns − 1) , the P-value can be calculated.
In this case it is P-value: 0.02462
A P-value lower than 0.05 is considered to be significant. Statistically, women tend to choose a romantic movie more, while men prefer a non-romantic one.
Users have the option to choose a P-value, calculated from a standard table or through a math.ucla.edu - Javascript-based function (see references below).
Note that the population (10 men + 10 women = 20) is small, something to consider.
Either way, this principle is applied in the script, where conditions can be chosen like rsi, close, high, ...
🔹 CONDITION
Conditions are added to the left column ('CONDITION')
For example, previous rsi values (rsi ) between 0-100, divided in separate groups
🔹 CLOSE
Then, the movement of the last close is evaluated
UP when close is higher then previous close (close )
DOWN when close is lower then previous close
EQUAL when close is equal then previous close
It is also possible to use only 2 columns by adding EQUAL to UP or DOWN
UP
DOWN/EQUAL
or
UP/EQUAL
DOWN
In other words, when previous rsi value was between 80 and 90, this resulted in:
19 times a current close higher than previous close
14 times a current close lower than previous close
0 times a current close equal than previous close
However, the P-value tells us it is not statistical significant.
NOTE: Always keep in mind that past behaviour gives no certainty about future behaviour.
A vertical line is drawn at the beginning of the chosen population (max 4990)
Here, the results seem significant.
🔹 GROUPS
It is important to ensure that the groups are formed correctly. All possibilities should be present, and conditions should only be part of 1 group.
In the example above, the two top situations are acceptable; close against close can only be higher, lower or equal.
The two examples at the bottom, however, are very poorly constructed.
Several conditions can be placed in more than 1 group, and some conditions are not integrated into a group. Even if the results are significant, they are useless because of the group formation.
A population count is added as an aid to spot errors in group formation.
In this example, there is a discrepancy between the population and total count due to the absence of a condition.
The results when rsi was between 5-25 are not included, resulting in unreliable results.
🔹 PRACTICAL EXAMPLES
In this example, we have specific groups where the condition only applies to that group.
For example, the condition rsi > 55 and rsi <= 65 isn't true in another group.
Also, every possible rsi value (0 - 100) is present in 1 of the groups.
rsi > 15 and rsi <= 25 28 times UP, 19 times DOWN and 2 times EQUAL. P-value: 0.01171
When looking in detail and examining the area 15-25 RSI, we see this:
The population is now not representative (only checking for RSI between 15-25; all other RSI values are not included), so we can ignore the P-value in this case. It is merely to check in detail. In this case, the RSI values 23 and 24 seem promising.
NOTE: We should check what the close price did without any condition.
If, for example, the close price had risen 100 times out of 100, this would make things very relative.
In this case (at least two conditions need to be present), we set 1 condition at 'always true' and another at 'always false' so we'll get only the close values without any condition:
Changing the population or the conditions will change the P-value.
In the following example, the outcome is evaluated when:
close value from 1 bar back is higher than the close value from 2 bars back
close value from 1 bar back is lower/equal than the close value from 2 bars back
Or:
close value from 1 bar back is higher than the close value from 2 bars back
close value from 1 bar back is equal than the close value from 2 bars back
close value from 1 bar back is lower than the close value from 2 bars back
In both examples, all possibilities of close against close are included in the calculations. close can only by higher, equal or lower than close
Both examples have the results without a condition included (5 = 5 and 5 < 5) so one can compare the direction of current close.
🔶 NOTES
• Always keep in mind that:
Past behaviour gives no certainty about future behaviour.
Everything depends on time, cycles, events, fundamentals, technicals, ...
• This test only works for categorical data (data in categories), such as Gender {Men, Women} or color {Red, Yellow, Green, Blue} etc., but not numerical data such as height or weight. One might argue that such tests shouldn't use rsi, close, ... values.
• Consider what you're measuring
For example rsi of the current bar will always lead to a close higher than the previous close, since this is inherent to the rsi calculations.
• Be careful; often, there are na -values at the beginning of the series, which are not included in the calculations!
• Always keep in mind considering what the close price did without any condition
• The numbers must be large enough. Each entry must be five or more. In other words, it is vital to make the 'population' large enough.
• The code can be developed further, for example, by splitting UP, DOWN in close UP 1-2%, close UP 2-3%, close UP 3-4%, ...
• rsi can be supplemented with stochRSI, MFI, sma, ema, ...
🔶 SETTINGS
🔹 Population
• Choose the population size; in other words, how many bars you want to go back to. If fewer bars are available than set, this will be automatically adjusted.
🔹 Inputs
At least two conditions need to be chosen.
• Users can add up to 11 conditions, where each condition can contain two different conditions.
🔹 RSI
• Length
🔹 Levels
• Set the used levels as desired.
🔹 Levels
• P-value: P-value retrieved using a standard table method or a function.
• Used function, derived from Chi-Square Distribution Function; JavaScript
LogGamma(Z) =>
S = 1
+ 76.18009173 / Z
- 86.50532033 / (Z+1)
+ 24.01409822 / (Z+2)
- 1.231739516 / (Z+3)
+ 0.00120858003 / (Z+4)
- 0.00000536382 / (Z+5)
(Z-.5) * math.log(Z+4.5) - (Z+4.5) + math.log(S * 2.50662827465)
Gcf(float X, A) => // Good for X > A +1
A0=0., B0=1., A1=1., B1=X, AOLD=0., N=0
while (math.abs((A1-AOLD)/A1) > .00001)
AOLD := A1
N += 1
A0 := A1+(N-A)*A0
B0 := B1+(N-A)*B0
A1 := X*A0+N*A1
B1 := X*B0+N*B1
A0 := A0/B1
B0 := B0/B1
A1 := A1/B1
B1 := 1
Prob = math.exp(A * math.log(X) - X - LogGamma(A)) * A1
1 - Prob
Gser(X, A) => // Good for X < A +1
T9 = 1. / A
G = T9
I = 1
while (T9 > G* 0.00001)
T9 := T9 * X / (A + I)
G := G + T9
I += 1
G *= math.exp(A * math.log(X) - X - LogGamma(A))
Gammacdf(x, a) =>
GI = 0.
if (x<=0)
GI := 0
else if (x
Chisqcdf = Gammacdf(Z/2, DF/2)
Chisqcdf := math.round(Chisqcdf * 100000) / 100000
pValue = 1 - Chisqcdf
🔶 REFERENCES
mathsisfun.com, Chi-Square Test
Chi-Square Distribution Function
Wick Percentages TableThis script is designed to calculate and display the percentage representation of wick lengths in relation to the total candle range for the last 100 candles on a trading chart. Here's a breakdown of its functionality:
Indicator Initialization: It sets up an indicator named "Wick Percentages Table" (WPT) that overlays on the trading chart.
Variables Initialization: The script initializes variables to store the total lengths of top wicks, bottom wicks, and the total ranges for the last 100 candles.
Wick and Range Calculations: For the past 100 candles, it calculates:
The length of the top wick (the distance between the high and the higher of the open or close).
The length of the bottom wick (the distance between the low and the lower of the open or close).
The total range of each candle (the distance between the high and the low).
Percentage Calculations: It computes the top and bottom wick lengths as percentages of the total candle range across the last 100 candles.
Table Display: It creates or updates a table displayed on the top right of the chart showing these percentages. The table has two rows: one for the "Top Wick %" and another for the "Bottom Wick %", with the corresponding percentages calculated and displayed.
Visibility Maintenance: It plots a dummy variable to ensure the indicator's visibility on the chart.
The purpose of this script is to provide traders with a visual representation of the wick lengths as percentages, offering insights into market behavior and potential price movements based on recent candlestick patterns. It aids in assessing market volatility and trader sentiment through the analysis of wick lengths relative to the total candle sizes.
...
Any improvements to this code would be more then welcome.
I was getting an error in line 30, the only thing I could find was to comment it out.
Price and Volume Stochastic Divergence [MW]Introduction
This indicator creates signals of interest for entering and exiting long and short positions on equities. It primarily uses up and down trends defined by the change in cumulative volume with some filtering provided by a short period exponential moving average (9 EMA by default).
Settings
Moving Average Period : The moving average over which the cumulative volume delta is calculated. Default: 14
Short Period EMA : The EMA used to represent price action, and is used to generate the EMA Delta line. Default: 27 (3*3*3)
Long Period EMA : The second EMA used to calculate the EMA Delta line. Default: 108 (2*2*3*3*3)
Stochastic K Value : The value used for stochastic curve smoothing. Default: 3
Dot Size : The diameter of the larger indicator. Default: 10
Dot Transparency : The transparency level of the outer ring of the primary BUY/SELL signal. Default: 50 (0 is opaque, 100 is transparent)
Band Distance from 0 to 100 : The upper and lower band distance. Default: 20
Calculations
The cumulative volume delta (CVD) is calculated using candle bodies and wicks. For a red candle, buying volume is calculated by multiplying the volume by the spread percentage of the average of the top and bottom wicks, while Selling Volume is calculated multiplying the volume by the spread percentage of the average of the top and bottom wicks - in addition to the spread percentage of the candle body.
For a green candle, buying volume is calculated by multiplying the volume by the spread percentage of the average of the top and bottom wicks - plus the spread percentage of the candle body - while Selling Volume is calculated using only the spread percentage average of the top and bottom wicks.
Once we have the CVD, we can then perform a stochastic calculation of the CVD value.
stochastic calculation = (current value - lowest value in period) / (highest value in period - lowest value in period)
We’ll do the same stochastic calculation for the short term EMA (27 EMA default) as well as for the difference between the short term and long term EMA.
When the stochastic CVD value is rising from zero and the short term EMA stochastic value equals 100, then it’s a major bullish signal. When the stochastic CVD value is falling from 100 and the short term EMA stochastic value equals 0, then it’s a major bearish signal.
Sometimes, after a bullish or bearish signal, the stochastic CVD will reverse direction triggering a new opposing signal.
How to Interpret
The CVD indicates when there is either more buying than selling or vice versa. A value over 50 for the stochastic CVD curve represents more buying taking place. A value below 50 represents more selling. One might intuitively believe that when there is more buying volume than selling volume that the price would follow suit. This is not always the case.
Most of the time buying volume will precede consistent price movement upwards, and selling volume will precede consistent price movement downwards. When this divergence occurs, the indicator generates a signal. When this divergence begins to fail, and buying or selling volume reverses, then another signal is generated indicating that the buying/selling impulse is headed back into the direction of price action.
These interactions are visually represented on the chart with the coral line that represents CVD, and the yellow line that represents the EMA, or the average price. When the coral line goes up and the yellow line stays down, that’s the BUY signal. When the coral line goes down and the yellow line stays up, that’s the sell signal. When the coral line switches direction, the chart generates another signal showing that volume is moving in a direction that supports the price.
The orange line represents the stochastic representation of the difference between the short EMA (27 by default) and the long EMA (108 by default). EMA differences is a method that can be used to define a trend. When a short term EMA is above a longer term EMA, that may represent a bullish trend. When it is below, that may represent a bearish trend. When all 3 lines are rising or falling in the same direction at the same time, it tends to indicate a movement that has the potential to continue.
Other Usage Notes and Limitations
It's important for traders to be aware of the limitations of any indicator and to use them as part of a broader, well-rounded trading strategy that includes risk management, fundamental analysis, and other tools that can help with reducing false signals, determining trend direction, and providing additional confirmation for a trade decision. Diversifying strategies and not relying solely on one type of indicator or analysis can help mitigate some of these risks.
This indicator can be paired with the MW Volume Impulse indicator if it is desired to see the actual buying and selling cumulative volume deltas. Also, in many cases, the BUY and SELL signals tend to correspond with Keltner Bands (ATR Bands) becoming extended. Lastly, volume weighted average price (VWAP) along with other macro events can impact price and negate signals. To view VWAP lines, you may choose to use the Multi VWAP or Multi VWAP for Gaps indicator to help ensure that the signals you see in this indicator are not being affected by VWAP lines.
Awesome Oscillator + Bars count lines + EMA LineThe indicator includes an Awesome Oscillator with 2 vertical lines at a distance of 100 and 140 bars from the last bar to determine the third Elliott wave by the maximum peak of AO in the interval from 100 to 140 bars according to Bill Williams' Profitunity strategy. Additionally, a faster EMA line is displayed that calculates the difference between 5 Period and 34 Period Exponential Moving Averages (EMA 5 - EMA 34) based on the midpoints of the bars, just like AO calculates the difference between Simple Moving Averages (SMA 5 - SMA 34).
In the indicator settings, you can change the number of bars for vertical lines and any parameters for AO and EMA - method (SMA, Smoothed SMA, EMA and others), length, source (open, high, low, close, hl2 and others).
***
Индикатор включает Awesome Oscillator с 2 вертикальными линиями на расстоянии 100 и 140 баров от последнего бара, чтобы определить третью волну Эллиота по максимальному пику AO в интервале от 100 до 140 баров по стратегии Profitunity Билла Вильямса. Дополнительно отображается более быстрая линия EMA, которая вычисляет разницу между 5 Периодной и 34 Периодной Экспоненциальными Скользящими Средними (EMA 5 - EMA 34) по средним точкам баров (hl2), точно так же, как AO вычисляет разницу между Простыми Скользящими Средними (SMA 5 - SMA 34).
В настройках индикатора вы можете изменить количество баров для вертикальных линий и любые параметры для AO и EMA – метод (SMA, Smoothed SMA, EMA и другие), длину, источник (open, high, low, close, hl2 и другие).
Candlestick Bias OscillatorCandlestick Bias Oscillator (CBO)
The Candlestick Bias Oscillator (CBO) with Signal Line is a pioneering indicator developed for the TradingView platform, designed to offer traders a nuanced analysis of market sentiment through the unique lens of candlestick patterns. This indicator stands out by merging traditional concepts of price action analysis with innovative mathematical computations, providing a fresh perspective on trend detection and potential market reversals.
Originality and Utility
At the core of the CBO's originality is its method of calculating the bias of candlesticks. Unlike conventional oscillators that may rely solely on closing prices or high-low ranges, the CBO incorporates both the body and wick of candlesticks into its analysis. This dual consideration allows for a more rounded understanding of market sentiment, capturing both the directional momentum and the strength of price rejections within a single oscillator.
Mathematical Foundations
1. Body Bias: The CBO calculates the body bias by assessing the relative position of the close to the open within the day's range, scaled to a -100 to 100 range. This calculation reflects the bullish or bearish sentiment of the market, based on the day's closing momentum.
Body Bias = (Close−Open)/(High−Low) x 100
Wick Bias: Similarly, the wick bias calculation takes into account the lengths of the upper and lower wicks, indicating rejection levels beyond the body's close. The balance between these wicks is scaled similarly to the body bias, offering insight into the market's indecision or rejection of certain price levels.
Wick Bias=(Lower Wick−Upper Wick)/(Total Wick Length) × 100
3. Overall Bias and Oscillator: By averaging the body and wick biases, the CBO yields an overall bias score, which is then smoothed over a user-defined period to create the oscillator. This oscillator provides a clear visual representation of the market's underlying sentiment, smoothed to filter out the noise.
4. Signal Line: A secondary smoothing of the oscillator creates the signal line, offering a trigger for potential trading signals when the oscillator crosses this line, indicative of a change in market momentum.
How to Use the CBO:
The CBO is versatile, suitable for various trading strategies, including scalping, swing trading, and long-term trend following. Traders can use the oscillator and signal line crossovers as indications for entry or exit points. The relative position of the oscillator to the zero line further provides insight into the prevailing market bias, enabling traders to align their strategies with the broader market sentiment.
Why It Adds Value:
The CBO's innovative approach to analyzing candlestick patterns fills a gap in the existing array of TradingView indicators. By providing a detailed analysis of both candle bodies and wicks, the CBO offers a more comprehensive view of market sentiment than traditional oscillators. This can be particularly useful for traders looking to gauge the strength of price movements and potential reversal points with greater precision.
Conclusion:
The Candle Bias Oscillator with Signal Line is not just another addition to the plethora of indicators on TradingView. It represents a significant advancement in the analysis of market sentiment, combining traditional concepts with a novel mathematical approach. By offering a deeper insight into the dynamics of candlestick patterns, the CBO equips traders with a powerful tool to navigate the complexities of the market with increased confidence.
Explore the unique insights provided by the CBO and integrate it into your trading strategy for a more informed and nuanced market analysis.
CARNAC Elasticity IndicatorThe CARNAC Elasticity Indicator (EI) is a technical analysis tool designed for traders and investors using TradingView. It calculates the percentage deviation of the current price from an Exponential Moving Average (EMA) and helps traders identify potential overbought and oversold conditions in a financial instrument.
Key Features:
EMA Length: Users can customize the length of the Exponential Moving Average (EMA) used in the calculations by adjusting the "EMA Length" parameter in the indicator settings.
Percentage Deviation: The indicator calculates the percentage deviation of the current price from the EMA. Positive values indicate prices above the EMA, while negative values indicate prices below the EMA.
Maximum Deviations: The indicator tracks the maximum positive (above EMA) and negative (below EMA) percentage deviations over time, allowing traders to monitor extreme price movements.
Bands: Upper and lower bands are displayed on the indicator chart at 100 and -100, respectively. Additionally, dashed middle bands at 50 and -50 provide reference points for moderate deviations.
Dynamic Color Coding: The indicator uses dynamic color coding to highlight the current percentage deviation. It turns red for values above 50 (indicating potential overbought conditions), green for values below -50 (indicating potential oversold conditions), and purple for values in between.
How to Use:
Overbought Conditions: Watch for the percentage deviation to cross above 50, indicating potential overbought conditions. This might be a signal to consider selling or taking profits.
Oversold Conditions: Look for the percentage deviation to cross below -50, signaling potential oversold conditions. This could be an opportunity to consider buying or entering a long position.
Historical Extremes: Keep an eye on the upper and lower bands (100 and -100) to identify historical extremes in percentage deviation.
The CARNAC Elasticity Indicator can be a valuable tool for traders seeking to identify potential trend reversals and assess the strength of price movements. However, it should be used in conjunction with other technical analysis tools and risk management strategies for comprehensive trading decisions.
Advanced Technical Range and Expectancy Estimator [SS]Hello everyone,
This indicator is a from of momentum based probability modelling. It is derived from my own approaches to probability modelling but just simplified a bit.
How it works:
The indicator looks at various technical, including stochastics, RSI, MFI and Z-Score, to determine the likely sentiment. All of these, with the exception of Z-Score, are momentum based indicators and can alert us to likely sentiment. However, instead of us making the subjective determination ourselves as to whether the RSI or MFI or Stochastics are bullish, the indicator will look at previous instances of these occurrences, and tally the bullish and bearish follow throughs that happened. It will also calculate the average target price that was hit, under similar conditions, on the same timeframe.
The Z-Score is your "tie breaker". It is not a momentum based indicator and measures something a little different (the standard deviation and over-extension of the stock). For this reason, it provides an alternative assessment and tends to be a bit more reliable in times of low momentum.
Back-test Results:
The indicator back-tests itself over the previous 100 candles. I have limited it to 100 candles for pragmatic considerations (it has to back-test each technical individually and increasing the BT length will slow and potentially error out the indicator) as well as accuracy considerations.
One thing I have noticed in my years of trying to crack the code and develop probability models for tickers, is historical accuracy doesn't always matter because sentiment is always changing. You need to see what it has done over the most recent 100 to 200 candles.
There are two back-test windows, one for the price targets and the other for the sentiment accuracy. The most effective/most accurate will highlight green, the least effective/least accurate will highlight red:
In the image above, you can see that the most accurate predictor of sentiment is Z-Score, with a 90.32% accuracy rate over the past 100 candles.
The most accurate predictor of price is MFI, with a 60% (for bull targets) and 42% (for bear targets)accuracy rate.
Anchoring Points:
The indicator permits you to anchor by two points. The default setting is anchoring by previous candle. If you plan to use this as an oscillator, to see the current prediction for the current candle you are viewing, then you will need to leave this default setting. It will pull the data from the previous candle and give you the data for the current candle you are on.
If you are assess the likely sentiment for the next day after the day has closed off, you will want to anchor by current candle. This will take the current technicals that the day has closed off with and run the assessment for you.
Customizability
You can customize the technicals by source and length of assessment.
They are all defaulted to the traditional settings of these indicators, but if you want to customize your model to try and improve or enhance accuracy in one way or another, you are free and able to do so!
I do suggest leaving the defaults as they seem to work particular well :-).
Thresholds
Thresholds are the tolerance levels that we permit for our technical search range. If you want them to be exactly identical, then you can set it to 0. If you want it to be extremely similar, you can set it to 0.01. This will hone in on the ranges you are interest in and you can see how it affects your accuracy by reviewing the results in the back-test tables.
Keep Static Colour Option
I want to make a quick note on the "Keep Static Colour" option that is in your settings menu.
The primary table that shows you the probability and price targets change colours based on the accuracy of the assessment. This is so, if you are using a mobile device or smaller screen and can't have the back-test results open at the same time, you can see still which are the most reliable results. However, if you have the back-test tables open and you find these colour changes too distracted, you can toggle on the "Keep Static Colour" and it will resort the colour of the table to a solid white:
Show Technicals
The indicator can show you the current technical values if you are using it in place of an oscillator. Its less pivotal as its making the assessment for you, but just for your reference if you want to see what the current MFI, Z-Score or Stochastics etc. are, you have that option as well.
All Timeframes Permitted
You can view Weekly, Monthly, Hourly, 5 minute, 1 minute, its all supported!
That's the indicator in a nutshell.
Hope you enjoy and leave your questions below.
Safe trades everyone!
Supertrend Advance Pullback StrategyHandbook for the Supertrend Advance Strategy
1. Introduction
Purpose of the Handbook:
The main purpose of this handbook is to serve as a comprehensive guide for traders and investors who are looking to explore and harness the potential of the Supertrend Advance Strategy. In the rapidly changing financial market, having the right tools and strategies at one's disposal is crucial. Whether you're a beginner hoping to dive into the world of trading or a seasoned investor aiming to optimize and diversify your portfolio, this handbook offers the insights and methodologies you need. By the end of this guide, readers should have a clear understanding of how the Supertrend Advance Strategy works, its benefits, potential pitfalls, and practical application in various trading scenarios.
Overview of the Supertrend Advance Pullback Strategy:
At its core, the Supertrend Advance Strategy is an evolution of the popular Supertrend Indicator. Designed to generate buy and sell signals in trending markets, the Supertrend Indicator has been a favorite tool for many traders around the world. The Advance Strategy, however, builds upon this foundation by introducing enhanced mechanisms, filters, and methodologies to increase precision and reduce false signals.
1. Basic Concept:
The Supertrend Advance Strategy relies on a combination of price action and volatility to determine the potential trend direction. By assessing the average true range (ATR) in conjunction with specific price points, this strategy aims to highlight the potential starting and ending points of market trends.
2. Methodology:
Unlike the traditional Supertrend Indicator, which primarily focuses on closing prices and ATR, the Advance Strategy integrates other critical market variables, such as volume, momentum oscillators, and perhaps even fundamental data, to validate its signals. This multidimensional approach ensures that the generated signals are more reliable and are less prone to market noise.
3. Benefits:
One of the main benefits of the Supertrend Advance Strategy is its ability to filter out false breakouts and minor price fluctuations, which can often lead to premature exits or entries in the market. By waiting for a confluence of factors to align, traders using this advanced strategy can increase their chances of entering or exiting trades at optimal points.
4. Practical Applications:
The Supertrend Advance Strategy can be applied across various timeframes, from intraday trading to swing trading and even long-term investment scenarios. Furthermore, its flexible nature allows it to be tailored to different asset classes, be it stocks, commodities, forex, or cryptocurrencies.
In the subsequent sections of this handbook, we will delve deeper into the intricacies of this strategy, offering step-by-step guidelines on its application, case studies, and tips for maximizing its efficacy in the volatile world of trading.
As you journey through this handbook, we encourage you to approach the Supertrend Advance Strategy with an open mind, testing and tweaking it as per your personal trading style and risk appetite. The ultimate goal is not just to provide you with a new tool but to empower you with a holistic strategy that can enhance your trading endeavors.
2. Getting Started
Navigating the financial markets can be a daunting task without the right tools. This section is dedicated to helping you set up the Supertrend Advance Strategy on one of the most popular charting platforms, TradingView. By following the steps below, you'll be able to integrate this strategy into your charts and start leveraging its insights in no time.
Setting up on TradingView:
TradingView is a web-based platform that offers a wide range of charting tools, social networking, and market data. Before you can apply the Supertrend Advance Strategy, you'll first need a TradingView account. If you haven't set one up yet, here's how:
1. Account Creation:
• Visit TradingView's official website.
• Click on the "Join for free" or "Sign up" button.
• Follow the registration process, providing the necessary details and setting up your login credentials.
2. Navigating the Dashboard:
• Once logged in, you'll be taken to your dashboard. Here, you'll see a variety of tools, including watchlists, alerts, and the main charting window.
• To begin charting, type in the name or ticker of the asset you're interested in the search bar at the top.
3. Configuring Chart Settings:
• Before integrating the Supertrend Advance Strategy, familiarize yourself with the chart settings. This can be accessed by clicking the 'gear' icon on the top right of the chart window.
• Adjust the chart type, time intervals, and other display settings to your preference.
Integrating the Strategy into a Chart:
Now that you're set up on TradingView, it's time to integrate the Supertrend Advance Strategy.
1. Accessing the Pine Script Editor:
• Located at the top-center of your screen, you'll find the "Pine Editor" tab. Click on it.
• This is where custom strategies and indicators are scripted or imported.
2. Loading the Supertrend Advance Strategy Script:
• Depending on whether you have the script or need to find it, there are two paths:
• If you have the script: Copy the Supertrend Advance Strategy script, and then paste it into the Pine Editor.
• If searching for the script: Click on the “Indicators” icon (looks like a flame) at the top of your screen, and then type “Supertrend Advance Strategy” in the search bar. If available, it will show up in the list. Simply click to add it to your chart.
3. Applying the Strategy:
• After pasting or selecting the Supertrend Advance Strategy in the Pine Editor, click on the “Add to Chart” button located at the top of the editor. This will overlay the strategy onto your main chart window.
4. Configuring Strategy Settings:
• Once the strategy is on your chart, you'll notice a small settings ('gear') icon next to its name in the top-left of the chart window. Click on this to access settings.
• Here, you can adjust various parameters of the Supertrend Advance Strategy to better fit your trading style or the specific asset you're analyzing.
5. Interpreting Signals:
• With the strategy applied, you'll now see buy/sell signals represented on your chart. Take time to familiarize yourself with how these look and behave over various timeframes and market conditions.
3. Strategy Overview
What is the Supertrend Advance Strategy?
The Supertrend Advance Strategy is a refined version of the classic Supertrend Indicator, which was developed to aid traders in spotting market trends. The strategy utilizes a combination of data points, including average true range (ATR) and price momentum, to generate buy and sell signals.
In essence, the Supertrend Advance Strategy can be visualized as a line that moves with the price. When the price is above the Supertrend line, it indicates an uptrend and suggests a potential buy position. Conversely, when the price is below the Supertrend line, it hints at a downtrend, suggesting a potential selling point.
Strategy Goals and Objectives:
1. Trend Identification: At the core of the Supertrend Advance Strategy is the goal to efficiently and consistently identify prevailing market trends. By recognizing these trends, traders can position themselves to capitalize on price movements in their favor.
2. Reducing Noise: Financial markets are often inundated with 'noise' - short-term price fluctuations that can mislead traders. The Supertrend Advance Strategy aims to filter out this noise, allowing for clearer decision-making.
3. Enhancing Risk Management: With clear buy and sell signals, traders can set more precise stop-loss and take-profit points. This leads to better risk management and potentially improved profitability.
4. Versatility: While primarily used for trend identification, the strategy can be integrated with other technical tools and indicators to create a comprehensive trading system.
Type of Assets/Markets to Apply the Strategy:
1. Equities: The Supertrend Advance Strategy is highly popular among stock traders. Its ability to capture long-term trends makes it particularly useful for those trading individual stocks or equity indices.
2. Forex: Given the 24-hour nature of the Forex market and its propensity for trends, the Supertrend Advance Strategy is a valuable tool for currency traders.
3. Commodities: Whether it's gold, oil, or agricultural products, commodities often move in extended trends. The strategy can help in identifying and capitalizing on these movements.
4. Cryptocurrencies: The volatile nature of cryptocurrencies means they can have pronounced trends. The Supertrend Advance Strategy can aid crypto traders in navigating these often tumultuous waters.
5. Futures & Options: Traders and investors in derivative markets can utilize the strategy to make more informed decisions about contract entries and exits.
It's important to note that while the Supertrend Advance Strategy can be applied across various assets and markets, its effectiveness might vary based on market conditions, timeframe, and the specific characteristics of the asset in question. As always, it's recommended to use the strategy in conjunction with other analytical tools and to backtest its effectiveness in specific scenarios before committing to trades.
4. Input Settings
Understanding and correctly configuring input settings is crucial for optimizing the Supertrend Advance Strategy for any specific market or asset. These settings, when tweaked correctly, can drastically impact the strategy's performance.
Grouping Inputs:
Before diving into individual input settings, it's important to group similar inputs. Grouping can simplify the user interface, making it easier to adjust settings related to a specific function or indicator.
Strategy Choice:
This input allows traders to select from various strategies that incorporate the Supertrend indicator. Options might include "Supertrend with RSI," "Supertrend with MACD," etc. By choosing a strategy, the associated input settings for that strategy become available.
Supertrend Settings:
1. Multiplier: Typically, a default value of 3 is used. This multiplier is used in the ATR calculation. Increasing it makes the Supertrend line further from prices, while decreasing it brings the line closer.
2. Period: The number of bars used in the ATR calculation. A common default is 7.
EMA Settings (Exponential Moving Average):
1. Period: Defines the number of previous bars used to calculate the EMA. Common periods are 9, 21, 50, and 200.
2. Source: Allows traders to choose which price (Open, Close, High, Low) to use in the EMA calculation.
RSI Settings (Relative Strength Index):
1. Length: Determines how many periods are used for RSI calculation. The standard setting is 14.
2. Overbought Level: The threshold at which the asset is considered overbought, typically set at 70.
3. Oversold Level: The threshold at which the asset is considered oversold, often at 30.
MACD Settings (Moving Average Convergence Divergence):
1. Short Period: The shorter EMA, usually set to 12.
2. Long Period: The longer EMA, commonly set to 26.
3. Signal Period: Defines the EMA of the MACD line, typically set at 9.
CCI Settings (Commodity Channel Index):
1. Period: The number of bars used in the CCI calculation, often set to 20.
2. Overbought Level: Typically set at +100, denoting overbought conditions.
3. Oversold Level: Usually set at -100, indicating oversold conditions.
SL/TP Settings (Stop Loss/Take Profit):
1. SL Multiplier: Defines the multiplier for the average true range (ATR) to set the stop loss.
2. TP Multiplier: Defines the multiplier for the average true range (ATR) to set the take profit.
Filtering Conditions:
This section allows traders to set conditions to filter out certain signals. For example, one might only want to take buy signals when the RSI is below 30, ensuring they buy during oversold conditions.
Trade Direction and Backtest Period:
1. Trade Direction: Allows traders to specify whether they want to take long trades, short trades, or both.
2. Backtest Period: Specifies the time range for backtesting the strategy. Traders can choose from options like 'Last 6 months,' 'Last 1 year,' etc.
It's essential to remember that while default settings are provided for many of these tools, optimal settings can vary based on the market, timeframe, and trading style. Always backtest new settings on historical data to gauge their potential efficacy.
5. Understanding Strategy Conditions
Developing an understanding of the conditions set within a trading strategy is essential for traders to maximize its potential. Here, we delve deep into the logic behind these conditions, using the Supertrend Advance Strategy as our focal point.
Basic Logic Behind Conditions:
Every strategy is built around a set of conditions that provide buy or sell signals. The conditions are based on mathematical or statistical methods and are rooted in the study of historical price data. The fundamental idea is to recognize patterns or behaviors that have been profitable in the past and might be profitable in the future.
Buy and Sell Conditions:
1. Buy Conditions: Usually formulated around bullish signals or indicators suggesting upward price momentum.
2. Sell Conditions: Centered on bearish signals or indicators indicating downward price momentum.
Simple Strategy:
The simple strategy could involve using just the Supertrend indicator. Here:
• Buy: When price closes above the Supertrend line.
• Sell: When price closes below the Supertrend line.
Pullback Strategy:
This strategy capitalizes on price retracements:
• Buy: When the price retraces to the Supertrend line after a bullish signal and is supported by another bullish indicator.
• Sell: When the price retraces to the Supertrend line after a bearish signal and is confirmed by another bearish indicator.
Indicators Used:
EMA (Exponential Moving Average):
• Logic: EMA gives more weight to recent prices, making it more responsive to current price movements. A shorter-period EMA crossing above a longer-period EMA can be a bullish sign, while the opposite is bearish.
RSI (Relative Strength Index):
• Logic: RSI measures the magnitude of recent price changes to analyze overbought or oversold conditions. Values above 70 are typically considered overbought, and values below 30 are considered oversold.
MACD (Moving Average Convergence Divergence):
• Logic: MACD assesses the relationship between two EMAs of a security’s price. The MACD line crossing above the signal line can be a bullish signal, while crossing below can be bearish.
CCI (Commodity Channel Index):
• Logic: CCI compares a security's average price change with its average price variation. A CCI value above +100 may mean the price is overbought, while below -100 might signify an oversold condition.
And others...
As the strategy expands or contracts, more indicators might be added or removed. The crucial point is to understand the core logic behind each, ensuring they align with the strategy's objectives.
Logic Behind Each Indicator:
1. EMA: Emphasizes recent price movements; provides dynamic support and resistance levels.
2. RSI: Indicates overbought and oversold conditions based on recent price changes.
3. MACD: Showcases momentum and direction of a trend by comparing two EMAs.
4. CCI: Measures the difference between a security's price change and its average price change.
Understanding strategy conditions is not just about knowing when to buy or sell but also about comprehending the underlying market dynamics that those conditions represent. As you familiarize yourself with each condition and indicator, you'll be better prepared to adapt and evolve with the ever-changing financial markets.
6. Trade Execution and Management
Trade execution and management are crucial aspects of any trading strategy. Efficient execution can significantly impact profitability, while effective management can preserve capital during adverse market conditions. In this section, we'll explore the nuances of position entry, exit strategies, and various Stop Loss (SL) and Take Profit (TP) methodologies within the Supertrend Advance Strategy.
Position Entry:
Effective trade entry revolves around:
1. Timing: Enter at a point where the risk-reward ratio is favorable. This often corresponds to confirmatory signals from multiple indicators.
2. Volume Analysis: Ensure there's adequate volume to support the movement. Volume can validate the strength of a signal.
3. Confirmation: Use multiple indicators or chart patterns to confirm the entry point. For instance, a buy signal from the Supertrend indicator can be confirmed with a bullish MACD crossover.
Position Exit Strategies:
A successful exit strategy will lock in profits and minimize losses. Here are some strategies:
1. Fixed Time Exit: Exiting after a predetermined period.
2. Percentage-based Profit Target: Exiting after a certain percentage gain.
3. Indicator-based Exit: Exiting when an indicator gives an opposing signal.
Percentage-based SL/TP:
• Stop Loss (SL): Set a fixed percentage below the entry price to limit potential losses.
• Example: A 2% SL on an entry at $100 would trigger a sell at $98.
• Take Profit (TP): Set a fixed percentage above the entry price to lock in gains.
• Example: A 5% TP on an entry at $100 would trigger a sell at $105.
Supertrend-based SL/TP:
• Stop Loss (SL): Position the SL at the Supertrend line. If the price breaches this line, it could indicate a trend reversal.
• Take Profit (TP): One could set the TP at a point where the Supertrend line flattens or turns, indicating a possible slowdown in momentum.
Swing high/low-based SL/TP:
• Stop Loss (SL): For a long position, set the SL just below the recent swing low. For a short position, set it just above the recent swing high.
• Take Profit (TP): For a long position, set the TP near a recent swing high or resistance. For a short position, near a swing low or support.
And other methods...
1. Trailing Stop Loss: This dynamic SL adjusts with the price movement, locking in profits as the trade moves in your favor.
2. Multiple Take Profits: Divide the position into segments and set multiple TP levels, securing profits in stages.
3. Opposite Signal Exit: Exit when another reliable indicator gives an opposite signal.
Trade execution and management are as much an art as they are a science. They require a blend of analytical skill, discipline, and intuition. Regularly reviewing and refining your strategies, especially in light of changing market conditions, is crucial to maintaining consistent trading performance.
7. Visual Representations
Visual tools are essential for traders, as they simplify complex data into an easily interpretable format. Properly analyzing and understanding the plots on a chart can provide actionable insights and a more intuitive grasp of market conditions. In this section, we’ll delve into various visual representations used in the Supertrend Advance Strategy and their significance.
Understanding Plots on the Chart:
Charts are the primary visual aids for traders. The arrangement of data points, lines, and colors on them tell a story about the market's past, present, and potential future moves.
1. Data Points: These represent individual price actions over a specific timeframe. For instance, a daily chart will have data points showing the opening, closing, high, and low prices for each day.
2. Colors: Used to indicate the nature of price movement. Commonly, green is used for bullish (upward) moves and red for bearish (downward) moves.
Trend Lines:
Trend lines are straight lines drawn on a chart that connect a series of price points. Their significance:
1. Uptrend Line: Drawn along the lows, representing support. A break below might indicate a trend reversal.
2. Downtrend Line: Drawn along the highs, indicating resistance. A break above might suggest the start of a bullish trend.
Filled Areas:
These represent a range between two values on a chart, usually shaded or colored. For instance:
1. Bollinger Bands: The area between the upper and lower band is filled, giving a visual representation of volatility.
2. Volume Profile: Can show a filled area representing the amount of trading activity at different price levels.
Stop Loss and Take Profit Lines:
These are horizontal lines representing pre-determined exit points for trades.
1. Stop Loss Line: Indicates the level at which a trade will be automatically closed to limit losses. Positioned according to the trader's risk tolerance.
2. Take Profit Line: Denotes the target level to lock in profits. Set according to potential resistance (for long trades) or support (for short trades) or other technical factors.
Trailing Stop Lines:
A trailing stop is a dynamic form of stop loss that moves with the price. On a chart:
1. For Long Trades: Starts below the entry price and moves up with the price but remains static if the price falls, ensuring profits are locked in.
2. For Short Trades: Starts above the entry price and moves down with the price but remains static if the price rises.
Visual representations offer traders a clear, organized view of market dynamics. Familiarity with these tools ensures that traders can quickly and accurately interpret chart data, leading to more informed decision-making. Always ensure that the visual aids used resonate with your trading style and strategy for the best results.
8. Backtesting
Backtesting is a fundamental process in strategy development, enabling traders to evaluate the efficacy of their strategy using historical data. It provides a snapshot of how the strategy would have performed in past market conditions, offering insights into its potential strengths and vulnerabilities. In this section, we'll explore the intricacies of setting up and analyzing backtest results and the caveats one must be aware of.
Setting Up Backtest Period:
1. Duration: Determine the timeframe for the backtest. It should be long enough to capture various market conditions (bullish, bearish, sideways). For instance, if you're testing a daily strategy, consider a period of several years.
2. Data Quality: Ensure the data source is reliable, offering high-resolution and clean data. This is vital to get accurate backtest results.
3. Segmentation: Instead of a continuous period, sometimes it's helpful to backtest over distinct market phases, like a particular bear or bull market, to see how the strategy holds up in different environments.
Analyzing Backtest Results:
1. Performance Metrics: Examine metrics like the total return, annualized return, maximum drawdown, Sharpe ratio, and others to gauge the strategy's efficiency.
2. Win Rate: It's the ratio of winning trades to total trades. A high win rate doesn't always signify a good strategy; it should be evaluated in conjunction with other metrics.
3. Risk/Reward: Understand the average profit versus the average loss per trade. A strategy might have a low win rate but still be profitable if the average gain far exceeds the average loss.
4. Drawdown Analysis: Review the periods of losses the strategy could incur and how long it takes, on average, to recover.
9. Tips and Best Practices
Successful trading requires more than just knowing how a strategy works. It necessitates an understanding of when to apply it, how to adjust it to varying market conditions, and the wisdom to recognize and avoid common pitfalls. This section offers insightful tips and best practices to enhance the application of the Supertrend Advance Strategy.
When to Use the Strategy:
1. Market Conditions: Ideally, employ the Supertrend Advance Strategy during trending market conditions. This strategy thrives when there are clear upward or downward trends. It might be less effective during consolidative or sideways markets.
2. News Events: Be cautious around significant news events, as they can cause extreme volatility. It might be wise to avoid trading immediately before and after high-impact news.
3. Liquidity: Ensure you are trading in assets/markets with sufficient liquidity. High liquidity ensures that the price movements are more reflective of genuine market sentiment and not due to thin volume.
Adjusting Settings for Different Markets/Timeframes:
1. Markets: Each market (stocks, forex, commodities) has its own characteristics. It's essential to adjust the strategy's parameters to align with the market's volatility and liquidity.
2. Timeframes: Shorter timeframes (like 1-minute or 5-minute charts) tend to have more noise. You might need to adjust the settings to filter out false signals. Conversely, for longer timeframes (like daily or weekly charts), you might need to be more responsive to genuine trend changes.
3. Customization: Regularly review and tweak the strategy's settings. Periodic adjustments can ensure the strategy remains optimized for the current market conditions.
10. Frequently Asked Questions (FAQs)
Given the complexities and nuances of the Supertrend Advance Strategy, it's only natural for traders, both new and seasoned, to have questions. This section addresses some of the most commonly asked questions regarding the strategy.
1. What exactly is the Supertrend Advance Strategy?
The Supertrend Advance Strategy is an evolved version of the traditional Supertrend indicator. It's designed to provide clearer buy and sell signals by incorporating additional indicators like EMA, RSI, MACD, CCI, etc. The strategy aims to capitalize on market trends while minimizing false signals.
2. Can I use the Supertrend Advance Strategy for all asset types?
Yes, the strategy can be applied to various asset types like stocks, forex, commodities, and cryptocurrencies. However, it's crucial to adjust the settings accordingly to suit the specific characteristics and volatility of each asset type.
3. Is this strategy suitable for day trading?
Absolutely! The Supertrend Advance Strategy can be adjusted to suit various timeframes, making it versatile for both day trading and long-term trading. Remember to fine-tune the settings to align with the timeframe you're trading on.
4. How do I deal with false signals?
No strategy is immune to false signals. However, by combining the Supertrend with other indicators and adhering to strict risk management protocols, you can minimize the impact of false signals. Always use stop-loss orders and consider filtering trades with additional confirmation signals.
5. Do I need any prior trading experience to use this strategy?
While the Supertrend Advance Strategy is designed to be user-friendly, having a foundational understanding of trading and market analysis can greatly enhance your ability to employ the strategy effectively. If you're a beginner, consider pairing the strategy with further education and practice on demo accounts.
6. How often should I review and adjust the strategy settings?
There's no one-size-fits-all answer. Some traders adjust settings weekly, while others might do it monthly. The key is to remain responsive to changing market conditions. Regular backtesting can give insights into potential required adjustments.
7. Can the Supertrend Advance Strategy be automated?
Yes, many traders use algorithmic trading platforms to automate their strategies, including the Supertrend Advance Strategy. However, always monitor automated systems regularly to ensure they're operating as intended.
8. Are there any markets or conditions where the strategy shouldn't be used?
The strategy might generate more false signals in markets that are consolidative or range-bound. During significant news events or times of unexpected high volatility, it's advisable to tread with caution or stay out of the market.
9. How important is backtesting with this strategy?
Backtesting is crucial as it allows traders to understand how the strategy would have performed in the past, offering insights into potential profitability and areas of improvement. Always backtest any new setting or tweak before applying it to live trades.
10. What if the strategy isn't working for me?
No strategy guarantees consistent profits. If it's not working for you, consider reviewing your settings, seeking expert advice, or complementing the Supertrend Advance Strategy with other analysis methods. Remember, continuous learning and adaptation are the keys to trading success.
Other comments
Value of combining several indicators in this script and how they work together
Diversification of Signals: Just as diversifying an investment portfolio can reduce risk, using multiple indicators can offer varied perspectives on potential price movements. Each indicator can capture a different facet of the market, ensuring that traders are not overly reliant on a single data point.
Confirmation & Reduced False Signals: A common challenge with many indicators is the potential for false signals. By requiring confirmation from multiple indicators before acting, the chances of acting on a false signal can be significantly reduced.
Flexibility Across Market Conditions: Different indicators might perform better under different market conditions. For example, while moving averages might excel in trending markets, oscillators like RSI might be more useful during sideways or range-bound conditions. A mashup strategy can potentially adapt better to varying market scenarios.
Comprehensive Analysis: With multiple indicators, traders can gauge trend strength, momentum, volatility, and potential market reversals all at once, providing a holistic view of the market.
How do the different indicators in the Supertrend Advance Strategy work together?
Supertrend: This is primarily a trend-following indicator. It provides traders with buy and sell signals based on the volatility of the price. When combined with other indicators, it can filter out noise and give more weight to strong, confirmed trends.
EMA (Exponential Moving Average): EMA gives more weight to recent price data. It can be used to identify the direction and strength of a trend. When the price is above the EMA, it's generally considered bullish, and vice versa.
RSI (Relative Strength Index): An oscillator that measures the magnitude of recent price changes to evaluate overbought or oversold conditions. By cross-referencing with other indicators like EMA or MACD, traders can spot potential reversals or confirmations of a trend.
MACD (Moving Average Convergence Divergence): This indicator identifies changes in the strength, direction, momentum, and duration of a trend in a stock's price. When the MACD line crosses above the signal line, it can be a bullish sign, and when it crosses below, it can be bearish. Pairing MACD with Supertrend can provide dual confirmation of a trend.
CCI (Commodity Channel Index): Initially developed for commodities, CCI can indicate overbought or oversold conditions. It can be used in conjunction with other indicators to determine entry and exit points.
In essence, the synergy of these indicators provides a balanced, comprehensive approach to trading. Each indicator offers its unique lens into market conditions, and when they align, it can be a powerful indication of a trading opportunity. This combination not only reduces the potential drawbacks of each individual indicator but leverages their strengths, aiming for more consistent and informed trading decisions.
Backtesting and Default Settings
• This indicator has been optimized to be applied for 1 hour-charts. However, the underlying principles of this strategy are supply and demand in the financial markets and the strategy can be applied to all timeframes. Daytraders can use the 1min- or 5min charts, swing-traders can use the daily charts.
• This strategy has been designed to identify the most promising, highest probability entries and trades for each stock or other financial security.
• The combination of the qualifiers results in a highly selective strategy which only considers the most promising swing-trading entries. As a result, you will normally only find a low number of trades for each stock or other financial security per year in case you apply this strategy for the daily charts. Shorter timeframes will result in a higher number of trades / year.
• Consequently, traders need to apply this strategy for a full watchlist rather than just one financial security.
• Default properties: RSI on (length 14, RSI buy level 50, sell level 50), EMA, RSI, MACD on, type of strategy pullback, SL/TP type: ATR (length 10, factor 3), trade direction both, quantity 5, take profit swing hl 5.1, highest / lowest lookback 2, enable ATR trail (ATR length 10, SL ATR multiplier 1.4, TP multiplier 2.1, lookback = 4, trade direction = both).
Volume Profile with a few polylinesThe base of "Volume Profile with a few polylines" is another script of mine, Volume Profile (Maps) .
The structure of maps is used to gather the data. However, the drawings is done with polylines.
This enables coders to draw an entire volume profile with just a few polylines, while the range is broader.
This results in the benefit to draw more "lines" than with line.new() / box.new() alone.
🔶 CONCEPTS
🔹 Polylines
polyline.new creates a new polyline instance and displays it on the chart, sequentially connecting all of the points in the `points` array with line segments.
The segments in the drawing can be straight or curved depending on the `curved` parameter.
In this script, points are connected, starting from the bottom. The created line moves up until there is a price level where a volume value needs to be displayed,
at which the line goes to the left to the concerning volume value, coming back at the same price level until the line returns to its initial x-axis,
after which the line will continue to rise until all values are displayed.
A polyline can contain maximum 10000 points (10K).
Since the line has to go back and forth, each price/volume line takes 3 points.
In the case that 20K bars all have a different price, we would need 60K points, or just 6 polylines. A maximum of 100 polylines can be displayed.
The 3 highest volume values are displayed with line.new(), each with their own colour.
🔹 Maps
A map object is a collection that consists of key - value pairs
Each key is unique and can only appear once. When adding a new value with a key that the map already contains, that value replaces the old value associated with the key .
You can change the value of a particular key though, for example adding volume (value) at the same price (key), the latter technique is used in this script.
Volume is added to the map, associated with a particular price (default close, can be set at high, low, open,...)
When the map already contains the same price (key), the value (volume) is added to the existing volume at the associated price.
A map can contain maximum 50K values, which is more than enough to hold 20K bars (Basic 5K - Premium plan 20K), so the whole history can be put into a map.
🔹 Rounding function
This publication contains 2 round functions, which can be used to widen the Volume Profile
Round
• "Round" set at zero -> nothing changes to the source number
• "Round" set below zero -> x digit(s) after the decimal point, starting from the right side, and rounded.
• "Round" set above zero -> x digit(s) before the decimal point, starting from the right side, and rounded.
Example: 123456.789
0->123456.789
1->123456.79
2->123456.8
3->123457
-1->123460
-2->123500
Step
Another option is custom steps.
After setting "Round" to "Step", choose the desired steps in price,
Examples
• 2 -> 1234.00, 1236.00, 1238.00, 1240.00
• 5 -> 1230.00, 1235.00, 1240.00, 1245.00
• 100 -> 1200.00, 1300.00, 1400.00, 1500.00
• 0.05 -> 1234.00, 1234.05, 1234.10, 1234.15
•••
🔶 FEATURES
🔹 Volume * currency
Let's take as example BTCUSD, relative to USD, 10 volume at a price of 100 BTCUSD will be very different than 10 volume at a price of 30000 (1K vs. 300K)
If you want volume to be associated with USD, enable Volume * currency . Volume will then be multiplied by the price:
• 10 volume, 1 BTC = 100 -> 1000
• 10 volume, 1 BTC = 30K -> 300K
Polylines has the attributes curved & closed.
When "curved" is enabled the drawing will connect all points from the `points` array using curved line segments.
When "closed" is enabled the drawing will also connect the first point to the last point from the `points` array, resulting in a closed polyline.
They are default disabled, but can be enabled:
🔶 DETAILS
🔹 Put
When the map doesn't contain a price, it will be added, using map.put(id, key, value)
In our code:
map.put(originalMap, price, volume)
or
originalMap.put(price, volume)
A key (price) is now associated with a value (volume) -> key : value
Since all keys are unique, we don't have to know its position to extract the value, we just need to know the key -> map.get(id, key)
We use map.get() when a certain key already exists in the map, and we want to add volume with that value.
if originalMap.contains(price)
originalMap.put(price, originalMap.get(price) + volume)
-> At the last bar, all prices (source) are now associated with volume.
🔶 SETTINGS
Source : Set source of choice; default close , can be set as high , low , open , ...
Volume & currency : Enable to multiply volume with price (see Features )
Amount of bars : Set amount of bars which you want to include in the Volume Profile
🔹 Round -> ' Round/Step '
Round -> see Concepts
Step -> see Concepts
🔹 Display Volume Profile
Offset: shifts the Volume Profile (max. 500 bars to the right of last bar, see Features )
Max width Volume Profile: largest volume will be x bars wide, the rest is displayed as a ratio against largest volume (see Features )
Colours
Curved: make lines curved
Closed: connect last with first point
🔶 LIMITATIONS
• Lines won't go further than first bar (coded).
• The Volume Profile can be placed maximum 500 bar to the right of last price.
Machine Learning: MFI Heat Map [YinYangAlgorithms]Overview:
MFI Heat Maps are a visually appealing way to display the values of 29 different MFIs at the same time while being able to make sense of it. Each plot within the Indicator represents a different MFI value. The higher you get up, the longer the length that was used for this MFI. This Indicator also features the use of Machine Learning to help balance the MFI levels. It doesn’t solely rely upon Machine Learning but instead incorporates a growing length MFI averaged with the Machine Learning MFI at any given index.
For instance, say we are calculating the 10th plot from the bottom, the MFI would be an average of:
MFI(source, 11)
Machine Learning MFI at Index of 10
We do it this way as they both help smooth each other out without relying solely on just one calculation method.
Due to plot limitations, you are capped at 28 Plot Amounts within this indicator, but that is still quite a bit of information you can glean from a Heat Map.
The Machine Learning used in this indicator is of the K-Nearest Neighbor (KNN). It uses a Fast and Slow MFI calculation then sorts through them over Machine Learning Length and calculates the differences between them. It then slices off KNN length to create our Max/Min Distances allotted. It adds the average between Fast and Slow MFIs to a Viable Distances array if their distances are within the KNN Min/Max distance. It then averages all distances in the Viable Distances array and returns the result.
The result of the KNN Function is saved to another ML Data array whose length is that of Plot Amount (Heat Map Size). This way each Index of the ML Data array can be indexed according to the Heat Map Size.
The Average of the ML Data array is the MFI line (white) that you’ll see plotted on the Indicator. There is also the SMA of the MFI Average (orange) which is likewise plotted. These plots allow you to visualize where the ML MFI is sitting and can potentially be useful for seeing when the MFI Average and SMA cross over and under each other.
We’ve heard many people talk highly of RSI, but sadly not too many even refer to MFI. MFI oftentimes may be overlooked, especially with new traders who may not even know what it is. Essentially MFI is an RSI but it also incorporates Volume into its calculations, which in our opinion leads to a more accurate reading; afterall, what is price movement without Volume.
Tutorial:
You may be thinking, this Indicator looks appealing to the eye, but how do I benefit from it trading wise?
Before we get into our visual examples, let's talk briefly about what makes Heat Maps in general a useful tool for trading. Heat Maps give us the ability to visualize and understand lots of data while removing the clutter. We can understand the data of 29 different MFIs without having to look at and decipher 29 different MFI plots. When you overlay too many MFI lines on top of each other, they can be very difficult to read and oftentimes end up actually hindering your Technical Analysis. For this reason, we have a simple solution to this problem; Heat Maps. This MFI Heat Map allows you to easily know (in a relative %) what the MFI level is for varying lengths. For Instance, the First (bottom) plot indexes an MFI of (K(0) (loop of Plot Amount) + Smoothing Length (default 1)) = 1. Since this is indexing (usually) a very low length, it will change much quicker. Whereas the Last (top) plot indexes an MFI of (K(27) (loop of Plot Amount) + Smoothing Length (default 1)) = 28. This is indexing a much higher length of MFI which results in the MFI the higher you go up in the Heat Map to move much slower.
Heat Maps give us the ability to see changes happening over multiple MFIs at the same time, which can be very useful for seeing shifts in MFI / Momentum. Remember, MFI incorporates Volume, so even if the price goes up a lot, if there was low volume, the MFI won’t move as much as an RSI would. However, likewise, if there is high volume but low price movement, the MFI will move slightly more than the RSI.
Heat Maps change color based on their MFI level. If the MFI is >= 90 it is HOT (red), if the MFI <= 9 it is COLD (teal, think of ICE). Green represents an MFI of 50-59 and Dark Blue represents an MFI of 40-49. Green and Dark blue are the most common colors as all the others are more ‘Extreme’ MFI levels.
Okay, time to get to the Examples :
Since there is so much going on in Heat Maps, we’ve decided to focus this tutorial to this specific area and talk about individual locations before talking about it as a whole.
If you refer to the example above where there are 2 white circles; these white circles are highlighting a key location you’ll be wanting to identify within your Heat Maps, many things are happening here:
The MFI crossed over the SMA (bullish).
The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like).
The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI).
The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI).
The 4 Key points above, all point towards potential Bullish Momentum changes. You’re likely wondering, but why? Let's discuss about each one in more specific detail:
1. The MFI crossed over the SMA (bullish): What this tells us is that the current MFI Average is now greater than its average over the last (default) 16 bars. This means there's been a large amount of Money Flow (Price and Volume) recently (subjectively based on the last (default) 16 average). This is one of the leading Bullish / Bearish signals you will see within this Indicator. You can enable Signals within the Settings and/or even add Alerts for when these crossings occur.
2. The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like): This shows us that the index’s in the mid (if using all 28 heat map plots it would be at 14) has already received some of this momentum change. If you look at the second white circle (right), you’ll also notice the higher MFI plot indexes are also green. This is because since their length is long they still have some momentum and strength from the first white circle (left). Just because the first white circle failed in its bullish push, doesn’t mean it didn’t achieve momentum that would later on help to push the price up.
3. The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI): It occurred somewhat in the left white circle, but mainly in the right white circle. This shows us the MFI is very high on the lower lengths, this may lead to the current, middle and higher length MFIs following suit soon. Remember it has to work its way up, the higher levels can’t go red unless the lower levels go red first and the higher levels can also lag quite a bit behind and take awhile to catch up, this is normal, expected and meant to happen. Vice versa is also true with getting higher levels to go cold (light teal (think of ICE)).
4. The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI): You might think at first that this is a bad thing, but it's not! Remember you want to be Fearful when others are Greedy and Greedy when others are Fearful! You don’t want to buy when the higher levels have a high MFI, you want to buy when you see the momentum pushing up in the lower MFI levels (getting yellow/orange/red in the low levels) while it is still Cold in the higher levels (BLUE OR GREEN, nothing higher than green as it is already slightly too high). There will be many times that it is Yellow or possibly Orange in the high levels and the bullish push still happens, but this is much more risky! The key to trading is to minimize risks while maximizing potential.
Hopefully now you’re getting an idea of how to spot potential bullish momentum changes, but what about bearish momentum changes? Technically they are the exact opposite, so we don’t need to go into as much detail, but lets still take a look at a few examples:
In the example above we marked the 3 times where it was displaying overly bullish characteristics. We marked the bullish momentum occurring with arrows. If you look closely at the start of the arrow to where it finishes, you’ll notice how the heat (HOT)(RED) works its way up from the lower levels to the higher levels. We then see the MFI to SMA cross under. In all 3 of these examples the heat made it all the way to the top of the chart. These are all very bearish signals that represent a bearish momentum movement that may occur soon.
Also, please note, the level the MFI is at DOES matter! That line isn’t there simply for you to see when there are crosses over and under. The MFI is considered to be Overbought when it is greater than 70 (the upper white dashed line, it is just formatted to be on a different scale cause there are 28 plots, but it represents 70). The MFI is considered to be Oversold when it is less than 30 (the lower white dashed line).
If we look to the left a little here where a big drop in price occurred shortly after our MFI and SMA crossed, would we have been able to identify it using the Heat Maps? Likely, No. There was some color change in the lower levels a few bars prior that went yellow/orange/red but before this cross happened they all went back to Dark Blue. In the middle section when the cross happened it was only Green and Yellow and in the upper section we are Blue. This would be a very risky trade to go on as the only real Bearish Indication was the MFI to SMA cross under. Remember, you want to reduce risk, you don’t want to simply trade on everytime the MFI and SMA cross each other or you’ll be getting yourself into many risky trades based on false signals.
Based on what you’ve learned above, can you see the signs that are indicating where this white circle may have potential for a bullish momentum change?
Now that we are more zoomed in, you may also be noticing there are colors to the price bars. This can be disabled in the settings, but just so you know what they mean, let’s zoom in a little more and talk about it.
We’ve condensed the Indicator a bit so you can see the bars better here. The colors that are displayed on these bars are the Heat Map value for your MFI (the white line in the Indicator). This way you can better see when the Price is Hot and Cold. As you may see while looking, the colors generally go from cold to hot when bullish momentum is happening and hot to cold when bearish momentum is happening. We don’t recommend solely looking at the bars as indicators to MFI momentum change, as seeing the Heat Map will give you much more data; however it can be nice to see the Heat Map projected on the bars rather than trying to eyeball it yourself or hover over each bar specifically to see their levels.
We will conclude our Tutorial here. Hopefully this has given you some insight to how useful Heat Maps can be and why it works well with a Machine Learning (KNN) Model applied to the MFI.
PLEASE NOTE: You can adjust the line width for the Heat Map within the settings. If you condense the Indicator a lot or have a small screen, likely use a length of 1-2. If you have it stretched out or a large screen, a length of 2-3 will work nice. You just don’t want to have the lines overlapping or it defeats the purpose of a Heat Map. Also, the bigger the linewidth, generally you’ll want to increase the Transparency within the Settings also as it can get quite bright and hurt your eyes over time.
Settings:
MFI:
Show MFI and SMA Crossing Signals: MFI and SMA Crossing is one of the leading Bullish and Bearish Signals in this Indicator. You can also add alerts for these signals.
Plot Amount: How many plots are used in this Heat Map. (2 - 28).
Source: The Source to use in all MFI calculations.
Smooth Initial MFI Length: How much to smooth the Fast and Slow MFI calculation by. 1 = No smoothing.
MFI SMA Length: What length we smooth the MFI Average over to get our MFI SMA.
Machine Learning:
Average MFI data by adding a lookback to the Source: While populating our Heat Map with the MFI's, should use use the Source each MFI Length increase or should we also lookback a Source each MFI Length Increase.
KNN Distance Requirement: To be a valid KNN, it needs to abide by a Distance calculation. Generally only Max is used, but you can change it if it suits your trading style better.
Machine Learning Length: How much ML data should we store? The longer the length generally the smoother the result; which may not be as accurate for something like a Heat Map, so keeping this relatively low may lead to more accurate results.
KNN Length: How many KNN are used in the slice to calculate max/min distance allowed.
Fast Length: Fast MFI length used in KNN to calculate distances by comparing its distance with the Slow MFI Length.
Slow Length: Slow MFI length used in KNN to calculate distances by comparing its distance with the Fast MFI Length.
Smoothing Length: When populating our Heat Map, at what length do we start our MFI calculations with (A Higher value with result in a slower and more smoothed MFI / Heat Map).
Colors:
Change Bar Color: Change bar colors to MFI Avg Color.
Heat Map Transparency: If there isn't any transparency it can be a little hard on the eyes. The Greater the Line Width, generally the more transparency you'll want for your eyes.
Line Width: Set how wide the Heat Map lines are
MFI 90-100 Color: Color when the MFI is between these levels.
MFI 80-89 Color: Color when the MFI is between these levels.
MFI 70-79 Color: Color when the MFI is between these levels.
MFI 60-69 Color: Color when the MFI is between these levels.
MFI 50-59 Color: Color when the MFI is between these levels.
MFI 40-49 Color: Color when the MFI is between these levels.
MFI 30-39 Color: Color when the MFI is between these levels.
MFI 20-29 Color: Color when the MFI is between these levels.
MFI 10-19 Color: Color when the MFI is between these levels.
MFI 0-100 Color: Color when the MFI is between these levels.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Machine Learning: Support and Resistance [YinYangAlgorithms]Overview:
Support and Resistance is normally based upon Pivot Points and Highest Highs and Lowest Lows. Many times coders even incorporate Volume, RSI and other factors into the equation. However there may be a downside to doing a pure technical approach based on historical levels. We live in a time where Machine Learning is becoming more and more used; thus we have decided to create a Machine Learning Support and Resistance Projection based Indicator. Rather than using traditional Support and Resistance calculations using historical data, we have taken a rather different approach. This Indicator instead attempts to Predict and Project where Support and Resistance locations will be based on a Machine Learning Model using a form of KNN (k-Nearest Neighbors).
Since this indicator creates a Projection of where it deems Support and Resistance will be, it has the ability to move its Support and Resistance before the price even gets to it if it believes it will surpass its projections. This may create a more accurate placement of Support and Resistance as they’re not based on historical levels.
This Indicator does not Repaint.
How it works:
This Indicator makes its projections based on the source you provide (by default close) of the previous bar and submits the source, RSI and EMA to our Projection Function to get its projection of the current bar.
The Projection function essentially calculates potential movement after finding the differences between the source the MA from the current bar, previous bar and average over the span of Machine Learning Length.
Potential movement is defined as:
Average Difference + Average(Machine Learning Average, Average Last Distance)
Average Difference: (Absolute value of Current Source - Current MA) - (Absolute value of Machine Learning Average - Machine Learning MA)
Average Last Distance: Average(Current Source - Current MA, Previous Source - Previous MA)
It then predicts the next bars directional movement (bullish or bearish bar) using several factors:
Previous Source > Previous MA
Current Source - Current MA > Average Source - Average MA
Current RSI > Previous RSI
Current RSI > 30 and Previous RSI <= 30
Current RSI < 70 and Previous RSI >= 70
This helps us to predict the direction the next bar may move.
We then calculate a multiplier that we apply to our Potential Movement value to get our final result which is our Current Bars Close Projection.
Our multiplier is calculated using:
(Current RSI > 30 and Previous RSI <= 30) OR (Current RSI < 70 and Previous RSI >= 70)
Current Source - Current MA > Previous Source - Previous MA
We then create an array and fill it with the previous X projections (Machine Learning Length) and send it to another function. This function, if told to, will sort the data accordingly and then output the KNN average of the length given.
We calculate and plot various KNN lengths to create different Zones:
Strong Support: Length of 2 but sort the data Ascending (low to high)
Strong Resistance: Length of 2 but sort the data Descending (high to low)
Support: Length of Machine Length Length / 10 or Min of 2 sorted by Ascending
Resistance: Length of Machine Length Length / 10 or Min of 2 sorted by Descending
There are also 4 other plots you may be wondering what they are, there is your AVG, VWMA, Long Term Memory and Current Projection.
By default your Current Projection is disabled in settings but you can enable it if you are curious to see how the projections for each close are calculated. It is, however, not a crucial point of interest (white line).
The average is simply the average value of the Machine Learning Data (purple line).
The VWMA is a VWMA calculation applied to our Data over a length specified in settings (by default 1)(blue line). The VWMA is crucial when combined with the Avg as they can cross over and under each other. These crosses represent potential Bullish and Bearish zones.
Lastly, but certainly not least, we have the Long Term Memory (maroon line). The Long Term Memory can be displayed either as an ‘Average’, ‘Hard Line’ or ‘None’. The Long Term Average is only updated every Machine Learning Length Bar Index’s and is populated with the average of the Machine Learning Data. For Instance, if Machine Learning Length is set to 100, the Long Term Memory is only updated every 100 bars, and since its length is the same as the Machine Learning Length, that means its data is composed of 10,000 bars worth of data. The Long Term Memory may be very beneficial for determining where Support and Resistance lie over the Long Term within a Machine Learning Algorithm. When set to ‘Average’ it plots the connection lines diagonally, and although they may be more visually appealing, they’re less useful when it comes to actually seeing support and resistance as generally speaking, support and resistance lie on the horizontal. When set to ‘Hard Line’ the Long Term Memory is connected with hard lines and holds the price value until the next time it is updated. This makes it much more useful for potentially identifying Support and Resistance.
Tutorial:
Here is an overview of what the Indicator looks like, now let's start to dissect it.
In the example above we can see how all of the lines between the Major Support and Resistance zones may act as BOTH Support and Resistance depending on which side the price is currently on. In the circle on the left, we can see how it can fluctuate between the two. If you look at the circle on the right, we can see how the Average line acts as a strong support before it fails to maintain it. Generally speaking, most Support and Resistance locations may potentially fail to hold after 3 tests, as the Average did in this example.
As you can see, the Support and Resistance doesn’t wait to be tested before adjusting, which is why there are 2 lines which create their zones. The inner line is the Support/Resistance and the outer line is the Strong Support/Resistance. The Yellow Circle shows the inner line was able to calculate the moving resistance correctly and then adjusted accordingly as it was projecting the price to keep increasing. However, if you look at the White Circle, you can see that since there was first a crash, and then parabolic movement, that the inner zone could not move and predict the resistance as well as the outer zone could.
We consider the price to be ‘Overvalued’ when it is above the VWMA (blue line) and ‘Undervalued’ when it is below the VWMA. It is considered ‘fair’ price when it is within the VWMA to Average zone (between the blue and purple lines). If you look at the example above, you’ll notice where the two yellow circles are, it is not only considered ‘Overvalued’, but it then proceeds to ride the inner resistance line upwards. This is common when the market is overly bullish and vice versa when it is bearish. Please keep in mind, although it is common, it doesn’t mean a correction can’t happen.
In this example above we look at the last bull run that may have started due to the halving. This bull run was very bullish as you can see in the example above. The price was constantly sitting within the Resistance Zone and the VWMA that was very close to it was constantly acting as a Support. Naturally, due to the Algorithm used in this Indicator, as the momentum starts to slow down, the VWMA (blue line) will start to space out more and more from the Resistance Zone. This doesn’t mean the momentum is gone, it just means it may be slowing down.
Unfortunately we have to study the Bear Market with a different perspective than the Bull Market. However, there are still some similarities within the two. If you refer to the example above and the previous example, you can clearly see that the Bull Market loves to stay with the Resistance Zone and use the VWMA as a Support. However, the Bear Market does not. This is a normal occurrence, however we can see from the example above you may see a correction / horizontal movement when the Outer Support Line is touched. If you look at all 3 yellow circles, the Outer Support Line was touched, then either a small correction or horizontal consolidation occurred.
We will conclude our Tutorial here, hopefully you’ll be able to benefit from a moving Support and Resistance calculated with Machine Learning that projects its locations, rather than using traditional calculations.
Settings:
Source: This source is the base for all our calculations
Machine Learning Length: How much projection data are we storing and using to make calculations.
Smoothing Length: We need to smooth calculations such as RSI, EMA and VWMA. What length are we smoothing it with?
VWMA ML Projection Length: How far into our Machine Learning data should we average for our VWMA. Please note the 'Smoothing Length' is still applied here after getting the Projection Average.
Long Term Memory: Long term memory has the same storage length but is only updated once per Machine Learning Length. For instance, if Machine Learning Length is 100, it will save the Average of our data once every 100 bars. This means its memory is an average of 10,000 bars of Machine Learning. 'Average' connects its values diagonally whereas 'Hard Line' holds its value until it changes.
Use Average Last Distance In Potential Movement: This can help accuracy but generally also displaces the Support and Resistance by projecting it further.
Show Current Projection: Projections occur for each bar, and our Machine Learning utilizes these projections by storing and evaluating them. This toggle will display the Current Projection Line which is used to create all our Projections.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Fibonacci TradingFibonacci Trading
This simple script draw Fibonacci Retracement to define pullback level and draw Fibonacci Extension to define target level of a upward wave or doward wave
1. Upward wave
1.1 Fibonacci Retracement
+ Fibonacci Retracement measuare from support to nearest resistance on the right.
+ Retracement Level 0 named as "Breake Even"
+ Retracement Level 100 named as "Long Invalidation"
+ Retracement Level 50 and 61.8 is ploted as blue line
+ The zone between Retracement Level 50 and 100 is filled by blue color and named as "Buy zone"
1.2 Fibonacci Extension
+ Fibonacci Extension measuare from Retracement Level 61.8 to Retracement Level 0
+ Fibonacci Extension Level 161.8 named as "Tp1 (Target point 1)"
+ Fibonacci Extension Level 261.8 named as "Tp2 (Target point 2)"
2. Doward wave
2.1 Fibonacci Retracement
+ Fibonacci Retracement measuare from resistance to nearest support on the right.
+ Retracement Level 0 named as "Breake Even"
+ Retracement Level 100 named as "Short Invalidation"
+ Retracement Level 50 and 61.8 is ploted as red line
+ The zone between Retracement Level 50 and 100 is filled by red color and named as "Sell zone"
2.2 Fibonacci Extension
+ Fibonacci Extension measuare from Retracement Level 61.8 to Retracement Level 0
+ Fibonacci Extension Level 161.8 named as "Tp1 (Target point 1)"
+ Fibonacci Extension Level 261.8 named as "Tp2 (Target point 2)"
3. Trading Setup
3.1 Long Only: Only display Fibonacci of Upward wave
3.2 Short Only: Only display Fibonacci of Doward wave
3.3 Both: Display both Fibonacci of Upward wave and Doward wave
Multi-Timeframe Trend Detector [Alifer]Here is an easy-to-use and customizable multi-timeframe visual trend indicator.
The indicator combines Exponential Moving Averages (EMA), Moving Average Convergence Divergence (MACD), and Relative Strength Index (RSI) to determine the trend direction on various timeframes: 15 minutes (15M), 30 minutes (30M), 1 hour (1H), 4 hours (4H), 1 day (1D), and 1 week (1W).
EMA Trend : The script calculates two EMAs for each timeframe: a fast EMA and a slow EMA. If the fast EMA is greater than the slow EMA, the trend is considered Bullish; if the fast EMA is less than the slow EMA, the trend is considered Bearish.
MACD Trend : The script calculates the MACD line and the signal line for each timeframe. If the MACD line is above the signal line, the trend is considered Bullish; if the MACD line is below the signal line, the trend is considered Bearish.
RSI Trend : The script calculates the RSI for each timeframe. If the RSI value is above a specified Bullish level, the trend is considered Bullish; if the RSI value is below a specified Bearish level, the trend is considered Bearish. If the RSI value is between the Bullish and Bearish levels, the trend is Neutral, and no arrow is displayed.
Dashboard Display :
The indicator prints arrows on the dashboard to represent Bullish (▲ Green) or Bearish (▼ Red) trends for each timeframe.
You can easily adapt the Dashboard colors (Inputs > Theme) for visibility depending on whether you're using a Light or Dark theme for TradingView.
Usage :
You can adjust the indicator's settings such as theme (Dark or Light), EMA periods, MACD parameters, RSI period, and Bullish/Bearish levels to adapt it to your specific trading strategies and preferences.
Disclaimer :
This indicator is designed to quickly help you identify the trend direction on multiple timeframes and potentially make more informed trading decisions.
You should consider it as an extra tool to complement your strategy, but you should not solely rely on it for making trading decisions.
Always perform your own analysis and risk management before executing trades.
The indicator will only show a Dashboard. The EMAs, RSI and MACD you see on the chart image have been added just to demonstrate how the script works.
DETAILED SCRIPT EXPLANATION
INPUTS:
theme : Allows selecting the color theme (options: "Dark" or "Light").
emaFastPeriod : The period for the fast EMA.
emaSlowPeriod : The period for the slow EMA.
macdFastLength : The fast length for MACD calculation.
macdSlowLength : The slow length for MACD calculation.
macdSignalLength : The signal length for MACD calculation.
rsiPeriod : The period for RSI calculation.
rsiBullishLevel : The level used to determine Bullish RSI condition, when RSI is above this value. It should always be higher than rsiBearishLevel.
rsiBearishLevel : The level used to determine Bearish RSI condition, when RSI is below this value. It should always be lower than rsiBullishLevel.
CALCULATIONS:
The script calculates EMAs on multiple timeframes (15-minute, 30-minute, 1-hour, 4-hour, daily, and weekly) using the request.security() function.
Similarly, the script calculates MACD values ( macdLine , signalLine ) on the same multiple timeframes using the request.security() function along with the ta.macd() function.
RSI values are also calculated for each timeframe using the request.security() function along with the ta.rsi() function.
The script then determines the EMA trends for each timeframe by comparing the fast and slow EMAs using simple boolean expressions.
Similarly, it determines the MACD trends for each timeframe by comparing the MACD line with the signal line.
Lastly, it determines the RSI trends for each timeframe by comparing the RSI values with the Bullish and Bearish RSI levels.
PLOTTING AND DASHBOARD:
Color codes are defined based on the EMA, MACD, and RSI trends for each timeframe. Green for Bullish, Red for Bearish.
A dashboard is created using the table.new() function, displaying the trend information for each timeframe with arrows representing Bullish or Bearish conditions.
The dashboard will appear in the top-right corner of the chart, showing the Bullish and Bearish trends for each timeframe (15M, 30M, 1H, 4H, 1D, and 1W) based on EMA, MACD, and RSI analysis. Green arrows represent Bullish trends, red arrows represent Bearish trends, and no arrows indicate Neutral conditions.
INFO ON USED INDICATORS:
1 — EXPONENTIAL MOVING AVERAGE (EMA)
The Exponential Moving Average (EMA) is a type of moving average (MA) that places a greater weight and significance on the most recent data points.
The EMA is calculated by taking the average of the true range over a specified period. The true range is the greatest of the following:
The difference between the current high and the current low.
The difference between the previous close and the current high.
The difference between the previous close and the current low.
The EMA can be used by traders to produce buy and sell signals based on crossovers and divergences from the historical average. Traders often use several different EMA lengths, such as 10-day, 50-day, and 200-day moving averages.
The formula for calculating EMA is as follows:
Compute the Simple Moving Average (SMA).
Calculate the multiplier for weighting the EMA.
Calculate the current EMA using the following formula:
EMA = Closing price x multiplier + EMA (previous day) x (1-multiplier)
2 — MOVING AVERAGE CONVERGENCE DIVERGENCE (MACD)
The Moving Average Convergence Divergence (MACD) is a popular trend-following momentum indicator used in technical analysis. It helps traders identify changes in the strength, direction, momentum, and duration of a trend in a financial instrument's price.
The MACD is calculated by subtracting a longer-term Exponential Moving Average (EMA) from a shorter-term EMA. The most commonly used time periods for the MACD are 26 periods for the longer EMA and 12 periods for the shorter EMA. The difference between the two EMAs creates the main MACD line.
Additionally, a Signal Line (usually a 9-period EMA) is computed, representing a smoothed version of the MACD line. Traders watch for crossovers between the MACD line and the Signal Line, which can generate buy and sell signals. When the MACD line crosses above the Signal Line, it generates a bullish signal, indicating a potential uptrend. Conversely, when the MACD line crosses below the Signal Line, it generates a bearish signal, indicating a potential downtrend.
In addition to the MACD line and Signal Line crossovers, traders often look for divergences between the MACD and the price chart. Divergence occurs when the MACD is moving in the opposite direction of the price, which can suggest a potential trend reversal.
3 — RELATIVE STRENGHT INDEX (RSI):
The Relative Strength Index (RSI) is another popular momentum oscillator used by traders to assess the overbought or oversold conditions of a financial instrument. The RSI ranges from 0 to 100 and measures the speed and change of price movements.
The RSI is calculated based on the average gain and average loss over a specified period, commonly 14 periods. The formula involves several steps:
Calculate the average gain over the specified period.
Calculate the average loss over the specified period.
Calculate the relative strength (RS) by dividing the average gain by the average loss.
Calculate the RSI using the following formula: RSI = 100 - (100 / (1 + RS))
The RSI oscillates between 0 and 100, where readings above 70 are considered overbought, suggesting that the price may have risen too far and could be due for a correction. Readings below 30 are considered oversold, suggesting that the price may have dropped too much and could be due for a rebound.
Traders often use the RSI to identify potential trend reversals. For example, when the RSI crosses above 30 from below, it may indicate the start of an uptrend, and when it crosses below 70 from above, it may indicate the start of a downtrend. Additionally, traders may look for bullish or bearish divergences between the RSI and the price chart, similar to the MACD analysis, to spot potential trend changes.
120x ticker screener (composite tickers)In specific circumstances, it is possible to extract data, far above the 40 `request.*()` call limit for 1 single script .
The following technique uses composite tickers . Changing tickers needs to be done in the code itself as will be explained further.
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
🔶 PRINCIPLE
Standard example:
c1 = request.security('MTLUSDT' , 'D', close)
This will give the close value from 1 ticker (MTLUSDT); c1 for example is 1.153
Now let's add 2 tickers to MTLUSDT; XMRUSDT and ORNUSDT with, for example, values of 1.153 (I), 143.4 (II) and 0.8242 (III) respectively.
Just adding them up 'MTLUSDT+XMRUSDT+ORNUSDT' would give 145.3772 as a result, which is not something we can use...
Let's multiply ORNUSDT by 100 -> 14340
and multiply MTLUSDT by 1000000000 -> 1153000000 (from now, 10e8 will be used instead of 1000000000)
Then we make the sum.
When we put this in a security call (just the close value) we get:
c1 = request.security('MTLUSDT*10e8+XMRUSDT*100+ORNUSDT', 'D', close)
'MTLUSDT*10e8+XMRUSDT*100+ORNUSDT' -> 1153000000 + 14340 + 0.8242 = 1153014340.8242 (a)
This (a) will be split later on, for example:
1153014330.8242 / 10e8 = 1.1530143408242 -> round -> in this case to 1.153 (I), multiply again by 10e8 -> 1153000000.00 (b)
We subtract this from the initial number:
1153014340.8242 (a)
- 1153000000.0000 (b)
–––––––––––––––––
14340.8242 (c)
Then -> 14340.8242 / 100 = 143.408242 -> round -> 143.4 (II) -> multiply -> 14340.0000 (d)
-> subtract
14340.8242 (c)
- 14340.0000 (d)
––––––––––––
0.8242 (III)
Now we have split the number again into 3 tickers: 1.153 (I), 143.4 (II) and 0.8242 (III)
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
In this publication the function compose_3_() will make a composite ticker of 3 tickers, and the split_3_() function will split these 3 tickers again after passing 1 request.security() call.
In this example:
t46 = 'BINANCE:MTLUSDT', n46 = 10e8 , r46 = 3, t47 = 'BINANCE:XMRUSDT', n47 = 10e1, r47 = 1, t48 = 'BINANCE:ORNUSDT', r48 = 4 // T16
•••
T16= compose_3_(t48, t47, n47, t46, n46)
•••
= request.security(T16, res, )
•••
= split_3_(c16, n46, r46, n47, r47, r48)
🔶 CHANGING TICKERS
If you need to change tickers, you only have to change the first part of the script, USER DEFINED TICKERS
Back to our example, at line 26 in the code, you'll find:
t46 = 'BINANCE:MTLUSDT', n46 = 10e8 , r46 = 3, t47 = 'BINANCE:XMRUSDT', n47 = 10e1, r47 = 1, t48 = 'BINANCE:ORNUSDT', r48 = 4 // T16
( t46 , T16 ,... will be explained later)
You need to figure out how much you need to multiply each ticker, and the number for rounding, to get a good result.
In this case:
'BINANCE:MTLUSDT', multiply number = 10e8, round number is 3 (example value 1.153)
'BINANCE:XMRUSDT', multiply number = 10e1, round number is 1 (example value 143.4)
'BINANCE:ORNUSDT', NO multiply number, round number is 4 (example value 0.8242)
The value with most digits after the decimal point by preference is placed to the right side (ORNUSDT)
If you want to change these 3, how would you do so?
First pick your tickers and look for the round values, for example:
'MATICUSDT', example value = 0.5876 -> round -> 4
'LTCUSDT' , example value = 77.47 -> round -> 2
'ARBUSDT' , example value = 1.0231 -> round -> 4
Value with most digits after the decimal point -> MATIC or ARB, let's pick ARB to go on the right side, LTC at the left of ARB, and MATIC at the most left side.
-> 'MATICUSDT', LTCUSDT', ARBUSDT'
Then check with how much 'LTCUSDT' and 'MATICUSDT' needs to be multiplied to get this: 5876 0 7747 0 1.0231
'MATICUSDT' -> 10e10
'LTCUSDT' -> 10e3
Replace:
t46 = 'BINANCE:MTLUSDT', n46 = 10e8 , r46 = 3, t47 = 'BINANCE:XMRUSDT', n47 = 10e1, r47 = 1, t48 = 'BINANCE:ORNUSDT', r48 = 4 // T16
->
t46 = 'BINANCE:MATICUSDT', n46 = 10e10 , r46 = 4, t47 = 'BINANCE:LTCUSDT', n47 = 10e3, r47 = 2, t48 = 'BINANCE:ARBUSDT', r48 = 4 // T16
DO NOT change anything at t46, n46,... if you don't know what you're doing!
Only
• tickers ('BINANCE:MTLUSDT', 'BINANCE:XMRUSDT', 'BINANCE:ORNUSDT', ...),
• multiply numbers (10e8, 10e1, ...) and
• round numbers (3, 1, 4, ...)
should be changed.
There you go!
🔶 LIMITATIONS
🔹 The composite ticker fails when 1 of the 3 isn't in market in the weekend, while the other 2 are.
That is the reason all tickers are crypto. I think it is possible to combine stock,... tickers, but they have to share the same market hours.
🔹 The number cannot be as large as you want, the limit lays around 15-16 digits.
This means when you have for example 123, 45.67 and 0.000000000089, you'll get issues when composing to this:
-> 123045670.000000000089 (21 digits)
Make sure the numbers are close to each other as possible, with 1 zero (or 2) in between:
-> 1.230045670089 (13 digits by doing -> (123 * 10e-3) + (45.67 * 10e-7) + 0.000000000089)
🔹 This script contains examples of calculated values, % change, SMA, RMA and RSI.
These values need to be calculated from HTF close data at current TF (timeframe).
This gives challenges. For example the SMA / %change is not a problem (same values at 1h TF from Daily data).
RMA , RSI is not so easy though...
Daily values are rather similar on a 2-3h TF, but 1h TF and lower is quite different.
At the moment I haven't figured out why, if someone has an idea, don't hesitate to share.
The main goal of this publication is 'composite tickers ~ request.security()' though.
🔹 When a ticker value changes substantially (x10, x100), the multiply number needs to be adjusted accordingly.
🔶 SETTINGS
SHOW SETS
SET
• Length : length of SMA, RMA and RSI
• HTF : Higher TimeFrame (default Daily)
TABLE
• Size table : \ _ Self-explanatory
• Include exchange name : /
• Sort : If exchange names are shown, the exchanges will be sorted first
COLOURS
• CH%
• RSI
• SMA (RMA)
DEBUG
Remember t46 , T16 ,... ?
This can be used for debugging/checking
ALWAYS DISABLE " sort " when doing so.
Example:
Set string -> T1 (tickers FIL, CAKE, SOL)
(Numbers are slightly different due to time passing by between screen captures)
Placing your tickers at the side panel makes it easy to compare with the printed label below the table (right side, 332201415014.45 ),
together with the line T1 in the script:
t1 = 'BINANCE:FILUSDT' , n1 = 10e10, r1 = 4, t2 = 'BINANCE:CAKEUSDT' , n2 = 10e5 , r2 = 3, t3 = 'BINANCE:SOLUSDT' , r3 = 2 // T1
FIL : 3.322
CAKE: 1.415
SOL : 14.56
Now it is easy to check whether the tickers are placed close enough to each other, with 1-2 zero's in between.
If you want to check a specific ticker, use " Show Ticker" , see out initial example:
Set string -> T16
Show ticker -> 46 (in the code -> t46 = 'BINANCE:MTLUSDT')
(Set at 0 to disable " check string " and NONE to disable " Set string ")
-> Debug/check/set away! 😀
🔶 OTHER TECHNIQUES
• REGEX ( Regular expression ) and str.match() is used to delete the exchange name from the ticker, in other words, everything before ":" is deleted by following regex:
exch(t) => incl_exch ? t : str.match(t, "(?<=:) +")
• To sort, array.sort_indices() is used (line 675 in the code), just as in my first "sort" publication Sort array alphabetically - educational
aSort = arrT.copy()
sort_Indices = array.sort_indices(id= aSort, order= order.ascending)
• Numbers and text colour will adjust automatically when switching between light/dark mode by using chart.fg_color / chart.bg_color
🔹 DISCLAIMER
Please don't ask me for custom screeners, thank you.
Buying/Selling Pressure Cycle (PreCy)No lag estimation of the buying/selling pressure for each candle.
----------------------------------------------------------------------------------------------------
WHY PreCY?
How much bearish pressure is there behind a group of bullish candles ?
Is this bearish pressure increasing?
When might it overcome the bullish pressure?
Those were my questions when I started this indicator. It lead me through the rabbit hole, where I discovered some secrets about the market. So I pushed deeper, and developped it a lot more, in order to understand what is really happening "behind the scene".
There are now 3 ways to read this indicator. It might look complicated at first, but the reward is to be able to anticipate and understand a lot more.
You can show/hide all the plots in the settings. So you can choose the way you prefer to use it.
----------------------------------------------------------------------------------------------------
FIRST WAY TO READ PreCy : The SIGNAL line
Go in the settings of PreCy, in "DISPLAY", uncheck "The pivot lines of the SIGNAL" and "The CYCLE areas". Make sure "The SIGNAL line" is checked.
The SIGNAL shows an estimation of the buying/selling pressure of each candle, going from 100 (100% bullish candle) to -100 (100% bearish candle). A doji would be shown close to zero.
Formula: Estimated % of buying pressure - Estimated % of selling pressure
It is a very choppy line in general, but its colors help make sense of it.
When this choppiness alternates between the extremes, then there is not much pressure on each candle, and it's very unpredictable.
When the pressure increases, the SIGNAL's amplitude changes. It "compresses", meaning there is some interest in the market. It can compress by alternating above and below zero, or it can stay above zero (bullish), or below zero (bearish) for a while.
When the SIGNAL becomes linear (in opposition to choppy), there is a lot of pressure, and it is directional. The participants agree for a move in a chosen direction.
The trajectory of the SIGNAL can help anticipate when a move is going to happen (directional increase of pressure), or stop (returning to zero) and possibly reverse (crossing zero).
Advanced uses:
The SIGNAL can make more sense on a specific timeframe, that would be aligned with the frequency of the orders at that moment. So it is a good idea to switch between timeframes until it gets less choppy, and more directional.
It is interesting to follow any regular progression of the SIGNAL, as it can reveal the intentions of the market makers to go in a certain direction discretely. There can be almost no volume and no move in the price action, yet the SIGNAL gets linear and moves away from one extreme, slowly crosses the zeroline, and pushes to the other extreme at the same time as the amplitude of the price action increases drastically.
----------------------------------------------------------------------------------------------------
SECOND WAY TO READ PreCy : The PIVOTS of the SIGNAL line
Go in the settings of PreCy, in "DISPLAY", and uncheck "The CYCLE areas". Make sure "The SIGNAL line" and "The pivot lines of the SIGNAL" are checked.
The PIVOTS help make sense of the apparent chaos of the SIGNAL. They can reveal the overall direction of the choppy moves.
Especially when the 2 PIVOTS lines are parallel and oriented.
----------------------------------------------------------------------------------------------------
THIRD WAY TO READ PreCy : The CYCLE
Go in the settings of PreCy, in "DISPLAY", and uncheck "The SIGNAL line" and "The pivot lines of the SIGNAL". Make sure "The CYCLE areas" is checked.
The CYCLE is a Moving Average of the SIGNAL in relation to each candle's size.
Formula: 6 periods Moving Average of the SIGNAL * (body of the current candle / 200 periods Moving Average of the candle's bodies)
The result goes from 200 to -200.
The CYCLE shows longer term indications of the pressures of the market.
Analysing the trajectory of the CYCLE can help predict the direction of the price.
When the CYCLE goes above or below the gray low intensity zone, it signals some interest in the move.
When the CYCLE stays above 100 or below -100, it is a sign of strength in the move.
When it stayed out of the gray low intensity zone, then returns inside it, it is a strong signal of a probable change of behavior.
----------------------------------------------------------------------------------------------------
ALERTS
In the settings, you can pick the alerts you're interested in.
To activate them, right click on the chart (or alt+a), choose "Add alert on Buying/Selling Pressure Cycle (PreCy)" then "Any alert()", then "Create".
Feel free to activate them on different timeframes. The alerts show which timeframe they are from (ex: "TF:15" for the 15 minutes TF).
I have added a lot more conditions to my PreCy, taken from FREMA Trend, for ex. You can do the same with your favorite scripts, to make PreCy more accurate for your style.
----------------------------------------------------------------------------------------------------
Borrowed scripts:
To estimate the buying and selling pressures, PreCy uses the wicks calculations of "Volume net histogram" by RafaelZioni
To filter the alerts, PreCy uses the calculations of "Amplitude" by Koholintian:
----------------------------------------------------------------------------------------------------
DO NOT BASE YOUR TRADING DECISIONS ON 1 SINGLE INDICATOR'S SIGNALS.
Always confirm your ideas by other means, like price action and indicators of a different nature.
VolumeFlowVolume & price have a direct correlation with each other. If the fundamental value changes, the price changes and volume follows. If the technicals change, volume changes and price follows.
Because the relationship between volume and price is so connected, I created a script highlighting important volume flow measurements.
The VolumeFlow indicator combines several volume measurements into 1 indicator.
1) Volume net inflow / outflow
2) Volume total flow change
3) Volume cumulation flow
The VolumeFlow indicator uses a scale from 100 high to -100 low, with the zero level being neutral.
The VolumeFlow indicator has 4 inputs:
1) +Volume-
2) VolumeFast
3) VolumeSlow
4) Accum/Dist
Default inputs:
+Volume-
length = 1, color = + green or - red
VolumeFast
length = 2, color = blue
VolumeSlow
length = 3, color = white
Accum/Dist
length = 5, color = brown
Horizontal lines
length = 100, 50, 0, -50, -100, color = white
* The VolumeFlow indicator uses altered pieces of code from my Options360 FibVIP indicator, Tradingview "Up / down volume" indicator and Tradingview "Accumulation/Distribution" indicator. *
Smart Disparity IndexThe Smart Disparity Index (SDI) is an optimized version of the Disparity Index indicator invented by Steve Nison (book "Beyond Candlesticks").
According to Steve Nison, "The disparity index (or disparity ratio), compares, as a percentage, the latest close to a chosen moving average", which means that the indicator gives the difference in % between the closing price and a simple moving average.
The calculation formula is therefore as follows:
Disparity Index = 100 x (closing_price - simple_moving_average) / simple_moving_average
In order to optimize the calculation, I replaced the closing price with the 6-period exponential moving average (EMA6) which, according to many years of experience, allows prices to be smoothed by eliminating excesses.
Formula for calculating the Smart Disparity Index:
SDI = 100 x (EMA6 - simple_moving_average) / simple_moving_average
The provided script displays the SDI for the 20, 50, 100 and 200 periods.
From my point of view, I recommend using the SDI50 as a priority:
SDI50 = 100 x (EMA6 - SMA50) / SMA50
In the chart, we can see the SDI50 (in purple) is on a long-term support (in green), this indicates a probability of a Bitcoin rise in the coming months.
The SDI can also be used as a momentum type indicator.