Dynamic Structure Indicator

This is a dynamic structure indicator designed to map potential support and resistance zones (in all markets). It does this by looking back x amount of candles to identify major swing highs and lows on the specified reference timeframe, and then it draws a zone between the highest/lowest wick and the highest/lowest candle close across the chart until a new zone is created.

The settings are important because it gathers data from a separate reference timeframe, so sometimes it will map zones that aren’t really appropriate for lower timeframes. On lower timeframes (1Hr and under) I’d recommend setting the reference timeframe to your actual trading timeframe and increasing the lookback period to fine-tune the zone mapping. The script is set for 4 Hour forex charts by default.

Please note: the max zone option is disabled by default because it is different for every instrument, but this is a useful feature that I recommend using. Sometimes the indicator picks up huge gaps that aren’t really considered support or resistance zones. If this happens to you, use the zone size settings to invalidate huge (or tiny) zones. The zone size is in pips.

To be honest I didn’t get this indicator to be quite as accurate as I envisioned and it’s still a work in progress as I learn pine script, but this is the best I’ve been able to get it to function and with the right settings it works fairly well so I figured I might as well release this first version. Maybe someone with better skills than me can help refine it to more accurately identify major fractals and levels - if so, please get in touch! All traders should be able to identify their own major levels by eye anyway, but this script is intended to be a building block for future signal indicators I wish to develop.

Last of all - please don’t use this indicator to trade blindly! Often price will blast right through these zones and the zones aren’t always accurate. Remember that structure levels only work if they’re obvious to other traders, and always wait for confirmation signals that meet your trade plan rules before entering trades – especially reversals or counter-trend trades.

If you have any questions or tips to improve the script, feel free to leave a comment or private message me.

Enjoy, and good luck out there :)

- Matt.
版本注释: - Added an offset feature that maps the zones a slightly further distance from their point of origin
- Fixed the zone coloring change when zones are broken and closed above/below
版本注释: v1.2:

- Added an offset feature that maps the zones a slightly further distance from their point of origin
- Fixed the zone coloring change when zones are broken and closed above/below
版本注释: Fixed pip zone size input so that the indicator works for all instruments by default.
版本注释: Minor improvements
版本注释: Updated to Pine Script version 4
版本注释: Rewrote entire source code. The new settings behave as following:
- Draw Previous Structure: Saves previous structure to draw above/below more recent structure
- Reference Timeframe: This is the timeframe to reference for swing highs & lows
- High/Low Lookback: This is how far to lookback for highs & lows (on reference timeframe)
- Max Zone Size (Compared To ATR): Invalidates zone if zone exceeds this multiplier of the ATR
- Zone Update Count Before Reset: This is used to determine when to stop drawing previous structure

Now when the script detects a new structure zone, it checks:
- Is there already a previous structure zone being drawn?
> If not, then save the current zone before changing it and draw that in addition to the new one
> If there is an existing previous zone, then wait until price violates that zone before changing it
> If the number of new zones that have been detected exceeds Zone Update Count, reset previous zone

The Zone Update Count Before Reset setting is used to remove old zones after enough time has passed that it is no longer relevant to recent price action.

Basically, the script now detects major swing highs & lows on your reference timeframe determined by fractal candles (google it if you're not sure what that is). Once it detects a major swing high or low, it draws the zone between the wick and the body of that swing high/low over intraday price action until your reference timeframe violates that zone with a close above/below.

Once a violation is detected, it saves the old zone (if "Draw Previous Structure" is turned on) and begins searching for a new zone while still drawing the old zone. If the old zone gets violated, then it stops drawing that zone. If the old zone never gets violated, then after X amount of new zones have been detected it will forcibly remove itself (with X being your "Zone Update Count Before Reset" override setting).

This is my best effort at automating the detection of major support & resistance zones and is a constant work in progress as I become more proficient with Pine Script. I revisit this script every few months to see if I can improve it, but for now this is the best I can do! Feel free to modify and republish it if you have any better ideas (and definitely let me know if you do manage to improve its accuracy).

Check my blog & YouTube channel for more detailed instructions on how to use this script :)

- Matt.
版本注释: Added alert functionality.
- DSI Alert = Combines all alert conditions into 1 alert
- DSI Resistance Alert = Triggers alert if price touches resistance zone
- DSI Resistance Breakout = Triggers alert if intraday price action closes above resistance zone
- DSI Support Alert = Triggers alert if price touches support zone
- DSI Support Breakout = Triggers alert if intraday price action closes below support zone
版本注释: Dynamic Structure Indicator v2.0
- Rewrote entire script from scratch
- New script no longer uses other timeframe data, only current timeframe
- Significantly improved accuracy of zone detection
- Added alert functionality

What's it do?
The script detects major swing highs & lows, then waits for a 1ATR move in the opposite direction. If this occurs then the script draws a zone between the wick and body of that high/low until it's violated by a closing price. Once violated, it then begins looking for a new zone. If you have Draw Previous Structure turned on then the script will also draw the previous support/resistance zone until that gets violated again (support-turned-resistance etc).

ATR Movement Required: How many ATRs must price move from a high or low to validate a zone
High/Low Lookback: How many bars to look back to identify swing highs and lows in price action
Max Zone Size: If the zone size exceeds this multiplier of the current ATR then the zone is ignored
Zone Update Reset: This is used to force an update of previous dark S&R zones if they last too long
Draw Previous Structure: This turns on/off the darker colored zones which are previous S&R zones

DSI Alert: All of these alerts combined into 1
DSI Resistance Alert: Price is current testing resistance zone
DSI Resistance Breakout: Price is currently violating resistance zone
DSI Support Alert: Price is currently testing support zone
DSI Support Breakout: Price is currently violating support zone

本着真正的TradingView精神,该脚本的作者将其开源发布,因此交易者可以理解和验证它。为作者加油! 您可以免费使用它,但是在发布中重复使用此代码受网站规则的约束。您可以收藏它以在图表上使用。

If you want to master Pine Script coding, watch my free YouTube lessons or get the source code to my scripts then check out my Pine Script Mastery Course website: https://www.pinescriptmastery.com


Thanks for this script! I'm also looking forward to the one that uses ATR, as I'm also using a lot of renko charts. Keep up the good work! :-)
+5 回复
Thank you for this!
+2 回复
hey first of all I like this indicator, so thank you!! so I'm just curious you say this is set for a 4 hr default. the lookback is set at 8 and the time frame is 1. how is that 4hrs?? I'm assuming the the 1 is for a single minute correct?
so wouldn't that be looking back 8 minutes? just curious as I'm trying to fine tune this indicator!!! thanks man
+2 回复
@Longevity7, Hey man! Thanks for the interest :) the script uses the Open, High, Low & Close data of the 4HR timeframe by default, and it looks back 8 x 4HR candles for swing highs/lows by default. That's what I mean by it's set for the 4HR timeframe by default, because it is using the data of the 4HR timeframe to define the S&R zone sizes (using 32 hours worth of 4HR price action).

You can change the reference timeframe and also extend or shorten the candle lookback period which will give you different approximate S&R extremes. The shorter the lookback period, the more 'tight' the zones will be which may be useful if you're a day-trader. The longer the lookback-period, the more you're going to start getting Daily and Weekly S&R zones. I'm a swing trader myself so the majority of my indicators are configured to work best on 4HR timeframes by default :)

I plan to release an enhanced version of this script soon which uses the ATR to define zones rather than pips so that it works better on all instruments. This was one of the first indicator scripts I wrote, so there are a lot of improvements that could be made. Feel free to make any suggestions or improvements if you think of any!

Cheers :)
Longevity7 ZenAndTheArtOfTrading
@ZenAndTheArtOfTrading, Hey just to add, and thank you by the way for that info. did you know that this indicator does not work with the yen pairs? is it because of its initial triple digit price and the indicator is coded for the other instruments?
+1 回复
@Longevity7, Yes, unfortunately you need to change the minimum/maximum zone size to account for the difference in Yen pairs decimal points in price every time you open a Yen chart or go back to a dollar chart. I haven't had the time to revisit this script for a while now but I still plan to try to fix that soon if I can :) I want to try to convert the script to use ATR for minimum/maximum S&R zone sizes instead of pips so that the script works on all pairs without you having to tweak anything.
You have put a lot of work into this over the past couple of years.. never saw or used earlier versions, but this ATR version seems to be very accurate mate. Very nice indicator for at the very least, guidance on drawing your own manual levels. I use it effectively on higher timeframes and all the way down to 5 minute charts.
+1 回复
@blxckclothes, Thanks mate! I appreciate the kind words and feedback. I've definitely sunk plenty of hours into this script over the years but your feedback tells me it was worth the effort! Good luck with your trading :)
Great work on the indicator this is the best supply/demand indicator I've found on TradingView and I've tried them all.
+1 回复
It's not working, I'm getting 'this study references too many candles in history' error.
+1 回复
首页 股票筛选器 外汇筛选器 加密货币筛选器 财经日历 如何运作 图表功能 价格 推荐朋友 网站规则 帮助中心 网站 & 经纪商解决方案 插件 图表解决方案 轻量图表库 博客 & 新闻 Twitter
概览 个人资料设置 账户和账单 推荐朋友 代币 我的客服工单 帮助中心 私人消息 在线聊天 退出