LANZ Strategy 2.0🔷 LANZ Strategy 2.0 — London Breakout Confirmation with Structural Swing Protection
LANZ Strategy 2.0 is a structured trading system that leverages the last confirmed market direction before the London session to define directional bias and manage trades based on key structural swing levels. It is tailored for intraday traders looking to capitalize on early London volatility with built-in risk management and visual clarity.
🧠 Core Components:
Directional Confirmation (Pre-London Bias): Validates the last breakout or structural move from the 15-minute timeframe before 02:15 a.m. New York time (start of the London session), establishing the expected market direction.
Time-Based Execution: Executes potential entries strictly at 02:15 a.m. NY time, using market structure to support Long or Short bias.
Dynamic Swing-Based SL System: Allows user to select between three SL protection models: First Swing (most recent structural point) Second Swing (prior level) Total Coverage (includes both swings + extra buffer) This supports flexibility based on trader profile or market conditions.
Visual Risk Mapping: All SL and TP levels are clearly plotted.
End-of-Session Management: Positions are automatically evaluated for closure at 11:45 a.m. NY time. SL, TP, or manual close outcomes are labeled accordingly.
📊 Visual Features:
Labels for 1st and 2nd swing levels upon entry.
Dynamic lines projecting SL/TP levels toward the end of the session.
Session background coloring for Pre-London, Execution, and NY sessions.
Real-time percentage outcome labels (+2.00%, -1.00%, or net % at session end).
Automatic deletion of previous visuals on new entries for clean charting.
⚙️ How It Works:
Detects last structural breakout on the 15m timeframe before 02:15 a.m. NY.
On the 02:15 a.m. candle, executes a Long or Short logic entry.
Plots corresponding SL and TP based on selected swing model.
Monitors price action: If TP or SL is hit, labels it accordingly. If no exit is hit, trade closes manually at 11:45 a.m. NY with net result shown.
Optional logic to reverse entries if market structure breaks before execution.
🔔 Alerts:
Daily execution alert at 02:15 a.m. NY (prompting manual review or action).
Optional alert logic can be extended for SL/TP hits or structure breaks.
📝 Notes:
Designed for semi-automated or discretionary intraday trading.
Best used on Forex pairs or indices with strong London session behavior.
Adjustable parameters include session hours, swing SL type, and buffer settings.
Credits:
Developed by LANZ, this script combines time-based execution with dynamic structure protection, offering a disciplined framework for participating in the London session breakout with clear visuals and risk logic.
Search in scripts for "bias"
Pivot Levels with EMA Trend📌 Trend Change Levels with EMA Trend
✨ Description:
This TradingView script identifies clean trend change levels based on 1-hour structure shifts and filters them to keep only those not invalidated. It follows the "Jake Ricci" method, each level is printed at the beginning of the candle that changes the trend, on a 1 hour chart. For precision, make sure to exclude after/pre market and only use the levels on regular hours charts.
It includes dynamic EMAs (9, 50, 200), intraday VWAP, the daily open level printed, and a visual trend label based on EMA(9) slope.
Designed for intermediate traders, it helps build bias, manage entries, and avoid false setups by focusing on clean, reactive levels that the market respects.
🔧 Core Logic:
On the 1H chart, the script compares current and previous closes to detect trend direction. If the trend flips (e.g., up to down), the open of the candle that caused the flip becomes a candidate level.
Only levels that remain untouched by future candle closes are plotted — this filters out “weak” levels that price already violated (which means, a candle closes after passing through the level).
These levels become key S/R zones and often act as reaction points during pullbacks, traps, and liquidity sweeps.
The idea is to check how the price reacts to those levels. Usually there's a clean retest of the level. After that, if the price continues in that direction, it tends to reach the following level.
🔹 Included Tools:
🟣 Trend Change Levels (1H):
Fixed horizontal lines based on confirmed shifts in trend, shown only when not broken.
📉 EMAs (9 / 50 / 200):
Visibility can be set per timeframe. Use for trend context.
📍 EMA Trend Label:
Shows \"UP\", \"DOWN\", or \"RANGE\" based on EMA(9) slope.
🔵 VWAP (Intraday Reset):
Real-time volume-weighted average price that resets daily. Useful for fair value zones and reversion plays.
🟠 Daily Open Line:
Plot of the current day’s open. Used for intraday directional bias. Usually: DO NOT take longs below the Open Print, DO NOT take shorts above it.
📊 ATR Table:
Displays current ATR multiplier on the chart. It's useful to understand if the market is expanding or not.
📈 How to Use It (Strategy):
1. Start on the 1H chart to generate levels.
Only the open of candles that reversed trend are considered — and only if future candles didn’t close through them. I suggest manually adding horizontal lines to mark again the levels, so that they stick to all the timeframes.
2. Use the trend label to decide your bias — \"UP\" for long setups, \"DOWN\" for shorts. Avoid trading against the slope.
3. Switch to the 5m chart and wait for price to approach a plotted level. These are often used for manipulation, retests, or clean reversals.
4. Look for confirmation: rejection candles, break-and-retest, strong engulfing candles, or traps above/below the level. ALWAYS check the price action around the level, along with the volume.
5. Check if VWAP or an EMA is near the level. If yes, the confluence strengthens the trade idea.
6. Use the ATR value to understand if the market is expanding (candles are bigger than the ATR). You don't want to stay in a slow and ranging trade.
✅ Example Entry Flow:
1. On the 1H chart, note a trend change level printed recently.
2. Check the current trend label — if it says \"UP,\" prefer longs.
3. Wait for price to retrace toward the level.
4. On the 5m, look for a bullish engulfing candle or trap setup at the level.
5. Check if VWAP and EMA(50) are near. If yes, execute the trade.
6. Set stop just under the low of the candle prior to your entry. Ideally, a retracing candle.
To be clear: imaging to be LONG, you wait for a retracement that should touch your level. You wait for a candle that resumes the LONG trend, enter when it breaks the high of the previous candle (sill in retracement), you place your stop under the candle prior to your entry.
Notes:
No repainting — levels only show up after confirmed shifts.
Removes broken levels for chart clarity and reliability.
Helps spot high-probability pullback zones and fakeouts.
Perfect confluence tool to support price action, SMC, or EMA strategies.
Works across multiple timeframes with customizable inputs.
👤 Ideal For:
Intraday traders looking for reactive entry points and direction confirmation.
Swing traders wanting to pinpoint continuation zones or reversal pivots.
🚨 Final Note: This indicator doesn’t generate buy/sell signals. It improves your trade filtering by identifying areas the market already respected and reacting to them with price action. Combine it with your own system , test it in replay, and use screenshots to document setups.
📌 If used with discipline, this becomes a precision tool — not a signal generator.
RVOL Effort Matrix💪🏻 RVOL Effort Matrix is a tiered volume framework that translates crowd participation into structure-aware visual zones. Rather than simply flagging spikes, it measures each bar’s volume as a ratio of its historical average and assigns to that effort dynamic tiers, creating a real-time map of conviction , exhaustion , and imbalance —before price even confirms.
⚖️ At its core, the tool builds a histogram of relative volume (RVOL). When enabled, a second layer overlays directional effort by estimating buy vs sell volume using candle body logic. If the candle closes higher, green (buy) volume dominates. If it closes lower, red (sell) volume leads. These components are stacked proportionally and inset beneath a colored cap line—a small but powerful layer that maintains visibility of the true effort tier even when split bars are active. The cap matches the original zone color, preserving context at all times.
Coloration communicates rhythm, tempo, and potential turning points:
• 🔴 = structurally weak effort, i.e. failed moves, fake-outs or trend exhaustion
• 🟡 = neutral volume, as seen in consolidations or pullbacks
• 🟢 = genuine commitment, good for continuation, breakout filters, or early rotation signals
• 🟣 = explosive volume signaling either climax or institutional entry—beware!
Background shading (optional) mirrors these zones across the pane for structural scanning at a glance. Volume bars can be toggled between full-stack mode or clean column view. Every layer is modular—built for composability with tools like ZVOL or OBVX Conviction Bias.
🧐 Ideal Use-Cases:
• 🕰 HTF bias anchoring → LTF execution
• 🧭 Identifying when structure is being driven by real crowd pressure
• 🚫 Fading green/fuchsia bars that fail to break structure
• ✅ Riding green/fuchsia follow-through in directional moves
🍷 Recommended Pairings:
• ZVOL for statistically significant volume anomaly detection
• OBVX Conviction Bias ↔️ for directional confirmation of effort zones
• SUPeR TReND 2.718 for structure-congruent entry filtering
• ATR Turbulence Ribbon to distinguish expansion pressure from churn
🥁 RVOL Effort Matrix is all about seeing—how much pressure is behind a move, whether that pressure is sustainable, and whether the crowd is aligned with price. It's volume, but readable. It’s structure, but dynamic. It’s the difference between obeying noise and trading to the beat of the market.
Kernel Weighted DMI | QuantEdgeB📊 Introducing Kernel Weighted DMI (K-DMI) by QuantEdgeB
🛠️ Overview
K-DMI is a next-gen momentum indicator that combines the traditional Directional Movement Index (DMI) with advanced kernel smoothing techniques to produce a highly adaptive, noise-resistant trend signal.
Unlike standard DMI that can be overly reactive or choppy in consolidation phases, K-DMI applies kernel-weighted filtering (Linear, Exponential, or Gaussian) to stabilize directional movement readings and extract a more reliable momentum signal.
✨ Key Features
🔹 Kernel Smoothing Engine
Smooths DMI using your choice of kernel (Linear, Exponential, Gaussian) for flexible noise reduction and clarity.
🔹 Dynamic Trend Signal
Generates real-time long/short trend bias based on signal crossing upper or lower thresholds (defaults: ±1).
🔹 Visual Encoding
Includes directional gradient fills, candle coloring, and momentum-based overlays for instant signal comprehension.
🔹 Multi-Mode Plotting
Optional moving average overlays visualize structure and compression/expansion within price action.
📐 How It Works
1️⃣ Directional Movement Index (DMI)
Calculates the traditional +DI and -DI differential to derive directional bias.
2️⃣ Kernel-Based Smoothing
Applies a custom-weighted average across historical DMI values using one of three smoothing methods:
• Linear → Simple tapering weights
• Exponential → Decay curve for recent emphasis
• Gaussian → Bell-shaped weight for centered precision
3️⃣ Signal Generation
• ✅ Long → Signal > Long Threshold (default: +1)
• ❌ Short → Signal < Short Threshold (default: -1)
Additional overlays signal potential compression zones or trend resumption using gradient and line fills.
⚙️ Custom Settings
• DMI Length: Default = 7
• Kernel Type: Options → Linear, Exponential, Gaussian (Def:Linear)
• Kernel Length: Default = 25
• Long Threshold: Default = 1
• Short Threshold: Default = -1
• Color Mode: Strategy, Solar, Warm, Cool, Classic, Magic
• Show Labels: Optional entry signal labels (Long/Short)
• Enable Extra Plots: Toggle MA overlays and dynamic bands
👥 Who Is It For?
✅ Trend Traders → Identify sustained directional bias with smoother signal lines
✅ Quant Analysts → Leverage advanced smoothing models to enhance data clarity
✅ Discretionary Swing Traders → Visualize clean breakouts or fades within choppy zones
✅ MA Compression Traders → Use overlay MAs to detect expansion opportunities
📌 Conclusion
Kernel Weighted DMI is the evolution of classic momentum tracking—merging traditional DMI logic with adaptable kernel filters. It provides a refined lens for trend detection, while optional visual overlays support price structure analysis.
🔹 Key Takeaways:
1️⃣ Smoothed and stabilized DMI for reliable trend signal generation
2️⃣ Optional Gaussian/exponential weighting for adaptive responsiveness
3️⃣ Custom gradient fills, dynamic MAs, and candle coloring to support visual clarity
📌 Disclaimer: Past performance is not indicative of future results. No trading strategy can guarantee success in financial markets.
📌 Strategic Advice: Always backtest, optimize, and align parameters with your trading objectives and risk tolerance before live trading.
Volatility Momentum Breakout StrategyDescription:
Overview:
The Volatility Momentum Breakout Strategy is designed to capture significant price moves by combining a volatility breakout approach with trend and momentum filters. This strategy dynamically calculates breakout levels based on market volatility and uses these levels along with trend and momentum conditions to identify trade opportunities.
How It Works:
1. Volatility Breakout:
• Methodology:
The strategy computes the highest high and lowest low over a defined lookback period (excluding the current bar to avoid look-ahead bias). A multiple of the Average True Range (ATR) is then added to (or subtracted from) these levels to form dynamic breakout thresholds.
• Purpose:
This method helps capture significant price movements (breakouts) while ensuring that only past data is used, thereby maintaining realistic signal generation.
2. Trend Filtering:
• Methodology:
A short-term Exponential Moving Average (EMA) is applied to determine the prevailing trend.
• Purpose:
Long trades are considered only when the current price is above the EMA, indicating an uptrend, while short trades are taken only when the price is below the EMA, indicating a downtrend.
3. Momentum Confirmation:
• Methodology:
The Relative Strength Index (RSI) is used to gauge market momentum.
• Purpose:
For long entries, the RSI must be above a mid-level (e.g., above 50) to confirm upward momentum, and for short entries, it must be below a similar threshold. This helps filter out signals during overextended conditions.
Entry Conditions:
• Long Entry:
A long position is triggered when the current closing price exceeds the calculated long breakout level, the price is above the short-term EMA, and the RSI confirms momentum (e.g., above 50).
• Short Entry:
A short position is triggered when the closing price falls below the calculated short breakout level, the price is below the EMA, and the RSI confirms momentum (e.g., below 50).
Risk Management:
• Position Sizing:
Trades are sized to risk a fixed percentage of account equity (set here to 5% per trade in the code, with each trade’s stop loss defined so that risk is limited to approximately 2% of the entry price).
• Stop Loss & Take Profit:
A stop loss is placed a fixed ATR multiple away from the entry price, and a take profit target is set to achieve a 1:2 risk-reward ratio.
• Realistic Backtesting:
The strategy is backtested using an initial capital of $10,000, with a commission of 0.1% per trade and slippage of 1 tick per bar—parameters chosen to reflect conditions faced by the average trader.
Important Disclaimers:
• No Look-Ahead Bias:
All breakout levels are calculated using only past data (excluding the current bar) to ensure that the strategy does not “peek” into future data.
• Educational Purpose:
This strategy is experimental and provided solely for educational purposes. Past performance is not indicative of future results.
• User Responsibility:
Traders should thoroughly backtest and paper trade the strategy under various market conditions and adjust parameters to fit their own risk tolerance and trading style before live deployment.
Conclusion:
By integrating volatility-based breakout signals with trend and momentum filters, the Volatility Momentum Breakout Strategy offers a unique method to capture significant price moves in a disciplined manner. This publication provides a transparent explanation of the strategy’s components and realistic backtesting parameters, making it a useful tool for educational purposes and further customization by the TradingView community.
Weekly Stacked Daily Changes [LuxAlgo]The Weekly Stacked Daily Changes tool allows traders to compare daily net price changes for each day of the week, stacked by week. It provides a very convenient way to compare daily and weekly volatility at the same time.
🔶 USAGE
The tool requires no configuration and works perfectly out of the box, displaying the net price change for each day of the week as stacked boxes of the appropriate size.
Traders can adjust the width of the columns and the spacing between days and weeks, options to change the color and disable the months and new month lines are also available.
🔹 Bottom Stack Bias
This feature allows traders to compare weekly volatility in two different ways.
With this feature disabled, all weeks use zero as the bottom of the stack, so traders can see at a glance weeks with more volatility and weeks with less volatility.
Enabling this feature will cause the tool to display the stacks with the weekly net price change as the bottom, so if a stack starts below the zero line it means that week has a negative net return, and if it starts above the zero line it means that week has a positive net return.
🔶 SETTINGS
Width: Select the fixed width for each column.
Offset: Choose the fixed width between each column.
Spacing: Select the distance between each day within each column.
🔹 Style
Bottom Stack Bias: Use weekly net price change as the bottom of the stack.
Bullish Change: Color for days with positive net price change
Bearish Change: Color for days with negative net price change
Show Months: Under each week stack, display the month
Show Months Delimiter: Display a line indicating the start of a new month
ICT Master Suite [Trading IQ]Hello Traders!
We’re excited to introduce the ICT Master Suite by TradingIQ, a new tool designed to bring together several ICT concepts and strategies in one place.
The Purpose Behind the ICT Master Suite
There are a few challenges traders often face when using ICT-related indicators:
Many available indicators focus on one or two ICT methods, which can limit traders who apply a broader range of ICT related techniques on their charts.
There aren't many indicators for ICT strategy models, and we couldn't find ICT indicators that allow for testing the strategy models and setting alerts.
Many ICT related concepts exist in the public domain as indicators, not strategies! This makes it difficult to verify that the ICT concept has some utility in the market you're trading and if it's worth trading - it's difficult to know if it's working!
Some users might not have enough chart space to apply numerous ICT related indicators, which can be restrictive for those wanting to use multiple ICT techniques simultaneously.
The ICT Master Suite is designed to offer a comprehensive option for traders who want to apply a variety of ICT methods. By combining several ICT techniques and strategy models into one indicator, it helps users maximize their chart space while accessing multiple tools in a single slot.
Additionally, the ICT Master Suite was developed as a strategy . This means users can backtest various ICT strategy models - including deep backtesting. A primary goal of this indicator is to let traders decide for themselves what markets to trade ICT concepts in and give them the capability to figure out if the strategy models are worth trading!
What Makes the ICT Master Suite Different
There are many ICT-related indicators available on TradingView, each offering valuable insights. What the ICT Master Suite aims to do is bring together a wider selection of these techniques into one tool. This includes both key ICT methods and strategy models, allowing traders to test and activate strategies all within one indicator.
Features
The ICT Master Suite offers:
Multiple ICT strategy models, including the 2022 Strategy Model and Unicorn Model, which can be built, tested, and used for live trading.
Calculation and display of key price areas like Breaker Blocks, Rejection Blocks, Order Blocks, Fair Value Gaps, Equal Levels, and more.
The ability to set alerts based on these ICT strategies and key price areas.
A comprehensive, yet practical, all-inclusive ICT indicator for traders.
Customizable Timeframe - Calculate ICT concepts on off-chart timeframes
Unicorn Strategy Model
2022 Strategy Model
Liquidity Raid Strategy Model
OTE (Optimal Trade Entry) Strategy Model
Silver Bullet Strategy Model
Order blocks
Breaker blocks
Rejection blocks
FVG
Strong highs and lows
Displacements
Liquidity sweeps
Power of 3
ICT Macros
HTF previous bar high and low
Break of Structure indications
Market Structure Shift indications
Equal highs and lows
Swings highs and swing lows
Fibonacci TPs and SLs
Swing level TPs and SLs
Previous day high and low TPs and SLs
And much more! An ongoing project!
How To Use
Many traders will already be familiar with the ICT related concepts listed above, and will find using the ICT Master Suite quite intuitive!
Despite this, let's go over the features of the tool in-depth and how to use the tool!
The image above shows the ICT Master Suite with almost all techniques activated.
ICT 2022 Strategy Model
The ICT Master suite provides the ability to test, set alerts for, and live trade the ICT 2022 Strategy Model.
The image above shows an example of a long position being entered following a complete setup for the 2022 ICT model.
A liquidity sweep occurs prior to an upside breakout. During the upside breakout the model looks for the FVG that is nearest 50% of the setup range. A limit order is placed at this FVG for entry.
The target entry percentage for the range is customizable in the settings. For instance, you can select to enter at an FVG nearest 33% of the range, 20%, 66%, etc.
The profit target for the model generally uses the highest high of the range (100%) for longs and the lowest low of the range (100%) for shorts. Stop losses are generally set at 0% of the range.
The image above shows the short model in action!
Whether you decide to follow the 2022 model diligently or not, you can still set alerts when the entry condition is met.
ICT Unicorn Model
The image above shows an example of a long position being entered following a complete setup for the ICT Unicorn model.
A lower swing low followed by a higher swing high precedes the overlap of an FVG and breaker block formed during the sequence.
During the upside breakout the model looks for an FVG and breaker block that formed during the sequence and overlap each other. A limit order is placed at the nearest overlap point to current price.
The profit target for this example trade is set at the swing high and the stop loss at the swing low. However, both the profit target and stop loss for this model are configurable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
For Longs, the selectable stop losses are:
Swing Low
Bottom of FVG or breaker block
The image above shows the short version of the Unicorn Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
For Shorts, the selectable stop losses are:
Swing High
Top of FVG or breaker block
The image above shows the profit target and stop loss options in the settings for the Unicorn Model.
Optimal Trade Entry (OTE) Model
The image above shows an example of a long position being entered following a complete setup for the OTE model.
Price retraces either 0.62, 0.705, or 0.79 of an upside move and a trade is entered.
The profit target for this example trade is set at the -0.5 fib level. This is also adjustable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
The image above shows the short version of the OTE Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
Liquidity Raid Model
The image above shows an example of a long position being entered following a complete setup for the Liquidity Raid Modell.
The user must define the session in the settings (for this example it is 13:30-16:00 NY time).
During the session, the indicator will calculate the session high and session low. Following a “raid” of either the session high or session low (after the session has completed) the script will look for an entry at a recently formed breaker block.
If the session high is raided the script will look for short entries at a bearish breaker block. If the session low is raided the script will look for long entries at a bullish breaker block.
For Longs, the profit target options are:
Swing high
User inputted Lib level
For Longs, the stop loss options are:
Swing low
User inputted Lib level
Breaker block bottom
The image above shows the short version of the Liquidity Raid Model in action!
For Shorts, the profit target options are:
Swing Low
User inputted Lib level
For Shorts, the stop loss options are:
Swing High
User inputted Lib level
Breaker block top
Silver Bullet Model
The image above shows an example of a long position being entered following a complete setup for the Silver Bullet Modell.
During the session, the indicator will determine the higher timeframe bias. If the higher timeframe bias is bullish the strategy will look to enter long at an FVG that forms during the session. If the higher timeframe bias is bearish the indicator will look to enter short at an FVG that forms during the session.
For Longs, the profit target options are:
Nearest Swing High Above Entry
Previous Day High
For Longs, the stop loss options are:
Nearest Swing Low
Previous Day Low
The image above shows the short version of the Silver Bullet Model in action!
For Shorts, the profit target options are:
Nearest Swing Low Below Entry
Previous Day Low
For Shorts, the stop loss options are:
Nearest Swing High
Previous Day High
Order blocks
The image above shows indicator identifying and labeling order blocks.
The color of the order blocks, and how many should be shown, are configurable in the settings!
Breaker Blocks
The image above shows indicator identifying and labeling order blocks.
The color of the breaker blocks, and how many should be shown, are configurable in the settings!
Rejection Blocks
The image above shows indicator identifying and labeling rejection blocks.
The color of the rejection blocks, and how many should be shown, are configurable in the settings!
Fair Value Gaps
The image above shows indicator identifying and labeling fair value gaps.
The color of the fair value gaps, and how many should be shown, are configurable in the settings!
Additionally, you can select to only show fair values gaps that form after a liquidity sweep. Doing so reduces "noisy" FVGs and focuses on identifying FVGs that form after a significant trading event.
The image above shows the feature enabled. A fair value gap that occurred after a liquidity sweep is shown.
Market Structure
The image above shows the ICT Master Suite calculating market structure shots and break of structures!
The color of MSS and BoS, and whether they should be displayed, are configurable in the settings.
Displacements
The images above show indicator identifying and labeling displacements.
The color of the displacements, and how many should be shown, are configurable in the settings!
Equal Price Points
The image above shows the indicator identifying and labeling equal highs and equal lows.
The color of the equal levels, and how many should be shown, are configurable in the settings!
Previous Custom TF High/Low
The image above shows the ICT Master Suite calculating the high and low price for a user-defined timeframe. In this case the previous day’s high and low are calculated.
To illustrate the customizable timeframe function, the image above shows the indicator calculating the previous 4 hour high and low.
Liquidity Sweeps
The image above shows the indicator identifying a liquidity sweep prior to an upside breakout.
The image above shows the indicator identifying a liquidity sweep prior to a downside breakout.
The color and aggressiveness of liquidity sweep identification are adjustable in the settings!
Power Of Three
The image above shows the indicator calculating Po3 for two user-defined higher timeframes!
Macros
The image above shows the ICT Master Suite identifying the ICT macros!
ICT Macros are only displayable on the 5 minute timeframe or less.
Strategy Performance Table
In addition to a full-fledged TradingView backtest for any of the ICT strategy models the indicator offers, a quick-and-easy strategy table exists for the indicator!
The image above shows the strategy performance table in action.
Keep in mind that, because the ICT Master Suite is a strategy script, you can perform fully automatic backtests, deep backtests, easily add commission and portfolio balance and look at pertinent metrics for the ICT strategies you are testing!
Lite Mode
Traders who want the cleanest chart possible can toggle on “Lite Mode”!
In Lite Mode, any neon or “glow” like effects are removed and key levels are marked as strict border boxes. You can also select to remove box borders if that’s what you prefer!
Settings Used For Backtest
For the displayed backtest, a starting balance of $1000 USD was used. A commission of 0.02%, slippage of 2 ticks, a verify price for limit orders of 2 ticks, and 5% of capital investment per order.
A commission of 0.02% was used due to the backtested asset being a perpetual future contract for a crypto currency. The highest commission (lowest-tier VIP) for maker orders on many exchanges is 0.02%. All entered positions take place as maker orders and so do profit target exits. Stop orders exist as stop-market orders.
A slippage of 2 ticks was used to simulate more realistic stop-market orders. A verify limit order settings of 2 ticks was also used. Even though BTCUSDT.P on Binance is liquid, we just want the backtest to be on the safe side. Additionally, the backtest traded 100+ trades over the period. The higher the sample size the better; however, this example test can serve as a starting point for traders interested in ICT concepts.
Community Assistance And Feedback
Given the complexity and idiosyncratic applications of ICT concepts amongst its proponents, the ICT Master Suite’s built-in strategies and level identification methods might not align with everyone's interpretation.
That said, the best we can do is precisely define ICT strategy rules and concepts to a repeatable process, test, and apply them! Whether or not an ICT strategy is trading precisely how you would trade it, seeing the model in action, taking trades, and with performance statistics is immensely helpful in assessing predictive utility.
If you think we missed something, you notice a bug, have an idea for strategy model improvement, please let us know! The ICT Master Suite is an ongoing project that will, ideally, be shaped by the community.
A big thank you to the @PineCoders for their Time Library!
Thank you!
Relative Strength Index Custom [BRTLab]RSI Custom — Strategy-Oriented RSI with Multi-Timeframe Precision
The Relative Strength Index Custom is designed with a focus on developing robust trading strategies. This powerful indicator leverages the logic of calculating RSI on higher timeframes (HTFs) while allowing traders to execute trades on lower timeframes (LTFs). Its unique ability to extract accurate RSI data from higher timeframes without waiting for those candles to close provides a real-time advantage, eliminating the "look-ahead" bias that often
distorts backtest results.
Key Features
Multi-Timeframe RSI for Strategy Development
This indicator stands out by allowing you to calculate RSI on higher timeframes, even while operating on lower timeframe charts. This means you can, for example, calculate RSI on the 1-hour or daily chart and execute trades on a 1-minute chart without needing to wait for the higher timeframe candle to close. This feature is crucial for strategy-building as it eliminates backtesting issues where data from the future is inadvertently used, providing more reliable backtest results.
Example: On a 15-minute chart, you can use the 1-hour RSI to open positions based on higher timeframe momentum, but you get this signal in real-time, improving timing and accuracy.
Accurate Data Extraction from Higher Timeframes
The indicator's custom logic ensures that accurate RSI data is retrieved from higher timeframes, providing an edge by delivering timely information for lower timeframe decisions. This prevents delayed signals often encountered when waiting for higher timeframe candles to close, which is crucial for high-frequency and intraday traders looking for precise entries based on multi-timeframe data.
Customizable RSI Settings for Strategy Tuning
The script offers full customization of the RSI, including length and source price (close, open, high, or low), allowing traders to tailor the RSI to fit specific trading strategies. These settings are housed in the "RSI Settings" section, enabling precise adjustments that align with your overall strategy.
No Future-Looking in Backtests
Traditional backtests often suffer from "future-looking" bias, where calculations unintentionally use data from candles that haven’t yet closed. This indicator is specifically designed to prevent such issues by calculating RSI values in real-time. This is particularly important when creating and testing strategies, as it ensures that the conditions under which trades would have been made are accurately represented in historical tests.
RSI-Based Moving Average for Additional Filtering
The built-in moving average (MA) based on RSI values helps filter out noise, making it easier to identify genuine trend shifts. This is particularly useful in strategies where moving average crossovers act as additional confirmation for trade entries and exits.
Overbought and Oversold Zone Detection
Visual gradient fills on the RSI chart help traders identify overbought and oversold zones (above 70 and below 30, respectively). These zones are crucial for timing reversal trades or confirming momentum-based strategies.
How This Indicator Enhances Your Strategy
Increased Accuracy for Intraday Strategies
For traders who operate on lower timeframes, using higher timeframe RSI data gives a broader perspective of market momentum while still maintaining precision for short-term trade entries. The real-time data extraction means you don't need to wait for HTF candles to close, which can dramatically improve your entry timing.
Strategic Edge in Backtesting
One of the greatest challenges in backtesting strategies is avoiding future-looking bias. This indicator is built to overcome this by using real-time multi-timeframe data, ensuring the accuracy and reliability of historical strategy testing, which provides confidence in your strategies when applied to live markets.
Advanced Filtering for Trend Strategies
By combining the RSI values with a customizable moving average (MA) and visualizing key momentum zones with overbought/oversold fills, the indicator allows for more refined trade filters. This ensures that signals generated by your strategy are based on solid momentum data and not short-term price fluctuations.
Uptrick: MultiMA_VolumePurpose:
The "Uptrick: MultiMA_Volume" indicator, identified by its abbreviated title 'MMAV,' is meticulously designed to provide traders with a comprehensive view of market dynamics by incorporating multiple moving averages (MAs) and volume analysis. With adjustable inputs and customizable visibility options, traders can tailor the indicator to their specific trading preferences and strategies, thereby enhancing its utility and usability.
Explanation:
Input Variables and Customization:
Traders have the flexibility to adjust various parameters, including the lengths of different moving averages (SMA, EMA, WMA, HMA, and KAMA), as well as the option to show or hide each moving average and volume-related components.
Customization options empower traders to fine-tune the indicator according to their trading styles and market preferences, enhancing its adaptability across different market conditions.
Moving Averages and Trend Identification:
The script computes multiple types of moving averages, including Simple (SMA), Exponential (EMA), Weighted (WMA), Hull (HMA), and Kaufman's Adaptive (KAMA), allowing traders to assess trend directionality and strength from various perspectives.
Traders can determine potential price movements by observing the relationship between the current price and the plotted moving averages. For example, prices above the moving averages may suggest bullish sentiment, while prices below could indicate bearish sentiment.
Volume Analysis:
Volume analysis is integrated into the indicator, enabling traders to evaluate volume dynamics alongside trend analysis.
Traders can identify significant volume spikes using a customizable threshold, with bars exceeding the threshold highlighted to signify potential shifts in market activity and liquidity.
Determining Potential Price Movements:
By analyzing the relationship between price and the plotted moving averages, traders can infer potential price movements.
Bullish biases may be suggested when prices are above the moving averages, accompanied by rising volume, while bearish biases may be indicated when prices are below the moving averages, with declining volume reinforcing the potential for downward price movements.
Utility and Potential Usage:
The "Uptrick: MultiMA_Volume" indicator serves as a comprehensive tool for traders, offering insights into trend directionality, strength, and volume dynamics.
Traders can utilize the indicator to identify potential trading opportunities, confirm trend signals, and manage risk effectively.
By consolidating multiple indicators into a single chart, the indicator streamlines the analytical process, providing traders with a concise overview of market conditions and facilitating informed decision-making.
Through its customizable features and comprehensive analysis, the "Uptrick: MultiMA_Volume" indicator equips traders with actionable insights into market trends and volume dynamics. By integrating trend analysis and volume assessment into their trading strategies, traders can navigate the markets with confidence and precision, thereby enhancing their trading outcomes.
MACD Based Price Forecasting [LuxAlgo]The MACD Based Price Forecasting tool is an innovative price forecasting method based on signals generated by the MACD indicator.
The forecast includes an area which can help traders determine the area where price can develop after a MACD signal.
🔶 USAGE
The forecast returned by the tool allows users to obtain a general picture of how price tends to progress after a specific MACD signal. The forecast is constructed based on percentiles of previous price progressions done after a specific MACD signal is generated.
Users can change which condition is used to generate MACD signals from the "Trend Determination" dropdown menu, with "MACD" determining trends based on whether the MACD is positive (uptrend) or negative (downtrend) and "MACD-Signal" determining trends based on the position of the MACD relative to its signal line, with an MACD above the signal line indicating an uptrend, else a downtrend.
Users can introduce bias to the forecast by changing the "Average Percentage" setting, with values above 50% introducing bullish bias, and below bearish bias.
It can be possible for the forecast to highlight potential reversals depending on the selected forecasting horizon as long as reversals can be observed on trends detected by the MACD.
🔹 Forecasting Area
The forecasting area can help visualize the area that will likely contain price after a specific signal. The area width is based on the "Top/Bottom Percentiles" settings, with a higher "Top Percentile" value returning a higher top bound and a lower "Bottom Percentile" value returning a lower bottom bound.
These areas can also serve as potential support/resistance areas.
🔶 SETTINGS
Fast Length: Fast length of the moving average used to compute the MACD
Slow Length: Slow length of the moving average used to compute the MACD
Signal Length: Length of the MACD moving average.
Trend Determination: Method used to determine a trend direction from the MACD.
🔹 Forecast
Maximum Memory: Determines the maximum amount of prices recorded at each steps succeeding a signal. Lower values will return forecasts with a higher degree of variability.
Forecasting Length: Forecasting horizon in bars, this value only serves as a limit of the forecasting horizon and might not be reached depending on user selected MACD settings.
Top Percentile: Percentile value used to determine the upper bound of the forecasting area.
Average Percentile: Percentile value used to determine the forecast.
Lower Percentile: Percentile value used to determine the lower bound of the forecasting area.
Flags and Pennants [Trendoscope®]🎲 An extension to Chart Patterns based on Trend Line Pairs - Flags and Pennants
After exploring Algorithmic Identification and Classification of Chart Patterns and developing Auto Chart Patterns Indicator , we now delve into extensions of these patterns, focusing on Flag and Pennant Chart Patterns. These patterns evolve from basic trend line pair-based structures, often influenced by preceding market impulses.
🎲 Identification rules for the Extension Patterns
🎯 Identify the existence of Base Chart Patterns
Before identifying the flag and pennant patterns, we first need to identify the existence of following base trend line pair based converging or parallel patterns.
Ascending Channel
Descending Channel
Rising Wedge (Contracting)
Falling Wedge (Contracting)
Converging Triangle
Descending Triangle (Contracting)
Ascending Triangle (Contracting)
🎯 Identifying Extension Patterns.
The key to pinpointing these patterns lies in spotting a strong impulsive wave – akin to a flagpole – preceding a base pattern. This setup suggests potential for an extension pattern:
A Bullish Flag emerges from a positive impulse followed by a descending channel or a falling wedge
A Bearish Flag appears after a negative impulse leading to an ascending channel or a rising wedge.
A Bullish Pennant is indicated by a positive thrust preceding a converging triangle or ascending triangle.
A Bearish Pennant follows a negative impulse and a converging or descending triangle.
🎲 Pattern Classifications and Characteristics
🎯 Bullish Flag Pattern
Characteristics of Bullish Flag Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a short descending channel or a falling wedge
Here is an example of Bullish Flag Pattern
🎯 Bearish Flag Pattern
Characteristics of Bearish Flag Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a short ascending channel or a rising wedge
Here is an example of Bearish Flag Pattern
🎯 Bullish Pennant Pattern
Characteristics of Bullish Pennant Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a converging triangle or ascending triangle pattern.
Here is an example of Bullish Pennant Pattern
🎯 Bearish Pennant Pattern
Characteristics of Bearish Pennant Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a converging triangle or a descending converging triangle pattern.
Here is an example of Bearish Pennant Pattern
🎲 Trading Extension Patterns
In a strong market trend, it's common to see temporary periods of consolidation, forming patterns that either converge or range, often counter to the ongoing trend direction. Such pauses may lay the groundwork for the continuation of the trend post-breakout. The assumption that the trend will resume shapes the underlying bias of Flag and Pennant patterns
It's important, however, not to base decisions solely on past trends. Conducting personal back testing is crucial to ascertain the most effective entry and exit strategies for these patterns. Remember, the behavior of these patterns can vary significantly with the volatility of the asset and the specific timeframe being analyzed.
Approach the interpretation of these patterns with prudence, considering that market dynamics are subject to a wide array of influencing factors that might deviate from expected outcomes. For investors and traders, it's essential to engage in thorough back testing, establishing entry points, stop-loss orders, and target goals that align with your individual trading style and risk appetite. This step is key to assessing the viability of these patterns in line with your personal trading strategies and goals.
It's fairly common to witness a breakout followed by a swift price reversal after these patterns have formed. Additionally, there's room for innovation in trading by going against the bias if the breakout occurs in the opposite direction, specially when the trend before the formation of the pattern is in against the pattern bias.
🎲 Cheat Sheet
🎲 Indicator Settings
Custom Source : Enables users to set custom OHLC - this means, the indicator can also be applied on oscillators and other indicators having OHLC values.
Zigzag Settings : Allows users to enable different zigzag base and set length and depth for each zigzag.
Scanning Settings : Pattern scanning settings set some parameters that define the pattern recognition process.
Display Settings : Determine the display of indicators including colors, lines, labels etc.
Backtest Settings : Allows users to set a predetermined back test bars so that the indicator will not time out while trying to run for all available bars.
Backtester UtilityLook ahead bias is the most evil bias responsible for overestimation of the performance of the trading system.
As the Bar replay feature is only available to paid users which is a great tool for manual testing of the trading system. Leaving other users prone to the evil of Look ahead bias.
So that I have developed this indicator which will help users to manually backtest the strategies.
This indicator hides the price action after specified date and time.
Here are the steps for using the indicator.
1) Hide your chart manually.
2) Plot the indicator.
3) Change the input of time and date after which you want to hide price action.
4) Change the script according to your trading strategy.
5) Enjoy the free of cost manual backtesting.
Good trading buddies !
Note : This post is only for educational purpose , it does not contain any financial advise.
TechnicalRating█ OVERVIEW
This library is a Pine Script™ programmer’s tool for incorporating TradingView's well-known technical ratings within their scripts. The ratings produced by this library are the same as those from the speedometers in the technical analysis summary and the "Rating" indicator in the Screener , which use the aggregate biases of 26 technical indicators to calculate their results.
█ CONCEPTS
Ensemble analysis
Ensemble analysis uses multiple weaker models to produce a potentially stronger one. A common form of ensemble analysis in technical analysis is the usage of aggregate indicators together in hopes of gaining further market insight and reinforcing trading decisions.
Technical ratings
Technical ratings provide a simplified way to analyze financial markets by combining signals from an ensemble of indicators into a singular value, allowing traders to assess market sentiment more quickly and conveniently than analyzing each constituent separately. By consolidating the signals from multiple indicators into a single rating, traders can more intuitively and easily interpret the "technical health" of the market.
Calculating the rating value
Using a variety of built-in TA functions and functions from our ta library, this script calculates technical ratings for moving averages, oscillators, and their overall result within the `calcRatingAll()` function.
The function uses the script's `calcRatingMA()` function to calculate the moving average technical rating from an ensemble of 15 moving averages and filters:
• Six Simple Moving Averages and six Exponential Moving Averages with periods of 10, 20, 30, 50, 100, and 200
• A Hull Moving Average with a period of 9
• A Volume-Weighted Moving Average with a period of 20
• An Ichimoku Cloud with a conversion line length of 9, base length of 26, and leading span B length of 52
The function uses the script's `calcRating()` function to calculate the oscillator technical rating from an ensemble of 11 oscillators:
• RSI with a period of 14
• Stochastic with a %K period of 14, a smoothing period of 3, and a %D period of 3
• CCI with a period of 20
• ADX with a DI length of 14 and an ADX smoothing period of 14
• Awesome Oscillator
• Momentum with a period of 10
• MACD with fast, slow, and signal periods of 12, 26, and 9
• Stochastic RSI with an RSI period of 14, a %K period of 14, a smoothing period of 3, and a %D period of 3
• Williams %R with a period of 14
• Bull Bear Power with a period of 50
• Ultimate Oscillator with fast, middle, and slow lengths of 7, 14, and 28
Each indicator is assigned a value of +1, 0, or -1, representing a bullish, neutral, or bearish rating. The moving average rating is the mean of all ratings that use the `calcRatingMA()` function, and the oscillator rating is the mean of all ratings that use the `calcRating()` function. The overall rating is the mean of the moving average and oscillator ratings, which ranges between +1 and -1. This overall rating, along with the separate MA and oscillator ratings, can be used to gain insight into the technical strength of the market. For a more detailed breakdown of the signals and conditions used to calculate the indicators' ratings, consult our Help Center explanation.
Determining rating status
The `ratingStatus()` function produces a string representing the status of a series of ratings. The `strongBound` and `weakBound` parameters, with respective default values of 0.5 and 0.1, define the bounds for "strong" and "weak" ratings.
The rating status is determined as follows:
Rating Value Rating Status
< -strongBound Strong Sell
< -weakBound Sell
-weakBound to weakBound Neutral
> weakBound Buy
> strongBound Strong Buy
By customizing the `strongBound` and `weakBound` values, traders can tailor the `ratingStatus()` function to fit their trading style or strategy, leading to a more personalized approach to evaluating ratings.
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcRatingAll()
Calculates 3 ratings (ratings total, MA ratings, indicator ratings) using the aggregate biases of 26 different technical indicators.
Returns: A 3-element tuple: ( [(float) ratingTotal, (float) ratingOther, (float) ratingMA ].
countRising(plot)
Calculates the number of times the values in the given series increase in value up to a maximum count of 5.
Parameters:
plot : (series float) The series of values to check for rising values.
Returns: (int) The number of times the values in the series increased in value.
ratingStatus(ratingValue, strongBound, weakBound)
Determines the rating status of a given series based on its values and defined bounds.
Parameters:
ratingValue : (series float) The series of values to determine the rating status for.
strongBound : (series float) The upper bound for a "strong" rating.
weakBound : (series float) The upper bound for a "weak" rating.
Returns: (string) The rating status of the given series ("Strong Buy", "Buy", "Neutral", "Sell", or "Strong Sell").
EMAFlowLibrary "EMAFlow"
Functions that manipulate a set of 5 MAs created within user-supplied maximum and minimum lengths. The MAs are spaced out (within the range) in a way that approximates how Fibonnaci numbers are spaced.
Using MA flow, as opposed to simple crosses of the minimum and maximum lengths, gives more detail, and can result in faster changes and more resistance to chop, depending how you use it.
f_emaFlowBias()
@function f_emaFlowBias: Gives a bullish or bearish bias reading based on the EMA flow from the user-supplied range.
@param int _min: The minimum length of the EMA set.
@param int _max: The maximum length of the EMA set.
@param: string _source: The source for the EMA set. Must be in standard format (open, close, ohlc4, etc.)
@returns: An integer, representing the bias: 1 is bearish, 2 is slightly bearish, 3 is neutral, 4 is slightly bullish, 5 is bullish.
statisticsLibrary "statistics"
General statistics library.
erf(x) The "error function" encountered in integrating the normal
distribution (which is a normalized form of the Gaussian function).
Parameters:
x : The input series.
Returns: The Error Function evaluated for each element of x.
erfc(x)
Parameters:
x : The input series
Returns: The Complementary Error Function evaluated for each alement of x.
sumOfReciprocals(src, len) Calculates the sum of the reciprocals of the series.
For each element 'elem' in the series:
sum += 1/elem
Should the element be 0, the reciprocal value of 0 is used instead
of NA.
Parameters:
src : The input series.
len : The length for the sum.
Returns: The sum of the resciprocals of 'src' for 'len' bars back.
mean(src, len) The mean of the series.
(wrapper around ta.sma).
Parameters:
src : The input series.
len : The length for the mean.
Returns: The mean of 'src' for 'len' bars back.
average(src, len) The mean of the series.
(wrapper around ta.sma).
Parameters:
src : The input series.
len : The length for the average.
Returns: The average of 'src' for 'len' bars back.
geometricMean(src, len) The Geometric Mean of the series.
The geometric mean is most important when using data representing
percentages, ratios, or rates of change. It cannot be used for
negative numbers
Since the pure mathematical implementation generates a very large
intermediate result, we performed the calculation in log space.
Parameters:
src : The input series.
len : The length for the geometricMean.
Returns: The geometric mean of 'src' for 'len' bars back.
harmonicMean(src, len) The Harmonic Mean of the series.
The harmonic mean is most applicable to time changes and, along
with the geometric mean, has been used in economics for price
analysis. It is more difficult to calculate; therefore, it is less
popular than eiter of the other averages.
0 values are ignored in the calculation.
Parameters:
src : The input series.
len : The length for the harmonicMean.
Returns: The harmonic mean of 'src' for 'len' bars back.
median(src, len) The median of the series.
(a wrapper around ta.median)
Parameters:
src : The input series.
len : The length for the median.
Returns: The median of 'src' for 'len' bars back.
variance(src, len, biased) The variance of the series.
Parameters:
src : The input series.
len : The length for the variance.
biased : Wether to use the biased calculation (for a population), or the
unbiased calculation (for a sample set). .
Returns: The variance of 'src' for 'len' bars back.
stdev(src, len, biased) The standard deviation of the series.
Parameters:
src : The input series.
len : The length for the stdev.
biased : Wether to use the biased calculation (for a population), or the
unbiased calculation (for a sample set). .
Returns: The standard deviation of 'src' for 'len' bars back.
skewness(src, len) The skew of the series.
Skewness measures the amount of distortion from a symmetric
distribution, making the curve appear to be short on the left
(lower prices) and extended to the right (higher prices). The
extended side, either left or right is called the tail, and a
longer tail to the right is called positive skewness. Negative
skewness has the tail extending towards the left.
Parameters:
src : The input series.
len : The length for the skewness.
Returns: The skewness of 'src' for 'len' bars back.
kurtosis(src, len) The kurtosis of the series.
Kurtosis describes the peakedness or flatness of a distribution.
This can be used as an unbiased assessment of whether prices are
trending or moving sideways. Trending prices will ocver a wider
range and thus a flatter distribution (kurtosis < 3; negative
kurtosis). If prices are range-bound, there will be a clustering
around the mean and we have positive kurtosis (kurtosis > 3)
Parameters:
src : The input series.
len : The length for the kurtosis.
Returns: The kurtosis of 'src' for 'len' bars back.
excessKurtosis(src, len) The normalized kurtosis of the series.
kurtosis > 0 --> positive kurtosis --> trending
kurtosis < 0 --> negative krutosis --> range-bound
Parameters:
src : The input series.
len : The length for the excessKurtosis.
Returns: The excessKurtosis of 'src' for 'len' bars back.
normDist(src, len, value) Calculates the probability mass for the value according to the
src and length. It calculates the probability for value to be
present in the normal distribution calculated for src and length.
Parameters:
src : The input series.
len : The length for the normDist.
value : The series of values to calculate the normal distance for
Returns: The normal distance of 'value' to 'src' for 'len' bars back.
normDistCumulative(src, len, value) Calculates the cumulative probability mass for the value according
to the src and length. It calculates the cumulative probability for
value to be present in the normal distribution calculated for src
and length.
Parameters:
src : The input series.
len : The length for the normDistCumulative.
value : The series of values to calculate the cumulative normal distance
for
Returns: The cumulative normal distance of 'value' to 'src' for 'len' bars
back.
zScore(src, len, value) Returns then z-score of objective to the series src.
It returns the number of stdev's the objective is away from the
mean(src, len)
Parameters:
src : The input series.
len : The length for the zScore.
value : The series of values to calculate the cumulative normal distance
for
Returns: The z-score of objectiv with respect to src and len.
er(src, len) Calculates the efficiency ratio of the series.
It measures the noise of the series. The lower the number, the
higher the noise.
Parameters:
src : The input series.
len : The length for the efficiency ratio.
Returns: The efficiency ratio of 'src' for 'len' bars back.
efficiencyRatio(src, len) Calculates the efficiency ratio of the series.
It measures the noise of the series. The lower the number, the
higher the noise.
Parameters:
src : The input series.
len : The length for the efficiency ratio.
Returns: The efficiency ratio of 'src' for 'len' bars back.
fractalEfficiency(src, len) Calculates the efficiency ratio of the series.
It measures the noise of the series. The lower the number, the
higher the noise.
Parameters:
src : The input series.
len : The length for the efficiency ratio.
Returns: The efficiency ratio of 'src' for 'len' bars back.
mse(src, len) Calculates the Mean Squared Error of the series.
Parameters:
src : The input series.
len : The length for the mean squared error.
Returns: The mean squared error of 'src' for 'len' bars back.
meanSquaredError(src, len) Calculates the Mean Squared Error of the series.
Parameters:
src : The input series.
len : The length for the mean squared error.
Returns: The mean squared error of 'src' for 'len' bars back.
rmse(src, len) Calculates the Root Mean Squared Error of the series.
Parameters:
src : The input series.
len : The length for the root mean squared error.
Returns: The root mean squared error of 'src' for 'len' bars back.
rootMeanSquaredError(src, len) Calculates the Root Mean Squared Error of the series.
Parameters:
src : The input series.
len : The length for the root mean squared error.
Returns: The root mean squared error of 'src' for 'len' bars back.
mae(src, len) Calculates the Mean Absolute Error of the series.
Parameters:
src : The input series.
len : The length for the mean absolute error.
Returns: The mean absolute error of 'src' for 'len' bars back.
meanAbsoluteError(src, len) Calculates the Mean Absolute Error of the series.
Parameters:
src : The input series.
len : The length for the mean absolute error.
Returns: The mean absolute error of 'src' for 'len' bars back.
Bollinger Band Width PercentileIntroducing the Bollinger Band Width Percentile
Definitions :
Bollinger Band Width Percentile is derived from the Bollinger Band Width indicator.
It shows the percentage of bars over a specified lookback period that the Bollinger Band Width was less than the current Bollinger Band Width.
Bollinger Band Width is derived from the Bollinger Bands® indicator.
It quantitatively measures the width between the Upper and Lower Bands of the Bollinger Bands.
Bollinger Bands® is a volatility-based indicator.
It consists of three lines which are plotted in relation to a security's price.
The Middle Line is typically a Simple Moving Average.
The Upper and Lower Bands are typically 2 standard deviations above, and below the SMA (Middle Line).
Volatility is a statistical measure of the dispersion of returns for a given security or market index, measured by the standard deviation of logarithmic returns.
The Broad Concept :
Quoting Tradingview specifically for commonly noted limitations of the BBW indicator which I have based this indicator on....
“ Bollinger Bands Width (BBW) outputs a Percentage Difference between the Upper Band and the Lower Band.
This value is used to define the narrowness of the bands.
What needs to be understood however is that a trader cannot simply look at the BBW value and determine if the Band is truly narrow or not.
The significance of an instruments relative narrowness changes depending on the instrument or security in question.
What is considered narrow for one security may not be for another.
What is considered narrow for one security may even change within the scope of the same security depending on the timeframe.
In order to accurately gauge the significance of a narrowing of the bands, a technical analyst will need to research past BBW fluctuations and price performance to increase trading accuracy. ”
Here I present the Bollinger Band Width Percentile as a refinement of the BBW to somewhat overcome the limitations cited above.
Much of the work researching past BBW fluctuations, and making relative comparisons is done naturally by calculating the Bollinger Band Width Percentile.
This calculation also means that it can be read in a similar fashion across assets, greatly simplifying the interpretation of it.
Plotted Components of the Bollinger Band Width Percentile indicator :
Scale High
Mid Line
Scale Low
BBWP plot
Moving Average 1
Moving Average 2
Extreme High Alert
Extreme Low Alert
Bollinger Band Width Percentile Properties:
BBWP Length
The time period to be used in calculating the Moving average which creates the Basis for the BBW component of the BBWP.
Basis Type
The type of moving average to be used as the Basis for the BBW component of the BBWP.
BBWP Lookback
The lookback period to be used in calculating the BBWP itself.
BBWP Plot settings
The BBWP plot settings give a choice between a user defined solid color, and a choice of "Blue Green Red", or "Blue Red" spectrum palettes.
Moving Averages
Has 2 Optional User definable and adjustable moving averages of the BBWP.
Visual Alerts
Optional User adjustable High and low Signal columns.
How to read the BBWP :
A BBWP read of 95 % ... means that the current BBW level is greater than 95% of the lookback period.
A BBWP read of 5 % .... means that the current BBW level is lower than 95% of the lookback period.
Proposed interpretations :
When the BBWP gets above 90 % and particularly when it hits 100% ... this can be a signal that volatility is reaching a maximum and that a macro High or Low is about to be set.
When the BBWP gets below 10 % and particularly when it hits 0% ...... this can be a signal that volatility is reaching a minimum and that there could be a violent range breakout into a trending move.
When the BBWP hits a low level < 5 % and then gets above its moving average ...... this can be an early signal that a consolidation phase is ending and a trending move is beginning.
When the BBWP hits a high level > 95 % and then falls below its moving average ... this can be an early signal that a trending move is ending and a consolidation phase is beginning.
Essential knowledge :
The BBWP was designed with the daily timeframe in mind, but technical analysists may find use for it on other time frames also.
High and Low BBWP readings do not entail any direction bias.
Deeper Concepts :
In finance, “mean reversion” is the assumption that a financial instrument's price will tend to move towards the average price over time.
If we apply that same logic to volatility as represented here by the Bollinger band width percentile, the assumption is that the Bollinger band width percentile will tend to contract from extreme highs, and expand from extreme lows over time corresponding to repeated phases of contraction and expansion of volatility.
It is clear that for most assets there are periods of directional trending behavior followed by periods of “consolidation” ( trading sideways in a range ).
This often ends with a tightening range under reducing volume and volatility ( popularly known as “the squeeze” ).
The squeeze typically ends with a “breakout” from the range characterized by a rapid increase in volume, and volatility when price action again trends directionally, and the cycle repeats.
Typical Use Cases :
The Bollinger Band Width Percentile may be especially useful for Options traders, as it can provide a bias for when Options are relatively expensive, or inexpensive from a Volatility (Vega) perspective.
When the Bollinger Band Width Percentile is relatively high ( 85 percentile or above ) it may be more advantageous to be a net seller of Vega.
When the Bollinger Band Width Percentile is relatively low ( 15 percentile or below ) it may be advantageous to be net long Vega.
Here we examine a number of actionable signals on BTCUSD daily timeframe using the BBWP and a momentum oscillator ( using the TSI here but can equally be used with Bollinger bands, moving averages, or the traders preferred momentum oscillator ).
In this first case we will examine how a spot trader and an options trader could each use a low BBWP read to alert them to a good potential trade setup.
note: using a period of 30 for both the Bollinger bands and the BBWP period ( approximately a month ) and a BBWP lookback of 350 ( approximately a year )
As we see the Bollinger Bands have gradually contracted while price action trended down and the BBWP also fell consistently while below its moving average ( denoting falling volatility ) down to an extremely low level <5% until it broke above its moving average along with a break of range to the upside ( signaling the end of the consolidation at a low level and the beginning of a new trending move to the upside with expanding volatility).
In this next case we will continue to follow the price action presuming that the traders have taken or locked in profit at reasonable take profit levels from the previous trade setup.
Here we see the contraction of the Bollinger bands, and the BBWP alongside price action breaking below the BB Basis giving a warning that the trending move to the upside is likely over.
We then see the BBWP rising and getting above its moving average while price action fails to get above the BB Basis, likewise the TSI fails to get above its signal line and actually crosses below its zeroline.
The trader would normally take this as a signal that the next trending move could be to the downside.
The next trending move turns out to be a dramatic downside move which causes the BBWP to hit 100% signaling that volatility is likely to hit a maximum giving good opportunities for profitable trades to the skilled trader as outlined.
Limitations :
Here we will look at 2 cases where blindly taking BBWP signals could cause the trader to take a failed trade.
In this first example we will look at blindly taking a low volatility options trade
Low Volatility and corresponding low BBWP levels do not automatically mean there has to be expansion immediately, these periods of extreme low volatility can go on for quite some time.
In this second example we will look at blindly taking a high volatility spot short trade
High volatility and corresponding high BBWP levels do not automatically mean there has to be a macro high and contraction of volatility immediately, these periods of extreme high volatility can also go on for quite some time, hence the famous saying "The trend is your friend until the end of the trend" and lesser well known, but equally valid saying "never try to short the top of a parabolic blow off top"
Markets are variable and past performance is no guarantee of future results, this is not financial advice, I am not a financial advisor.
Final thoughts
The BBWP is an improvement over the BBW in my opinion, and is a novel, and useful addition to a Technical Analysts toolkit.
It is not a standalone indicator and is meant to be used in conjunction with other tools for direction bias, and Good Risk Management to base sound trades off.
John Bollinger has suggested using Bolliger bands, and its related indicators with two or three other non-correlated indicators that provide more direct market signals.
He believes it is crucial to use indicators based on different types of data.
Some of his favored technical techniques are moving average divergence/convergence (MACD), on-balance volume and relative strength index (RSI).
Thanks
Massive respect to John Bollinger, long-time technician of the markets, and legendary creator of both the Bollinger Bands® in the 1980´s, and the Bollinger band Width indicator in 2010 which this indicator is based on.
His work continues to inspire, decades after he brought the original Bollinger Bands to the market.
Much respect also to Eric Crown who gave me the fundamental knowledge of Technical Analysis, and Options trading.
DataCorrelationLibrary "DataCorrelation"
Implementation of functions related to data correlation calculations. Formulas have been transformed in such a way that we avoid running loops and instead make use of time series to gradually build the data we need to perform calculation. This allows the calculations to run on unbound series, and/or higher number of samples
🎲 Simplifying Covariance
Original Formula
//For Sample
Covₓᵧ = ∑ ((xᵢ-x̄)(yᵢ-ȳ)) / (n-1)
//For Population
Covₓᵧ = ∑ ((xᵢ-x̄)(yᵢ-ȳ)) / n
Now, if we look at numerator, this can be simplified as follows
∑ ((xᵢ-x̄)(yᵢ-ȳ))
=> (x₁-x̄)(y₁-ȳ) + (x₂-x̄)(y₂-ȳ) + (x₃-x̄)(y₃-ȳ) ... + (xₙ-x̄)(yₙ-ȳ)
=> (x₁y₁ + x̄ȳ - x₁ȳ - y₁x̄) + (x₂y₂ + x̄ȳ - x₂ȳ - y₂x̄) + (x₃y₃ + x̄ȳ - x₃ȳ - y₃x̄) ... + (xₙyₙ + x̄ȳ - xₙȳ - yₙx̄)
=> (x₁y₁ + x₂y₂ + x₃y₃ ... + xₙyₙ) + (x̄ȳ + x̄ȳ + x̄ȳ ... + x̄ȳ) - (x₁ȳ + x₂ȳ + x₃ȳ ... xₙȳ) - (y₁x̄ + y₂x̄ + y₃x̄ + yₙx̄)
=> ∑xᵢyᵢ + n(x̄ȳ) - ȳ∑xᵢ - x̄∑yᵢ
So, overall formula can be simplified to be used in pine as
//For Sample
Covₓᵧ = (∑xᵢyᵢ + n(x̄ȳ) - ȳ∑xᵢ - x̄∑yᵢ) / (n-1)
//For Population
Covₓᵧ = (∑xᵢyᵢ + n(x̄ȳ) - ȳ∑xᵢ - x̄∑yᵢ) / n
🎲 Simplifying Standard Deviation
Original Formula
//For Sample
σ = √(∑(xᵢ-x̄)² / (n-1))
//For Population
σ = √(∑(xᵢ-x̄)² / n)
Now, if we look at numerator within square root
∑(xᵢ-x̄)²
=> (x₁² + x̄² - 2x₁x̄) + (x₂² + x̄² - 2x₂x̄) + (x₃² + x̄² - 2x₃x̄) ... + (xₙ² + x̄² - 2xₙx̄)
=> (x₁² + x₂² + x₃² ... + xₙ²) + (x̄² + x̄² + x̄² ... + x̄²) - (2x₁x̄ + 2x₂x̄ + 2x₃x̄ ... + 2xₙx̄)
=> ∑xᵢ² + nx̄² - 2x̄∑xᵢ
=> ∑xᵢ² + x̄(nx̄ - 2∑xᵢ)
So, overall formula can be simplified to be used in pine as
//For Sample
σ = √(∑xᵢ² + x̄(nx̄ - 2∑xᵢ) / (n-1))
//For Population
σ = √(∑xᵢ² + x̄(nx̄ - 2∑xᵢ) / n)
🎲 Using BinaryInsertionSort library
Chatterjee Correlation and Spearman Correlation functions make use of BinaryInsertionSort library to speed up sorting. The library in turn implements mechanism to insert values into sorted order so that load on sorting is reduced by higher extent allowing the functions to work on higher sample size.
🎲 Function Documentation
chatterjeeCorrelation(x, y, sampleSize, plotSize)
Calculates chatterjee correlation between two series. Formula is - ξnₓᵧ = 1 - (3 * ∑ |rᵢ₊₁ - rᵢ|)/ (n²-1)
Parameters:
x : First series for which correlation need to be calculated
y : Second series for which correlation need to be calculated
sampleSize : number of samples to be considered for calculattion of correlation. Default is 20000
plotSize : How many historical values need to be plotted on chart.
Returns: float correlation - Chatterjee correlation value if falls within plotSize, else returns na
spearmanCorrelation(x, y, sampleSize, plotSize)
Calculates spearman correlation between two series. Formula is - ρ = 1 - (6∑dᵢ²/n(n²-1))
Parameters:
x : First series for which correlation need to be calculated
y : Second series for which correlation need to be calculated
sampleSize : number of samples to be considered for calculattion of correlation. Default is 20000
plotSize : How many historical values need to be plotted on chart.
Returns: float correlation - Spearman correlation value if falls within plotSize, else returns na
covariance(x, y, include, biased)
Calculates covariance between two series of unbound length. Formula is Covₓᵧ = ∑ ((xᵢ-x̄)(yᵢ-ȳ)) / (n-1) for sample and Covₓᵧ = ∑ ((xᵢ-x̄)(yᵢ-ȳ)) / n for population
Parameters:
x : First series for which covariance need to be calculated
y : Second series for which covariance need to be calculated
include : boolean flag used for selectively including sample
biased : boolean flag representing population covariance instead of sample covariance
Returns: float covariance - covariance of selective samples of two series x, y
stddev(x, include, biased)
Calculates Standard Deviation of a series. Formula is σ = √( ∑(xᵢ-x̄)² / n ) for sample and σ = √( ∑(xᵢ-x̄)² / (n-1) ) for population
Parameters:
x : Series for which Standard Deviation need to be calculated
include : boolean flag used for selectively including sample
biased : boolean flag representing population covariance instead of sample covariance
Returns: float stddev - standard deviation of selective samples of series x
correlation(x, y, include)
Calculates pearson correlation between two series of unbound length. Formula is r = Covₓᵧ / σₓσᵧ
Parameters:
x : First series for which correlation need to be calculated
y : Second series for which correlation need to be calculated
include : boolean flag used for selectively including sample
Returns: float correlation - correlation between selective samples of two series x, y
Linear Moments█ OVERVIEW
The Linear Moments indicator, also known as L-moments, is a statistical tool used to estimate the properties of a probability distribution. It is an alternative to conventional moments and is more robust to outliers and extreme values.
█ CONCEPTS
█ Four moments of a distribution
We have mentioned the concept of the Moments of a distribution in one of our previous posts. The method of Linear Moments allows us to calculate more robust measures that describe the shape features of a distribution and are anallougous to those of conventional moments. L-moments therefore provide estimates of the location, scale, skewness, and kurtosis of a probability distribution.
The first L-moment, λ₁, is equivalent to the sample mean and represents the location of the distribution. The second L-moment, λ₂, is a measure of the dispersion of the distribution, similar to the sample standard deviation. The third and fourth L-moments, λ₃ and λ₄, respectively, are the measures of skewness and kurtosis of the distribution. Higher order L-moments can also be calculated to provide more detailed information about the shape of the distribution.
One advantage of using L-moments over conventional moments is that they are less affected by outliers and extreme values. This is because L-moments are based on order statistics, which are more resistant to the influence of outliers. By contrast, conventional moments are based on the deviations of each data point from the sample mean, and outliers can have a disproportionate effect on these deviations, leading to skewed or biased estimates of the distribution parameters.
█ Order Statistics
L-moments are statistical measures that are based on linear combinations of order statistics, which are the sorted values in a dataset. This approach makes L-moments more resistant to the influence of outliers and extreme values. However, the computation of L-moments requires sorting the order statistics, which can lead to a higher computational complexity.
To address this issue, we have implemented an Online Sorting Algorithm that efficiently obtains the sorted dataset of order statistics, reducing the time complexity of the indicator. The Online Sorting Algorithm is an efficient method for sorting large datasets that can be updated incrementally, making it well-suited for use in trading applications where data is often streamed in real-time. By using this algorithm to compute L-moments, we can obtain robust estimates of distribution parameters while minimizing the computational resources required.
█ Bias and efficiency of an estimator
One of the key advantages of L-moments over conventional moments is that they approach their asymptotic normal closer than conventional moments. This means that as the sample size increases, the L-moments provide more accurate estimates of the distribution parameters.
Asymptotic normality is a statistical property that describes the behavior of an estimator as the sample size increases. As the sample size gets larger, the distribution of the estimator approaches a normal distribution, which is a bell-shaped curve. The mean and variance of the estimator are also related to the true mean and variance of the population, and these relationships become more accurate as the sample size increases.
The concept of asymptotic normality is important because it allows us to make inferences about the population based on the properties of the sample. If an estimator is asymptotically normal, we can use the properties of the normal distribution to calculate the probability of observing a particular value of the estimator, given the sample size and other relevant parameters.
In the case of L-moments, the fact that they approach their asymptotic normal more closely than conventional moments means that they provide more accurate estimates of the distribution parameters as the sample size increases. This is especially useful in situations where the sample size is small, such as when working with financial data. By using L-moments to estimate the properties of a distribution, traders can make more informed decisions about their investments and manage their risk more effectively.
Below we can see the empirical dsitributions of the Variance and L-scale estimators. We ran 10000 simulations with a sample size of 100. Here we can clearly see how the L-moment estimator approaches the normal distribution more closely and how such an estimator can be more representative of the underlying population.
█ WAYS TO USE THIS INDICATOR
The Linear Moments indicator can be used to estimate the L-moments of a dataset and provide insights into the underlying probability distribution. By analyzing the L-moments, traders can make inferences about the shape of the distribution, such as whether it is symmetric or skewed, and the degree of its spread and peakedness. This information can be useful in predicting future market movements and developing trading strategies.
One can also compare the L-moments of the dataset at hand with the L-moments of certain commonly used probability distributions. Finance is especially known for the use of certain fat tailed distributions such as Laplace or Student-t. We have built in the theoretical values of L-kurtosis for certain common distributions. In this way a person can compare our observed L-kurtosis with the one of the selected theoretical distribution.
█ FEATURES
Source Settings
Source - Select the source you wish the indicator to calculate on
Source Selection - Selec whether you wish to calculate on the source value or its log return
Moments Settings
Moments Selection - Select the L-moment you wish to be displayed
Lookback - Determine the sample size you wish the L-moments to be calculated with
Theoretical Distribution - This setting is only for investingating the kurtosis of our dataset. One can compare our observed kurtosis with the kurtosis of a selected theoretical distribution.
Higher Timeframe Open High Low ClosePURPOSE
1. Multi-timeframe analysis (MTFA).
2. Better visualize intraday price action relative higher timeframe price action, and this is not limited to the current time frame or the higher time frame including current price movement.
3. Higher Timeframes provides an overview of the long-term trend (e.g., weekly or monthly charts).
4. Confirm trends occurring on more than one timeframe.
5. Improve choice of entry and exit points.
ORIGINALITY
1. Compare current lower time frame price movement to current or previous higher time frame movement. The user specifies in the settings the higher time frame (day, week, month, quarter, or year) and the associated price movement data, including OHLC, average prices, and moving average levels.
2. Previous time frames and all specified levels (OHLC, average prices, and moving averages) can be shifted together to overlay the current time frame. This allows analysis of lower/intraday price movement against that of any past higher time frames.
3. Use: In the settings, the current time frame (i.e., that including current price movement) 'count from current' is '0', a count of '1' would shift one higher level time frame such that the open date of that shifted time frame aligns with the open date of the current time frame. A count of '3' would shift three higher level time frames to align with the current."
4. Example: On the Wednesday July 24 intraday chart, overlay the daily OHLC, typical price, and 10-day EMA data occurring at the close of Wednesday July 17. This allows analyze current price movement against data from one week prior.
HIGHER TIMEFRAME DATA that can be PLOTTED and SHIFTED
1. Open, High, Low, Close.
2. Average prices: Median (HL/2), Typical (HLC/3), (Average OHLC/4), Body Median (OC/2), Weighted Close (HL2C/4), Biased 01 (HC/2 if Close > Open, else LC/2), Biased 02 (High if Close > HL/2, else Low), Biased 03 (High if Close > Open, else Low).
3. Moving averages with user specified source, length and type.
High of Day Low of Day hourly timings: Statistics. Time of day %High of Day (HoD) & Low of Day (LoD) hourly timings: Statistics. Time of day % likelihood for high and low.
//Purpose:
To collect stats on the hourly occurrences of HoD and LoD in an asset, to see which times of day price is more likely to form its highest and lowest prices.
//How it works:
Each day, HoD and LoD are calculated and placed in hourly 'buckets' from 0-23. Frequencies and Percentages are then calculated and printed/tabulated based on the full asset history available.
//User Inputs:
-Timezone (default is New York); important to make sure this matches your chart's timezone
-Day start time: (default is Tradingview's standard). Toggle Custom input box to input your own custom day start time.
-Show/hide day-start vertical lines; show/hide previous day's 'HoD hour' label (default toggled on). To be used as visual aid for setting up & verifying timezone settings are correct and table is populating correctly).
-Use historical start date (default toggled off): Use this along with bar-replay to backtest specific periods in price (i.e. consolidated vs trending, dull vs volatile).
-Standard formatting options (text color/size, table position, etc).
-Option to show ONLY on hourly chart (default toggled off): since this indicator is of most use by far on the hourly chart (most history, max precision).
// Notes & Tips:
-Make sure Timezone settings match (input setting & chart timezone).
-Play around with custom input day start time. Choose a 'dead' time (overnight) so as to ensure stats are their most meaningful (if you set a day start time when price is likely to be volatile or trending, you may get a biased / misleadingly high readout for the start-of-day/ end-of-day hour, due to price's tendency for continuation through that time.
-If you find a time of day with significantly higher % and it falls either side of your day start time. Try adjusting day start time to 'isolate' this reading and thereby filter out potential 'continuation bias' from the stats.
-Custom input start hour may not match to your chart at first, but this is not a concern: simply increment/decrement your input until you get the desired start time line on the chart; assuming your timezone settings for chart and indicator are matching, all will then work properly as designed.
-Use the the lines and labels along with bar-replay to verify HoD/LoD hours are printing correctly and table is populating correctly.
-Hour 'buckets' represent the start of said hour. i.e. hour 14 would be populated if HoD or LoD formed between 14:00 and 15:00.
-Combined % is simply the average of HoD % and LoD %. So it is the % likelihood of 'extreme of day' occurring in that hour.
-Best results from using this on Hourly charts (sub-hourly => less history; above hourly => less precision).
-Note that lower tier Tradingview subscriptions will get less data history. Premium acounts get 20k bars history => circa 900 days history on hourly chart for ES1!
-Works nicely on Btc/Usd too: any 24hr assets this will give meaningful data (whereas some commodities, such as Lean Hogs which only trade 5hrs in a day, will yield less meaningful data).
Example usage on S&P (ES1! 1hr chart): manual day start time of 11pm; New York timezone; Visual aid lines and labels toggled on. HoD LoD hour timings with 920 days history:
A-Share Broad-Based ETF Dual-Core Timing System1. Strategy Overview
The "A-Share Broad-Based ETF Dual-Core Timing System" is a quantitative trading strategy tailored for the Chinese A-share market (specifically for broad-based ETFs like CSI 300, CSI 500, STAR 50). Recognizing the market's characteristic of "short bulls, long bears, and sharp bottoms," this strategy employs a "Left-Side Latency + Right-Side Full Position" dual-core driver. It aims to safely bottom-fish during the late stages of a bear market and maximize profits during the main ascending waves of a bull market.
2. Core Logic
A. Left-Side Latency (Rebound/Bottom Fishing)
Capital Allocation: Defaults to 50% position.
Philosophy: "Buy when others fear." Seeks opportunities in extreme panic or momentum divergence.
Entry Signals (Triggered by any of the following):
Extreme Panic: RSI Oversold (<30) + Price below Bollinger Lower Band + Bullish Candle Close (Avoid catching falling knives).
Oversold Bias: Price deviates more than 15% from the 60-day MA (Life Line), betting on mean reversion.
MACD Bullish Divergence: Price makes a new low while MACD histogram does not, accompanied by strengthening momentum.
B. Right-Side Full Position (Trend Following)
Capital Allocation: Aggressively scales up to Full Position (~99%) upon signal trigger.
Philosophy: "Follow the trend." Strike heavily once the trend is confirmed.
Entry Signals (All must be met):
Upward Trend: MACD Golden Cross + Price above 20-day MA.
Breakout Confirmation: CCI indicator breaks above 100, confirming a main ascending wave.
Volume Support: Volume MACD Golden Cross, ensuring price increase is backed by volume.
C. Smart Risk Control
Bear Market Exhaustion Exit: In a bearish trend (MA20 < MA60), the strategy does not "hold and hope." It immediately liquidates left-side positions upon signs of rebound exhaustion (breaking below MA20, touching MA60 resistance, or RSI failure).
ATR Trailing Stop: Uses Average True Range (ATR) to calculate a dynamic stop-profit line that rises with the price to lock in profits.
Hard Stop Loss: Forces a stop-loss if the left-side bottom fishing fails and losses exceed a set ATR multiple, preventing deep drawdowns.
3. Recommendations
Target Assets: High liquidity broad-based ETFs such as CSI 300 ETF (510300), CSI 500 ETF (510500), ChiNext ETF (159915), STAR 50 ETF (588000).
Timeframe: Daily Chart.
EMA RSI Adaptive (v6) [Joy]I have taken Glaz's code and converted to V6. The main logic is not mine but taken from Glaz's code
The EMA RSI Adaptive indicator smooths price with an EMA whose speed adjusts to RSI’s distance from its midpoint (50). When RSI strays far from 50 (higher momentum/volatility), the effective EMA period shrinks so the line hugs price. When RSI stays near 50 (quieter conditions), the period lengthens to filter noise. The target of the EMA update is an SMA of price (matching the original design), so you get a smoothed, adaptive trend line rather than a raw EMA of closes.
Key mechanics (what’s happening under the hood):
RSI distance: |RSI - 50| + 1 measures how “charged” momentum is. Bigger distance → faster adaptation.
Dynamic period: a nonlinear mapping turns that RSI distance into an adjusted smoothing length.
Adaptive EMA: ema = emaPrev + alpha * (SMA - emaPrev), where alpha = 2 / (1 + dynamicPeriod).
Visuals: optional color shift—blue when the line is rising, magenta when falling.
Practical use:
Trend filter: rising line = bullish bias; falling line = bearish bias.
Pullback tool: in trends, price tags or minor pierces of the adaptive line can mark pullback zones.
Volatility-aware: it tightens in fast moves (tracks closer) and relaxes in chop (filters more).
On very low timeframes or illiquid symbols, expect more whipsaw; lengthen the base EMA or RSI period to calm it.
The color toggle is cosmetic; the adaptive line itself carries the signal.
Elephant Edge Session Levels Predictor**Elephant Edge** is a robust trading tool designed to streamline decision-making for swing and intraday traders alike. It combines accuracy and simplicity to help you spot promising buy and sell signals with ease. The Session Levels Predictor+ feature draws upper and lower percentile lines derived from session data, enabling traders to pinpoint key support and resistance areas accurately. It computes these percentile projections from daily sessions automatically and displays them as sleek, adjustable lines—perfect for intraday and short-term strategies focused on statistical price boundaries.
For **swing traders**, Elephant Edge highlights pivotal market reversals and trend shifts, allowing you to seize bigger trends and maintain momentum. For **intraday traders**, it offers precise buy and sell thresholds, providing reliable entry and exit cues during active market hours.
No matter if you're chasing quick trades or sustaining positions over several sessions, Elephant Edge promotes a methodical and disciplined strategy. Its smart signals cut through market clutter, delivering a solid advantage while eliminating emotional biases.
With **Elephant Edge**, you shift from merely responding to the market to trading with **precision, assurance, and reliability**.






















