Market Structure CHoCH/BOS (Fractal) [LuxAlgo]The Market Structure CHoCH/BOS (Fractal) indicator is an experimental take on classical market structure, whereas fractal patterns are used for their construction instead of swing points.
Compared to utilizing swing points for highlighting market structure like our Smart Money Concepts indicator , fractal-based market structure can appear as more adaptive, however, it can also be more restrictive when it comes to returning swing points which can cause the indicator to miss reversals in some cases.
If enabled from within the settings, users can see support and resistance levels returned from the detected market structure with breakouts highlighted on the chart. Alongside this feature, an additional dashboard showing the structure to fractal structure percentage is also provided.
🔶 SETTINGS
Length: Length of the fractal patterns to detect.
🔹 Style
Bullish Structures: Show bullish structures.
Bearish Structures: Show bullish structures.
Support: Show support levels.
Resistance: Show resistance levels.
🔹 Dashboard
Show Dashboard: Show structure to fractal percentage dashboard on the chart.
Location: Location of the dashboard on the chart.
Size: Dashboard size.
🔶 USAGE
Market structure is commonly used to determine trend direction by using price positions relative to prior swing points. Using fractal patterns to determine market structure can allow users to obtain shorter, more frequent structure labels.
Market structure is commonly classified as follows:
Change of Character (CHoCH), also referred to as Market Structure Shift (MSS)
Break of Structure (BOS), also referred to as Market Structure Break (MSB)
Change of Characters indicate a shift in the market trend, confirming trend reversals. Break of Structures on the other hand occur once a trend is already determined, confirming new higher highs/lower lows.
Using higher length values allow users to detect longer-term fractals, thus highlighting longer-term market structures. The image above detects fractal patterns made of 7 candles, even if the increment is only of 2 bars this significantly reduces the amount of detected market structure labels.
The result obtained by utilizing fractals and higher settings can be a more dynamic view of market structure, however, as seen in the image above this can introduce very significant delay compared to utilizing pure swing points.
🔹 Support/Resistance
The indicator also returns support/resistance levels constructed from the market structure, these levels are obtained similarly to order blocks, finding the minimum on the interval of a bullish market structure and the maximum of a bearish market structure.
Price reaching a support/resistance level can be expected to bounce from it. Once a level is broken, the support/resistance level will no longer extend, and a circle will be displayed highlighting the break.
While utilizing this script for fractal-based market structure, these levels can be useful to ensure all swing points are still considered by the user with the possibility of the indicator missing reversals due to its calculation not being based on swing points themselves.
🔹 Dashboard
The dashboard reports the structure to fractal percentage, that is the amount of bullish/bearish market structures relative to the total amount of detected bullish/bearish fractal patterns.
This allows us to see how often a detected fractal pattern is used to display a market structure.
🔶 DETAILS
🔹 Fractals
In the context of technical analysis, Fractals refer to specific patterns that exhibit self-similarity at different scales or timeframes.
The most commonly known fractal pattern consists of a consecutive sequence of candles (more commonly 5), with the central candle being the lowest (in case of a bullish fractal) or highest (in case of a bearish fractal).
A bullish fractal has candles on the right side of the central candle with increasing lows, while candles on the left side have decreasing lows.
A bearish fractal has candles on the right side of the central candle with decreasing highs, while candles on the left side have increasing highs.
🔶 RELATED SCRIPTS
🔹 Smart Money Concepts
🔹 Market Structure Trailing Stop
🔹 ICT Concepts
BOS
Market Structure Trailing Stop [LuxAlgo]This script returns trailing stops on the occurrence of market structure (CHoCH/BOS labeling). Trailing stops are adjusted based on trailing maximums/minimums with the option for users to be able to control how quickly a trailing stop can converge toward the price.
🔶 SETTINGS
Pivot Lookback: Pivot length used for the detection of swing points.
Increment Factor %: Controls how fast trailing stops converge toward the price, with lower values returning slower converging trailing stops.
Reset Stop On: Determines if trailing stops are reset on CHoCH structure or all (CHoCH + BOS).
Show Structure: Determines if market structure is displayed.
🔶 USAGE
Trailing stops allow traders to protect them against downside risk while also guaranteeing a potential profit in case the market goes in the expected direction of the trade.
Users making use of market structure as a primary entry condition can benefit from having trailing stops based on these to either provide an additional exit condition or to provide points of support/resistance with the price.
Trailing stops can avoid being hit more frequently by using a lower Increment Factor % setting.
Finally, users can reset the trailing stop when any market structure is detected (or only on CHoCHs). Allowing trailing stops to reset on the detection of any market structure allows the indicator to return trailing stops closer to the price. CHoCH labels are highlighted as dashed lines while BOS labels are highlighted as dotted lines.
🔶 DETAILS
When a new structure (or only CHoCH if specified by the user) is detected, trailing stops will initially be set based on the maximum/minimum made on the previous trend. This will also set the trailing maximum/minimum to the current price value.
If an uptrend is detected (most recent market structure is bullish) then the trailing stop will increase if the trailing maximum increase, the increment is calculated as:
trailing stop = trailing stop + Increment Factor % of (trailing maximum - previous trailing maximum)
If a downtrend is detected (most recent market structure is bearish) then the trailing stop will decrease if the trailing minimum decrease, the decrement is calculated as:
trailing stop = trailing stop + Increment Factor % of (trailing minimum - previous trailing minimum)
Market Structure & Liquidity: CHoCHs+Nested Pivots+FVGs+Sweeps//Purpose:
This indicator combines several tools to help traders track and interpret price action/market structure; It can be divided into 4 parts;
1. CHoCHs, 2. Nested Pivot highs & lows, 3. Grade sweeps, 4. FVGs.
This gives the trader a toolkit for determining market structure and shifts in market structure to help determine a bull or bear bias, whether it be short-term, med-term or long-term.
This indicator also helps traders in determining liquidity targets: wether they be voids/gaps (FVGS) or old highs/lows+ typical sweep distances.
Finally, the incorporation of HTF CHoCH levels printing on your LTF chart helps keep the bigger picture in mind and tells traders at a glance if they're above of below Custom HTF CHoCH up or CHoCH down (these HTF CHoCHs can be anything from Hourly up to Monthly).
//Nomenclature:
CHoCH = Change of Character
STH/STL = short-term high or low
MTH/MTL = medium-term high or low
LTH/LTL = long-term high or low
FVG = Fair value gap
CE = consequent encroachement (the midline of a FVG)
~~~ The Four components of this indicator ~~~
1. CHoCHs:
•Best demonstrated in the below charts. This was a method taught to me by @Icecold_crypto. Once a 3 bar fractal pivot gets broken, we count backwards the consecutive higher lows or lower highs, then identify the CHoCH as the opposite end of the candle which ended the consecutive backwards count. This CHoCH (UP or DOWN) then becomes a level to watch, if price passes through it in earnest a trader would consider shifting their bias as market structure is deemed to have shifted.
•HTF CHoCHs: Option to print Higher time frame chochs (default on) of user input HTF. This prints only the last UP choch and only the last DOWN choch from the input HTF. Solid line by default so as to distinguish from local/chart-time CHoCHs. Can be any Higher timeframe you like.
•Show on table: toggle on show table(above/below) option to show in table cells (top right): is price above the latest HTF UP choch, or is price below HTF DOWN choch (or is it sat between the two, in a state of 'uncertainty').
•Most recent CHoCHs which have not been met by price will extend 10 bars into the future.
• USER INPUTS: overall setting: SHOW CHOCHS | Set bars lookback number to limit historical Chochs. Set Live CHoCHs number to control the number of active recent chochs unmet by price. Toggle shrink chochs once hit to declutter chart and minimize old chochs to their origin bars. Set Multi-timeframe color override : to make Color choices auto-set to your preference color for each of 1m, 5m, 15m, H, 4H, D, W, M (where up and down are same color, but 'up' icon for up chochs and down icon for down chochs remain printing as normal)
2. Nested Pivot Highs & Lows; aka 'Pivot Highs & Lows (ST/MT/LT)'
•Based on a seperate, longer lookback/lookforward pivot calculation. Identifies Pivot highs and lows with a 'spikeyness' filter (filtering out weak/rounded/unimpressive Pivot highs/lows)
•by 'nested' I mean that the pivot highs are graded based on whether a pivot high sits between two lower pivot highs or vice versa.
--for example: STH = normal pivot. MTH is pivot high with a lower STH on either side. LTH is a pivot high with a lower MTH on either side. Same applies to pivot lows (STL/MTL/LTL)
•This is a useful way to measure the significance of a high or low. Both in terms of how much it might be typically swept by (see later) and what it would imply for HTF bias were we to break through it in earnest (more than just a sweep).
• USER INPUTS: overall setting: show pivot highs & lows | Bars lookback (historical pivots to show) | Pivots: lookback/lookforward length (determines the scale of your pivot highs/lows) | toggle on/off Apply 'Spikeyness' filter (filters out smooth/unimpressive pivot highs/lows). Set Spikeyness index (determines the strength of this filter if turned on) | Individually toggle on each of STH, MTH, LTH, STL, MTL, LTL along with their label text type , and size . Toggle on/off line for each of these Pivot highs/lows. | Set label spacer (atr multiples above / below) | set line style and line width
3. Grade Sweeps:
•These are directly related to the nested pivots described above. Most assets will have a typical sweep distance. I've added some of my expected sweeps for various assets in the indicator tooltips.
--i.e. Eur/Usd 10-20-30 pips is a typical 'grade' sweep. S&P HKEX:5 - HKEX:10 is a typical grade sweep.
•Each of the ST/MT/LT pivot highs and lows have optional user defined grade sweep boxes which paint above until filled (or user option for historical filled boxes to remain).
•Numbers entered into sweep input boxes are auto converted into appropriate units (i.e. pips for FX, $ or 'handles' for indices, $ for Crypto. Very low $ units can be input for low unit value crypto altcoins.
• USER INPUTS: overall setting: Show sweep boxes | individually select colors of each of STH, MTH, LTH, STL, MTL, LTL sweep boxes. | Set Grade sweep ($/pips) number for each of ST, MT, LT. This auto converts between pips and $ (i.e. FX vs Indices/Crypto). Can be a float as small or large as you like ($0.000001 to HKEX:1000 ). | Set box text position (horizontal & vertical) and size , and color . | Set Box width (bars) (for non extended/ non-auto-terminating at price boxes). | toggle on/off Extend boxes/lines right . | Toggle on/off Shrink Grade sweeps on fill (they will disappear in realtime when filled/passed through)
4. FVGs:
•Fair Value gaps. Represent 'naked' candle bodies where the wicks to either side do not meet, forming a 'gap' of sorts which has a tendency to fill, or at least to fill to midline (CE).
•These are ICT concepts. 'UP' FVGS are known as BISIs (Buyside imbalance, sellside inefficiency); 'DOWN' FVGs are known as SIBIs (Sellside imbalance, buyside inefficiency).
• USER INPUTS: overall setting: show FVGs | Bars lookback (history). | Choose to display: 'UP' FVGs (BISI) and/or 'DOWN FVGs (SIBI) . Choose to display the midline: CE , the color and the line style . Choose threshold: use CE (as opposed to Full Fill) |toggle on/off Shrink FVG on fill (CE hit or Full fill) (declutter chart/see backtesting history)
////••Alerts (general notes & cautionary notes)::
•Alerts are optional for most of the levels printed by this indicator. Set them via the three dots on indicator status line.
•Due to dynamic repainting of levels, alerts should be used with caution. Best use these alerts either for Higher time frame levels, or when closely monitoring price.
--E.g. You may set an alert for down-fill of the latest FVG below; but price will keep marching up; form a newer/higher FVG, and the alert will trigger on THAT FVG being down-filled (not the original)
•Available Alerts:
-FVG(BISI) cross above threshold(CE or full-fill; user choice). Same with FVG(SIBI).
-HTF last CHoCH down, cross below | HTF last CHoCH up, cross above.
-last CHoCH down, cross below | last CHoCH up, cross above.
-LTH cross above, MTH cross above, STH cross above | LTL cross below, MTL cross below, STL cross below.
////••Formatting (general)::
•all table text color is set from the 'Pivot highs & Lows (ST, MT, LT)' section (for those of you who prefer black backgrounds).
•User choice of Line-style, line color, line width. Same with Boxes. Icon choice for chochs. Char or label text choices for ST/MT/LT pivot highs & lows.
////••User Inputs (general):
•Each of the 4 components of this indicator can be easily toggled on/off independently.
•Quite a lot of options and toggle boxes, as described in full above. Please take your time and read through all the tooltips (hover over '!' icon) to get an idea of formatting options.
•Several Lookback periods defined in bars to control how much history is shown for each of the 4 components of this indicator.
•'Shrink on fill' settings on FVGs and CHoCHs: Basically a way to declutter chart; toggle on/off depending on if you're backtesting or reading live price action.
•Table Display: applies to ST/MT/LT pivot highs and to HTF CHoCHs; Toggle table on or off (in part or in full)
////••Credits:
•Credit to ICT (Inner Circle Trader) for some of the concepts used in this indicator (FVGS & CEs; Grade sweeps).
•Credit to @Icecold_crypto for the specific and novel concept of identifying CHoCHs in a simple, objective and effective manner (as demonstrated in the 1st chart below).
CHoCH demo page 1: shifting tweak; arrow diagrams to demonstrate how CHoCHs are defined:
CHoCH demo page 2: Simplified view; short lookback history; few CHoCHs, demo of 'latest' choch being extended into the future by 10 bars:
USAGE: Bitcoin Hourly using HTF daily CHoCHs:
USAGE-2: Cotton Futures (CT1!) 2hr. Painting a rather bullish picture. Above HTF UP CHoCH, Local CHoCHs show bullish order flow, Nice targets above (MTH/LTH + grade sweeps):
Full Demo; 5min chart; CHoCHs, Short term pivot highs/lows, grade sweeps, FVGs:
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias (part A):
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias, 3hrs later (part B):
Realtime Vs Backtesting(A): btc/usd 15m; FVGs and CHoCHs: shrink on fill, once filled they repaint discreetly on their origin bar only. Realtime (Shrink on fill, declutter chart):
Realtime Vs Backtesting(B): btc/usd 15m; FVGs and CHoCHs: DON'T shrink on fill; they extend to the point where price crosses them, and fix/paint there. Backtesting (seeing historical behaviour):
Simple Market StructureThis indicator is meant for education and experimental purposes only.
Many Market Structure Script out there isn't open-sourced and some could be complicated to understand to modify the code. Hence, I published this code to make life easier for beginner programmer like me to modify the code to fit their custom indicator.
As I am not a expert or pro in coding it might not be as accurate as other reputable author.
Any experts or pros that is willing to contribute this code in the comment section below would be appreciated, I will modify and update the script accordingly as part of my learning journey.
It is useful to a certain extend to detect Market Structure using Swing High/Low in all market condition.
Here are some points that I am looking to improve / fix:
To fix certain horizontal lines that does not paint up to the point where it breaks through.
To add in labels when a market structure is broken.
Allow alerts to be sent when market structure is broken (Probably be done in the last few updates after knowing it is stable and as accurate as possible)
Any suggested improvement, please do let me know in the comment section below and I will try my best to implement it into the script.
Market Structure MA Based BOS [liwei666]
🎲 Overview
🎯 This BOS(Break Of Structure) indicator build based on different MA such as EMA/RMA/HMA, it's usually earlier than pivothigh() method
when trend beginning, customer your BOS with 2 parameters now.
🎲 Indicator design logic
🎯 The logic is simple and code looks complex, I‘ll explain core logic but not code details.
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. find regular pattern benefit your trading.
🎲 Settings
🎯 there are 4 input properties in script, 2 properties are meaningful in 'GRP1' another 2 are display config in 'GRP2'.
GRP1
MA_Type: MA type you can choose(EMA/RMA/SMA/HMA), default is 'HMA'.
short_ma_len: MA length of your current timeframe on chart
GRP2
show_short_zz: Show short_ma Zigzag
show_ma_cross_signal: Show ma_cross_signal
🎲 Usage
🎯 BOS signal usually worked fine in high volatility market, low volatility is meaningless.
🎯 We can see that it performs well in trending market of different symbols, and BOS is an opportunity to add positions
BINANCE:BTCUSDTPERP
BINANCE:ETHUSDTPERP
🎯 MA Based signal is earlier than pivothigh()/pivotlow() method when trend beginning. it means higher profit-loss rate.
🎯 any questions or suggestion please comment below.
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! 🚀🚀🚀
Mark Structure ShdwMark Structure Show is building the market swing structure, minor and sub structure and marks all possible insignificant pivots
This indicator is the alternative version of Mark Structure indicator, I had to create another indicator in order to avoid programming limitation of TreadingView.
This version uses confirmation approach as confirming by body, it means every swing low/high is confirmed when the body (of newly creating swing low/high correspondingly) takes place and intercepts it. the same behaviour is with breaking structure its confirmed only by body.
From trading prospective with this kind of approach we can easily detect manipulations (caused by sweeps) and disregard those manipulation as elements which are breaking the structure. so its extremely useful for those who are trading smart money price actions and basing on swing structure POI
it supports:
- Marking all pivots with labels or join them continuously with trend lines.
- Marking minor and sub structured swings with labels or join them continuously with trend lines. Marking last actual CHoCH and BOS. Minor and substructure are structures inside swing structure and it can differ from the structure of lower timeframe
- Marking swings of swing structure with labels or join them continuously with trend lines.
- Changing bullish and bearish colors of each kind of structures
- Changing pivot labelings
- Changing colors
Remarks:
- Don't expect to have minor and sub structure in each swing waves, its totally fine when you don't have them at all
- Swing structure is the most significant structure and shows real price direction.
- The last swing is not able to be confirmed it tries to build 2 swings that most likely would be either substructure or SMS BOS
Market Structure - By LeviathanThis indicator helps you identify market structure by plotting swing highs and lows (HH, LH, HL, LL), BOS/CHOCH and 0.5 retracement levels. Other functionalities will be added in future updates.
Indicator Settings Overview
SWING LENGTH
The number of leftbars and rightbars when searching for swing points. The lower the value, the more swing points are shown and the higher the value, the less swing points are shown. I suggest adjusting it to fit your style and when switching between different timeframes.
BOS CONFIRMATION
Choose whether a Break of Structure is determined by a candle close or a wick breaching previous swing point. Using the "Wick" confirmation option will result in more breaks of structure.
CHOCH
Turning this ON renames the first counter trend Break of Structure (BOS) to CHoCH (Change of Character) and therefore signaling a possible trend shift.
SHOW 0.5 RETRACEMENT LEVEL
This will show a level halfway between a swing low and a swing high of an expansion move, which can act as an approximate retracement point if the trend continues.
In uptrends, 0.5 level is drawn between Higher Lows (HL) and Higher Highs ( HHs ). Long entries can be placed around that level if you suspect that the uptrend will continue.
In downtrends, 0.5 level is drawn between Lower Highs (LH) and Lower Lows (LLs). Short entries can be placed around that level if you suspect that the downtrend will continue.
Bodies X Wix Version of Smart Money Tools by makuchaku & eFeThis is the same Script as Super Fair Value Gaps / FVG /BoS / by makuchaku & eFe. Mine Should Default to Large Text instead of small. The Super Order Blocks I believe was meant to for you to find one of the many Smart Money tools such as turn on the Fair Value gap but leave the others off, or Turn on where the Break of Structure and leave the others off. The reason I believe this is because the default values for each of the structures were default colored (green for positive and red for negative) for all.
Mine has a different Color for every possible structure. As long as you can read with the larger text that I added, then you can create your own boxes positive for break of structure, rejection block, order blocks and fair value gaps for any time frame. The reason I did that is because There's only certain things I believe I will need to mark for myself in each time frame, and then from there You can stretch iyour own box out further in time because if price touches a fair value gap for example, the fair value gap should conyinue in time until at least 2 candles have filed the Fair valu gap going both directions. That's truly when the fair value gap should is mitigated and will from off the chart. However, If I knew How to add the code for that, I would.
Additionally, I have the Max Boxes per chart, so you should have the ability to see every OB, FVG,RJB, & BoS on the chart
I tried my hardest to create a colored border that was different from the box. But the way the original was coded was almost impossible to do. Because they defined each of the structures (FVG, OB, BoS, RJB) outer levels, when the outer levels connect via math in the code, then it joins all the outside lines for a rectangle. When creating a box, the coloe will always be the same as the border unfortunately. (Unless I replan this from the beginning)
I also Changed the default labels for reach structure from a hard to read gray to a white that pops out.
Also, chart indicators are a little large as well. Such as the cross, sideways cross, The green Triangle, and the white Diamond. You'll get used to it or you can change it as well.
Creating videos for students, you need something they can see.
So, I just wanted to ensure everything was a little more unique and easily usable when showing this to my students when I send them private videos for our weekly lessons. I'm trying to learn how to use the IPFS for THAT, (which i see has invaded PineScript) Hope this indicator helps.
If you're to borrow this, Just make sure you keep the authors in the name makuchaku & efe
Mark StructureMark Structure is building the market swing structure, minor and sub structure and marks all possible insignificant pivots
Building such structure is really complex task to do, that has a lot of obstacles and challenges. I'm doing my best to develop this indicator behaving in absolutely expectable and right way. Fill free to leave any comments or bug reports.
it supports:
- Marking all pivots with labels or join them continuously with trend lines.
- Marking minor and sub structured swings with labels or join them continuously with trend lines. Marking BOS or SMS BOS, which are mbos. Minor and substructure are structures inside swing structure and it can differ from the structure of lower timeframe
- Marking swings of swing structure with labels or join them continuously with trend lines. Marking BOS or SMS BOS of swing structure
- Changing bullish and bearish colors of each kind of structures
- Changing pivot labelings
- Changing colors of BOSs
Remarks:
- As I told you guys before, it has a lot of challenging cases. eg we have swing low and high on the same candle and in order to decide which pivot goes first I take lower time frame data to figure out what pivot is the first, but it happens that on lower time frame the same issue takes place, due to limitation of TradingView I can't go infinitely to lower timeframes to solve this issue, so I mark those cases with labels
- Another issue is very beginning of the trend its hard to detect swing structure there due to missing historical data. so skip a few waves in the very beginning
- Don't expect to have minor and sub structure in each swing waves, its totally fine when you don't have them at all
- Swing structure is the most significant structure and shows real price direction. Trend change is confirmed when for bull->bear the last HLbull LH>HH and HH-HL-HH are confirmed. You can change labelling for unconfirmed swing trend in the settings. By default its already done
Super OrderBlock / FVG / BoS Tools by makuchaku & eFeThis super indicator is a Swiss army knife for Smart Money traders for OrderBlocks / FVG / BoS
It provides many options for drawing (non-repainting) boxes for OrderBlocks, Fair Value Gaps (FVG) and Break of Structures. The boxes are extended into the future, until the first retest/mitigation.
Some of the additional options (not explained in the diagrams above)
PPDD OB : An order block which is formed after interacting with Liquidity (old low/high, fractal low/high, etc). Since these OB's are in the most premium or most discount, they are Premium Premium Discount Discount OB's (PPDD OB)
HVB Bars : When the volume of any bar is higher than the average volume of last N bars, it could mean something important (in the right context). Hence, the indicator allows for coloring them differently.
This indicator was built as a collaboration between @makuchaku & eFe
Pro tip : This indicator is a simply a tool to visualize trading concepts on the candle stick chart. It is the job of the trader to sequence these effectively into a profitable trade.
If you come across any bug or have a question on how to effectively use the indicator, please don't hesitate to ask questions.
Good luck & good trading!