Zigzag Array ExperimentalThis is experimental script for zigzag which uses type, method and array. Not recommend for actual usage, for pine script study maybe useful.
In this experiment, I use type as coded below. It seems have limitation as specially when push as array. As Trading View recommendation, pushing float and int into array especially for type not guarantee to work. I agree with that. Preferred to push array as line or label especially for types.
// @type Used for point especially for array
// @field x int value for bar_index
// @field y float value for price
// @field sty label style
// @field col color for text label
// @field str high or low string
type point
int x = na
float y = na
string sty = na
color col = na
string str = na
I simulate the arrays as below.
var dirLine = array.new()
var dirLabel = array.new()
var dirPoint = array.new()
....
dirPoint.unshift(zigzag.createPoint(0))
dirLabel.unshift(zigzag.createLabel(fontSize, 0, true))
dirLine.unshift(zigzag.createLine(width, switchLine, 0, true))
Here are some results.
Chỉ báo sóng Zig zag
[JL] Supertrend Zone Pivot Point with zigzag fibThis is an open-source Pine script that generates a Supertrend Zone Pivot Point with Zigzag Fib indicator for TradingView. The indicator displays the Supertrend Zone, pivot points, and Fibonacci levels on the chart.
One of the unique features of this indicator is that it uses a Zigzag that does not repaint, ensuring accurate high and low points for the pivot points.
Another feature is that when the Supertrend is in an uptrend, only the highest points are taken as pivot points, and when it's in a downtrend, only the lowest points are taken as pivot points.
The Fibonacci levels are calculated based on the previous high and low pivot points, with labels displaying the corresponding levels on the chart.
The indicator also includes options to show/hide the Zigzag and Fibonacci levels.
Overall, this indicator is useful for identifying key pivot points and Fibonacci levels in the Supertrend Zone, providing valuable information for traders to make informed decisions.
GKD-C Swing Line [Loxx]Giga Kaleidoscope GKD-V Swing Line is a Confirmation module included in Loxx's "Giga Kaleidoscope Modularized Trading System".
█ Giga Kaleidoscope Modularized Trading System
What is Loxx's "Giga Kaleidoscope Modularized Trading System"?
The Giga Kaleidoscope Modularized Trading System is a trading system built on the philosophy of the NNFX (No Nonsense Forex) algorithmic trading.
What is the NNFX algorithmic trading strategy?
The NNFX (No-Nonsense Forex) trading system is a comprehensive approach to Forex trading that is designed to simplify the process and remove the confusion and complexity that often surrounds trading. The system was developed by a Forex trader who goes by the pseudonym "VP" and has gained a significant following in the Forex community.
The NNFX trading system is based on a set of rules and guidelines that help traders make objective and informed decisions. These rules cover all aspects of trading, including market analysis, trade entry, stop loss placement, and trade management.
Here are the main components of the NNFX trading system:
1. Trading Philosophy: The NNFX trading system is based on the idea that successful trading requires a comprehensive understanding of the market, objective analysis, and strict risk management. The system aims to remove subjective elements from trading and focuses on objective rules and guidelines.
2. Technical Analysis: The NNFX trading system relies heavily on technical analysis and uses a range of indicators to identify high-probability trading opportunities. The system uses a combination of trend-following and mean-reverting strategies to identify trades.
3. Market Structure: The NNFX trading system emphasizes the importance of understanding the market structure, including price action, support and resistance levels, and market cycles. The system uses a range of tools to identify the market structure, including trend lines, channels, and moving averages.
4. Trade Entry: The NNFX trading system has strict rules for trade entry. The system uses a combination of technical indicators to identify high-probability trades, and traders must meet specific criteria to enter a trade.
5. Stop Loss Placement: The NNFX trading system places a significant emphasis on risk management and requires traders to place a stop loss order on every trade. The system uses a combination of technical analysis and market structure to determine the appropriate stop loss level.
6. Trade Management: The NNFX trading system has specific rules for managing open trades. The system aims to minimize risk and maximize profit by using a combination of trailing stops, take profit levels, and position sizing.
Overall, the NNFX trading system is designed to be a straightforward and easy-to-follow approach to Forex trading that can be applied by traders of all skill levels.
Core components of an NNFX algorithmic trading strategy
The NNFX algorithm is built on the principles of trend, momentum, and volatility. There are six core components in the NNFX trading algorithm:
1. Volatility - price volatility; e.g., Average True Range, True Range Double, Close-to-Close, etc.
2. Baseline - a moving average to identify price trend
3. Confirmation 1 - a technical indicator used to identify trends
4. Confirmation 2 - a technical indicator used to identify trends
5. Continuation - a technical indicator used to identify trends
6. Volatility/Volume - a technical indicator used to identify volatility/volume breakouts/breakdown
7. Exit - a technical indicator used to determine when a trend is exhausted
How does Loxx's GKD (Giga Kaleidoscope Modularized Trading System) implement the NNFX algorithm outlined above?
Loxx's GKD v1.0 system has five types of modules (indicators/strategies). These modules are:
1. GKD-BT - Backtesting module (Volatility, Number 1 in the NNFX algorithm)
2. GKD-B - Baseline module (Baseline and Volatility/Volume, Numbers 1 and 2 in the NNFX algorithm)
3. GKD-C - Confirmation 1/2 and Continuation module (Confirmation 1/2 and Continuation, Numbers 3, 4, and 5 in the NNFX algorithm)
4. GKD-V - Volatility/Volume module (Confirmation 1/2, Number 6 in the NNFX algorithm)
5. GKD-E - Exit module (Exit, Number 7 in the NNFX algorithm)
(additional module types will added in future releases)
Each module interacts with every module by passing data between modules. Data is passed between each module as described below:
GKD-B => GKD-V => GKD-C(1) => GKD-C(2) => GKD-C(Continuation) => GKD-E => GKD-BT
That is, the Baseline indicator passes its data to Volatility/Volume. The Volatility/Volume indicator passes its values to the Confirmation 1 indicator. The Confirmation 1 indicator passes its values to the Confirmation 2 indicator. The Confirmation 2 indicator passes its values to the Continuation indicator. The Continuation indicator passes its values to the Exit indicator, and finally, the Exit indicator passes its values to the Backtest strategy.
This chaining of indicators requires that each module conform to Loxx's GKD protocol, therefore allowing for the testing of every possible combination of technical indicators that make up the six components of the NNFX algorithm.
What does the application of the GKD trading system look like?
Example trading system:
Backtest: Strategy with 1-3 take profits, trailing stop loss, multiple types of PnL volatility, and 2 backtesting styles
Baseline: Hull Moving Average
Volatility/Volume: Volatility Ratio
Confirmation 1: GKD-V Swing Line as shown on the chart above
Confirmation 2: Williams Percent Range
Continuation: Fisher Transform
Exit: Rex Oscillator
Each GKD indicator is denoted with a module identifier of either: GKD-BT, GKD-B, GKD-C, GKD-V, or GKD-E. This allows traders to understand to which module each indicator belongs and where each indicator fits into the GKD protocol chain.
Giga Kaleidoscope Modularized Trading System Signals (based on the NNFX algorithm)
Standard Entry
1. GKD-C Confirmation 1 Signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Continuation Entry
1. Standard Entry, Baseline Entry, or Pullback; entry triggered previously
2. GKD-B Baseline hasn't crossed since entry signal trigger
3. GKD-C Confirmation Continuation Indicator signals
4. GKD-C Confirmation 1 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 2 agrees
1-Candle Rule Standard Entry
1. GKD-C Confirmation 1 signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume agrees
1-Candle Rule Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close )
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume Agrees
PullBack Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is beyond 1.0x Volatility of Baseline
Next Candle:
1. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility/Volume Agrees
█ GKD-V Swing Line
The swing line indicator is a technical analysis tool used in financial markets to identify the direction of a trend. It is also known as the trendline or zigzag indicator.
The swing line indicator plots a series of lines connecting the highs and lows of price movements over a given time period. Each line represents a swing high or swing low in the price action, depending on whether the trend is bullish or bearish.
In an uptrend, the swing line indicator connects each successive higher low, forming an ascending trendline. In a downtrend, the indicator connects each successive lower high, forming a descending trendline. When the trend changes direction, the indicator will create a new line to reflect the new swing high or low.
Traders use the swing line indicator to identify key levels of support and resistance, as well as potential entry and exit points for trades. A break of the trendline can signal a potential trend reversal, while a bounce off the trendline can indicate that the trend is still intact.
The swing line indicator can be used in conjunction with other technical analysis tools, such as moving averages, to confirm trends and reduce false signals. It is commonly used in forex, stock, and commodity markets, and is available on most charting platforms.
Requirements
Inputs
Confirmation 1 and Solo Confirmation: GKD-V Volatility / Volume indicator
Confirmation 2: GKD-C Confirmation indicator
Outputs
Confirmation 2 and Solo Confirmation Complex: GKD-E Exit indicator
Confirmation 1: GKD-C Confirmation indicator
Continuation: GKD-E Exit indicator
Solo Confirmation Simple: GKD-BT Backtest strategy
Additional features will be added in future releases.
Faytterro Market Structerethis indicator creates the market structure with a little delay but perfectly. each zigzag is always drawn from highest to lowest. It also signals when the market structure is broken. signals fade over time.
The table above shows the percentage distance of the price from the last high and the last low.
zigzags are painted green when making higher peaks, while lower peaks are considered downtrends and are painted red. In fact, the indicator is quite simple to understand and use.
"length" is used to change the frequency of the signal.
"go to past" is used to see historical data.
Please review the examples:
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.
Simple Zigzag UDT█ OVERVIEW
This indicator displays zigzag based on high and low, which is using user-defined types (UDT) or objects .
█ CREDITS
LonesomeTheBlue
█ FEATURES
1. Label can be resized.
2. Label can be display either short (Eg : HH, LL, H, L, etc) and long (Eg : Higher Low, etc)
3. Color can be customized either contrast color of chart background, trend color or customized color.
█ EXAMPLES / USAGES
Market Structure Double BOS Confirm
🔥 Overview
🎯 This Double BOS(Break Of Structure) Confirm indicator combined ma-based BOS and classic BOS
to achieve a more credible BOS signal . it works well in most symbols with 2 parameters finetune.
🎯 It's a enhanced version compare with previous script.
🎯 at the same time, I keep D-BOS and BOS separately, you can use them in combination freely.
🔥 Indicator design logic
🎯 there are 3 parts in this indicator.
Part 1: MA-Based BOS
1. use close-in EMA's highest/lowest value mark as SWING High/Low when EMA crossover/under,
not use func ta.pivothigh()/ta.pivotlow()
2. once price reaching EMA’s SWING High/Low, draw a line link High/Low to current bar, labled as BOS
3. more MA-Based BOS details can get from my previous script.
Part 2: Classic BOS
1. use pivothigh/low function to find pivot (decided by left/right swing length)
2. when get new pivothigh, compare with previous high, calculate HH/LH/HL/LL result
3. once bar closed and break pivothigh then labed as BOS
Part 3: Double BOS Confirms
1. when MA-Based BOS and Classic BOS occured at the same bar closed signed as D-BOS
2. when two BOS events one bar apart, signed as D-BOS
🔥 Settings
🎯 there are 13 input properties in script, 4 properties(Bold field) have an impact on the results and the other 9 show display effects.
GRP1
MA_Type : MA type you can choose(EMA/RMA/SMA/HMA/WMA/VWMA), default is HMA
short_ma_len : MA length of your current timeframe on chart, default 30
show_ma_bos_line: whether show ma-based BOS line, default false
GRP2
left_swing_len : pivothigh(source, left,right), it‘s left swing length
right_swing_len : right swing length
show_pivot_bos_line: whether show pivot-based BOS line, default false
GRP3
show_double_bos_line: show double_bos_line, default true
double_bos_linewidth: linewidth, default 2 (Bold line)
double_bos_linestyle: default Dashed
🔥 Usage
🎯 BOS signal usually worked fine in high volatility market, low volatility is meaningless.
🎯 D-BOS will filtered much more signals than ma-based BOS and classic BOS
We can see that it performs well in trending market of different symbols, and BOS is an opportunity to add positions,
D-BOS will filtered much more signals
Double-BOS Confirm : BINANCE:BTCUSDTPERP 30m
MA-Based BOS : BINANCE:BTCUSDTPERP 30m
🎯 Support classic HH/HL label, MA-Based Zigzag
🎯 You can use only D-BOS, MA-BOS or Classic-BOS alone, or D-BOS and one of the other, it's up to you,
but my personal preference is to use D-BOS and MA-BOS in combination
🎯 any questions or suggestion please comment below, I would appreciate it greatly.
Additionally, I plan to publish 20 profitable strategies in 2023; indicatior not one of them,
let‘s witness it together!
Hope this indicator will be useful for you :)
enjoy! 🚀🚀🚀
MATHR3E WAVES█ OVERVIEW
MATHR3E WAVES automatically draws Elliott Waves on your charts with their potential associated targets.
█ CONCEPTS
Disclaimer
MATHR3E RETRACEMENTS indicator is intended for advanced traders and may fit your profile, whether you are a day trader or a long-term investor.
It was originally developed by a renowned market analyst and documented in numerous books. Among them is the author Jason Perl.
It is recommended to have read the trading techniques mentioned in the books covering this indicator beforehand.
How to use:
MATHR3E WAVES indicator can provide a roadmap of market direction that you can use to determine price targets and isolate exhaustion points from potential trends in conjunction with other indicators by the same author.
Be aware the indicator's approach is derived from the Elliott wave theory and may slightly diverge from the cardinal rules of Elliott waves.
Principle of the Elliott Wave Theory
Movement in the direction of the trend is unfolding in 5 waves (called motive wave) while any correction against the trend is in three waves (called corrective wave). The movement in the direction of the trend is labeled as 1, 2, 3, 4, and 5. The three-wave correction is labeled as a, b, and c. These patterns can be seen in the long term as well as short term charts.
Wave 1:
Wave one is rarely obvious at its inception. When the first wave of a new bull market begins, the fundamental news is almost universally negative. The previous trend is considered still strongly in force. Fundamental analysts continue to revise their earnings estimates lower; the economy probably does not look strong. Sentiment surveys are decidedly bearish, put options are in vogue, and implied volatility in the options market is high. Volume might increase a bit as prices rise, but not by enough to alert many technical analysts.
Wave 2:
Wave two corrects wave one, but can never extend beyond the starting point of wave one. Typically, the news is still bad. As prices retest the prior low, bearish sentiment quickly builds, and "the crowd" haughtily reminds all that the bear market is still deeply ensconced. Still, some positive signs appear for those who are looking: volume should be lower during wave two than during wave one, prices usually do not retrace more than 61.8% of the wave one gains, and prices should fall in a three-wave pattern.
Wave 3:
Wave three is usually the largest and most powerful wave in a trend. The news is now positive and fundamental analysts start to raise earnings estimates. Prices rise quickly, corrections are short-lived and shallow. Anyone looking to "get in on a pullback" will likely miss the boat. As wave three starts, the news is probably still bearish, and most market players remain negative; but by wave three's midpoint, "the crowd" will often join the new bullish trend. Wave three often extends wave one by a ratio of 1.618:1.
Wave 4:
Wave four is typically clearly corrective. Prices may meander sideways for an extended period, and wave four typically retraces less than 38.2% of wave three. Volume is well below that of wave three. This is a good place to buy a pullback if you understand the potential ahead for wave 5. Still, fourth waves are often frustrating because of their lack of progress in the larger trend.
Wave 5:
Wave five is the final leg in the direction of the dominant trend. The news is almost universally positive and everyone is bullish. Unfortunately, this is when many average investors finally buy-in, right before the top. Volume is often lower in wave five than in wave three, and many momentum indicators start to show divergences (prices reach a new high but the indicators do not reach a new peak).
Wave A:
Corrections are typically harder to identify than impulse moves. In wave A of a bear market, the fundamental news is usually still positive. Most analysts see the drop as a correction in a still-active bull market. Some technical indicators that accompany wave A include increased volume, rising implied volatility in the options markets, and possibly a turn higher in open interest in related futures markets.
Wave B:
Prices reverse higher, which many see as a resumption of the now long-gone bull market. Those familiar with classical technical analysis may see the peak as the right shoulder of a head and shoulders reversal pattern. The volume during wave B should be lower than in wave A. By this point, fundamentals are probably no longer improving, but they most likely have not yet turned negative.
Wave C:
Prices move impulsively lower in five waves. Volume picks up, and by the third leg of wave C, almost everyone realizes that a bear market is firmly entrenched. Wave C is typically at least as large as wave A and often extends to 1.618 times wave A or beyond.
█ FEATURES & BENEFITS
Versatile
The indicator works on relative price action, so you can apply it without having to change any of the default settings.
Targets:
Customize the high and low wave targets to identify possible price target areas.
Adjustable Rules:
• Shift Wave 2: if Wave 4 closes below the low close of Wave 2.
• Shift Wave 4: if Wave A closes below the low close of Wave 4.
• Allow Wave 4 to overlap Wave 1
• Allow truncated Wave 5
• Allow truncated Wave C
Price ratio:
Force waves 2/4 to retrace to a specific Fibonacci level.
Force Waves 3/5 size to a specific Fibonacci level.
Time Ratio:
Force selected waves to last a required number of bars.
Alerts:
Set up your alerts and receive notifications on wave completion.
Alerts format can be adapted to be received on Discord servers.
3 Zigzag for MTF Fib Alert [MsF]Japanese below / 日本語説明は英文の後にあります。
-------------------------
This indicator that automatically displays Fibonacci from each High & Low based on 3 Zigzags. It's useful for multi-timeframe analysis.
For example, Fibonacci calculated from the high and low prices (Zigzag 3 Period=100) of the upper timeframe can be displayed on the lower timeframe.
Also, you can set alerts for each Fibonacci point. It is useful when you are waiting for the price to return to the discount (50% or less) or the premium (50% or more) of the upper timeframe.
"Fib 1 - Crossing 0.00" … Trigger an alert when crossing the 0% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 100.0" … Trigger an alert when crossing the 100% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 23.6" … Trigger an alert when crossing the 23.6% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 38.2" … Trigger an alert when crossing the 38.2% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 50.0" … Trigger an alert when crossing the 50.0% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 61.8" … Trigger an alert when crossing the 61.8% line in Fibonacci of Zigzag1
"Fib 1 - Crossing 76.4" … Trigger an alert when crossing the 76.4% line in Fibonacci of Zigzag1
*Same as Zigzag 1 and Zigzag 2 too.
"Choose Zig Zag Leg for fib" parameter means...
Latest : Calculate Fibonacci based on "the most recent Zigzag line".
Previous : Calculate Fibonacci based on "the previous Zigzag line".
-------------------------
3つのZigzagを元に各High&Lowからフィボナッチを自動で表示するインジケーターです。
Zigzagの期間を工夫することで、マルチタイムフレーム分析に役立ちます。
例えば、以下の設定とした場合:
Zigzag 1 Period … 8
Zigzag 2 Period … 25
Zigzag 3 Period … 100
上位時間足Zigzag(Period=100)の高値安値から形成されるフィボナッチを下位時間足に表示することができるのです。
また、このインジケーターではフィボナッチのポイント毎にアラートの設定が可能です。
上位時間足の割安価格(50%以下)や割高価格(50%以上)に価格が戻ってくるのを待っている時などに力を発揮してくれます。
"Fib 1 - Crossing 0.00" … Zigzag1のフィボナッチにおいて、0%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 100.0" … Zigzag1のフィボナッチにおいて、100%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 23.6" … Zigzag1のフィボナッチにおいて、23.6%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 38.2" … Zigzag1のフィボナッチにおいて、38.2%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 50.0" … Zigzag1のフィボナッチにおいて、50.0%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 61.8" … Zigzag1のフィボナッチにおいて、61.8%ラインとクロスした場合にアラートを発報します
"Fib 1 - Crossing 76.4" … Zigzag1のフィボナッチにおいて、76.4%ラインとクロスした場合にアラートを発報します
※Zigzag1およびZigzag2のフィボナッチも同様
"Choose Zig Zag Leg for fib"パラメータについて:
Latest … 一番新しいZigzagのライン(UpまたはDown)を元にフィボナッチを計算します。
Previous … ひとつ前のZigzagのライン(UpまたはDown)を元にフィボナッチを計算します。
Band-Zigzag - TrendFollower Strategy [Trendoscope]Strategy Time!!!
Have built this on my earlier published indicator Band-Zigzag-Trend-Follower . This is just one possible implementation of strategy on Band-Based-Zigzag .
🎲 Notes
Experimental prototype. Not financial advise and strategy not guaranteed to make money despite backtest results
Not created or tested for any specific instrument or timeframe
Test and adopt with own risk
🎲 Strategy
This is trend following strategy built based on Bands and Zigzag. Traits of trend following strategies are
Lower win rate (Yes, thats right)
High risk reward (Compensates low win rate)
Higher drawdown
If market is choppy, trend following methods suffer.
The script implements few points to overcome the negatives such as lower win rate and higher drawdown by actively assessing pivots on the direction of trend along. This helps us take regular profits and exit on time during the end of trend. Most of the other concepts are defined and explained in indicator - Band-Zigzag-Trend-Follower and Band-Based-Zigzag
Defining a trend following method is simple. Basic rule of trend following is Buy High and Sell Low (Yes, you heard it right). To explain further - methodology involve finding an established trend which is flying high and join the trend with proper risk and optimal stop. Once you get into the trade, you will not exit unless there is change in the trend. Or in other words, the parameters which you used to define trend has reversed and the trend is not valid anymore.
🎯 Using bands
When price breaks out of upper bands (example, Bollinger Band , Keltener Channel, or Donchian Channel), with a pre determined length and multiplier, we can consider the trend to be bullish and similarly when price breaks down the lower band, we can consider the trend to be bearish .
🎯 Using Pivots
Simple logic using zigzag or pivot points is that when price starts making higher highs and higher lows, we can consider this as uptrend. And when price starts making lower highs and lower lows, we can consider this as downtrend. There are few supertrend implementations I have published in the past based on zigzags and pivot points .
Drawbacks of both of these methods is that there will be too many fluctuations in both cases unless we increase the reference length. And if we increase the reference length, we will have higher drawdown.
🎯 Band Based Zigzag Method
Here we use bands to define our pivot high and pivot low - this makes sure that we are identifying trend only on breakouts as pivots are only formed on breakouts
Our method also includes pivot ratio to cross over 1.0 to be able to consider it as trend. This means, we are waiting for price also to make new high high or lower low before making the decision on trend. But, this helps us ignore smaller pivot movements due to the usage of bands.
I have also implemented few tricks such as sticky bands (Bands will not contract unless there is breakout) and Adaptive Bands (Band will not expand unless price is moving in the direction of band). This makes the trend following method very robust.
To avoid fakeouts, we also use percentB of high/low in comparison with price retracement to define breakout.
🎲 Settings
Settings are fairly simpler and are explained as below. You will find most of the required information in tooltips.
Zig Zag Stochastic (ZZS)The "Zig Zag Stochastic" indicator is an indicator that uses a combination of zigzag pivot points and exponential smoothing to calculate a stochastic-like oscillator.
The indicator starts by identifying pivot high and pivot low points in the price data using the Zigzag indicator. These pivot points are then used to calculate the scale_price, which is a ratio of the current close price to the range between the current pivot high and pivot low.
Next, the scale_price is smoothed using exponential smoothing. The user can input the desired length of the smoothing period, with a default value of 14. If the user sets the smoothing length to 0, the indicator will automatically calculate the optimal smoothing length using the MAMA period calculation from the Dominant Cycle Estimators library.
The smoothed scale_price is then used to calculate two lines: the K-line and the D-line, both of which are also smoothed using exponential smoothing. The K-line is the main oscillator line and is similar to the %K line in a traditional stochastic oscillator. The D-line is a signal line, similar to the %D line in a traditional stochastic oscillator.
The indicator plots the smoothed scale_price, the K-line, and the D-line. Additionally, it includes horizontal lines at the 80 and 20 levels, and fills the area between them to help identify overbought and oversold conditions.
Band-Zigzag Based Trend FollowerWe defined new method to derive zigzag last month - which is called Channel-Based-Zigzag . This script is an example of one of the use case of this method.
🎲 Trend Following
Defining a trend following method is simple. Basic rule of trend following is Buy High and Sell Low (Yes, you heard it right). To explain further - methodology involve finding an established trend which is flying high and join the trend with proper risk and optimal stop. Once you get into the trade, you will not exit unless there is change in the trend. Or in other words, the parameters which you used to define trend has reversed and the trend is not valid anymore.
Few examples are:
🎯 Using bands
When price breaks out of upper bands (example, Bollinger Band, Keltener Channel, or Donchian Channel), with a pre determined length and multiplier, we can consider the trend to be bullish and similarly when price breaks down the lower band, we can consider the trend to be bearish.
Here are few examples where I have used bands for identifying trend
Band-Based-Supertrend
Donchian-Channel-Trend-Filter
🎯 Using Pivots
Simple logic using zigzag or pivot points is that when price starts making higher highs and higher lows, we can consider this as uptrend. And when price starts making lower highs and lower lows, we can consider this as downtrend. There are few supertrend implementations I have published in the past based on zigzags and pivot points.
Adoptive-Supertrend-Pivots
Zigzag-Supertrend
Drawbacks of both of these methods is that there will be too many fluctuations in both cases unless we increase the reference length. And if we increase the reference length, we will have higher drawdown.
🎲 Band Based Zigzag Method
Band Based Zigzag will help overcome these issues by combining both the methods.
Here we use bands to define our pivot high and pivot low - this makes sure that we are identifying trend only on breakouts as pivots are only formed on breakouts.
Our method also includes pivot ratio to cross over 1.0 to be able to consider it as trend. This means, we are waiting for price also to make new high high or lower low before making the decision on trend. But, this helps us ignore smaller pivot movements due to the usage of bands.
I have also implemented few tricks such as sticky bands (Bands will not contract unless there is breakout) and Adaptive Bands (Band will not expand unless price is moving in the direction of band). This makes the trend following method very robust.
To avoid fakeouts, we also use percentB of high/low in comparison with price retracement to define breakout.
🎲 The indicator
The output of indicator is simple and intuitive to understand.
🎯 Trend Criteria
Uptrend when last confirmed pivot is pivot high and has higher retracement ratio than PercentB of High. Else, considered as downtrend.
Downtrend when last confirmed pivot is pivot low and has higher retracement ratio than PercentB of High. Else, considered as uptrend.
🎯 Settings
Settings allow you to select the band type and parameters used for calculating zigzag and then trend. Also has few options to hide the display.
Multi-Timeframe MA Based Zigzag[liwei666]🎲 Overview
🎯 This Zigzag indicator build based on different MA such as EMA/HMA/RMA/SMA, support multi-timeframe setting .
you can get customer zigzag indicator by change short/long ma length and high-timeframe config(5m/15m/30m/1h/2h) in any symbol.
🎲 Indicator design logic
🎯 entired logic is simple and code looks complex, I‘ll explain core logic here, code already equipped with detailed comments.
1. use close-in EMA's highest/lowest value mark as SWING High/Low when EMA crossover/under, not use func ta.pivothigh()/ta.pivotlow()
2. when EMA crossover/under plot a char as signal like ●/❄/▲, crossover get blue char crossunder get red char
3. latest zigzag line is not drawn until EMA is turned (crossover/under), but signal is realtime
4. you can see diff zigzag structure when you open high-timeframe config, then find regular pattern benefit your trading.
🎲 Settings
🎯 there are 3 group properties in script, just focus on 5 properties in 'GRP1' ,
'GRP2' and 'GRP3' are display config.
'GRP1':
MA_Type: MA type you can choose(EMA/RMA/SMA/HMA/WMA), default is EMA
short_ma_len: short MA length of your current timeframe on chart
long_ma_len: long MA length of your current timeframe on chart
htf_ma_len: MA length of high timeframe, MA type same as 'MA_Type' config
htf_ma_tf: high timeframe ma length, 15/30/60/120 minute
'GRP2':
• show_short_zz • show_long_zz • show_htf_zz:
'GRP3':
• show_short_ma_line • show_short_ma_signal
• show_long_ma_line • show_long_ma_signal
• show_htf_ma_line • show_htf_ma_signal
🎲 Usage
🎯 As we know, MA based signal usually worked fine in trend market , low volatility is unprofitable.
🎯 One of pattern as the chart show below.
1. success example : after a blue ▲ signal, entry long when blue ● signal appear, marked with green box.
2. failed example: after a blue ▲ signal, a red ▼ signal appear, marked with white box.
🎯 BoS(Break of Structure) based on ma zigzag is a good idea I'm implementing, it will be published in next script.
Additionally, I plan to publish 20 profitable strategies in 2023; this indicatior not one of them,
let‘s witness it together!
Hope this indicator will be useful for you :)
enjoy! 🚀🚀🚀
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.
ZigCycleBarCount [MsF]Japanese below / 日本語説明は英文の後にあります。
Based on "ZigZag++" indicator by DevLucem. Thanks for the great indicator.
-------------------------
This indicator that displays the candle count (bar count) at the peaks of Zigzag .
It also displays the price of the peaks.
You can easily count candles (bars) from peak to peak. Helpful for candles (bars) in cycle theory.
This logic of the indicator is based from the mt4 zigzag indicator .
Parameter:
Depth = depth (price range)
Backstep = Period
Deviation = Percentage of how much the price has wrapped around the previous line.
Example:
Depth = 12
Backstep = 3
Deviation = 5
In this case, the price range is updated by 12 pips or more (Depth), and after 3 or more candlesticks line up (Backstep), if the price deviates from the previous line by 5% or more (Deviation), a peak is added.
-------------------------
Zigzagの頂点にローソクカウント(バーカウント)を表示するインジケータです。
頂点の価格も表示します。
頂点から頂点までのローソク(バー)を容易にカウントすることができます。
サイクル理論のローソク(バー)に役立ちます。
Zigzagロジック自体はMT4のzigzagインジケータを流用しています。
<パラメータ>
Depth=深さ(値幅)
Backstep=期間
Deviation=価格がどれだけ直前のラインの折り返したかの割合
例:
Depth=12
Backstep=3
Deviation=5
この場合、値幅を12pips以上更新し(Depth)、ローソク足が3本以上並んだ後(Backstep)、価格が直前のラインの5%以上折り返せば(Deviation)、頂点を付けます。
<表示オプション>
Label_Style = "TEXT"…テキスト表示、"BALLOON"…吹き出し表示
Theory Affinity TrendlinesThis indicator is perfect for traders who want to identify trend lines on a chart. It draws higher low uptrends and lower high downtrends, making it easy to see where the trend is going. You can also customize the settings to fit your needs, making it the perfect tool for your trading arsenal.
With this new tool, you can easily customize your experience to get the most out of your trading and analysis. With options like max lines, strength multiplier, pivot plots/text, and more, you can easily create the perfect trading analysis environment.
So why wait? Try it out today!
Leave feedback and let me know what you think.
// ############################################################################################## Input Descriptions
Pivot Left ----------------- look left n bars
Pivot Right ---------------- look right n bars
Strength ------------------- Pivot multiplier (Higher = Wider Trend lines)
Max Lines ------------------ Number of lines for each Uptrend and Downtrend
Structure Text ------------ Show HH, LL, etc. on chart
Structure Markers -------- Dots at the Pivot Highs and Lows
Plots ------------------------ Draw a line at Pivot Highs and Lows
Last Up Width ------------- Width of the current Uptrend line
Historical Up Width ------ Width of previous Uptrend lines
Last Down Width --------- Width of the current Downtrend lines
Historical Down Width --- Width of previous Downtrend lines
Line Offset ---------------- Shift trend lines right or left
* Lines may or may not "repaint". For use to identify trends that are more than likely already established and to identify trend line breaks.
Custom "ZickZack" for price lines|Tradingview wants a Description|
The Indicator Helps with finding:
- higher highs
- lower highs
- lower lows
- higher lows
- trends
It also shows with a triangle what candle confirmed the Pivot points
And it just looks fancy (my opinion)
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
_D4X_Fractal StructureThis script will show up to three different timeframe structure based on fractal formation (combination of three candles where the middle one is the highest).
You can modify each of the timeframes (called factors in the script). These factors emulate the fractal formations on the timeframe specified (in minutes). I found that at least for me a combination of 1-10-100 works well if you use the 1 minute timeframe, but you can try different combinations to see long term structures o more short term structures.
There are a couple of things I would like to add later on, for example, to select dots instead of lines to show structure or adding orderblocks based on the fractal formations (as this would emulate higher timeframe OBs). As soon as I can, I will add these.
Let me know if you like it!!!
Divergence Backtester - V2Further attempts to study divergence impact on price in shorter terms.
Previous study can be found here:
In this script, we are trying to gather the stats based on last two pivot state together. For example, Individual table of Pivot High Projection is as explained below:
But, by looking at the bigger picture, we can further estimate following things regarding the current unconfirmed pivot and the new pivot which is yet to be formed.
Divergence BacktesterThere is n number of possible ways in which we can backtest divergence and this is just a start :)
In this script, we are trying to count how many times the pivots made HH, HL, LH, LL after a particular divergence state.
An example of using data is as below:
The script keeps track of each pivot sentiment and resulting next pivot state. As mentioned in the chart snapshot, we can look at two of the previous pivot states and collect stats on how each of these state impacted price action.
As mentioned before, this is just tip of iceberg. Further combinations for which we can do backtest are:
1. m X n combinations of last pivot and last to last pivot divergence state
2. divergence combined with double divergence state.
Only issue to explore further is lack of space on the chart as tables can take up huge space.
PS: As you can see based on historical stats, probability of divergence impacting the change of trend is very low in most cases.
HH-LL ZZAnother ZigZag, yes...
I believe though this concerns another angle/principle, therefore I wanted to share
How does it work?
Given:
source for level breach -> close
X breaches -> 3
Let's say this is the latest found 'lower low' (LL - blue dot under bar):
This bar has been triggered because 3 bars closed under low of previous 'trigger bar' (TB )
The high and low of this new TB will act as triggers
(aqua blue lines, seen in image above)
Then there are 2 options:
- again 3 bars closes under the latest TB , in that case the TB moves to that new LL.
- 3 bars closes higher than the high of previous TB
The high and low of this new TB act again as trigger
If a new TB LL/HH is found, the script checks previous LL/HH
and searches the highest/lowest point in between.
If necessary, the temporary highest/lowest will be adjusted:
Another example:
The last 2 points can change (repaint).
Yellow coloured lines/labels are set and won't change anymore.
Concluded:
In case of these settings:
source for level breach -> close
X breaches -> 3
once a new TB is found, the high and low act as trigger lines
- when 3 bars closes under that low , a new LL is found, this will be the new TB
- when 3 bars closes above that high , a new HH is found, this will be the new TB
and so on...
Settings:
source for level breach -> close or high/low - H/L
X breaches -> 1 -> 10
line style -> solid, dotted, dashed
show level breaches -> new found TB (blue/lime coloured)
show Support/Resistance (lines at the right)
repaint warning can be removed
show labels / lines
This ZZ can be used for Harmonic patterns, Trend evaluation, support/resistance,...
In this script, I also used new features
- text_font_family = font.family_monospace -> link
- display=display.pane -> link
Cheers!
Micro ZigzagMicro zigzag is created based on similar concepts as that of zigzag but by using lower timeframe intra-bar data. The lines join candle's high/low points but also depict how the price movement within the candle happened. That is, if the high of the candle is reached first, pivot from previous candle join the high first and then low and vice versa.
The output can also be viewed as advanced line chart.
🎲 Process
🎯 For every bar identify whether high came first or low by using lower timeframe data.
🎯 If high came before low, add high as high pivot first and then low as low pivot. If otherwise, add low as lower pivot first and then high as higher pivot.
🎯 When adding pivot, check if the last pivot is in the same direction as the new one. If yes, replace existing pivot if the new one goes beyond it. Ignore otherwise.
🎯 If the last pivot is of different direction as that one new one, then simple add the new pivot.