Super Trend and RSI Strategy### Super Trend and RSI Strategy: A Brief Overview
The Super Trend and RSI (Relative Strength Index) strategy is a popular trading approach that combines the trend-following capabilities of the Super Trend indicator with the momentum analysis of the RSI. This hybrid strategy aims to provide traders with reliable entry and exit signals by confirming trends and identifying potential reversals.
#### Super Trend Indicator
The Super Trend indicator is a trend-following tool that signals the current market direction. It is calculated using the Average True Range (ATR) to identify volatility and price movement. The indicator plots lines above or below the price, signaling bullish (green) or bearish (red) trends:
- **Buy Signal**: When the price crosses above the Super Trend line and the line turns green.
- **Sell Signal**: When the price crosses below the Super Trend line and the line turns red.
#### Relative Strength Index (RSI)
The RSI is a momentum oscillator that measures the speed and change of price movements on a scale from 0 to 100. It helps identify overbought or oversold conditions:
- **Overbought Condition**: RSI value above 70, suggesting the asset may be overvalued and a correction could be imminent.
- **Oversold Condition**: RSI value below 30, suggesting the asset may be undervalued and a rebound could be imminent.
#### Strategy Implementation
1. **Trend Confirmation with Super Trend**:
- Enter a long position (buy) when the Super Trend turns green and the price closes above it.
- Enter a short position (sell) when the Super Trend turns red and the price closes below it.
2. **Momentum Confirmation with RSI**:
- For long positions, ensure the RSI is not in the overbought zone (preferably below 70).
- For short positions, ensure the RSI is not in the oversold zone (preferably above 30).
3. **Entry Signals**:
- **Buy Signal**: Super Trend turns green, price closes above the Super Trend line, and RSI is below 70.
- **Sell Signal**: Super Trend turns red, price closes below the Super Trend line, and RSI is above 30.
4. **Exit Signals**:
- Close long positions when the Super Trend turns red or the RSI enters the overbought zone.
- Close short positions when the Super Trend turns green or the RSI enters the oversold zone.
#### Advantages and Considerations
- **Advantages**:
- Combines trend-following and momentum analysis for more robust signals.
- Helps filter out false signals by requiring confirmation from both indicators.
- **Considerations**:
- Like all trading strategies, it is not foolproof and can generate false signals.
- Best used in conjunction with other analysis techniques and proper risk management.
- Performance can vary across different market conditions and timeframes.
The Super Trend and RSI strategy is a versatile tool that can enhance trading decisions by providing clearer entry and exit points, helping traders capture significant market moves while avoiding potential pitfalls of relying on a single indicator.
Cerca negli script per "trend"
divergingchartpatternLibrary "divergingchartpattern"
Library having implementation of converging chart patterns
getPatternNameByType(patternType)
Returns pattern name based on type
Parameters:
patternType (int) : integer value representing pattern type
Returns: string name of the pattern
method find(this, sProperties, dProperties, patterns, ohlcArray)
find converging patterns for given zigzag
Namespace types: zg.Zigzag
Parameters:
this (Zigzag type from Trendoscope/ZigzagLite/2) : Current zigzag Object
sProperties (ScanProperties) : ScanProperties Object
dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/5) : DrawingProperties Object
patterns (array type from Trendoscope/abstractchartpatterns/5) : array of existing patterns to check for duplicates
ohlcArray (array type from Trendoscope/ohlc/1) : array of OHLC values for historical reference
Returns: string name of the pattern
ScanProperties
Object containing properties for pattern scanning
Fields:
baseProperties (ScanProperties type from Trendoscope/abstractchartpatterns/5) : Object of Base Scan Properties
convergingDistanceMultiplier (series float)
convergingpatternsLibrary "convergingpatterns"
Library having implementation of converging chart patterns
getPatternNameByType(patternType)
Returns pattern name based on type
Parameters:
patternType (int) : integer value representing pattern type
Returns: string name of the pattern
method find(this, sProperties, dProperties, patterns, ohlcArray)
find converging patterns for given zigzag
Namespace types: zg.Zigzag
Parameters:
this (Zigzag type from Trendoscope/ZigzagLite/2) : Current zigzag Object
sProperties (ScanProperties) : ScanProperties Object
dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/5) : DrawingProperties Object
patterns (array type from Trendoscope/abstractchartpatterns/5) : array of existing patterns to check for duplicates
ohlcArray (array type from Trendoscope/ohlc/1) : array of OHLC values for historical reference
Returns: string name of the pattern
ScanProperties
Object containing properties for pattern scanning
Fields:
baseProperties (ScanProperties type from Trendoscope/abstractchartpatterns/5) : Object of Base Scan Properties
convergingDistanceMultiplier (series float) : when multiplied with pattern size gets the max number of bars within which the pattern should converge
basechartpatternsLibrary "basechartpatterns"
Library having complete chart pattern implementation
getPatternNameById(id)
Returns pattern name by id
Parameters:
id (int) : pattern id
Returns: Pattern name
method find(points, properties, dProperties, ohlcArray)
Find patterns based on array of points
Namespace types: chart.point
Parameters:
points (chart.point ) : array of chart.point objects
properties (ScanProperties type from Trendoscope/abstractchartpatterns/1) : ScanProperties object
dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/1) : DrawingProperties object
ohlcArray (OHLC type from Trendoscope/ohlc/1)
Returns: Flag indicating if the pattern is valid, Current Pattern object
method find(this, properties, dProperties, patterns, ohlcArray)
Find patterns based on the currect zigzag object but will not store them in the pattern array.
Namespace types: zg.Zigzag
Parameters:
this (Zigzag type from Trendoscope/ZigzagLite/2) : Zigzag object containing pivots
properties (ScanProperties type from Trendoscope/abstractchartpatterns/1) : ScanProperties object
dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/1) : DrawingProperties object
patterns (Pattern type from Trendoscope/abstractchartpatterns/1) : Array of Pattern objects
ohlcArray (OHLC type from Trendoscope/ohlc/1)
Returns: Flag indicating if the pattern is valid, Current Pattern object
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
SideKick Trend
Pivot point based indicator using candlestick colors on the daily time frame to indicate potential trends.
The major trend corresponds to the breakout of a major pivot point, while the minor trend corresponds to the breakout of a minor pivot point.
Colors:
# Orange: Indicates major uptrend (important pivot high has been surpassed)
# Black: Indicates major downtrend (important pivot low has been broken)
Additional:
# Orange (50% opacity): Indicates minor uptrend (break of a minor pivot high) while a major downtrend persists
# Black (50% opacity): Indicates minor downtrend (break of a minor pivot low) while a major uptrend persists.
The minor trends serve as potential indicators of a shift in the major trend or a temporary retrace which may provide opportunities for strategic entry points depending on your strategy.
All scripts and content provided are for informational and educational purposes only! Past performance does not guarantee future results! The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by nakedforexalgo.
RMB - Trend AnalysisRMB - Trend Analysis Indicator
Overview:
The "RMB - Trend Analysis" indicator is a powerful tool designed for traders who need a quick and clear visual representation of the trend direction across multiple timeframes. This indicator simplifies the process of trend analysis by displaying trend direction symbols on the chart, allowing traders to make informed decisions. This indicator is usable for all instruments.
Key Features:
Multi-Timeframe Analysis: Provides trend direction for weekly, daily, 4-hour, 2-hour, 1-hour, 30-minute, and 15-minute timeframes.
Trend Direction Symbols: Utilizes intuitive arrow symbols to indicate the trend direction. An upward arrow (↑) signifies an uptrend, while a downward arrow (↓) indicates a downtrend.
Color-Coded Trends: Arrows are color-coded for enhanced visibility and quick interpretation. Green arrows represent uptrends, and red arrows denote downtrends.
Dynamic Updates: The indicator updates the trend symbols in real-time as new price data becomes available, ensuring traders are always informed of the latest trend changes.
Customizable and User-Friendly: Designed with user experience in mind, the indicator is easy to add to any chart and integrates seamlessly with TradingView's interface.
Usage:
This indicator is particularly useful for traders who employ multi-timeframe analysis in their trading strategy. By providing a snapshot of trend directions across different timeframes, it helps in identifying potential entry and exit points, confirming trend continuations, or spotting trend reversals. Whether you are a day trader, swing trader, or long-term investor, the "RMB - Trend Analysis" indicator can be a valuable addition to your trading toolkit.
How it Works:
The indicator calculates the trend direction based on a Simple Moving Average (SMA) over 14 periods. It then displays this information as arrow symbols on the chart, with each symbol corresponding to a specific timeframe. The position and color of these arrows provide an at-a-glance view of the current trend status across various timeframes, aiding in comprehensive market analysis.
Historical Pattern Matcher [Trendoscope]Do you believe in patterns and think price movements are more likely to follow historical patterns? If yes, this is an indicator for you.
🎲 Concept
The patterns in this script are not a named or known pattern. But, it can be any pattern that happen to repeat again and again over a period of time.
The indicator collects the following information over a period of time.
Collects all possible patterns for specified number of pivots based on relation between each pivot prices. (Default 6)
Keeps track of all the possible patterns for the given pivots and number of occurrences of such patterns over a period of time.
Collects the movement of next pivot (in terms of retracement ratio) after the pattern has formed for each occurrence.
Keeps track of the last occurrence of each pattern collected
And the indicator presents on chart following information
Current Pattern drawing based on last confirmed pivot.
Current Pattern drawing based on current unconfirmed pivot in the opposite direction.
Projection range based on historical retracement ratio for both patterns
Detailed info on last occurrence and overall occurrences.
Last occurrence of both confirmed and unconfirmed pivot patterns.
Please note that, if the patterns have not been repeated over a period, then it will not be shown on the screen. Hence, it is perfectly normal to not see any projection. This can happen when the current pattern has not been repeated any time before.
🎲 Details
When you load the indicator on the chart, you may see the following patterns and projections.
You may also notice, in the pattern details, information about the last occurrence of the pattern. If you scroll on your chart to the left to the given data and time, you can observe how the past occurrence of the pattern has formed and the price movement past that point.
For example, last occurrence of pattern based on confirmed pivot happened on 02-Jun-2023 00:00 UTC time
And last occurrence of pattern based on unconfirmed pivot happened on 27-Apr-2023 22:00 UTC time
🎲 Settings
Settings are minimal, and here is the meaning of them.
Most important setting here is the number of pivots forming the pattern.
🎲 Caution
The indicator is designed to present the projection based on historical occurrences of similar price pattern. This does not necessarily mean the patterns are supposed to be bullish or bearish. But, it will certainly give users an idea of what happened when similar price action presented historically.
Note to developers This script makes use of new pine script feature - maps
Auto Motive Wave [Trendoscope]Earlier we created an interactive script to study Motive Waves by manually selecting the wave patterns on the chart.
You can find the open source script here:
In this indicator, we will try to do it automatically. Hence, you don't need to draw the waves manually to check anymore. The indicator will do it for you.
🎲 Conditions for Motive Wave
Rules for Motive Waves remain same as before. Motive wave can be either Impulse or Diagonal Wave. Diagonal wave can be either expanding or contracting diagonals. To learn more about diagonal waves, please go through this idea.
🎲 Rules for generic motive waves are as below
Pivots in order - Checks wether the pivots selected are in progressive order.
Directions in order - Checks if the pivot directions are correct - either PH, PL, PH, PL, PH, PL or PL, PH, PL, PH, PL, PH
Wave 2 never moves beyond the start of wave 1 - Wave 2 retracement is less than 100% of wave1
Wave 3 always moves beyond the end of wave 1 - Wave 3 retracement is more than 100% of wave2
Wave 3 is never the shortest one - Checks if Wave 3 is bigger than either Wave 1 or wave 5 or both.
🎲 Now, these are the specific rules for Impulse Waves on top of Motive Wave conditions
Wave 4 never moves beyond the end of Wave 1 - meaning wave 1 and wave 4 never overlap on price scale.
Wave 1, 3, 5 are all not extended. We check for retracement ratios of more than 200% to be considered as extended wave.
🎲 Below are the conditions for Diagonal Waves on top of Motive Wave conditions
Wave4 never moves beyond the start of Wave 3 - Wave 4 retracement is less than 100%
Wave 4 always ends within the price territory of Wave 1 - Unlike impulse wave, wave 4 intersects with wave 1 in case of diagonal waves. This is the major difference between impulse and diagonal wave.
Waves are progressively expanding or contracting - Wave1 > Wave3 > Wave5 and Wave2 > Wave4 to be contracting diagonal. Wave1 < Wave3 < Wave5 and Wave2 < Wave4 to be expanding diagonal wave.
Settings are for the indicator include option to select zigzag length, theme color, and few constraints about the waves to be scanned. You can use the tooltips to find more about them
Custom Trend Indicator with Reversal ArrowsThe Custom Trend Indicator with Reversal Arrows is a user-friendly script designed to help traders identify trends and trend reversals on the TradingView platform. This indicator analyzes price action and generates trend lines based on user-defined rules for uptrends, downtrends, and no-trend conditions. Additionally, it highlights trend reversal points with arrows for easy identification.
Features:
Customizable Line Offset Multiplier: Allows users to set the distance between the trend line and the candlesticks. This makes the trend lines more visually discernible.
Trend Identification:
Uptrend: The indicator plots a green line when the current high, low, and close are greater than the previous high, low, and close, respectively.
Downtrend: The indicator plots a red line when the current high, low, and close are less than the previous high, low, and close, respectively.
No Trend: The indicator plots a black line when neither an uptrend nor a downtrend is identified.
Trend Reversal Arrows: The script displays green arrows pointing upwards for bullish trend reversals and red arrows pointing downwards for bearish trend reversals.
To use this indicator, simply copy and paste the provided Pine Script into the Pine editor on TradingView, and add the indicator to your chart. This powerful and customizable tool will enhance your ability to identify trends and capitalize on trend reversals in your trading strategy.
Please note that this indicator is intended for educational purposes only and should not be considered as financial advice. Always perform your own due diligence and consult with a financial professional before making any trading decisions.
Recursive Reversal Chart Patterns [Trendoscope]Caution: This algorithm is very heavy and bound to cause timeouts. If that happens, there are few settings you can change to reduce the load. (Will explain them in the description below)
🎲 Recursive Reversal Chart Patterns Indicator
Welcome to another exploration of Zigzag and Pattern ecosystem components. Previously we derived Pitchfork and Recursive Zigzag indicators. This indicator is designed to scan and highlight few popular "Reversal Chart Patterns". Similar to other indicators in the ecosystem, this too is built on recursive zigzags.
Double Taps
Triple Taps
Cup and Handles
Head and Shoulders
Indicator however names the patterns separately for bullish and bearish formations. So, the actual names you see on the screen are
Double Top
Double Bottom
Triple Top
Triple Bottom
Cup and Handle
Inverted Cup and Handle
Head and Shoulders
Inverse Head and Shoulders
Here is a snapshot on how each category of patterns look on the chart.
🎲 Architecture
Many of you may be cursing me for publishing too many libraries. But, these are all preparations for something big. Like other indicators in the Zigzag and Patterns Ecosystem, this too uses a bunch of libraries.
🎯Major direct dependencies
ZigzagTypes
ZigzagMethods
ReversalChartPatternLibrary
🎯Indirect dependencies
DrawingTypes
DrawingMethods
🎯Minor dependencies
Utils
TradeTracker
🎲 Indicator Settings
🎯Generic and Zigzag Settings.
Note: In case of timeout, please decrease the value of depth parameter
🎯Pattern Selection
Having all the patterns selected on chart may also cause timeouts and will make the chart look messy. It is better to limit one or two patterns on the chart to have clear picture.
🎯Scanner Settings
🎯Indicators.
These are options to use indicators as secondary confirmation to calculate divergence. If selected, the patterns are shown only if the divergence data is inline. Option also available to plugin external indicator. These calculations are not straightforward and not easy to measure by manual inspection. This feature at present is purely experimental.
Have a go and let me know how you feel :)
Session Filter [Trendoscope]🎲 Session Filter: A Customisable Trading Indicator for Defining Preferred Trade Sessions
Session Filter is a simple trading indicator that enables traders to define their preferred trading sessions and optimise their approach based on individual preferences. By providing a range of flexible customisation options, Session Filter can help traders reduce risk, increase accuracy, by helping them to adhere to their trading sessions. Features include
🎯 Customisable Trading Sessions
One of the key features of Session Filter is the ability to select from four different trading sessions. These sessions are designed to be flexible, making it easy to tailor your approach to specific markets, assets, and trading styles. By selecting the sessions that are most relevant to your strategy, you can reduce the risk of making trades during less favourable market conditions.
For example, if you prefer to trade during the Asian session, you can set the session times to "Asian Session" in input settings. This will highlight the specific times when the Asian markets are open, allowing you to focus your trading activity during these periods. By doing so, you can avoid trading during times when the market is less active or more volatile.
🎯 Customisable Timezone and Days of the Week:
In addition to customisable trading sessions, Session Filter also allows users to select a timezone and specific days of the week. This ensures that the displayed trading zones and signals are aligned with your local time, and that you can tailor your approach to your preferred schedule. This is particularly useful for traders who have other commitments, or who prefer to focus on specific markets or assets on certain days.
For example, if you are based in New York and prefer to trade during the European session, you can select the "European Session" option in Session Filter and adjust the timezone to reflect your local time. You can also select specific days of the week when you prefer to trade during the European session, such as Tuesday through Thursday. This allows you to optimize your approach based on your personal preferences and schedule.
🎯 Easy Visual Interpretation:
Session Filter uses green and red overlays on the chart to indicate the trading zones, making it easy for users to visually identify their trading sessions
For example, when a green overlay is displayed on the chart, this indicates that the market is within the selected trading session and that it may be a good time to start trade. Conversely, when a red overlay is displayed, this indicates that the market is outside of the selected trading session and that it may be a good time close all trading. By providing this visual feedback, Session Filter helps traders stay focused and disciplined, and avoid making impulsive trading decisions.
🎯Force Exit Signal for Risk Management:
Session Filter also offers the ability to generate a force exit signal when not in any of the selected sessions. This can be used in conjunction with alerts to exit all trades outsize session zone.
For example, if you are using Session Filter to trade during the European session, but the market is particularly volatile during a specific day, the force exit signal will be generated to indicate that it may be a good time to exit your trade. This helps you avoid potential losses and stay disciplined during periods of market turbulence.
🎯External Signal Plots:
In addition to the chart overlays, Session Filter also plots signals on the data window that can be used as external inputs in other indicators and strategies. This feature allows traders to incorporate the signals generated by Session Filter into their existing trading systems and this can be used as additional filters on an existing strategy or methodology.
🎯Alerts using Alert Conditions
Alerts are provided for start and end of session so that users can make use of it to set auto turn on or off their bots.
Settings are pretty simple and are explained here.
Recursive Zigzag [Trendoscope]Here is an another outcome of Object Oriented Zigzag and Pattern Ecosystem of Libraries.
We already have another implementation of recursive zigzag which makes use of earlier library rzigzag . Here in this example, we make use of similar logic but leverage the new type and method based Zigzag system libraries to derive the indicator.
🎲 Design Overview
Similar to Recursive Auto Pitchfork, here too the indicator code is around 50 lines. Whereas most of the heavy lifting is done by the libraries.
🎲 Base Libraries
Base libraries are those which does not have any dependency. They form basic structures which are later used in other libraries. These libraries need to be crafted carefully so that minimal updates are done later on. Any updates on these libraries will impact all the dependent libraries and scripts.
🎯 Drawing
DrawingTypes - Defines basic drawing types Point, Line, Label, Box, Linefill and related property types.
DrawingMethods - All the methods or functionality surrounding Basic types are defined here.
🎲 Layer 1 Libraries
These are the libraries which has direct dependency on base libraries.
🎯 Zigzag
ZigzagTypes - Types required for defining Zigzag and Divergence
ZigzagMethods - Methods associated with Zigzag Type definitions.
🎲Indicator
Indicator draws zigzags based on given length. And then recursively derives next level zigzags based on previous levels. As per the utility, indicator is useful in several ways
Visualising price structure based on zigzag pivots - which in turn can help visualise patterns.
Ability to add any oscillator makes it easy to spot divergences with choice of indicators.
Programmers can use the derived values to build complex algorithms such as automatic pattern recognition.
🎯 Settings
Settings are explained via tooltips. These are very much straight forward and directly related to zigzag, oscillators and divergence.
Recursive Auto-Pitchfork [Trendoscope]"Say Hi" to object oriented programming with Pinescript using types and methods. This is the beginning of new era of Pinescript where we are moving from isolated scripts containing indicator and strategies to whole ecosystem of Object Oriented Programming with libraries of highly reusable components. Those who are familiar with programming would have already realised how big these improvements are and what it brings to the table.
With this script, I am not just providing an indicator for traders but also an introduction for programmers on how to design and build object oriented components in Pinescript using types and methods. Big thanks to Tradingview and Pine development team for making this happen. We look forward for many such gifts in the future :)
🎲 Architecture
As mentioned before, we are not just building an indicator here. But, an ecosystem of components. Using Types and Methods we can visualise libraries as Classes. Thus, we can build an ecosystem of libraries in layered approach to enhance effective code reusability.
Generic architecture can be visualised as below
Coming to the specific case of Auto Pitchfork indicator, the indicator code is less than 50 lines for logic and around 100 lines of inputs. But, most of the heavy-lifting is done by the libraries underneath. Here is a snapshot of related libraries and how they are connected.
All libraries are divided into two portions.
Types - Contains only type definitions
Methods - Contains only method definitions related to the types defined in the Types library
Together, these libraries can be visualised as Class. Methods are defined in such a way all exported methods are related to Types and no other functions or features are defined. If we need further functionality which does not depend on the types, we need to do this via some other library and use them here. Similarly, we should not define any methods related to these types in other libraries.
Reason for splitting the libraries to types and methods is to enable updating methods without disturbing types. Since libraries create interdependencies due to versioning, it is best if we do less updates on the type definitions. Splitting the two enables adding more features while keeping the type definition version intact.
🎲 Base Libraries
Base libraries are those which does not have any dependency. They form basic structures which are later used in other libraries. These libraries need to be crafted carefully so that minimal updates are done later on. Any updates on these libraries will impact all the dependent libraries and scripts.
🎯 Drawing
DrawingTypes - Defines basic drawing types Point, Line, Label, Box, Linefill and related property types.
DrawingMethods - All the methods or functionality surrounding Basic types are defined here.
🎲 Layer 1 Libraries
These are the libraries which has direct dependency on base libraries.
🎯 Zigzag
ZigzagTypes - Types required for defining Zigzag and Divergence
ZigzagMethods - Methods associated with Zigzag Type definitions.
🎯Pitchfork
PitchforkTypes - Basic and Drawing Types for Pitchfork objects
PitchforkMethods - Methods associated with Pitchfork type definitions
🎲 Indicator and Settings
Indicator draws pitchfork based on recursive zigzag configurations. Recursive zigzag is derived with following logic:
Base level zigzag is calculated with regular zigzag algorithm with given length and depth
Next level zigzag is calculated based on base zigzag. And we recursively calculate higher level zigzags until we are left with 4 or less pivots or when no further reduction is possible
On every level of zigzag, we then check the last 3 pivots and draw pitchfork based on the retracement ratio.
Indicator settings are summarised in the tooltips and are as below.
Finally, big thanks to my partner @CryptoArch_ for bringing up the topic of pitchfork for our next development.
RSI Impact Heat Map [Trendoscope]Here is a simple tool to measure and display outcome of certain RSI event over heat map.
🎲 Process
🎯Event
Event can be either Crossover or Crossunder of RSI on certain value.
🎯Measuring Impact
Impact of the event after N number of bars is measured in terms of highest and lowest displacement from the last close price. Impact can be collected as either number of times of ATR or percentage of price. Impact for each trigger is recorded separately and stored in array of custom type.
🎯Plotting Heat Map
Heat map is displayed using pine tables. Users can select heat map size - which can vary from 10 to 90. Selecting optimal size is important in order to get right interpretation of data. Having higher number of cells can give more granular data. But, chart may not fit into the window. Having lower size means, stats are combined together to get less granular data which may not give right picture of the results. Default value for size is 50 - meaning data is displayed in 51X51 cells.
Range of the heat map is adjusted automatically based on min and max value of the displacement. In order to filter out or merge extreme values, range is calculated based on certain percentile of the values. This will avoid displaying lots of empty cells which can obscure the actual impact.
🎲 Settings
Settings allow users to define their event, impact duration and reference, and few display related properties. The description of these parameters are as below:
🎲 Use Cases
In this script, we have taken RSI as an example to measure impact. But, we can do this for any event. This can be price crossing over/under upper/lower bollinger bands, moving average crossovers or even complex entry or exit conditions. Overall, we can use this to plot and evaluate our trade criteria.
🎲 Interpretation
Q1 - If more coloured dots appear on the top right corner of the table, then the event is considered to trigger high volatility and high risk environment.
Q2 - If more coloured dots appear on the top left corner, then the events are considered to trigger bearish environment.
Q3 - If more coloured dots appear on the bottom left corner of the chart, then the events are considered insignificant as they neither generate higher displacement in positive or negative side. You can further alter outlier percentage to reduce the bracket and hence have higher distribution move towards
Q4 - If more coloured dots appear on the bottom right corner, then the events are considered to trigger bullish environment.
Will also look forward to implement this as library so that any conditions or events can be plugged into it.
Harmonic Patterns Based SupertrendExtending the earlier implemented concept of Harmonic-Patterns-Based-Trend-Follower , in this script, lets make it work as supertrend so that it is more easier to operate.
🎲 Process
🎯 Derive Zigzag and scan harmonic patterns for last 5 confirmed pivots
🎯 If a pattern is found, bullish and bearish zones are calculated based on parameter Base
🎯 These bullish and bearish zones act as supertrend based on current trade in progress.
🎯 When in bullish mode, bearish zone will only go up irrespective of new pattern forming new low. Similarly when in bearish mode, bullish zones will only come down - this is done to imitate the standard supertrend behaviour.
🎲 Note
Patterns are not created on latest pivot as last pivot will be unconfirmed and moving. Due to this, patterns appear after certain delay - patterns will not be real time. But, this is expected and does not impact the overall process.
Here are few chart captures to demonstrate how it works.
🎲 Settings
Settings are explained in the screenshot below.
Wolfe Strategy [Trendoscope]Hello Everyone,
Wish you all Merry X-Mas and happy new year. Lets start 2023 with fresh new strategy built on Wolfe Indicator. Details of the indicator can be found here
🎲 Wolfe Concept
Wolfe concept is simple. Whenever a wedge is formed, draw a line joining pivot 1 and 4 as shown in the chart below:
For simplicity, we will only consider static value for Target and Stop. But, entry is done based on breaking the triangle. Revised strategy looks something like this:
🎲 Settings
Settings are simple and details of each are provided via tooltips.
Out of these, the most important one is minimum risk reward ratio. If you set lower risk reward threshold then losing few trades may generate more losses than more winning trades. Similarly higher value will filter out most of the trades and may not work efficiently. Default value set to 1 to make sure optimal risk reward is present before placing trade. Also make note that since the entry bar is always moving towards stop, as and when pattern progress, the RR will also increase. Hence, a pattern which is below RR threshold may become good to trade at certain point of time in future.
🎲 Strategy Parameters
Default strategy parameters are initialised via definition. Margins are set to 100 to disable leveraged trades. Appropriate values are chosen for other parameters. These can be altered based on individual strategy and trading plan.
As the strategy concentrates on the single pattern, number of trades generated are comparatively less. But, there is chance to increase the algorithm further to catch more such patterns on larger scale. Will try to work on them in next versions.
🎲 Pine Strategy limitations
Backtest can only be done on one direction as pine strategy cannot have both long and short open trades together. Hence, it is mandatory to chose either long/short trades in settings.
Since pyramiding is limited to 1, there is possibility of a pattern not generating trade even though the entry conditions are met. They are just based on pine limitations and not necessarily mean patterns are not good for placing trades.
Channel Based Zigzag [HeWhoMustNotBeNamed]🎲 Concept
Zigzag is built based on the price and number of offset bars. But, in this experiment, we build zigzag based on different bands such as Bollinger Band, Keltner Channel and Donchian Channel. The process is simple:
🎯 Derive bands based on input parameters
🎯 High of a bar is considered as pivot high only if the high price is above or equal to upper band.
🎯 Similarly low of a bar is considered as pivot low only if low price is below or equal to lower band.
🎯 Adding the pivot high/low follows same logic as that of regular zigzag where pivot high is always followed by pivot low and vice versa.
🎯 If the new pivot added is of same direction as that of last pivot, then both pivots are compared with each other and only the extreme one is kept. (Highest in case of pivot high and lowest in case of pivot low)
🎯 If a bar has both pivot high and pivot low - pivot with same direction as previous pivot is added to the list first before adding the pivot with opposite direction.
🎲 Use Cases
Can be used for pattern recognition algorithms instead of standard zigzag. This will help derive patterns which are relative to bands and channels.
Example: John Bollinger explains how to manually scan double tap using Bollinger Bands in this video: www.youtube.com This modified zigzag base can be used to achieve the same using algorithmic means.
🎲 Settings
Few simple configurations which will let you select the band properties. Notice that there is no zigzag length here. All the calculations depend on the bands.
With bands display, indicator looks something like this
Note that pivots do not always represent highest/lowest prices. They represent highest/lowest price relative to bands.
As mentioned many times, application of zigzag is not for buying at lower price and selling at higher price. It is mainly used for pattern recognition either manually or via algorithms. Lets build new Harmonic, Chart patterns, Trend Lines using the new zigzag?
Next Pivot Projection [Trendoscope]Still experimental. Extending further on the divergence backtest results - in this script we try to project next 2 pivots (including one unconfirmed pivot)
🎲 Previous experiments
1. Divergence-Backtester
2. Divergence-Backtester-V2
🎲 Additions
Apart from collecting the stats on number of occurrences of HH, HL, LH, LL - this script also keeps track of average ratio for each levels and average bars.
Based on these data, we try to calculate the next pivot projections including possible bar and price.
Cloud covering the candles indicate historical levels of average HH, HL, LH, LL projections.
Hover on projection labels to find more details in tooltips.
🎲 Overall method in a nutshell
🎲 Going bit deeper
🎯 Unconfirmed Pivot and its projection - Last pivot of the zigzag is always unconfirmed. Meaning, it can potentially repaint based on further price movements. But, projection of the unconfirmed pivot will not change as it will be based on previous two pivots - both of which are confirmed.
🎯 Next Pivot Projection - Next pivot is projected based on last two pivots - which include last unconfirmed pivot. Hence, these projections can potentially repaint based on the last pivot repaint.
🎯 Historical projections displayed as cloud - Historical projection values are displayed as cloud around pivots.
A cloud above represents area from average lower high range to average higher high range. Cloud color is green if average ratio of pivot high is more than 1. Red Otherwise.
A cloud below represents area from average higher low range to average lower low range. Cloud color is red if average ratio of pivot high is more than 1. Green otherwise
Auto Harmonic Pattern - Extreme [Trendoscope]Publishing free to use scripts always brought me more value - be it in terms of more followers, or helped me to engage with people having right ideas. This has helped me immensely over past few years of my presence in tradingview. To all the coders out there who is starting to work on pinescript - my suggestion is to publish as many open source/free to use scripts as possible. It will always be rewarding experience and help you grow in a way you can never imagine.
Today, I realised that I have accumulated 10,000+ followers in tradingview just by learning and publishing what I learn. As token of gratitude to all our followers and supporters, we would like to gift this indicator. This is also tribute to all the people who have positively influenced our presence in tradingview and encouraged us to reach this level. Unfortunately cannot publish it as open source due to having proprietary code in it and fear of being misused.
I will not talk about the subject harmonic patterns as it is very generic and information is available online in many places. You can also refer to my open source libraries and scripts related to harmonic patterns. Some of them are here:
Libraries
eHarmonicpatternsExtended
eHarmonicpatterns
harmonicpatterns
Indicators
Harmonic-Patterns-Custom-Candles
Manual-Harmonic-Patterns-With-interactive-inputs
Manual-Harmonic-Projections-With-interactive-inputs
Auto-Harmonic-Patterns-V2
There are few more among open source and free scripts. But, will not mention them here as they are deprecated.
Now coming to the present indicator.
Setting are made simpler to enhance usability. This can also help new traders learning harmonic patterns. Snapshot of the settings can be found here:
Components of the script are as below
Please note, I may not be able to make any further update to this script. But, I promise never to degrade or reduce the quality of any free to use or open source script I ever published.
ALMA TrendlineThis is a simple indicator to make ALMA Trendline to be used as STOP LOSS guidance in trending market. The trendline will change color from GREEN to RED and vice versa once price crossing down or crossing up the trendline.
Crypto Volume/Strength ComparatorHello Traders,
Here is an attempt to perform comparative analysis between top cryptos based on strength (oscillator) and volume. Methodology used here is similar to Magic Number formula described in the post : Enhanced Magic Formula for fundamental analysis . But, instead of using fundamentals, we are making use of few technicals to derive similar outcome. Usage of the available stats will not be same as Magic number since we are using technicals.
⬜ Process
▶ Get crypto exchange based on prefix of instrument being used.
▶ For the given exchange, get data for all the tickers available in input fields.
▶ Calculate Oscillator, Momentum based on price for each tickers.
▶ Calculate Oscillator, Momentum based on volume for each tickers.
▶ Calculate Volatility for each tickers.
▶ Rank Price-Oscillator, Price-Momentum, Volume-Oscillator, Volume-Momentum, Volatility for each tickers.
▶ Calculate combined rank by adding up individual ranks.
▶ Calculate movement of rankings from bar to bar
▶ Sort tickers based on rank and populate them on table. Display direction of rankings.
⬜ Components
Display components are as follows:
⬜ Settings
Settings are pretty simple and straightforward
⬜ Calculations
▶ Oscillators : High values of oscillators are considered as ideal as the process is intended towards finding trend.
▶ Momentum : Momentum is calculated on the basis of Squeeze Momentum Indicator by @LazyBear.
▶ Volatility : Volatility is calculated on the basis of Williams Vix Fix by @ChrisMoody. Here too since we are in trend following mode, lower vix fix is considered ideal.
⬜ Few Notes
Tickers will show data only if selected exchange has them. Some tickers are not available in all exchanges. In that case, it will show NAN. This is kind of unavoidable as we need to have fixed size arrays for any calculations.
Indicator works only on crypto tickers which has valid exchange.
Tickers move through the rankings in real time. Background of all stats are based on gradient from green to red.
Tickers on top may not always have better long opportunity or tickers at bottom may not always be optimal for shorting. We need to consider how long the instrument may stay in the position or how fast it is moving in opposite direction. Hence, directions of the ranking movement are also shown on the table.
MA Strength StrategyThis is based on Aligned Moving Average Index published earlier:
But, instead of scoring trend based on how many moving averages are aligned, we are considering upside score. Higher scores are assigned for slower moving averages and lower scores for faster moving averages to give more stress to long term trend.
Buy/Sell conditions are based on moving average crossover on the upside score sum of Loopback days.
This is a very rough idea which seems to have been working ok on long only trades. Can be further improved.