Geometric Momentum Breakout with Monte CarloOverview
This experimental indicator uses geometric trendline analysis combined with momentum and Monte Carlo simulation techniques to help visualize potential breakout areas. It calculates support, resistance, and an aggregated trendline using a custom Geo library (by kaigouthro). The indicator also tracks breakout signals in a way that a new buy signal is triggered only after a sell signal (and vice versa), ensuring no repeated signals in the same direction.
Important:
This script is provided for educational purposes only. It is experimental and should not be used for live trading without proper testing and validation.
Key Features
Trendline Calculation:
Uses the Geo library to compute support and resistance trendlines based on historical high and low prices. The midpoint of these trendlines forms an aggregated trendline.
Momentum Analysis:
Computes the Rate of Change (ROC) to determine momentum. Breakout conditions are met only if the price and momentum exceed a user-defined threshold.
Monte Carlo Simulation:
Simulates future price movements to estimate the probability of bullish or bearish breakouts over a specified horizon.
Signal Tracking:
A persistent variable ensures that once a buy (or sell) signal is triggered, it won’t repeat until the opposite signal occurs.
Geometric Enhancements:
Calculates an aggregated trend angle and channel width (distance between support and resistance), and draws a perpendicular “breakout zone” line.
Table Display:
A built-in table displays key metrics including:
Bullish probability
Bearish probability
Aggregated trend angle (in degrees)
Channel width
Alerts:
Configurable alerts notify when a new buy or sell breakout signal occurs.
Inputs
Resistance Lookback & Support Lookback:
Number of bars to look back for determining resistance and support points.
Momentum Length & Threshold:
Period for ROC calculation and the minimum percentage change required for a breakout confirmation.
Monte Carlo Simulation Parameters:
Simulation Horizon: Number of future bars to simulate.
Simulation Iterations: Number of simulation runs.
Table Position & Text Size:
Customize where the table is displayed on the chart and the size of the text.
How to Use
Add the Script to Your Chart:
Copy the code into the Pine Script editor on TradingView and add it to your chart.
Adjust Settings:
Customize the inputs (e.g., lookback periods, momentum threshold, simulation parameters) to fit your analysis or educational requirements.
Interpret Signals:
A buy signal is plotted as a green triangle below the bar when conditions are met and the state transitions from neutral or sell.
A sell signal is plotted as a red triangle above the bar when conditions are met and the state transitions from neutral or buy.
Alerts are triggered only on the bar where a new signal is generated.
Examine the Table:
The table displays key metrics (breakout probabilities, aggregated trend angle, and channel width) to help evaluate current market conditions.
Disclaimer
This indicator is experimental and provided for educational purposes only. It is not intended as a trading signal or financial advice. Use this script at your own risk, and always perform your own research and testing before using any experimental tools in live trading.
Credit
This indicator uses the Geo library by kaigouthro. Special thanks to Cryptonerds and @Hazzantazzan for their contributions and insights.
在腳本中搜尋"trendline"
Dow waveform analyzerDow Waveform Analyzer
1. Overview and Features of the Indicator
This indicator is a tool designed to analyze chart waveforms based on Dow Theory, identifying swing lows (support) and swing highs (resistance). It allows users to quickly and consistently determine trend direction. Compared to manual analysis, it provides more efficient and accurate results.
By using swing lows and swing highs, the indicator offers a more detailed understanding of trends than simple updates to highs and lows, aiding in the creation of effective trading strategies.
2. Identifying Wave Lows and Highs
Stock prices do not move in straight lines; instead, they rise and fall in waves. This indicator starts by identifying the wave lows and wave highs.
- Wave Low: The lowest point during a temporary price decline.
- Wave High: The highest point during a temporary price increase.
These are automatically identified using Pine Script’s built-in functions `pivotlow` and `pivothigh`.
3. Drawing the Waveform
The identified wave lows and highs are alternately connected to draw the waveform. However, there are cases where wave lows or highs occur consecutively:
- Consecutive Wave Lows: The lower low is used for drawing the waveform.
- Consecutive Wave Highs: The higher high is used for drawing the waveform.
4. Tracking Swing Lows/Highs and Trend Determination
Swing lows and swing highs are crucial markers that indicate the state of wave progression:
- Swing Low: The starting point of a wave (wave low) when the closing price exceeds the previous wave high.
- Swing High: The starting point of a wave (wave high) when the closing price falls below the previous wave low.
The changes in swing lows and swing highs as the waves progress allow for trend state determination.
5. Examples of Trend States
During an Uptrend:
- When the price surpasses a wave high, the swing low is updated, confirming the continuation of the uptrend.
End of an Uptrend:
- When the price falls below the swing low, the swing low disappears, and a swing high appears, signaling the end of the uptrend.
Sideways Movement:
- Swing lows and swing highs alternately appear, indicating a sideways trend.
Start of a Downtrend:
- When the price breaks below a wave low for the first time, the swing high is updated, confirming the start of the downtrend.
During a Downtrend:
- When the price breaks below a wave low, the swing high is updated, confirming the continuation of the downtrend.
End of a Downtrend:
- When the price surpasses a wave high, the swing high disappears, and a swing low reappears, signaling the end of the downtrend.
Restart of an Uptrend:
- When the swing low is updated, the uptrend resumes. The uptrend begins when the price surpasses a wave high, and the swing low is updated for the first time.
6. Applications
Trade Entries and Exits:
- Set stop orders for entry at the price level where a trend starts.
- Set stop orders for exit at the price level where a trend ends.
Trend Filtering:
- Use the indicator to confirm whether market conditions are suitable for entry based on the trend state. Analyze waveforms to aid trading strategies.
Guide for Drawing Trendlines:
- Utilize wave lows and highs as starting and ending points when drawing trendlines with drawing tools.
7. Parameters and Display Items
Pivot Points:
- Wave lows are marked with circles below the candlestick’s low, and wave highs are marked with circles above the candlestick’s high.
Number of Bars for Pivot Calculation:
- Specify the number of bars on either side used to identify highs (default: 2).
Waveform:
- Specify the color (default: blue) or toggle its visibility (default: visible).
Swing Lows/Highs:
- Displayed as large circles. The rightmost large circle on the chart indicates the current swing low or swing high. Historical swing points are also displayed to show the progression of state changes. Specify the color (default: green) or toggle visibility (default: visible).
1. インジケーターの概要と特徴
このインジケーターは、ダウ理論を基にチャートの波形を分析し、押し安値や戻り高値を特定するツールです。これにより、トレンドの方向を迅速かつ一貫して判断できます。手動での分析と比較して、効率的かつ精度の高い結果が得られる点が特徴です。
押し安値や戻り高値を利用することで、単純な高値・安値の更新よりも詳細にトレンドの状況を把握し、効果的な取引戦略の構築に役立ちます。
2. 波の谷と波の頂の特定
株価は直線的に動くのではなく、波を描きながら上昇や下落を繰り返します。このインジケーターは、まず波の谷と波の頂を特定するところから始まります。
波の谷: 一時的な下落の最安値
波の頂: 一時的な上昇の最高値
これらを Pine Script の内蔵関数(ピボットローとピボットハイ)を用いて自動的に特定しています。
3. 波形の描画方法
特定した波の谷と波の頂を交互に結んで波形を描画します。ただし、波の谷や頂が連続する場合があります。
波の谷が連続する場合: より低い谷を採用して波形を描く
波の頂が連続する場合: より高い頂を採用して波形を描く
4. 押し安値・戻り高値の追跡とトレンド判断
押し安値と戻り高値は、波の進行状況を示す重要な指標です。
押し安値: 終値が前回の高値を超えた際の波の谷
戻り高値: 終値が前回の安値を割り込んだ際の波の頂
波の進行に伴う押し安値・戻り高値の変化から、トレンドの状態を判断します。
5. トレンド状態の具体例
上昇トレンド中:
波の頂を株価が上抜け押し安値が更新され続けることで上昇トレンドを継続。
上昇トレンドの終了:
株価が押し安値を割ると、押し安値が消え、戻り高値が新たに出現して、上昇トレンドを終了。
横ばい状態:
押し安値と戻り高値が交互に切り替わる。
下降トレンドの開始:
波の谷を株価が下抜け戻り高値がはじめて更新されることで下降トレンド開始を確認。
下降トレンド中:
波の谷を株価が下抜け戻り高値が更新され続けることで下降トレンドを継続。
下降トレンドの終了:
株価が波の頂を超えると、戻り高値が消え、押し安値が再び出現して、下降トレンドを終了。
横ばい状態:
押し安値と戻り高値が交互に切り替わる。
上昇トレンドの再開:
押し安値が更新されることで上昇トレンドを確認。
波の頂を株価が上抜け押し安値がはじめて更新されることで上昇トレンド開始を確認。
6. 応用例
トレードのエントリーとエグジット:
トレンド発生の価格に逆指値を設定してエントリー。
トレンド終了の価格に逆指値を設定してエグジット。
トレンドフィルターとして活用:
エントリーに適したトレンド状況かを確認。波形を分析してトレード戦略の参考に。
トレンドラインを描く時の参考として活用:
波の谷と頂を描画ツールを使ってトレンドラインを描く時の起点や終点として活用。
7. パラメーターと表示項目
ピボット: 波の谷はローソク足の安値にサークルを表示、波の頂はローソク足の高値にサークルを表示。
ピボット計算用のバーの数: 高値を特定するために左右何本のローソク足を使用するかを設定(初期値: 2)。
波形: 色(初期値: 青)や表示(初期値: 表示)の指定。
押し安値・戻り高値: 大きなサークルで表示。チャートの一番右の大きなサークルが現在のもの。過去のものも状態変化の経緯を示すために表示。色(初期値: 緑)や表示(初期値: 表示)の指定。
Support & Resistance AI (K means/median) [ThinkLogicAI]█ OVERVIEW
K-means is a clustering algorithm commonly used in machine learning to group data points into distinct clusters based on their similarities. While K-means is not typically used directly for identifying support and resistance levels in financial markets, it can serve as a tool in a broader analysis approach.
Support and resistance levels are price levels in financial markets where the price tends to react or reverse. Support is a level where the price tends to stop falling and might start to rise, while resistance is a level where the price tends to stop rising and might start to fall. Traders and analysts often look for these levels as they can provide insights into potential price movements and trading opportunities.
█ BACKGROUND
The K-means algorithm has been around since the late 1950s, making it more than six decades old. The algorithm was introduced by Stuart Lloyd in his 1957 research paper "Least squares quantization in PCM" for telecommunications applications. However, it wasn't widely known or recognized until James MacQueen's 1967 paper "Some Methods for Classification and Analysis of Multivariate Observations," where he formalized the algorithm and referred to it as the "K-means" clustering method.
So, while K-means has been around for a considerable amount of time, it continues to be a widely used and influential algorithm in the fields of machine learning, data analysis, and pattern recognition due to its simplicity and effectiveness in clustering tasks.
█ COMPARE AND CONTRAST SUPPORT AND RESISTANCE METHODS
1) K-means Approach:
Cluster Formation: After applying the K-means algorithm to historical price change data and visualizing the resulting clusters, traders can identify distinct regions on the price chart where clusters are formed. Each cluster represents a group of similar price change patterns.
Cluster Analysis: Analyze the clusters to identify areas where clusters tend to form. These areas might correspond to regions of price behavior that repeat over time and could be indicative of support and resistance levels.
Potential Support and Resistance Levels: Based on the identified areas of cluster formation, traders can consider these regions as potential support and resistance levels. A cluster forming at a specific price level could suggest that this level has been historically significant, causing similar price behavior in the past.
Cluster Standard Deviation: In addition to looking at the means (centroids) of the clusters, traders can also calculate the standard deviation of price changes within each cluster. Standard deviation is a measure of the dispersion or volatility of data points around the mean. A higher standard deviation indicates greater price volatility within a cluster.
Low Standard Deviation: If a cluster has a low standard deviation, it suggests that prices within that cluster are relatively stable and less likely to exhibit sudden and large price movements. Traders might consider placing tighter stop-loss orders for trades within these clusters.
High Standard Deviation: Conversely, if a cluster has a high standard deviation, it indicates greater price volatility within that cluster. Traders might opt for wider stop-loss orders to allow for potential price fluctuations without getting stopped out prematurely.
Cluster Density: Each data point is assigned to a cluster so a cluster that is more dense will act more like gravity and
2) Traditional Approach:
Trendlines: Draw trendlines connecting significant highs or lows on a price chart to identify potential support and resistance levels.
Chart Patterns: Identify chart patterns like double tops, double bottoms, head and shoulders, and triangles that often indicate potential reversal points.
Moving Averages: Use moving averages to identify levels where the price might find support or resistance based on the average price over a specific period.
Psychological Levels: Identify round numbers or levels that traders often pay attention to, which can act as support and resistance.
Previous Highs and Lows: Identify significant previous price highs and lows that might act as support or resistance.
The key difference lies in the approach and the foundation of these methods. Traditional methods are based on well-established principles of technical analysis and market psychology, while the K-means approach involves clustering price behavior without necessarily incorporating market sentiment or specific price patterns.
It's important to note that while the K-means approach might provide an interesting way to analyze price data, it should be used cautiously and in conjunction with other traditional methods. Financial markets are influenced by a wide range of factors beyond just price behavior, and the effectiveness of any method for identifying support and resistance levels should be thoroughly tested and validated. Additionally, developments in trading strategies and analysis techniques could have occurred since my last update.
█ K MEANS ALGORITHM
The algorithm for K means is as follows:
Initialize cluster centers
assign data to clusters based on minimum distance
calculate cluster center by taking the average or median of the clusters
repeat steps 1-3 until cluster centers stop moving
█ LIMITATIONS OF K MEANS
There are 3 main limitations of this algorithm:
Sensitive to Initializations: K-means is sensitive to the initial placement of centroids. Different initializations can lead to different cluster assignments and final results.
Assumption of Equal Sizes and Variances: K-means assumes that clusters have roughly equal sizes and spherical shapes. This may not hold true for all types of data. It can struggle with identifying clusters with uneven densities, sizes, or shapes.
Impact of Outliers: K-means is sensitive to outliers, as a single outlier can significantly affect the position of cluster centroids. Outliers can lead to the creation of spurious clusters or distortion of the true cluster structure.
█ LIMITATIONS IN APPLICATION OF K MEANS IN TRADING
Trading data often exhibits characteristics that can pose challenges when applying indicators and analysis techniques. Here's how the limitations of outliers, varying scales, and unequal variance can impact the use of indicators in trading:
Outliers are data points that significantly deviate from the rest of the dataset. In trading, outliers can represent extreme price movements caused by rare events, news, or market anomalies. Outliers can have a significant impact on trading indicators and analyses:
Indicator Distortion: Outliers can skew the calculations of indicators, leading to misleading signals. For instance, a single extreme price spike could cause indicators like moving averages or RSI (Relative Strength Index) to give false signals.
Risk Management: Outliers can lead to overly aggressive trading decisions if not properly accounted for. Ignoring outliers might result in unexpected losses or missed opportunities to adjust trading strategies.
Different Scales: Trading data often includes multiple indicators with varying units and scales. For example, prices are typically in dollars, volume in units traded, and oscillators have their own scale. Mixing indicators with different scales can complicate analysis:
Normalization: Indicators on different scales need to be normalized or standardized to ensure they contribute equally to the analysis. Failure to do so can lead to one indicator dominating the analysis due to its larger magnitude.
Comparability: Without normalization, it's challenging to directly compare the significance of indicators. Some indicators might have a larger numerical range and could overshadow others.
Unequal Variance: Unequal variance in trading data refers to the fact that some indicators might exhibit higher volatility than others. This can impact the interpretation of signals and the performance of trading strategies:
Volatility Adjustment: When combining indicators with varying volatility, it's essential to adjust for their relative volatilities. Failure to do so might lead to overemphasizing or underestimating the importance of certain indicators in the trading strategy.
Risk Assessment: Unequal variance can impact risk assessment. Indicators with higher volatility might lead to riskier trading decisions if not properly taken into account.
█ APPLICATION OF THIS INDICATOR
This indicator can be used in 2 ways:
1) Make a directional trade:
If a trader thinks price will go higher or lower and price is within a cluster zone, The trader can take a position and place a stop on the 1 sd band around the cluster. As one can see below, the trader can go long the green arrow and place a stop on the one standard deviation mark for that cluster below it at the red arrow. using this we can calculate a risk to reward ratio.
Calculating risk to reward: targeting a risk reward ratio of 2:1, the trader could clearly make that given that the next resistance area above that in the orange cluster exceeds this risk reward ratio.
2) Take a reversal Trade:
We can use cluster centers (support and resistance levels) to go in the opposite direction that price is currently moving in hopes of price forming a pivot and reversing off this level.
Similar to the directional trade, we can use the standard deviation of the cluster to place a stop just in case we are wrong.
In this example below we can see that shorting on the red arrow and placing a stop at the one standard deviation above this cluster would give us a profitable trade with minimal risk.
Using the cluster density table in the upper right informs the trader just how dense the cluster is. Higher density clusters will give a higher likelihood of a pivot forming at these levels and price being rejected and switching direction with a larger move.
█ FEATURES & SETTINGS
General Settings:
Number of clusters: The user can select from 3 to five clusters. A good rule of thumb is that if you are trading intraday, less is more (Think 3 rather than 5). For daily 4 to 5 clusters is good.
Cluster Method: To get around the outlier limitation of k means clustering, The median was added. This gives the user the ability to choose either k means or k median clustering. K means is the preferred method if the user things there are no large outliers, and if there appears to be large outliers or it is assumed there are then K medians is preferred.
Bars back To train on: This will be the amount of bars to include in the clustering. This number is important so that the user includes bars that are recent but not so far back that they are out of the scope of where price can be. For example the last 2 years we have been in a range on the sp500 so 505 days in this setting would be more relevant than say looking back 5 years ago because price would have to move far to get there.
Show SD Bands: Select this to show the 1 standard deviation bands around the support and resistance level or unselect this to just show the support and resistance level by itself.
Features:
Besides the support and resistance levels and standard deviation bands, this indicator gives a table in the upper right hand corner to show the density of each cluster (support and resistance level) and is color coded to the cluster line on the chart. Higher density clusters mean price has been there previously more than lower density clusters and could mean a higher likelihood of a reversal when price reaches these areas.
█ WORKS CITED
Victor Sim, "Using K-means Clustering to Create Support and Resistance", 2020, towardsdatascience.com
Chris Piech, "K means", stanford.edu
█ ACKNOLWEDGMENTS
@jdehorty- Thanks for the publish template. It made organizing my thoughts and work alot easier.
Parallel Projections [theEccentricTrader]█ OVERVIEW
This indicator automatically projects parallel trendlines or channels, from a single point of origin. In the example above I have applied the indicator twice to the 1D SPXUSD. The five upper lines (green) are projected at an angle of -5 from the 1-month swing high anchor point with a projection ratio of -72. And the seven lower lines (blue) are projected at an angle of 10 with a projection ratio of 36 from the 1-week swing low anchor point.
█ CONCEPTS
Green and Red Candles
• A green candle is one that closes with a high price equal to or above the price it opened.
• A red candle is one that closes with a low price that is lower than the price it opened.
Swing Highs and Swing Lows
• A swing high is a green candle or series of consecutive green candles followed by a single red candle to complete the swing and form the peak.
• A swing low is a red candle or series of consecutive red candles followed by a single green candle to complete the swing and form the trough.
Peak and Trough Prices (Basic)
• The peak price of a complete swing high is the high price of either the red candle that completes the swing high or the high price of the preceding green candle, depending on which is higher.
• The trough price of a complete swing low is the low price of either the green candle that completes the swing low or the low price of the preceding red candle, depending on which is lower.
Historic Peaks and Troughs
The current, or most recent, peak and trough occurrences are referred to as occurrence zero. Previous peak and trough occurrences are referred to as historic and ordered numerically from right to left, with the most recent historic peak and trough occurrences being occurrence one.
Support and Resistance
• Support refers to a price level where the demand for an asset is strong enough to prevent the price from falling further.
• Resistance refers to a price level where the supply of an asset is strong enough to prevent the price from rising further.
Support and resistance levels are important because they can help traders identify where the price of an asset might pause or reverse its direction, offering potential entry and exit points. For example, a trader might look to buy an asset when it approaches a support level , with the expectation that the price will bounce back up. Alternatively, a trader might look to sell an asset when it approaches a resistance level , with the expectation that the price will drop back down.
It's important to note that support and resistance levels are not always relevant, and the price of an asset can also break through these levels and continue moving in the same direction.
Trendlines
Trendlines are straight lines that are drawn between two or more points on a price chart. These lines are used as dynamic support and resistance levels for making strategic decisions and predictions about future price movements. For example traders will look for price movements along, and reactions to, trendlines in the form of rejections or breakouts/downs.
█ FEATURES
Inputs
• Anchor Point Type
• Swing High/Low Occurrence
• HTF Resolution
• Highest High/Lowest Low Lookback
• Angle Degree
• Projection Ratio
• Number Lines
• Line Color
Anchor Point Types
• Swing High
• Swing Low
• Swing High (HTF)
• Swing Low (HTF)
• Highest High
• Lowest Low
• Intraday Highest High (intraday charts only)
• Intraday Lowest Low (intraday charts only)
Swing High/Swing Low Occurrence
This input is used to determine which historic peak or trough to reference for swing high or swing low anchor point types.
HTF Resolution
This input is used to determine which higher timeframe to reference for swing high (HTF) or swing low (HTF) anchor point types.
Highest High/Lowest Low Lookback
This input is used to determine the lookback length for highest high or lowest low anchor point types.
Intraday Highest High/Lowest Low Lookback
When using intraday highest high or lowest low anchor point types, the lookback length is calculated automatically based on number of bars since the daily candle opened.
Angle Degree
This input is used to determine the angle of the trendlines. The output is expressed in terms of point or pips, depending on the symbol type, which is then passed through the built in math.todegrees() function. Positive numbers will project the lines upwards while negative numbers will project the lines downwards. Depending on the market and timeframe, the impact input values will have on the visible gaps between the lines will vary greatly. For example, an input of 10 will have a far greater impact on the gaps between the lines when viewed from the 1-minute timeframe than it would on the 1-day timeframe. The input is a float and as such the value passed through can go into as many decimal places as the user requires.
It is also worth mentioning that as more lines are added the gaps between the lines, that are closest to the anchor point, will get tighter as they make their way up the y-axis. Although the gaps between the lines will stay constant at the x2 plot, i.e. a distance of 10 points between them, they will gradually get tighter and tighter at the point of origin as the slope of the lines get steeper.
Projection Ratio
This input is used to determine the distance between the parallels, expressed in terms of point or pips. Positive numbers will project the lines upwards while negative numbers will project the lines downwards. Depending on the market and timeframe, the impact input values will have on the visible gaps between the lines will vary greatly. For example, an input of 10 will have a far greater impact on the gaps between the lines when viewed from the 1-minute timeframe than it would on the 1-day timeframe. The input is a float and as such the value passed through can go into as many decimal places as the user requires.
Number Lines
This input is used to determine the number of lines to be drawn on the chart, maximum is 500.
█ LIMITATIONS
All green and red candle calculations are based on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. This may cause some unexpected behaviour on some markets and timeframes. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with.
If the lines do not draw or you see a study error saying that the script references too many candles in history, this is most likely because the higher timeframe anchor point is not present on the current timeframe. This problem usually occurs when referencing a higher timeframe, such as the 1-month, from a much lower timeframe, such as the 1-minute. How far you can lookback for higher timeframe anchor points on the current timeframe will also be limited by your Trading View subscription plan. Premium users get 20,000 candles worth of data, pro+ and pro users get 10,000, and basic users get 5,000.
█ RAMBLINGS
It is my current thesis that the indicator will work best when used in conjunction with my Wavemeter indicator, which can be used to set the angle and projection ratio. For example, the average wave height or amplitude could be used as the value for the angle and projection ratio inputs. Or some factor or multiple of such an average. I think this makes sense as it allows for objectivity when applying the indicator across different markets and timeframes with different energies and vibrations.
“If you want to find the secrets of the universe, think in terms of energy, frequency and vibration.”
― Nikola Tesla
Fan Projections [theEccentricTrader]█ OVERVIEW
This indicator automatically projects trendlines in the shape of a fan, from a single point of origin. In the example above I have applied the indicator twice to the 1D SPXUSD. The seven upper lines (green) are projected at an angle of -5 from the 1-month swing high anchor point. And the five lower lines (blue) are projected at an angle of 10 from the 1-week swing low anchor point.
█ CONCEPTS
Green and Red Candles
• A green candle is one that closes with a high price equal to or above the price it opened.
• A red candle is one that closes with a low price that is lower than the price it opened.
Swing Highs and Swing Lows
• A swing high is a green candle or series of consecutive green candles followed by a single red candle to complete the swing and form the peak.
• A swing low is a red candle or series of consecutive red candles followed by a single green candle to complete the swing and form the trough.
Peak and Trough Prices (Basic)
• The peak price of a complete swing high is the high price of either the red candle that completes the swing high or the high price of the preceding green candle, depending on which is higher.
• The trough price of a complete swing low is the low price of either the green candle that completes the swing low or the low price of the preceding red candle, depending on which is lower.
Historic Peaks and Troughs
The current, or most recent, peak and trough occurrences are referred to as occurrence zero. Previous peak and trough occurrences are referred to as historic and ordered numerically from right to left, with the most recent historic peak and trough occurrences being occurrence one.
Support and Resistance
• Support refers to a price level where the demand for an asset is strong enough to prevent the price from falling further.
• Resistance refers to a price level where the supply of an asset is strong enough to prevent the price from rising further.
Support and resistance levels are important because they can help traders identify where the price of an asset might pause or reverse its direction, offering potential entry and exit points. For example, a trader might look to buy an asset when it approaches a support level , with the expectation that the price will bounce back up. Alternatively, a trader might look to sell an asset when it approaches a resistance level , with the expectation that the price will drop back down.
It's important to note that support and resistance levels are not always relevant, and the price of an asset can also break through these levels and continue moving in the same direction.
Trendlines
Trendlines are straight lines that are drawn between two or more points on a price chart. These lines are used as dynamic support and resistance levels for making strategic decisions and predictions about future price movements. For example traders will look for price movements along, and reactions to, trendlines in the form of rejections or breakouts/downs.
█ FEATURES
Inputs
• Anchor Point Type
• Swing High/Low Occurrence
• HTF Resolution
• Highest High/Lowest Low Lookback
• Angle Degree
• Number Lines
• Line Color
Anchor Point Types
• Swing High
• Swing Low
• Swing High (HTF)
• Swing Low (HTF)
• Highest High
• Lowest Low
• Intraday Highest High (intraday charts only)
• Intraday Lowest Low (intraday charts only)
Swing High/Swing Low Occurrence
This input is used to determine which historic peak or trough to reference for swing high or swing low anchor point types.
HTF Resolution
This input is used to determine which higher timeframe to reference for swing high (HTF) or swing low (HTF) anchor point types.
Highest High/Lowest Low Lookback
This input is used to determine the lookback length for highest high or lowest low anchor point types.
Intraday Highest High/Lowest Low Lookback
When using intraday highest high or lowest low anchor point types, the lookback length is calculated automatically based on number of bars since the daily candle opened.
Angle Degree
This input is used to determine the angle of the trendlines. The output is expressed in terms of point or pips, depending on the symbol type, which is then passed through the built in math.todegrees() function. Positive numbers will project the lines upwards while negative numbers will project the lines downwards. Depending on the market and timeframe, the impact input values will have on the visible gaps between the lines will vary greatly. For example, an input of 10 will have a far greater impact on the gaps between the lines when viewed from the 1-minute timeframe than it would on the 1-day timeframe. The input is a float and as such the value passed through can go into as many decimal places as the user requires.
It is also worth mentioning that as more lines are added the gaps between the lines, that are closest to the anchor point, will get tighter as they make their way up the y-axis. Although the gaps between the lines will stay constant at the x2 plot, i.e. a distance of 10 points between them, they will gradually get tighter and tighter at the point of origin as the slope of the lines get steeper.
Number Lines
This input is used to determine the number of lines to be drawn on the chart, maximum is 500.
█ LIMITATIONS
All green and red candle calculations are based on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. This may cause some unexpected behaviour on some markets and timeframes. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with.
If the lines do not draw or you see a study error saying that the script references too many candles in history, this is most likely because the higher timeframe anchor point is not present on the current timeframe. This problem usually occurs when referencing a higher timeframe, such as the 1-month, from a much lower timeframe, such as the 1-minute. How far you can lookback for higher timeframe anchor points on the current timeframe will also be limited by your Trading View subscription plan. Premium users get 20,000 candles worth of data, pro+ and pro users get 10,000, and basic users get 5,000.
█ RAMBLINGS
It is my current thesis that the indicator will work best when used in conjunction with my Wavemeter indicator, which can be used to set the angle. For example, the average wave height or amplitude could be used as the value for the angle input. Or some factor or multiple of such an average. I think this makes sense as it allows for objectivity when applying the indicator across different markets and timeframes with different energies and vibrations.
“If you want to find the secrets of the universe, think in terms of energy, frequency and vibration.”
― Nikola Tesla
Sessions [LuxAlgo]This indicator shows when user set sessions are active and returns various tools + metrics using the closing price within active sessions as an input. Users have the option to change up to 4 session times.
The indicator will increasingly lack accuracy when the chart timeframe is higher than 1 hour.
Settings
Sessions
Enable Session: Allows to enable or disable all associated elements with a specific user set session.
Session Time: Opening and closing times of the user set session in the hh:mm format.
Range: Highlights the associated session range on the chart.
Trendline: Returns the associated session trendline on the chart.
Mean: Returns the associated session mean average on the chart.
VWAP: Returns the associated session volume weighted average price on the chart.
Ranges Settings
Range Area Transparency: Transparency of the area highlighting sessions ranges.
Range Outline: Highlights the borders of the session range area.
Range Label: Shows the session label at the mid-point of the session interval.
Dashboard
Show Dashboard: Enables sessions dashboard on the chart.
Advanced Dashboard: Returns more information regarding user set sessions on the dashboard.
Dividers
Show Session Divider: Highlights active sessions using intervals on the bottom of the chart (this can lead to less responsive charts)
Show Daily Divider: Highlights days on the chart.
Usage
This tool is versatile and allows the user to perform a wide variety of tasks all focusing on highlighting and analyzing price movements within a specific user set session in a periodic fashion.
Significant forex trading sessions are used by default, but the users are free to choose the opening and closing time of their choices.
Using ranges can indicate which sessions returned the most volatile price movements.
Trendlines can be useful to estimate the underlying trend of a specific session, but they can also offer a quick way to see which session started a trend reversal.
The session Mean highlights the equilibrium level within a session, extrapolating these levels can provide potential support and resistances levels of interest.
Finally, users can use the sessions VWAP's for real time applications, using them as trailing supports and resistances.
Using The Advanced Dashboard
The advanced dashboard returns useful information regarding the user set sessions. Each dashboard elements are described below:
Status: Highlights whether the user set session is active (open) of inactive (closed).
Trend: Shows correlation coefficient between the session prices and a linear sequence of values. Values above 0 indicates an up-trending session, while values under 0 indicates a down-trending session. Values closer to (1, -1) indicates a more trending session.
Volume: Shows accumulated volume within the session
σ (Standard Deviation): Shows standard deviation of the session, while this value is not bounded it can be useful to compare it with the other ones to see which session was the most volatile.
Note that when a session becomes inactive the value on the dashboard will hold until the specific session becomes active again.
Trend Lines for RSI, CCI, Momentum, OBVHello Traders!
After publishing Trend Lines for RSI yesterday, I realized that Trend Lines for more indicators needed by the traders. so I decided to make it for four different indicators: RSI, CCI, OBV, Momentum
In the indicator options you can choose the indicator from pull-down menu.
How it works?
- On each bar it finds last 10 higher and lower Pivot Points (PP) for the indicator.
- from first bar to 10. Pivot Point it searchs if a trend line is possible
- for each PP it starts searching from the last PP .
- it checks if drawing a trend line possible or not and also it's broken or not
- if it's broken then optionally it shows broken trend lines as dotted (or you can option not to see broken lines)
- if it finds a continues trend line then it stops searhing more and draw trend line, this is done by checking angles (I did this to make the script faster, otherwise you may get error because of it needs time more than .2sec)
- the script makes this process for each PP
- then shows the trend lines
P.S. it may need 3-10 seconds when you added the script to the chart at first (because of calculations)
Trend lines for CCI:
Trend Lines for OBV
Trend Lines for Momentum:
You may want to watch how Trend Lines script works (that was made for RSI)
s3.tradingview.com
If you still didn't see Trend Lines v2 then visit:
All Comments are welcome..
Enjoy!
Trend Lines v2Hello Everyone. After working on new and better trend lines script for couple of weeks, finally I am proud to publish Trend Lines v2.
How it works?
- On each bar it finds last 10 higher and lower Pivot Points (PP).
- from first bar to 10. PP it search if a trend line is possible
- for each it starts searching from the last PP.
- it check if drawing a trend line possible or not and also it's broken or not
- if it's broken then optionally it shows broken trend lines as dotted
- if it finds a continues trend line and stop searhing more and draw trend line (I did this to make the script faster, otherwise you may get error because of it needs time more than .2sec)
- the script makes this process for each PP
optionally trend lines may be Solid or Dashed
optionally you may get rid of broken trend lines if you think it's crowded
and sometimes you may not see any trend line on the chart. this means you need to adjust the period for Pivot Points accordingly
also I made a video. if you watch this video you can see how the script works.
Important! after you add this tool to the chart you may need zoom-in and zoom-out to see all lines!
I thought a lot to make it free or not then I decided make it free and open source. you should know there is a lot of effort for this script, so if you think this is usefull please consider a donation ;)
Enjoy!
No Wick Setup Indicator
**No Wick Setup Indicator**
This is a custom trading indicator designed to identify and signal potential buy and sell opportunities based on candlestick patterns with no wicks. Specifically, it looks for candles with no wicks at the bottom (bullish setup) or no wicks at the top (bearish setup). Here's how it works:
**Key Features:**
- **Bullish Setup**: A green candlestick with no bottom wick (i.e., the open price is equal to the low price of the candle) is considered a potential bullish signal. A trendline is drawn at the bottom of this candle. When the market price returns to this trendline, a buy signal is generated.
- **Bearish Setup**: A red candlestick with no top wick (i.e., the open price is equal to the high price of the candle) is considered a potential bearish signal. A trendline is drawn at the top of this candle. When the market price returns to this trendline, a sell signal is generated.
- **Timeframe**: This indicator works exclusively on the **30-minute timeframe**.
**How It Works:**
1. When a candlestick pattern with no bottom wick (bullish setup) is identified, a trendline is drawn at the low of the candlestick.
2. When a candlestick pattern with no top wick (bearish setup) is identified, a trendline is drawn at the high of the candlestick.
3. The indicator then tracks the market price and waits for it to return to the respective trendline level.
4. **Buy Signal**: When the market price touches or goes below the bullish trendline, a **Buy** signal is displayed on the chart with an upward arrow.
5. **Sell Signal**: When the market price touches or goes above the bearish trendline, a **Sell** signal is displayed on the chart with a downward arrow.
**Visual Elements:**
- **Trendlines**: Horizontal lines drawn at the bottom (bullish) or top (bearish) of the candlesticks with no wick.
- **Buy/Sell Labels**: Labels indicating "Buy" or "Sell" appear when the market price returns to the trendline.
**Why Use This Indicator?**
- This indicator helps identify specific price levels where the market might reverse or consolidate based on candlestick structure, offering potential entry points for trades.
- It allows traders to focus on price action and market behavior without relying on more complex indicators.
Auto Trend ProjectionAuto Trend Projection is an indicator designed to automatically project the short-term trend based on historical price data. It utilizes a dynamic calculation method to determine the slope of the linear regression line, which represents the trend direction. The indicator takes into account multiple length inputs and calculates the deviation and Pearson's R values for each length.
Using the highest Pearson's R value, Auto Trend Projection identifies the optimal length for the trend projection. This ensures that the projected trend aligns closely with the historical price data.
The indicator visually displays the projected trend using trendlines. These trendlines extend into the future, providing a visual representation of the potential price movement in the short term. The color and style of the trendlines can be customized according to user preferences.
Auto Trend Projection simplifies the process of trend analysis by automating the projection of short-term trends. Traders and investors can use this indicator to gain insights into potential price movements and make informed trading decisions.
Please note that Auto Trend Projection is not a standalone trading strategy but a tool to assist in trend analysis. It is recommended to combine it with other technical analysis tools and indicators for comprehensive market analysis.
Overall, Auto Trend Projection offers a convenient and automated approach to projecting short-term trends, empowering traders with valuable insights into the potential price direction.
Double Supertrend Entry with ADX Filter and ATR Exits/EntriesThe Double Supertrend Entry with ADX Filter and ATR Exits/Entries indicator is a custom trading strategy designed to help traders identify potential buy and sell signals in trending markets. This indicator combines the strengths of multiple technical analysis tools, enhancing the effectiveness of the overall strategy.
Key features:
Two Supertrend Indicators - The indicator includes two Supertrend indicators with customizable parameters. These trend-following indicators calculate upper and lower trendlines based on the ATR and price. Buy signals are generated when the price crosses above both trendlines, and sell signals are generated when the price crosses below both trendlines.
ADX Filter - The Average Directional Index (ADX) is used to filter out weak trends and only generate buy/sell signals when the market exhibits a strong trend. The ADX measures the strength of the trend, and a customizable threshold level ensures that trades are only entered during strong trends.
ATR-based Exits and Entries - The indicator uses the Average True Range (ATR) to set profit target and stop-loss levels. ATR is a measure of market volatility, and these levels help traders determine when to exit a trade to secure profit or minimize loss.
Performance Statistics Table - A table is displayed on the chart, recording and showing the total number of winning trades, losing trades, percentage of profitable trades, average profit, and average loss. This information helps traders evaluate the performance of the strategy over time.
The Double Supertrend Entry with ADX Filter and ATR Exits/Entries indicator is a powerful trend-following strategy that can assist traders in making more informed decisions in the financial markets. By combining multiple technical analysis tools and providing performance statistics, this indicator helps traders improve their trading strategy and evaluate its success.
hayatguzel trendycurveENG
If we are wondering how the trendlines drawn on the hayatguzel indicator look like on the graph, we should use this indicator. Trendlines that are linear in Hg (hayatguzel) are actually curved in the graph.
"hayatguzel curve" indicator has capable of plotting horizontal levels but not trendlines in hg indicator. But "hayatguzel trendycurve" indicator has capable of plotting (on the chart) trendlines in hg.
First of all, we start by determining the coordinates from the trendlines drawn in hg. The coordinate of trendline beginings is x1,y1. In the continuation of the trendline, the coordinate of the second point taken from anywhere on the trendline is defined as x2,y2. In order to find the x1 and x2 values, the gray bar index chart must be open. After reading the values, the bar index chart can be turned off in the settings. The x coordinates of the trendlines will be the values in this gray bar index graph. You can read these coordinates from the gray numbers in the hg-trendycurve setting at the top left of the graph. The y values are the y axis values in the hg indicator.
It should be noted that the ema value in the hayatguzel trendycurve indicator must be the same as the ema value in the hg indicator.
Hayatguzel trendycurve indicator is not an indicator that can be used on its own, it should be used together with hayatguzel indicator.
TR
Hayatguzel indikatöründe çizilen trendline'ların grafik üzerine nasıl göründüğünü merak ediyorsak bu indikatörü kullanmalıyız. Hg'de doğrusal olan trendline'lar doğal olarak grafikte eğriseller.
Hayatguzel curve indikatöründe hg'deki sadece yatay seviyeler grafiğe dökülürken bu hayatguzel trendycurve indikatörü ile hg'deki trendline'lar da grafiğe dökülebiliyor.
Öncelikle hg'de çizilen trendline'lardan koordinatları belirlemek ile işe başlıyoruz. Trendline'ların başladığı yerin koordinatı x1,y1'dir. Trendline'ın devamında trendline üzerinde herhangi bir yerden alınan ikinci noktanın koordinatı da x2,y2 olarak tanımlandı. x1 ve x2 değerlerini bulabilmek için gri bar index grafiğinin açık olması gerekmektedir. Değerleri okuduktan sonra bar index grafiği ayarlardan kapatılabilir. Trendline'ların x koordinatları bu gri renkli bar index grafiğindeki değerler olacaktır. Bu koordinatları grafikte sol üstte bulunan hg-trendycurve ayalarındaki gri sayılardan okuyabilirsiniz. y değerleri ise hg indikatöründeki y ekseni değerleridir.
Unutulmamalı ki hayatguzel trendycurve indikatöründeki ema değeri hg indikatöründeki ema değeri ile aynı olmalıdır.
Hayatguzel trendycurve indikatörü kendi başına kullanılabilecek bir indikatör olmayıp hayatguzel indikatörü ile beraber kullanılması gerekmektedir.
PriceChannel_Ver1 [VNFlow]🔹 PriceChannel_Ver1 — Smart Trend & Signal Channel
This indicator combines ATR-based price channels with stochastic momentum and dynamic trend detection to provide clear BUY/SELL signals and visualize potential take-profit and stop-loss zones.
It adapts to market direction using price action and plots two types of trend lines (short-term and long-term) to highlight directional shifts.
🔧 Key Features:
Dynamic Price Channel: Based on ATR multipliers, adjusts upper/lower boundaries according to market volatility.
Stochastic Filter: Identifies entry points aligned with market direction.
Trend Detection: Recognizes bullish/bearish bias using breakout logic.
Visual Trade Zones: Auto-draws TP/SL boxes with precise levels.
Short & Long Trendlines: Connect recent pivot shifts with red (down) or blue (up) lines.
Custom Alerts: Instant notifications when BUY or SELL conditions are triggered.
🔸 Ideal for traders who follow price structure, trend-following, and momentum confirmation across any market or timeframe.
=====
Email: hasobin@outlook.com
Smart Trend Lines [The_lurker]
Smart Trend Lines
A multi-level trend classifier that detects bullish and bearish conditions using a methodology based on drawing trend lines—main, intermediate, and short-term—by identifying peaks and troughs. The tool highlights trend strength by applying filters such as the Average Directional Index (ADX) (A), Relative Strength Index (RSI) (R), and Volume (V), making it easier to interpret trend strength. The filter markers (V, A, R) in the Smart Trend Lines indicator are powerful tools for assessing the reliability of breakouts. Breakouts containing are the most reliable, as they indicate strong volume support, trend strength, and favorable momentum. Breakouts with partial filters (such as or ) require additional confirmation, while breakouts without filters ( ) should be avoided unless supported by other strong signals. By understanding the meaning of each filter and the market context.
Core Functionality
1. Trend Line Types
The indicator generates three distinct trend line categories, each serving a specific analytical purpose:
Main Trend Lines: These are long-term trend lines designed to capture significant market trends. They are calculated based on pivot points over a user-defined period (default: 50 bars). Main trend lines are ideal for identifying macro-level support and resistance zones.
Mid Trend Lines: These are medium-term trend lines (default: 21 bars) that focus on intermediate price movements. They provide a balance between short-term fluctuations and long-term trends, suitable for swing trading strategies.
Short Trend Lines: These are short-term trend lines (default: 9 bars) that track rapid price changes. They are particularly useful for scalping or day trading, highlighting immediate support and resistance levels.
Each trend line type can be independently enabled or disabled, allowing traders to tailor the indicator to their preferred timeframes.
2. Breakout Detection
The indicator employs a robust breakout detection system that identifies when the price crosses a trend line, signaling a potential trend reversal or continuation. Breakouts are validated using the following filters:
ADX Filter: The Average Directional Index (ADX) measures trend strength. A user-defined threshold (default: 20) ensures that breakouts occur during strong trends, reducing false signals in range-bound markets.
RSI Filter: The Relative Strength Index (RSI) identifies overbought or oversold conditions. Breakouts are filtered based on RSI thresholds (default: 65 for overbought, 35 for oversold) to avoid signals in extreme market conditions.
Volume Filter: Breakouts are confirmed only when trading volume exceeds a moving average (default: 20 bars) and aligns with the breakout direction (e.g., higher volume on bullish breakouts when the candle closes higher).
Breakout events are marked with labels on the chart, indicating the type of trend line broken (Main, Mid, or Short) and the filters satisfied (Volume, ADX, RSI). Alerts are triggered for each breakout, providing real-time notifications.
3. Customization Options
The indicator offers extensive customization through input settings, organized into logical groups for ease of use:
Main Trend Line Settings
Length: Defines the number of bars used to calculate pivot points (default: 50).
Bullish Color: Color for upward-sloping (bullish) main trend lines (default: green).
Bearish Color: Color for downward-sloping (bearish) main trend lines (default: red).
Style: Line style options include solid, dashed, or dotted (default: solid).
Mid Trend Line Settings
Length: Number of bars for mid-term pivot points (default: 21).
Show/Hide: Toggle visibility of mid trend lines (default: enabled).
Bullish Color: Color for bullish mid trend lines (default: lime).
Bearish Color: Color for bearish mid trend lines (default: maroon).
Style: Line style (default: dashed).
Short Trend Line Settings
Length: Number of bars for short-term pivot points (default: 9).
Show/Hide: Toggle visibility of short trend lines (default: enabled).
Bullish Color: Color for bullish short trend lines (default: teal).
Bearish Color: Color for bearish short trend lines (default: purple).
Style: Line style (default: dotted).
General Display Settings
Break Check Price: Selects the price type for breakout detection (Close, High, or Low; default: Close).
Show Previous Trendlines: Option to display historical main trend lines (default: disabled).
Label Size: Size of breakout labels (Tiny, Small, Normal, Large, Huge; default: Small).
Filter Settings
ADX Threshold: Minimum ADX value for trend strength confirmation (default: 25).
Volume MA Period: Period for the volume moving average (default: 20).
RSI Filter: Enable/disable RSI filtering (default: enabled).
RSI Upper Threshold: Upper RSI limit for overbought conditions (default: 65).
RSI Lower Threshold: Lower RSI limit for oversold conditions (default: 35).
4. Technical Calculations
The indicator relies on several technical calculations to ensure accuracy:
Pivot Points: Pivot highs and lows are detected using the ta.pivothigh and ta.pivotlow functions, with separate lengths for Main, Mid, and Short trend lines.
Slope Calculation: The slope of each trend line is calculated as the change in price divided by the change in bar index between two pivot points.
ADX Calculation: ADX is computed using a 14-period Directional Movement Index (DMI), with smoothing over 14 bars.
RSI Calculation: RSI is calculated over a 14-period lookback using the ta.rsi function.
Volume Moving Average: A simple moving average (SMA) of volume is used to determine if current volume exceeds the average.
5. Strict Mode Validation
To ensure the reliability of trend lines, the indicator employs a strict mode check:
For bearish trend lines, all prices between pivot points must remain below the projected trend line.
For bullish trend lines, all prices must remain above the projected trend line.
Post-pivot break checks ensure that no breakouts occur between pivot points, enhancing the validity of the trend line.
6. Trend Line Extension
Trend lines are dynamically extended forward until a breakout occurs. The extension logic:
Projects the trend line using the calculated slope.
Continuously validates the extension using strict mode checks.
Stops extension upon a breakout, fixing the trend line at the breakout point.
7. Alerts and Labels
Labels: Breakout labels are placed above (for bearish breakouts) or below (for bullish breakouts) the price bar. Labels include:
A prefix indicating the trend line type (B for Main, M for Mid, S for Short).
A suffix showing satisfied filters (e.g., for Volume, ADX, and RSI).
Alerts: Each breakout triggers a one-time alert per bar close, with a descriptive message indicating the trend line type and filters met.
Detailed Code Breakdown
1. Initialization and Inputs
The script begins by defining the indicator with indicator('Smart Trend Lines ', overlay = true), ensuring it overlays on the price chart. Input settings are grouped into categories (Main, Mid, Short, General Display, Filters) for user convenience. Each input includes a tooltip in both English and Arabic, enhancing accessibility.
2. Technical Indicator Calculations
Volume MA: Calculated using ta.sma(volume, volPeriod) to compare current volume against the average.
ADX: Computed using custom dirmov and adx functions, which calculate the Directional Movement Index and smooth it over 14 periods.
RSI: Calculated with ta.rsi(close, rsiPeriod) over 14 periods.
Price Selection: The priceToCheck function selects the price type (Close, High, or Low) for breakout detection.
3. Pivot Detection
Pivot points are detected using ta.pivothigh and ta.pivotlow for each trend line type. The lookback period is set to the respective trend line length (e.g., 50 for Main, 21 for Mid, 9 for Short).
4. Trend Line Logic
For each trend line type (Main, Mid, Short):
Bearish Trend Lines: Identified when two consecutive pivot highs form a downward slope. The script validates the trend line using strict mode and post-pivot break checks.
Bullish Trend Lines: Identified when two consecutive pivot lows form an upward slope, with similar validation.
Trend lines are drawn using line.new, with separate lines for the initial segment (between pivots) and the extended segment (from the second pivot forward).
5. Breakout Detection and Labeling
Breakouts are detected when the selected price crosses the trend line level. The script checks:
Volume conditions (above average and aligned with candle direction).
ADX condition (above threshold).
RSI condition (within thresholds if enabled). Labels are created with label.new, and alerts are triggered with alert.
6. Trend Line Extension
The extendTrendline function dynamically updates the trend line’s endpoint unless a breakout occurs. It uses strict mode checks to ensure the trend line remains valid.
7. Previous Trend Lines
If enabled, previous main trend lines are stored in arrays (previousBearishStartLines, previousBullishTrendLines, etc.) and displayed on the chart, providing historical context.
Disclaimer:
The information and publications are not intended to be, nor do they constitute, financial, investment, trading, or other types of advice or recommendations provided or endorsed by TradingView.
CoffeeShopCrypto Supply Demand PPO AdvancedCoffeeShopCrypto PPO Advanced is a structure-aware momentum oscillator and price-trend overlay designed to help traders interpret momentum strength, exhaustion, and continuation across evolving market conditions. It’s not a “buy/sell” signal tool — it's a momentum context tool that helps confirm trend intent.
Original Code derived from the Price Oscillator Indicators (PPO) found in the TradingView Technical Indicators categories. You can view the info and calculation for the original PPO here
www.tradingview.com
Much like the MACD, the PPO uses a couple lagging indicators to present Momentum as a percentage. But it lacks context to market structure.
What It’s Based On
This tool is based on a dual-moving-average PPO oscillator structure (Percentage Price Oscillator) enhanced by:
Oscillator pivot structure: detection of Lower Highs (LH) and Higher Lows (HL) inside the oscillator.
Detection of Supply and Demand Trends via Market Absorption
Ability to transfer its average plots to price action
Detection of Trend Exhaustion
Real-time price-based exhaustion levels: projecting potential future supply and demand using trendlines from weakening momentum.
Integrated fast and slow Moving Averages on price using the same inputs as the oscillator, to visualize alignment between short- and long-term trends.
These elements combine momentum context with price action in a visual, intuitive system.
How It Works
1. Oscillator Structure
LHs (above zero): momentum weakening in uptrends.
HLs (below zero): momentum strengthening in downtrends.
Only valid pivots are shown (e.g., an LH must be preceded by a valid LL).
2. Exhaustion Levels
Green demand lines: price is making new lows, but oscillator prints HL → potential exhaustion.
Red supply lines: price is making new highs, but oscillator prints LH → potential exhaustion.
These lines are future-facing, projecting likely reaction zones based on momentum weakening.
3. Moving Averages on Price
Two MAs are drawn on the price chart:
Fast MA (same length as PPO short input)
Slow MA (same length as PPO long input)
These are not signal lines — they're visual guides for trend alignment.
MA crossover = PO crosses zero. This indicates short- and long-term momentum are syncing — a powerful signal of trend conviction.
When price is above both MAs, and the PO is rising above zero, bullish momentum is dominant.
When price is below both MAs, and the PO is falling below zero, bearish momentum dominates.
How Traders Can Use It
✅ Spot Trend Initiation
Wait for clear trend confirmation in price.
Use PPO Momentum+ to confirm momentum structure is aligned (e.g., HH/HL in oscillator + price above both MAs).
🔁 Track Continuations
In uptrends, look for oscillator HH and HL sequences with price holding above both MAs.
In downtrends, seek LL and LH sequences with price below both MAs.
⚠️ Watch for Exhaustion
Price breaking below red (supply) lines after oscillator LH = bearish exhaustion signal.
Price breaking above green (demand) lines after oscillator HL = bullish exhaustion signal.
These levels act like pre-mapped S/R zones, showing where momentum previously failed and price may react.
Why This Is Different
Momentum tools often lag or mislead when used blindly. This tool visualizes structural failure in momentum and maps potential outcomes. The integration of oscillator and price-based tools ensures traders are always reading context, not just raw signals.
Demand Trendlines
Demand trendlines show us Wykoff's law of "Absorbed Supply Reversal" In real time.
When aggressive selling pressure is persistently absorbed by passive buying interest without significant downward price continuation, and supply becomes exhausted, the market structure shifts as demand regains control—resulting in a directional reversal to the upside.
This commonly happens in a 3 phase interaction of price.
1. Selling pressure is absorbed quickly by buyers.
This PPO tool will calculate the trend of this absorption process
2. After there is a notable Bearish Exhaustion of price action, the PPO tool will draw a trendline of this absorption showing us the potential future prices where aggressive buyers will want to step in at lower prices.
3. After higher lows are defined in the oscillator, you'll see prices react in a strong bullish pattern at this trendline where aggressive buyers stepped in to reverse price action to the upside.
Supply Trendlines
Supply trendlines show us Wykoff's law of "Absorbed Demand Reversal" In real time.
When aggressive buying pressure is persistently absorbed by passive selling interest without significant downward price continuation, and demand becomes exhausted, the market structure shifts as supply regains control—resulting in a directional reversal to the downside.
This commonly happens in a 3 phase interaction of price.
1. Buying pressure is absorbed quickly by sellers.
This PPO tool will calculate the trend of this absorption process.
2. After there is a notable Bullish Exhaustion of price action, the PPO tool will draw a trendline of this absorption showing us the potential future prices where aggressive sellers will want to step in at higher prices.
3. After lower highs are defined in the oscillator, you'll see prices react in a strong bearish pattern at this trendline where aggressive sellers stepped in to reverse price action to the downside.
Lower High and Higher Low Signals
When the oscillator signals Lower Highs or High Lows its only noting that momentum in that trend direction is slowing. THis indicates a coming pause in the market and the proceeding longs of an uptrend or shorts of a downtrend should be taken with caution.
**These LH and HL markers are not reading as divergences in price vs momentum.**
They are simply registering against the highs and lows of itself..
Moving Averages on Price Action
The Oscillator will cross over its ZERO level the same time your Short and Long MAs cross each other. This will indicate that the short term average trend is moving ahead of the long term.
Crossovers are not an entry signal. It's a method in determining you current timeframe trend strength. Always observe price action as it passes through each of your moving averages and compare it to the positioning and direction of the oscillator.
If price dips in between the moving averages while the oscillator still shows a strong trend strength, you can wait for price to move ahead of your fast moving average.
Bar Colors and Signal Line for Trend Strength
Good Bullish Trend = Oscillator above zero + Signal rising below Oscillator
Weak Bullish Trend = Oscillator above zero + Signal above Oscillator
Good Bearish Trend = Oscillator below zero + Signal falling above Oscillator
Weak Bearish Trend = Oscillator below zero + Signal below Oscillator
Bar Colors
Bars are colored to match Oscillator Momentum Strength. Colors are set by user.
Why alter the known PPO (Percentage Price Oscillator) in this manner?
The PPO tool is great for measuring the strength as percentage of price action over and average amount of candles however, with these changes,
you know have the ability to correlate:
Wycoff theory of supply and demand,
Measure the depth of reversals and pullback by price positioning against moving averages,
Project potential reversal and exhaustion pricing,
Visibly note the structure of momentum much like you would note market structure,
Its not enough to know there is momentum. Its better to know
A) Is it enough
B) Is there something in the way which will cause price to push back
C) Does this momentum correlate to the prevailing trend
Auto Support Resistance Channels [TradingFinder] Top/Down Signal🔵 Introduction
In technical analysis, a price channel is one of the most widely used tools for identifying and tracking price trends. A price channel consists of two parallel trendlines, typically drawn from swing highs (resistance) and swing lows (support). These lines define dynamic support and resistance zones and provide a clear framework for interpreting price fluctuations.
Drawing a channel on a price chart allows the analyst to more precisely identify entry points, exit levels, take-profit zones, and stop-loss areas based on how the price behaves within the boundaries of the channel.
Price channels in technical analysis are generally categorized into three types: upward channels with a positive slope, downward channels with a negative slope, and horizontal (range-bound) channels with near-zero slope. Each type offers unique insights into market behavior depending on the price structure and prevailing trend.
Structurally, channels can be formed using either minor or major pivot points. A major channel typically reflects a stronger, more reliable structure that appears on higher timeframes, whereas a minor channel often captures short-term fluctuations or corrective movements within a larger trend.
For instance, a major downward channel may indicate sustained selling pressure across the market, while a minor upward channel could represent a temporary pullback within a broader bearish trend.
The validity of a price channel depends on several factors, including the number of price touches on the channel lines, the symmetry and parallelism of the trendlines, the duration of price movement within the channel, and price behavior around the median line.
When a price channel is broken, it is generally expected that the price will move in the breakout direction by at least the width of the channel. This makes price channels especially useful in breakout analysis.
In the following sections, we will explore the different types of price channels, how to draw them accurately, the structural differences between minor and major channels, and key trade interpretations when price interacts with channel boundaries.
Up Channel :
Down Channel :
🔵 How to Use
A price channel is a practical tool in technical analysis for identifying areas of support, resistance, trend direction, and potential breakout zones. The structure consists of two parallel trendlines within which price fluctuates.
Traders use the relative position of price within the channel to make informed trading decisions. The two primary strategies include range-based trades (buying low, selling high) and breakout trades (entering when price exits the channel).
🟣 Up Channel
In an upward channel, price moves within a positively sloped range. The lower trendline acts as dynamic support, while the upper trendline serves as dynamic resistance. A common strategy involves buying near the lower support and taking profit or selling near the upper resistance.
If price breaks below the lower trendline with strong volume or a decisive candle, it can signal a potential trend reversal. Channels constructed from major pivots generally reflect dominant uptrends, while those based on minor pivots are often corrective structures within a broader bearish movement.
🟣 Down Channel
In a downward channel, price moves between two negatively sloped lines. The upper trendline functions as resistance, and the lower trendline as support. Ideal entry for short trades occurs near the upper boundary, especially when confirmed by bearish price action or a resistance level.
Exit targets are typically located near the lower support. If the upper boundary is broken to the upside, it may be an early sign of a bullish trend reversal. Like upward channels, a major down channel represents broader selling pressure, while a minor one may indicate a brief retracement in a bullish move.
🟣 Range Channel
A horizontal or range-bound channel is characterized by price oscillating between two nearly flat lines. This type of channel typically appears during sideways markets or periods of consolidation.
Traders often buy near the lower boundary and sell near the upper boundary to take advantage of contained volatility. However, fake breakouts are more frequent in range-bound structures, so it is important to wait for confirmation through candlestick signals and volume. A confirmed breakout beyond the channel boundaries can justify entering a trade in the direction of the breakout.
🔵 Settings
Pivot Period :This parameter defines how sensitive the channel detection is. A higher value causes the algorithm to identify major pivot points, resulting in broader and longer-term channels. Lower values focus on minor pivots and create tighter, short-term channels.
🔔 Alerts
Alert Configuration :
Enable or disable the full alert system
Set a custom alert name
Choose the alert frequency: every time, once per bar, or on bar close
Define the time zone for alert timestamps (e.g., UTC)
Channel Alert Types :
Each channel type (Major/Minor, Internal/External, Up/Down) supports two alert types :
Break Alert : Triggered when price breaks above or below the channel boundaries
React Alert : Triggered when price touches and reacts (bounces) off the channel boundary
🎨 Display Settings
For each of the eight channel types, you can customize:
Visibility : show or hide the channel
Auto-delete previous channels when new ones are drawn
Style : line color, thickness, type (solid, dashed, dotted), extension (right only, both sides)
🔵 Conclusion
The price channel is a foundational structure in technical analysis that enables traders to analyze price movement, identify dynamic support and resistance zones, and locate potential entry and exit points with greater precision.
When constructed properly using minor or major pivots, a price channel offers a consistent and intuitive framework for interpreting market behavior—often simpler and more visually clear than many other technical tools.
Understanding the differences between upward, downward, and range-bound channels—as well as recognizing the distinctions between minor and major structures—is critical for selecting the right trading strategy. Upward channels tend to generate buying opportunities, downward channels prioritize short setups, and horizontal channels provide setups for both mean-reversion and breakout trades.
Ultimately, the reliability of a price channel depends on various factors such as the number of touchpoints, the duration of the channel, the parallelism of the lines, and how the price reacts to the median line.
By taking these factors into account, an experienced analyst can effectively use price channels as a powerful tool for trend forecasting and precise trade execution. Although conceptually simple, successful application of price channels requires practice, pattern recognition, and the ability to filter out market noise.
Swiss Knife [MERT]Introduction
The Swiss Knife indicator is a comprehensive trading tool designed to provide a multi-dimensional analysis of the market. By integrating a wide array of technical indicators across multiple timeframes, it offers traders a holistic view of market sentiment, momentum, and potential reversal points. This indicator is particularly useful for traders looking to combine trend analysis, momentum indicators, volume data, and price action into a single, easy-to-read format.
---
Key Features
Multi-Timeframe Analysis : Evaluates indicators on Daily , 4-Hour , 1-Hour , and 15-Minute timeframes.
Comprehensive Indicator Suite : Incorporates MACD , Awesome Oscillator (AO) , Parabolic SAR , SuperTrend , DPO , RSI , Stochastic Oscillator , Bollinger Bands , Ichimoku Cloud , Chande Momentum Oscillator (CMO) , Donchian Channels , ADX , volume-based momentum indicators, Fractals , and divergence detection.
Market Sentiment Scoring : Aggregates signals from multiple indicators to provide an overall sentiment score.
Visual Aids : Displays EMA lines, trendlines, divergence signals, and a sentiment table directly on the chart.
Super Trend Reversal Signals : Identifies potential market reversal points by assessing the momentum of automated trading bots.
---
Explanation of Each Indicator
Moving Average Convergence Divergence (MACD)
- Purpose : Measures the relationship between two moving averages of price.
- Interpretation : A positive histogram suggests bullish momentum; a negative histogram indicates bearish momentum.
Awesome Oscillator (AO)
- Purpose : Gauges market momentum by comparing recent market movements to historic ones.
- Interpretation : Above zero indicates bullish momentum; below zero indicates bearish momentum.
Parabolic SAR (SAR)
- Purpose : Identifies potential reversal points in price direction.
- Interpretation : Dots below price suggest an uptrend; dots above price suggest a downtrend.
SuperTrend
- Purpose : Determines the prevailing market trend.
- Interpretation : Provides buy or sell signals based on price movements relative to the SuperTrend line.
Detrended Price Oscillator (DPO)
- Purpose : Removes trend from price to identify cycles.
- Interpretation : Values above zero suggest price is above the moving average; values below zero indicate it is below.
Relative Strength Index (RSI)
- Purpose : Measures the speed and change of price movements.
- Interpretation : Values above 50 indicate bullish momentum; values below 50 indicate bearish momentum.
Stochastic Oscillator
- Purpose : Compares a particular closing price to a range of its prices over a certain period.
- Interpretation : Values above 50 indicate bullish conditions; values below 50 indicate bearish conditions.
Bollinger Bands (BB)
- Purpose : Measures market volatility and provides relative price levels.
- Interpretation : Price above the middle band suggests bullishness; below the middle band suggests bearishness.
Ichimoku Cloud
- Purpose : Provides support and resistance levels, trend direction, and momentum.
- Interpretation : Bullish signals when price is above the cloud; bearish signals when price is below the cloud.
Chande Momentum Oscillator (CMO)
- Purpose : Measures momentum on both up and down days.
- Interpretation : Values above 50 indicate strong upward momentum; values below -50 indicate strong downward momentum.
Donchian Channels
- Purpose : Identifies volatility and potential breakouts.
- Interpretation : Price above the upper band suggests bullish breakout; below the lower band suggests bearish breakout.
Average Directional Index (ADX)
- Purpose : Measures the strength of a trend.
- Interpretation : DI+ above DI- indicates bullish trend; DI- above DI+ indicates bearish trend.
Volume Momentum Indicators (VolMom, CumVolMom, POCMom)
- Purpose : Analyze volume to assess buying and selling pressure.
- Interpretation : Positive values suggest bullish volume momentum; negative values indicate bearish volume momentum.
Fractals
- Purpose : Identify potential reversal points in the market.
- Interpretation : Up fractals may indicate a future downtrend; down fractals may indicate a future uptrend.
Divergence Detection
- Purpose : Identifies divergences between price and various indicators (RSI, MACD, Stochastic, OBV, MFI, A/D Line).
- Interpretation : Bullish divergences suggest potential upward reversal; bearish divergences suggest potential downward reversal.
- Note : This functionality utilizes the library from Divergence Indicator .
---
Coloring Scheme
Background Color
- Purpose : Reflects the overall market sentiment by combining sentiment scores from all indicators across different timeframes.
- Interpretation :
- Green Shades : Indicate bullish market sentiment.
- Red Shades : Indicate bearish market sentiment.
- Intensity : The strength of the color corresponds to the strength of the sentiment score.
Sentiment Table
- Purpose : Displays the status of each indicator across different timeframes.
- Interpretation :
- Green Cell : The indicator suggests a bullish signal.
- Red Cell : The indicator suggests a bearish signal.
- Percentage Score : Indicates the overall bullish or bearish sentiment on that timeframe.
Exponential Moving Averages (EMAs)
- Purpose : Provide dynamic support and resistance levels.
- Colors :
- EMA 10 : Lime
- EMA 20 : Yellow
- EMA 50 : Orange
- EMA 100 : Red
- EMA 200 : Purple
Trendlines
- Purpose : Visual representation of support and resistance levels based on pivot points.
- Interpretation :
- Upward Trendlines : Colored green , indicating support levels.
- Downward Trendlines : Colored red , indicating resistance levels.
- Note : Trendlines are drawn using the library from Simple Trendlines .
---
Utility of Market Sentiment
The indicator aggregates signals from multiple technical indicators across various timeframes to compute an overall market sentiment score . This comprehensive approach helps traders understand the prevailing market conditions by:
Confirming Trends : Multiple indicators pointing in the same direction can confirm the strength of a trend.
Identifying Reversals : Divergences and fractals can signal potential turning points.
Timeframe Alignment : Aligning signals across different timeframes can enhance the probability of successful trades.
---
Divergences
Divergence occurs when the price of an asset moves in the opposite direction of a technical indicator, suggesting a potential reversal.
- Bullish Divergence : Price makes a lower low, but the indicator makes a higher low.
- Bearish Divergence : Price makes a higher high, but the indicator makes a lower high.
The indicator detects divergences for:
RSI
MACD
Stochastic Oscillator
On-Balance Volume (OBV)
Money Flow Index (MFI)
Accumulation/Distribution Line (A/D Line)
By identifying these divergences, traders can spot early signs of trend reversals and adjust their strategies accordingly.
---
Trendlines
Trendlines are essential tools for identifying support and resistance levels. The indicator automatically draws trendlines based on pivot points:
- Upward Trendlines (Support) : Connect higher lows, indicating an uptrend.
- Downward Trendlines (Resistance) : Connect lower highs, indicating a downtrend.
These trendlines help traders visualize the trend direction and potential breakout or reversal points.
---
Super Trend Reversals (ST Reversal)
The core idea behind the Super Trend Reversals indicator is to assess the momentum of automated trading bots (often referred to as 'Supertrend bots') that enter the market during critical turning points. Specifically, the indicator is tuned to identify when the market is nearing bottoms or peaks, just before it shifts direction based on the triggered Supertrend signals. This approach helps traders:
Engage Early : Enter the market as reversal momentum builds up.
Optimize Entries and Exits : Enter under favorable conditions and exit before momentum wanes.
By capturing these reversal points, traders can enhance their trading performance.
---
Conclusion
The Swiss Knife indicator serves as a versatile tool that combines multiple technical analysis methods into a single, comprehensive indicator. By assessing various aspects of the market—including trend direction, momentum, volume, and price action—it provides traders with valuable insights to make informed trading decisions.
---
Citations
- Divergence Detection Library : Divergence Indicator by DevLucem
- Trendline Drawing Library : Simple Trendlines by HoanGhetti
---
Note : This indicator is intended for informational purposes and should be used in conjunction with other analysis techniques. Always perform due diligence before making trading decisions.
---
Trend LinesThis script, titled "Trend Lines," is designed to detect and plot significant trend lines on a TradingView chart, based on pivot points. It highlights both uptrend and downtrend lines using different colors and allows customization of line styles, including color and thickness. Here's a breakdown of how the script works:
Inputs
Left Bars (lb) and Right Bars (rb): These inputs determine the number of bars to the left and right of a pivot point used to identify significant highs and lows.
Show Pivot Points: A boolean input to display markers at detected pivot points on the chart.
Show Old Line as Dashed: A boolean input to display older trend lines as dashed for visual distinction.
Uptrend Line Color (ucolor) and Downtrend Line Color (dcolor): Color inputs to customize the appearance of uptrend and downtrend lines.
Uptrend Line Thickness (uthickness) and Downtrend Line Thickness (dthickness): Inputs to adjust the thickness of the trend lines.
Calculations
Pivot Highs and Lows: The script calculates potential pivot highs and lows by looking at lb bars to the left and rb bars to the right. If a bar's high is the highest (or low is the lowest) within this window, it is considered a pivot point.
Trend Lines: The script connects the most recent and previous pivot highs to form downtrend lines, and the most recent and previous pivot lows to form uptrend lines. These lines are drawn with the specified color and thickness.
Angles: The angle of each trend line is calculated to determine whether the trend is strengthening or weakening. If the trend changes significantly, the line's extension is adjusted accordingly.
Plotting
Pivot Point Markers: If Show Pivot Points is enabled, markers labeled "H" for highs and "L" for lows are plotted at the pivot points.
Trend Lines: The script draws lines between pivot points, coloring them according to the trend direction (uptrend or downtrend). If Show Old Line as Dashed is enabled, the script sets older lines to a dashed style to indicate they are no longer the most recent trend lines.
This script is useful for traders who want to visually identify key support and resistance levels based on historical price action, helping them to make more informed trading decisions. The customization options allow traders to tailor the appearance of the trend lines to suit their personal preferences or charting style.
Johnny's Trend Lines, Supports and ResistancesInspired and based on ismailcarlik's Trend Lines, Supports and Resistances.
Additions include an overall upgrade to Pinescript v5, changes in the way resistance and support levels are calculated, improved visual queues, and additional customization options.
This indicator is meticulously crafted to provide traders with visual tools for identifying trend lines, support, and resistance levels, enhancing the decision-making process in trading activities.
Features and Functionality
Trend Lines: The indicator allows users to enable or disable trend lines, adjust the number of points to check for establishing a trend, and set parameters for trend validation, including the maximum violation and exceptions for the last bars.
Support and Resistance: It offers tools to identify and visualize key support and resistance levels based on recent pivot points. This includes adjustable parameters for the maximum violations allowed and the exclusion of recent bars from the analysis.
Pivot Points: Users can define the pivot length for calculating highs and lows, which helps in marking significant pivot points that are instrumental in trend analysis.
Alerts and Notifications: The indicator is equipped with customizable alerts for trend line breaches and pivot point formations, which can be set to trigger at different frequencies based on user preference.
How It Works
Input Flexibility: Users can adjust various settings like the length of trend lines and pivot points, enabling or disabling specific features like marking pivots, and managing alert settings directly from the indicator’s input panel.
Dynamic Analysis: By analyzing the price action relative to the calculated trend lines and pivot points, the indicator dynamically identifies potential trend reversals, continuations, and significant price levels.
Visualization: It plots trend lines and marks support and resistance levels directly on the chart, with options to extend these lines and add labels for better clarity. Violated trend lines can be visually differentiated by changing their style and width.
Practical Application
Trend Line Strategy: Traders can use the trend lines to determine the strength of the current market trend and to spot potential reversal points.
Support and Resistance Strategy: By marking where the price has historically faced resistance or found support, traders can plan entry and exit points, set stop-loss orders, or identify breakout opportunities.
Pivot Points Strategy: Pivot points serve as vital indicators for intraday trading or long-term trend analysis, providing insights into potential support and resistance levels.
Customization and Alerts
Custom Alerts: Traders can set alerts for when the price crosses trend lines or when new support or resistance levels are formed, helping them stay informed of critical market movements without having to continuously monitor the charts.
Visual Customization: Users can personalize the appearance of trend lines and labels, choosing from a variety of colors and styles to match their chart setup or preferences.
"Johnny's Trend Lines, Supports and Resistances" is an essential tool for traders who rely on technical analysis, offering detailed insights and real-time updates on market conditions, trend strength, and potential price barriers.
Bull Bear Trend IndicatorIntroduction: Origin of the Swing Point Indicator
In the quest for a reliable indicator that accurately predicts trend directions and identifies valid highs and lows, the genesis of the Swing Point Indicator emerged. Faced with the challenge of finding a tool that provided comprehensive market analysis and actionable insights, the need for a novel solution became evident. Combining insights gleaned from market analysis and innovative algorithmic approaches, the Swing Point Indicator was born.
Enhanced Feature: Highs and Lows Labeling in Trend Direction
In addition to its core functionalities, the Swing Point Indicator incorporates an advanced feature that enhances the visualization of trend direction. This feature provides further clarity by selectively labeling highs and lows based on the prevailing trend, reinforcing the identification of higher highs and lower lows in uptrends and downtrends, respectively. Overlapping labels on highs and lows signify a potential trend change, providing traders with valuable insight into market reversals.
Detailed Description:
1. Uptrend Labeling:
- Higher Highs (Green Label with Price): In an uptrend, where higher highs are observed, the indicator labels these points with vibrant green color and includes the corresponding price value. This visually highlights the significance of higher highs as pivotal points in the upward trajectory of prices.
- Higher Lows (Red Marker without Text or Diamond): To complement the identification of higher highs, higher lows are marked with a distinct red marker or diamond, devoid of any accompanying text. While these points are crucial in delineating the ascending trend, their emphasis lies in their role as support levels, providing a foundation for upward price movements.
2. Downtrend Labeling:
- Lower Lows (Red Label with Price): Conversely, in a downtrend characterized by lower lows, the indicator labels these points with conspicuous red color, accompanied by the corresponding price value. Lower lows signify critical levels of downward price momentum, acting as indicators of potential bearish continuation.
- Lower Highs (Green Marker without Text or Diamond): Lower highs, indicative of downward retracements in a downtrend, are marked by distinctive green markers or diamonds without accompanying text. While these points denote temporary pauses or pullbacks in the bearish trend, their emphasis lies in their role as resistance levels, impeding upward price movements.
Functionality and Utility:
- Customizable Lookback Candle Count: Traders have the option to adjust the lookback candle count, which is set by default at 108 candles in the settings. This flexibility allows traders to tailor the indicator to their specific trading preferences and timeframes.
- Equal Highs or Lows Option: When enabled, the Swing Point Indicator can identify equal highs or equal lows, providing traders with additional insight into market dynamics.
- Formation Confirmation: A new higher high along with its higher low or a new lower low along with its lower high is confirmed after two candles have closed following the swing point candle. This ensures the reliability of the identified trend direction.
Conclusion:
The incorporation of selective labeling for highs and lows based on trend direction, alongside the introduction of customizable settings and formation confirmation criteria, enhances the effectiveness of the Swing Point Indicator. This feature-rich tool empowers traders with a nuanced understanding of market dynamics, highlighting critical price levels and trend reversals. By offering enhanced visualization, customizable options, and confirmation criteria, the Swing Point Indicator equips traders with the confidence and precision needed to navigate the markets successfully, contributing to more informed and profitable trading strategies.
abstractchartpatternsLibrary "abstractchartpatterns"
Library having abstract types and methods for chart pattern implementations
checkBarRatio(p1, p2, p3, properties)
checks if three zigzag pivot points are having uniform bar ratios
Parameters:
p1 (chart.point) : First pivot point
p2 (chart.point) : Second pivot point
p3 (chart.point) : Third pivot point
properties (ScanProperties)
Returns: true if points are having uniform bar ratio
getRatioDiff(p1, p2, p3)
gets ratio difference between 3 pivot combinations
Parameters:
p1 (chart.point)
p2 (chart.point)
p3 (chart.point)
Returns: returns the ratio difference between pivot2/pivot1 ratio and pivot3/pivot2 ratio
method inspect(points, stratingBar, endingBar, direction, ohlcArray)
Creates a trend line between 2 or 3 points and validates and selects best combination
Namespace types: chart.point
Parameters:
points (chart.point ) : Array of chart.point objects used for drawing trend line
stratingBar (int) : starting bar of the trend line
endingBar (int) : ending bar of the trend line
direction (float) : direction of the last pivot. Tells whether the line is joining upper pivots or the lower pivots
ohlcArray (OHLC type from Trendoscope/ohlc/1) : Array of OHLC values
Returns: boolean flag indicating if the trend line is valid and the trend line object as tuple
method draw(this)
draws pattern on the chart
Namespace types: Pattern
Parameters:
this (Pattern) : Pattern object that needs to be drawn
Returns: Current Pattern object
method erase(this)
erase the given pattern on the chart
Namespace types: Pattern
Parameters:
this (Pattern) : Pattern object that needs to be erased
Returns: Current Pattern object
method push(this, p, maxItems)
push Pattern object to the array by keeping maxItems limit
Namespace types: Pattern
Parameters:
this (Pattern ) : array of Pattern objects
p (Pattern) : Pattern object to be added to array
@oaram maxItems Max number of items the array can hold
maxItems (int)
Returns: Current Pattern array
method deepcopy(this)
Perform deep copy of a chart point array
Namespace types: chart.point
Parameters:
this (chart.point ) : array of chart.point objects
Returns: deep copy array
DrawingProperties
Object containing properties for pattern drawing
Fields:
patternLineWidth (series int) : Line width of the pattern trend lines
showZigzag (series bool) : show zigzag associated with pattern
zigzagLineWidth (series int) : line width of the zigzag lines. Used only when showZigzag is set to true
zigzagLineColor (series color) : color of the zigzag lines. Used only when showZigzag is set to true
showPatternLabel (series bool) : display pattern label containing the name
patternLabelSize (series string) : size of the pattern label. Used only when showPatternLabel is set to true
showPivotLabels (series bool) : Display pivot labels of the patterns marking 1-6
pivotLabelSize (series string) : size of the pivot label. Used only when showPivotLabels is set to true
pivotLabelColor (series color) : color of the pivot label outline. chart.bg_color or chart.fg_color are the appropriate values.
deleteOnPop (series bool) : delete the pattern when popping out from the array of Patterns.
Pattern
Object containing Individual Pattern data
Fields:
points (chart.point )
originalPoints (chart.point )
trendLine1 (Line type from Trendoscope/LineWrapper/1) : First trend line joining pivots 1, 3, 5
trendLine2 (Line type from Trendoscope/LineWrapper/1) : Second trend line joining pivots 2, 4 (, 6)
properties (DrawingProperties) : DrawingProperties Object carrying common properties
patternColor (series color) : Individual pattern color. Lines and labels will be using this color.
ratioDiff (series float) : Difference between trendLine1 and trendLine2 ratios
zigzagLine (series polyline) : Internal zigzag line drawing Object
pivotLabels (label ) : array containning Pivot labels
patternLabel (series label) : pattern label Object
patternType (series int) : integer representing the pattern type
patternName (series string) : Type of pattern in string
ScanProperties
Object containing properties for pattern scanning
Fields:
offset (series int) : Zigzag pivot offset. Set it to 1 for non repainting scan.
numberOfPivots (series int) : Number of pivots to be used in pattern search. Can be either 5 or 6
errorRatio (series float) : Error Threshold to be considered for comparing the slope of lines
flatRatio (series float) : Retracement ratio threshold used to determine if the lines are flat
checkBarRatio (series bool) : Also check bar ratio are within the limits while scanning the patterns
barRatioLimit (series float) : Bar ratio limit used for checking the bars. Used only when checkBarRatio is set to true
avoidOverlap (series bool) : avoid overlapping patterns.
allowedPatterns (bool ) : array of bool encoding the allowed pattern types.
allowedLastPivotDirections (int ) : array of int representing allowed last pivot direction for each pattern types
themeColors (color ) : color array of themes to be used.
chartpatternsLibrary "chartpatterns"
Library having complete chart pattern implementation
method draw(this)
draws pattern on the chart
Namespace types: Pattern
Parameters:
this (Pattern) : Pattern object that needs to be drawn
Returns: Current Pattern object
method erase(this)
erase the given pattern on the chart
Namespace types: Pattern
Parameters:
this (Pattern) : Pattern object that needs to be erased
Returns: Current Pattern object
method findPattern(this, properties, patterns)
Find patterns based on the currect zigzag object and store them in the patterns array
Namespace types: zg.Zigzag
Parameters:
this (Zigzag type from Trendoscope/ZigzagLite/2) : Zigzag object containing pivots
properties (PatternProperties) : PatternProperties object
patterns (Pattern ) : Array of Pattern objects
Returns: Current Pattern object
PatternProperties
Object containing properties for pattern scanning
Fields:
offset (series int) : Zigzag pivot offset. Set it to 1 for non repainting scan.
numberOfPivots (series int) : Number of pivots to be used in pattern search. Can be either 5 or 6
errorRatio (series float) : Error Threshold to be considered for comparing the slope of lines
flatRatio (series float) : Retracement ratio threshold used to determine if the lines are flat
checkBarRatio (series bool) : Also check bar ratio are within the limits while scanning the patterns
barRatioLimit (series float) : Bar ratio limit used for checking the bars. Used only when checkBarRatio is set to true
avoidOverlap (series bool)
patternLineWidth (series int) : Line width of the pattern trend lines
showZigzag (series bool) : show zigzag associated with pattern
zigzagLineWidth (series int) : line width of the zigzag lines. Used only when showZigzag is set to true
zigzagLineColor (series color) : color of the zigzag lines. Used only when showZigzag is set to true
showPatternLabel (series bool) : display pattern label containing the name
patternLabelSize (series string) : size of the pattern label. Used only when showPatternLabel is set to true
showPivotLabels (series bool) : Display pivot labels of the patterns marking 1-6
pivotLabelSize (series string) : size of the pivot label. Used only when showPivotLabels is set to true
pivotLabelColor (series color) : color of the pivot label outline. chart.bg_color or chart.fg_color are the appropriate values.
allowedPatterns (bool ) : array of bool encoding the allowed pattern types.
themeColors (color ) : color array of themes to be used.
Pattern
Object containing Individual Pattern data
Fields:
pivots (Pivot type from Trendoscope/ZigzagLite/2) : array of Zigzag Pivot points
trendLine1 (Line type from Trendoscope/LineWrapper/1) : First trend line joining pivots 1, 3, 5
trendLine2 (Line type from Trendoscope/LineWrapper/1) : Second trend line joining pivots 2, 4 (, 6)
properties (PatternProperties) : PatternProperties Object carrying common properties
patternColor (series color) : Individual pattern color. Lines and labels will be using this color.
ratioDiff (series float) : Difference between trendLine1 and trendLine2 ratios
zigzagLine (series polyline) : Internal zigzag line drawing Object
pivotLabels (label ) : array containning Pivot labels
patternLabel (series label) : pattern label Object
patternType (series int) : integer representing the pattern type
patternName (series string) : Type of pattern in string
cphelperLibrary "cphelper"
ACPU helper library - for private use. Not so meaningful for others.
calculate_rr(targetArray, rrArray, breakevenOnTarget1)
calculates risk reward for given targets
Parameters:
targetArray (float ) : array of targets
rrArray (float ) : array of risk reward
breakevenOnTarget1 (simple bool) : option to breakeven
Returns: array rrArray
trendPairs(l1StartX, l1StartY, l1EndX, l1EndY, l2StartX, l2StartY, l2EndX, l2EndY, zgColor)
creates trendline pairs
Parameters:
l1StartX (int) : startX of first line
l1StartY (float) : startY of first line
l1EndX (int) : endX of first line
l1EndY (float) : endY of first line
l2StartX (int) : startX of second line
l2StartY (float) : startY of second line
l2EndX (int) : endX of second line
l2EndY (float) : endY of second line
zgColor (color) : line color
Returns:
find_type(l1t, l2t, channelThreshold)
Finds type based on trendline pairs
Parameters:
l1t (line) : line1
l2t (line) : line2
channelThreshold (simple float) : theshold for channel identification
Returns: pattern type and flags
getFlags(flags)
Flatten flags
Parameters:
flags (bool ) : array of flags
Returns: - flattened flags isChannel, isTriangle, isWedge, isExpanding, isContracting, isFlat, isRising, isFalling
getType(typeNum)
Get type based on type number
Parameters:
typeNum (int) : number representing type
Returns: String value of type
getStatus(status, maxStatus)
Get status based on integer value representations
Parameters:
status (int) : integer representing current status
maxStatus (int) : integer representing max status
Returns: String status value
calculate_simple_targets(trendLines, settingsMatrix, patternTypeMapping, patternType)
Calculate targets based on trend lines
Parameters:
trendLines (line ) : trendline pair array
settingsMatrix (matrix) : matrix containing settings
patternTypeMapping (string ) : array containing pattern type mapping
patternType (int) : pattern type
Returns: arrays containing long and short calculated targets
recalculate_position(patternTypeAndStatusMatrix, targetMatrix, index, pIndex, status, maxStatus, targetValue, stopValue, dir, breakevenOnTarget1)
Recalculate position values
Parameters:
patternTypeAndStatusMatrix (matrix) : matrix containing pattern type and status
targetMatrix (matrix) : matrix containing targets
index (int) : current index
pIndex (int) : pattern index
status (int) : current status
maxStatus (int) : max status reached
targetValue (float) : current target value
stopValue (float) : current stop value
dir (int) : direction
breakevenOnTarget1 (simple bool) : flag to breakeven upon target1
Returns: new status and maxStatus values
draw_targets(longTargets, shortTargets, index, labelColor, patternName, positionIndex, longMaxStatus, longStatus, shortMaxStatus, shortStatus, tempBoxes, tempLines, tempLabels)
Draw targets on chart
Parameters:
longTargets (matrix) : matrix containing long targets
shortTargets (matrix) : matrix containing short targets
index (int) : current index
labelColor (color) : color of lines and labels
patternName (string) : Pattern name
positionIndex (int) : position on the chart
longMaxStatus (int) : max status for long
longStatus (int) : long status value
shortMaxStatus (int) : max status for short
shortStatus (int) : short status value
tempBoxes (box ) : temporary box array
tempLines (line ) : temporary lines array
tempLabels (label ) : temporary labels array
Returns: void
populate_open_stats(patternIdArray, barMatrix, patternTypeAndStatusMatrix, patternColorArray, longTargets, shortTargets, patternRRMatrix, OpenStatPosition, lblSizeOpenTrades)
Populate open stats table
Parameters:
patternIdArray (int ) : pattern Ids
barMatrix (matrix) : matrix containing bars
patternTypeAndStatusMatrix (matrix) : matrix containing pattern type and status
patternColorArray (color ) : array containing current patter colors
longTargets (matrix) : matrix of long targets
shortTargets (matrix) : matrix of short targets
patternRRMatrix (matrix) : pattern risk reward matrix
OpenStatPosition (simple string) : table position
lblSizeOpenTrades (simple string) : text size
Returns: void
draw_pattern_label(trendLines, patternFlagMatrix, patternTypeAndStatusMatrix, patternColorArray, patternFlags, patternLabelArray, zgColor, patternType, drawLabel, clearOldPatterns, safeRepaint, maxPatternsReference)
Parameters:
trendLines (line )
patternFlagMatrix (matrix)
patternTypeAndStatusMatrix (matrix)
patternColorArray (color )
patternFlags (bool )
patternLabelArray (label )
zgColor (color)
patternType (int)
drawLabel (simple bool)
clearOldPatterns (simple bool)
safeRepaint (simple bool)
maxPatternsReference (simple int)
populate_closed_stats(patternTypeAndStatusMatrix, bullishCounts, bearishCounts, bullishRetouchCounts, bearishRetouchCounts, bullishSizeMatrix, bearishSizeMatrix, bullishRR, bearishRR, ClosedStatsPosition, lblSizeClosedTrades, showSelectivePatternStats, showPatternStats, showStatsInPercentage)
Parameters:
patternTypeAndStatusMatrix (matrix)
bullishCounts (matrix)
bearishCounts (matrix)
bullishRetouchCounts (matrix)
bearishRetouchCounts (matrix)
bullishSizeMatrix (matrix)
bearishSizeMatrix (matrix)
bullishRR (matrix)
bearishRR (matrix)
ClosedStatsPosition (simple string)
lblSizeClosedTrades (simple string)
showSelectivePatternStats (simple bool)
showPatternStats (simple bool)
showStatsInPercentage (simple bool)