ICT SMC Liquidity Grabs and OBsICT SMC Liquidity Grabs + Order Blocks + Fibonacci OTE Levels
A High-Probability Entry Engine for Smart Money Concept Traders
This script combines three powerful Smart Money Concepts (SMC) into a single tool: Liquidity Grabs, Order Block Zones, and Fibonacci OTE Levels, allowing traders to identify institutional entry models with clean, rule-based visual signals.
It’s designed to simplify SMC trading by highlighting confluence zones where price is likely to reverse or continue — with clear visual zones, entry arrows, and take profit projections.
🔍 What This Script Does:
Detects Liquidity Grabs
Identifies when price sweeps above/below the highest high or lowest low within a user-defined lookback period and closes back inside.
Plots orange labels on the chart to signal potential liquidity events (LG-H / LG-L).
Plots Order Blocks After Liquidity Grabs
After a liquidity grab, the script looks for displacement candles (strong bullish or bearish moves) and draws highlighted OB zones extending several bars to the right.
These zones represent potential institutional footprints for price reversals.
Draws Fibonacci OTE Levels (Optimal Trade Entry)
Uses recent swing high and low pivots to automatically calculate OTE zones (default: 62% and 75% retracement levels).
Draws these retracement zones for both bullish and bearish setups.
Marks Valid OTE Entry Zones
Buy/Sell zones only trigger when:
A liquidity grab occurs,
Price enters the OTE zone,
And a strong confirming candle is present.
Plots green/red arrows for valid buy/sell OTE entries.
Auto-Draws Take Profit Zones
TP1 = Previous swing high/low
TP2 = Risk-based R-multiplied extension (e.g., 1.5R — customizable)
Alerts
Triggers alerts when valid buy or sell OTE setups are detected.
⚙️ Customization Features:
Toggle each feature: Liquidity Grabs, Order Blocks, Fibonacci OTE levels
Set Fibonacci retracement percentages (e.g., 0.62 / 0.75)
Adjust lookback window for liquidity detection
Customize the take-profit multiplier (R-based)
Full control over visuals: colors, labels, and lines
💡 How to Use:
Use this script to scan for high-confluence trade setups based on Smart Money principles.
Combine with session timing (e.g., New York open), major swing structure, or Kill Zone windows for maximum edge.
Look for arrows inside OB zones or OTE levels following liquidity sweeps for cleaner entries.
🔗 Works Best With:
✅ First FVG — Opening Range Fair Value Gap Detector: Identify early inefficiencies to set the narrative for the day.
✅ Liquidity Levels — Smart Swing Lows: Spot key structural lows that can fuel stop hunts and reversals.
✅ ICT Turtle Soup — Liquidity Reversal: Add a classic reversal pattern to your toolkit to catch fakeouts cleanly.
Together, these tools build a complete Smart Money ecosystem for entry precision, risk management, and price behavior forecasting.
Cari dalam skrip untuk "如何用wind搜索股票的发行价和份数"
ICT MACRO MAX RETRI ( ALERT )🖤 ICT Reversal Detector – Minimalist Edition
This indicator is designed for traders who follow Inner Circle Trader (ICT) concepts, particularly focused on liquidity sweeps and displacement reversals.
It detects:
• Swing Highs & Lows that occur during the most reactive windows of each hour
→ Specifically the last 20 minutes and first 15 minutes
(ICT teaches these moments often reveal macro-level reversals. I’ve expanded the window slightly to give the indicator more room to catch valid setups.)
• Liquidity Sweeps of previous highs/lows
• Displacement (State Change): defined as a manipulation wick followed by 1–3 strong candles closing in the opposite direction
Visually:
• Clean black lines pointing right from the liquidity sweep wick
• White triangle markers inside black label boxes only when valid displacement occurs
• No clutter, no unnecessary shapes — just focused signal
Built for:
• 5-minute charts, especially NASDAQ (NAS100) and S&P 500 (SPX500)
• Confirm setups manually on the 15-minute chart for extra precision
This is a partial automation tool for ICT-style reversal traders who prefer clarity, minimalism, and sharp intuition over noise.
Let it alert you to setups — then decide like a sniper.
Reversal Signals [AlgoAlpha]📈🔄 Reversal Signals – Master Market Reversals with Precision! 🚀✨
Elevate your trading strategy with the Reversal Signals indicator by AlgoAlpha. This advanced tool is designed to pinpoint potential bullish and bearish reversals by analyzing price action and, optionally, volume confirmations. It seamlessly combines reversal detection with trend analysis, giving you a comprehensive view of market dynamics to make informed trading decisions.
Key Features
🔎 Price Action Reversal Detection : Identifies potential reversal points by comparing current price movements against historical candle patterns within a customizable lookback period.
📊 Volume Confirmation : Optionally integrates volume analysis to confirm the strength of reversal signals, enhancing their reliability.
📈 Stepped Moving Average Trend Indicator : Employs a stepped moving average that adjusts at set intervals to reflect underlying market trends.
⚙️ Customizable Settings : Tailor the indicator to your trading style with adjustable parameters for lookback periods, confirmation windows, moving average types, and more.
🎨 Visual Signals and Trend Coloring : Clear on-chart labels for reversal signals and color-coded trend areas to quickly identify bullish and bearish conditions.
🔔 Alerts for Key Market Events : Set up custom alerts for reversal signals and trend shifts to stay ahead of market movements.
Quick Guide to Using the Reversal Signals Indicator :
🛠 Add the Indicator : Add the indicator to your favorites by pressing the star icon. Customize settings like Candle Lookback, Confirm Within, and Use Volume Confirmation to fit your trading style.
📊 Market Analysis : Observe the "𝓡" labels on the chart indicating bullish and bearish reversal signals. Look for labels below the bars for bullish signals and above the bars for bearish signals. Use the color-filled areas between the stepped moving average and the center line to assess market trends.
🔔 Alerts : Enable notifications for reversal signals and trend shifts to stay informed about market movements without constantly monitoring the chart.
How It Works
The Reversal Signals indicator operates by conducting a thorough analysis of price action over a user-defined lookback period. For a bullish reversal, the indicator checks if the current closing price is lower than the lows of the preceding candles within the lookback window, suggesting a potential oversold condition. If this criterion is met, it marks the candle as a potential reversal point and waits for confirmation within a specified number of subsequent candles. Confirmation occurs when the price rises above the high of the identified candle, signaling a bullish reversal. An optional volume confirmation can be enabled to ensure that the reversal is supported by higher-than-average trading volume, adding an extra layer of validation to the signal. The process is mirrored for bearish reversals, where the indicator looks for the closing price exceeding previous highs and awaits confirmation of a downward move.
Complementing the reversal signals, the indicator features a stepped moving average that serves as a dynamic trend indicator. This moving average updates at intervals defined by the MA Step Period and shifts direction based on price crossings. If the price remains above the stepped MA, it indicates a bullish trend, coloring the area between the MA and the center line in green. Conversely, if the price falls below the stepped MA, a bearish trend is signaled, and the area is shaded red. This visual representation helps traders quickly assess the prevailing market trend and align their trading decisions accordingly.
Experience a new level of market insight with the Reversal Signals indicator. Add it to your TradingView chart today and enhance your ability to detect and act on key ma
Enhanced Market Analyzer with Adaptive Cognitive LearningThe "Enhanced Market Analyzer with Advanced Features and Adaptive Cognitive Learning" is an advanced, multi-dimensional trading indicator that leverages sophisticated algorithms to analyze market trends and generate predictive trading signals. This indicator is designed to merge traditional technical analysis with modern machine learning techniques, incorporating features such as adaptive learning, Monte Carlo simulations, and probabilistic modeling. It is ideal for traders who seek deeper market insights, adaptive strategies, and reliable buy/sell signals.
Key Features:
Adaptive Cognitive Learning:
Utilizes Monte Carlo simulations, reinforcement learning, and memory feedback to adapt to changing market conditions.
Adjusts the weighting and learning rate of signals dynamically to optimize predictions based on historical and real-time data.
Hybrid Technical Indicators:
Custom RSI Calculation: An RSI that adapts its length based on recursive learning and error adjustments, making it responsive to varying market conditions.
VIDYA with CMO Smoothing: An advanced moving average that incorporates Chander Momentum Oscillator for adaptive smoothing.
Hamming Windowed VWMA: A volume-weighted moving average that applies a Hamming window for smoother calculations.
FRAMA: A fractal adaptive moving average that responds dynamically to price movements.
Advanced Statistical Analysis:
Skewness and Kurtosis: Provides insights into the distribution and potential risk of market trends.
Z-Score Calculations: Identifies extreme market conditions and adjusts trading thresholds dynamically.
Probabilistic Monte Carlo Simulation:
Runs thousands of simulations to assess potential price movements based on momentum, volatility, and volume factors.
Integrates the results into a probabilistic signal that informs trading decisions.
Feature Extraction:
Calculates a variety of market metrics, including price change, momentum, volatility, volume change, and ATR.
Normalizes and adapts these features for use in machine learning algorithms, enhancing signal accuracy.
Ensemble Learning:
Combines signals from different technical indicators, such as RSI, MACD, Bollinger Bands, Stochastic Oscillator, and statistical features.
Weights each signal based on cumulative performance and learning feedback to create a robust ensemble signal.
Recursive Memory and Feedback:
Stores and averages past RSI calculations in a memory array to provide historical context and improve future predictions.
Adaptive memory factor adjusts the influence of past data based on current market conditions.
Multi-Factor Dynamic Length Calculation:
Determines the length of moving averages based on volume, volatility, momentum, and rate of change (ROC).
Adapts to various market conditions, ensuring that the indicator is responsive to both high and low volatility environments.
Adaptive Learning Rate:
The learning rate can be adjusted based on market volatility, allowing the system to adapt its speed of learning and sensitivity to changes.
Enhances the system's ability to react to different market regimes.
Monte Carlo Simulation Engine:
Simulates thousands of random outcomes to model potential future price movements.
Weights and aggregates these simulations to produce a final probabilistic signal, providing a comprehensive risk assessment.
RSI with Dynamic Adjustments:
The initial RSI length is adjusted recursively based on calculated errors between true RSI and predicted RSI.
The adaptive RSI calculation ensures that the indicator remains effective across various market phases.
Hybrid Moving Averages:
Short-Term and Long-Term Averages: Combines FRAMA, VIDYA, and Hamming VWMA with specific weights for a unique hybrid moving average.
Weighted Gradient: Applies a color gradient to indicate trend strength and direction, improving visual clarity.
Signal Generation:
Generates buy and sell signals based on the ensemble model and multi-factor analysis.
Uses percentile-based thresholds to determine overbought and oversold conditions, factoring in historical data for context.
Optional settings to enable adaptation to volume and volatility, ensuring the indicator remains effective under different market conditions.
Monte Carlo and Learning Parameters:
Users can customize the number of Monte Carlo simulations, learning rate, memory factor, and reward decay for tailored performance.
Applications:
Scalping and Day Trading:
The fast response of the adaptive RSI and ensemble learning model makes this indicator suitable for short-term trading strategies.
Swing Trading:
The combination of long-term moving averages and probabilistic models provides reliable signals for medium-term trends.
Volatility Analysis:
The ATR, Bollinger Bands, and adaptive moving averages offer insights into market volatility, helping traders adjust their strategies accordingly.
Standard Deviation OscillatorStandard Deviation Oscillator (STDEV OSC) v1.1
Description
The Standard Deviation Oscillator transforms traditional volatility measurements into a dynamic oscillator that fluctuates between 0 and 100. This advanced technical analysis tool helps traders identify periods of extreme volatility and potential market turning points.
Features
Normalized volatility readings (0-100 scale)
Dynamic color changes based on volatility levels
Customizable overbought/oversold thresholds
Built-in alert conditions
Adaptive calculation using rolling windows
Clean, professional visualization
Indicator Parameters
Length: 20; Calculation period for standard deviation
Source: close; Price source for calculations
Overbought Level: 70; Upper threshold for high volatility
Oversold Level: 30; Lower threshold for low volatility
Visual Components
- Main Oscillator Line: Changes color based on current level
- Red: Above overbought level
- Green: Below oversold level
- Blue: Normal range
- Reference Lines:
- Overbought level (default: 70)
- Oversold level (default: 30)
- Middle line (50)
Alert Conditions
1. Volatility High Alert
- Triggers when oscillator crosses above the overbought level
- Useful for identifying potential market tops or breakout scenarios
2. Volatility Low Alert
- Triggers when oscillator crosses below the oversold level
- Helps identify potential market bottoms or consolidation periods
Risk Adjustment Tool
- Scale position sizes inversely to oscillator readings
- Reduce exposure during extremely high volatility periods
- Increase position sizes during normal volatility conditions
Best Practices
1. Timeframe Selection
- Best suited for 1H, 4H, and Daily charts
- Adjust length parameter based on timeframe
2. Confirmation
- Use in conjunction with trend indicators
- Confirm signals with price action patterns
- Consider overall market context
3. Parameter Optimization
- Backtest different length settings
- Adjust overbought/oversold levels based on asset
- Consider market conditions when setting alerts
Technical Notes
- Built in PineScript v5
- Optimized for TradingView platform
- Uses rolling window calculations for better adaptability
- Compatible with all trading instruments
- Minimal performance impact on charts
Version History
- v1.1: Added dynamic coloring, customizable levels, and alert conditions
- v1.0: Initial release with basic oscillator functionality
Disclaimer
This technical indicator is provided for educational and informational purposes only. Past performance is not indicative of future results. Always conduct thorough testing and use proper risk management techniques.
---
Tags: #TechnicalAnalysis #Volatility #Trading #Oscillator #TradingView #PineScript
ICT Silver Bullet with signals
The "ICT Silver Bullet with signals" indicator (inspired from the lectures of "The Inner Circle Trader" (ICT)),
goes a step further than the ICT Silver Bullet publication, which I made for LuxAlgo :
• uses HTF candles
• instant drawing of Support & Resistance (S/R) lines when price retraces into FVG
• NWOG - NDOG S/R lines
• signals
The Silver Bullet (SB) window which is a specific 1-hour interval where a Fair Value Gap (FVG) pattern can be formed.
When price goes back to the FVG, without breaking it, Support & Resistance lines will be drawn immediately.
There are 3 different Silver Bullet windows (New York local time):
The London Open Silver Bullet (03 AM — 04 AM ~ 03:00 — 04:00)
The AM Session Silver Bullet (10 AM — 11 AM ~ 10:00 — 11:00)
The PM Session Silver Bullet (02 PM — 03 PM ~ 14:00 — 15:00)
🔶 USAGE
This technique can visualise potential support/resistance lines, which can be used as targets.
The script contains 2 main components:
• forming of a Fair Value Gap (FVG)
• drawing support/resistance (S/R) lines
🔹 Forming of FVG
When HTF candles forms an FVG, the FVG will be drawn at the end (close) of the last HTF candle.
To make it easier to visualise the 2 HTF candles that form the FVG, you can enable
• SHOW -> HTF candles
During the SB session, when a FVG is broken, the FVG will be removed, together with its S/R lines.
The same goes if price did not retrace into FVG at the last bar of the SB session
Only exception is when "Remove broken FVG's" is disabled.
In this case a FVG can be broken, as long as price bounces back before the end of the SB session, it will remain to be visible:
🔹 Drawing support/resistance lines
S/R target lines are drawn immediately when price retraces into the FVG.
They will remain updated until they are broken (target hit)
Potential S/R lines are formed by:
• previous swings (swing settings (left-right)
• New Week Opening Gap (NWOG): close on Friday - weekly open
• New Day Opening Gap (NWOG): close previous day - current daily open
Only non-broken lines are included.
Broken =
• minimum of open and close below potential S/R line
• maximum of open and close above potential S/R line
NDOG lines are coloured fuchsia (as in the ICT lectures), NWOG are coloured white (darkmode) or black (lightmode ~ ICT lectures)
Swing line colour can be set as desired.
Here S/R includes NDOG lines:
The same situation, with "Extend Target-lines to their source" enabled:
Here with NWOG lines:
This publication contains a "Minimum Trade Framework (mTFW)", which represents the best-case expected price delivery, this is not your actual trade entry - exit range.
• 40 ticks for index futures or indices
• 15 pips for Forex pairs
The minimum distance (if applicable) can be shown by enabling "Show" - "Minimum Trade Framework" -> blue arrow from close to mTFW
Potential S/R lines needs to be higher (bullish) or lower (bearish) than mTFW.
🔶 SETTINGS
(check USAGE for deeper insights and explanation)
🔹 Only last x bars: when enabled, the script will do most of the calculations at these last x candles, potentially this can speeds calculations.
🔹 Swing settings (left-right): Sets the length, which will set the lookback period/sensitivity of the ZigZag patterns (which directs the trend and points for S/R lines)
🔹 FVG
HTF (minutes): 1-15 minutes.
• When the chart TF is equal of higher, calculations are based on current TF.
• Chart TF > 15 minutes will give the warning: "Please use a timeframe <= 15 minutes".
Remove broken FVG's: when enabled the script will remove FVG (+ associated S/R lines) immediately when FVG is broken at opposite direction.
FVG's still will be automatically removed at the end of the SB session, when there is no retrace, together with associated S/R lines,...
~ trend: Only include FVG in the same direction as the current trend
Note -> when set 'right' (swing setting) rather high ( > 3), he trend change will be delayed as well (default 'right' max 5)
Extend: extend FVG to max right side of SB session
🔹 Targets – support/resistance
Extend Target-lines to their source: extend lines to their origin
Colours (Swing S/R lines)
🔹 Show
SB session: show lines and labels of SB session (+ colour)
• Labels can be disabled separately in the 'Style' section, colour is set at the 'Inputs' section
Trend : Show trend (ZigZag, coloured ~ trend)
HTF candles: Show the 2 HTF candles that form the FVG
Minimum Trade Framework: blue arrow (if applicable)
🔶 ALERTS
There are 4 signals provided (bullish/bearish):
FVG Formed
FVG Retrace
Target reached
FVG cancelled
You can choose between dynamic alerts - only 1 alert needs to be set for all signals, or you can set specific alerts as desired.
💜 PURPLE BARS 😈
• Since TradingView has chosen to give away our precious Purple coloured Wizard Badge, bars are coloured purple 😊😉
[blackcat] L2 John Ehlers Undersampled Double MALevel2
Background
This is a novel "undersampling data" processing trick proposed by John F. Ehlers in his April 2023 article "Just Ignore Them".
Function
In signal processing, undersampling, or bandpass sampling, is a technique whereby a bandpass-filtered signal is sampled at a sample rate below its Nyquist rate (twice the upper cut-off frequency), but the signal can still be reconstructed. When undersampling a bandpass signal, the samples are indistinguishable from samples of a low-frequency alias of the high-frequency signal.
John Ehlers notes that data smoothing is often used to avoid trading spikes. While this can result in fewer trading signals, it can also result in a delay in those trading signals. He describes how undersampling can be used in conjunction with Hann window finite impulse response (FIR) filters to remove high-frequency components in price data, resulting in less delay than traditional smoothing filters.
In this indicator, Hann windowing is applied a a pair of fast/slow moving averages which is used to improve their response perfomrnace. Yellow line is the fast line while fuchsia line is the slow line. You can judge bull bear stattus by checking the status it is in golden cross or in dead cross status.
Remarks
Feedbacks are appreciated.
Ehlers Two-Pole Predictor [Loxx]Ehlers Two-Pole Predictor is a new indicator by John Ehlers . The translation of this indicator into PineScript™ is a collaborative effort between @cheatcountry and I.
The following is an excerpt from "PREDICTION" , by John Ehlers
Niels Bohr said “Prediction is very difficult, especially if it’s about the future.”. Actually, prediction is pretty easy in the context of technical analysis . All you have to do is to assume the market will behave in the immediate future just as it has behaved in the immediate past. In this article we will explore several different techniques that put the philosophy into practice.
LINEAR EXTRAPOLATION
Linear extrapolation takes the philosophical approach quite literally. Linear extrapolation simply takes the difference of the last two bars and adds that difference to the value of the last bar to form the prediction for the next bar. The prediction is extended further into the future by taking the last predicted value as real data and repeating the process of adding the most recent difference to it. The process can be repeated over and over to extend the prediction even further.
Linear extrapolation is an FIR filter, meaning it depends only on the data input rather than on a previously computed value. Since the output of an FIR filter depends only on delayed input data, the resulting lag is somewhat like the delay of water coming out the end of a hose after it supplied at the input. Linear extrapolation has a negative group delay at the longer cycle periods of the spectrum, which means water comes out the end of the hose before it is applied at the input. Of course the analogy breaks down, but it is fun to think of it that way. As shown in Figure 1, the actual group delay varies across the spectrum. For frequency components less than .167 (i.e. a period of 6 bars) the group delay is negative, meaning the filter is predictive. However, the filter has a positive group delay for cycle components whose periods are shorter than 6 bars.
Figure 1
Here’s the practical ramification of the group delay: Suppose we are projecting the prediction 5 bars into the future. This is fine as long as the market is continued to trend up in the same direction. But, when we get a reversal, the prediction continues upward for 5 bars after the reversal. That is, the prediction fails just when you need it the most. An interesting phenomenon is that, regardless of how far the extrapolation extends into the future, the prediction will always cross the signal at the same spot along the time axis. The result is that the prediction will have an overshoot. The amplitude of the overshoot is a function of how far the extrapolation has been carried into the future.
But the overshoot gives us an opportunity to make a useful prediction at the cyclic turning point of band limited signals (i.e. oscillators having a zero mean). If we reduce the overshoot by reducing the gain of the prediction, we then also move the crossing of the prediction and the original signal into the future. Since the group delay varies across the spectrum, the effect will be less effective for the shorter cycles in the data. Nonetheless, the technique is effective for both discretionary trading and automated trading in the majority of cases.
EXPLORING THE CODE
Before we predict, we need to create a band limited indicator from which to make the prediction. I have selected a “roofing filter” consisting of a High Pass Filter followed by a Low Pass Filter. The tunable parameter of the High Pass Filter is HPPeriod. Think of it as a “stone wall filter” where cycle period components longer than HPPeriod are completely rejected and cycle period components shorter than HPPeriod are passed without attenuation. If HPPeriod is set to be a large number (e.g. 250) the indicator will tend to look more like a trending indicator. If HPPeriod is set to be a smaller number (e.g. 20) the indicator will look more like a cycling indicator. The Low Pass Filter is a Hann Windowed FIR filter whose tunable parameter is LPPeriod. Think of it as a “stone wall filter” where cycle period components shorter than LPPeriod are completely rejected and cycle period components longer than LPPeriod are passed without attenuation. The purpose of the Low Pass filter is to smooth the signal. Thus, the combination of these two filters forms a “roofing filter”, named Filt, that passes spectrum components between LPPeriod and HPPeriod.
Since working into the future is not allowed in EasyLanguage variables, we need to convert the Filt variable to the data array XX. The data array is first filled with real data out to “Length”. I selected Length = 10 simply to have a convenient starting point for the prediction. The next block of code is the prediction into the future. It is easiest to understand if we consider the case where count = 0. Then, in English, the next value of the data array is equal to the current value of the data array plus the difference between the current value and the previous value. That makes the prediction one bar into the future. The process is repeated for each value of count until predictions up to 10 bars in the future are contained in the data array. Next, the selected prediction is converted from the data array to the variable “Prediction”. Filt is plotted in Red and Prediction is plotted in yellow.
The Predict Extrapolation indicator is shown below for the Emini S&P Futures contract using the default input parameters. Filt is plotted in red and Predict is plotted in yellow. The crossings of the Predict and Filt lines provide reliable buy and sell timing signals. There is some overshoot for the shorter cycle periods, for example in February and March 2021, but the only effect is a late timing signal. Further reducing the gain and/or reducing the BarsFwd inputs would provide better timing signals during this period.
Figure 2. Predict Extrapolation Provides Reliable Timing Signals
I have experimented with other FIR filters for predictions, but found none that had a significant advantage over linear extrapolation.
MESA
MESA is an acronym for Maximum Entropy Spectral Analysis. Conceptually, it removes spectral components until the residual is left with maximum entropy. It does this by forming an all-pole filter whose order is determined by the selected number of coefficients. It maximally addresses the data within the selected window and ignores all other data. Its resolution is determined only by the number of filter coefficients selected. Since the resulting filter is an IIR filter, a prediction can be formed simply by convolving the filter coefficients with the data. MESA is one of the few, if not the only way to practically determine the coefficients of a higher order IIR filter. Discussion of MESA is beyond the scope of this article.
TWO POLE IIR FILTER
While the coefficients of a higher order IIR filter are difficult to compute without MESA, it is a relatively simple matter to compute the coefficients of a two pole IIR filter.
(Skip this paragraph if you don’t care about DSP) We can locate the conjugate pole positions parametrically in the Z plane in polar coordinates. Let the radius be QQ and the principal angle be 360 / P2Period. The first order component is 2*QQ*Cosine(360 / P2Period) and the second order component is just QQ2. Therefore, the transfer response becomes:
H(z) = 1 / (1 - 2*QQ*Cosine(360 / P2Period)*Z-1 + QQ2*Z-2)
By mixing notation we can easily convert the transfer response to code.
Output / Input = 1 / (1 - 2*QQ*Cosine(360 / P2Period)* + QQ2* )
Output - 2*QQ*Cosine(360 / P2Period)*Output + QQ2*Output = Input
Output = Input + 2*QQ*Cosine(360 / P2Period)*Output - QQ2*Output
The Two Pole Predictor starts by computing the same “roofing filter” design as described for the Linear Extrapolation Predictor. The HPPeriod and LPPeriod inputs adjust the roofing filter to obtain the desired appearance of an indicator. Since EasyLanguage variables cannot be extended into the future, the prediction process starts by loading the XX data array with indicator data up to the value of Length. I selected Length = 10 simply to have a convenient place from which to start the prediction. The coefficients are computed parametrically from the conjugate pole positions and are normalized to their sum so the IIR filter will have unity gain at zero frequency.
The prediction is formed by convolving the IIR filter coefficients with the historical data. It is easiest to see for the case where count = 0. This is the initial prediction. In this case the new value of the XX array is formed by successively summing the product of each filter coefficient with its respective historical data sample. This process is significantly different from linear extrapolation because second order curvature is introduced into the prediction rather than being strictly linear. Further, the prediction is adaptive to market conditions because the degree of curvature depends on recent historical data. The prediction in the data array is converted to a variable by selecting the BarsFwd value. The prediction is then plotted in yellow, and is compared to the indicator plotted in red.
The Predict 2 Pole indicator is shown above being applied to the Emini S&P Futures contract for most of 2021. The default parameters for the roofing filter and predictor were used. By comparison to the Linear Extrapolation prediction of Figure 2, the Predict 2 Pole indicator has a more consistent prediction. For example, there is little or no overshoot in February or March while still giving good predictions in April and May.
Input parameters can be varied to adjust the appearance of the prediction. You will find that the indicator is relatively insensitive to the BarsFwd input. The P2Period parameter primarily controls the gain of the prediction and the QQ parameter primarily controls the amount of prediction lead during trending sections of the indicator.
TAKEAWAYS
1. A more or less universal band limited “roofing filter” indicator was used to demonstrate the predictors. The HPPeriod input parameter is used to control whether the indicator looks more like a trend indicator or more like a cycle indicator. The LPPeriod input parameter is used to control the smoothness of the indicator.
2. A linear extrapolation predictor is formed by adding the difference of the two most recent data bars to the value of the last data bar. The result is considered to be a real data point and the process is repeated to extend the prediction into the future. This is an FIR filter having a one bar negative group delay at zero frequency, but the group delay is not constant across the spectrum. This variable group delay causes the linear extrapolation prediction to be inconsistent across a range of market conditions.
3. The degree of prediction by linear extrapolation can be controlled by varying the gain of the prediction to reduce the overshoot to be about the same amplitude as the peak swing of the indicator.
4. I was unable to experimentally derive a higher order FIR filter predictor that had advantages over the simple linear extrapolation predictor.
5. A Two Pole IIR predictor can be created by parametrically locating the conjugate pole positions.
6. The Two Pole predictor is a second order filter, which allows curvature into the prediction, thus mitigating overshoot. Further, the curvature is adaptive because the prediction depends on previously computed prediction values.
7. The Two Pole predictor is more consistent over a range of market conditions.
ADDITIONS
Loxx's Expanded source types:
Library for expanded source types:
Explanation for expanded source types:
Three different signal types: 1) Prediction/Filter crosses; 2) Prediction middle crosses; and, 3) Filter middle crosses.
Bar coloring to color trend.
Signals, both Long and Short.
Alerts, both Long and Short.
Normalized, Variety, Fast Fourier Transform Explorer [Loxx]Normalized, Variety, Fast Fourier Transform Explorer demonstrates Real, Cosine, and Sine Fast Fourier Transform algorithms. This indicator can be used as a rule of thumb but shouldn't be used in trading.
What is the Discrete Fourier Transform?
In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency. The interval at which the DTFT is sampled is the reciprocal of the duration of the input sequence. An inverse DFT is a Fourier series, using the DTFT samples as coefficients of complex sinusoids at the corresponding DTFT frequencies. It has the same sample-values as the original input sequence. The DFT is therefore said to be a frequency domain representation of the original input sequence. If the original sequence spans all the non-zero values of a function, its DTFT is continuous (and periodic), and the DFT provides discrete samples of one cycle. If the original sequence is one cycle of a periodic function, the DFT provides all the non-zero values of one DTFT cycle.
What is the Complex Fast Fourier Transform?
The complex Fast Fourier Transform algorithm transforms N real or complex numbers into another N complex numbers. The complex FFT transforms a real or complex signal x in the time domain into a complex two-sided spectrum X in the frequency domain. You must remember that zero frequency corresponds to n = 0, positive frequencies 0 < f < f_c correspond to values 1 ≤ n ≤ N/2 −1, while negative frequencies −fc < f < 0 correspond to N/2 +1 ≤ n ≤ N −1. The value n = N/2 corresponds to both f = f_c and f = −f_c. f_c is the critical or Nyquist frequency with f_c = 1/(2*T) or half the sampling frequency. The first harmonic X corresponds to the frequency 1/(N*T).
The complex FFT requires the list of values (resolution, or N) to be a power 2. If the input size if not a power of 2, then the input data will be padded with zeros to fit the size of the closest power of 2 upward.
What is Real-Fast Fourier Transform?
Has conditions similar to the complex Fast Fourier Transform value, except that the input data must be purely real. If the time series data has the basic type complex64, only the real parts of the complex numbers are used for the calculation. The imaginary parts are silently discarded.
What is the Real-Fast Fourier Transform?
In many applications, the input data for the DFT are purely real, in which case the outputs satisfy the symmetry
X(N-k)=X(k)
and efficient FFT algorithms have been designed for this situation (see e.g. Sorensen, 1987). One approach consists of taking an ordinary algorithm (e.g. Cooley–Tukey) and removing the redundant parts of the computation, saving roughly a factor of two in time and memory. Alternatively, it is possible to express an even-length real-input DFT as a complex DFT of half the length (whose real and imaginary parts are the even/odd elements of the original real data), followed by O(N) post-processing operations.
It was once believed that real-input DFTs could be more efficiently computed by means of the discrete Hartley transform (DHT), but it was subsequently argued that a specialized real-input DFT algorithm (FFT) can typically be found that requires fewer operations than the corresponding DHT algorithm (FHT) for the same number of inputs. Bruun's algorithm (above) is another method that was initially proposed to take advantage of real inputs, but it has not proved popular.
There are further FFT specializations for the cases of real data that have even/odd symmetry, in which case one can gain another factor of roughly two in time and memory and the DFT becomes the discrete cosine/sine transform(s) (DCT/DST). Instead of directly modifying an FFT algorithm for these cases, DCTs/DSTs can also be computed via FFTs of real data combined with O(N) pre- and post-processing.
What is the Discrete Cosine Transform?
A discrete cosine transform ( DCT ) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT , first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in signal processing and data compression. It is used in most digital media, including digital images (such as JPEG and HEIF, where small high-frequency components can be discarded), digital video (such as MPEG and H.26x), digital audio (such as Dolby Digital, MP3 and AAC ), digital television (such as SDTV, HDTV and VOD ), digital radio (such as AAC+ and DAB+), and speech coding (such as AAC-LD, Siren and Opus). DCTs are also important to numerous other applications in science and engineering, such as digital signal processing, telecommunication devices, reducing network bandwidth usage, and spectral methods for the numerical solution of partial differential equations.
The use of cosine rather than sine functions is critical for compression, since it turns out (as described below) that fewer cosine functions are needed to approximate a typical signal, whereas for differential equations the cosines express a particular choice of boundary conditions. In particular, a DCT is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using only real numbers. The DCTs are generally related to Fourier Series coefficients of a periodically and symmetrically extended sequence whereas DFTs are related to Fourier Series coefficients of only periodically extended sequences. DCTs are equivalent to DFTs of roughly twice the length, operating on real data with even symmetry (since the Fourier transform of a real and even function is real and even), whereas in some variants the input and/or output data are shifted by half a sample. There are eight standard DCT variants, of which four are common.
The most common variant of discrete cosine transform is the type-II DCT , which is often called simply "the DCT". This was the original DCT as first proposed by Ahmed. Its inverse, the type-III DCT , is correspondingly often called simply "the inverse DCT" or "the IDCT". Two related transforms are the discrete sine transform ( DST ), which is equivalent to a DFT of real and odd functions, and the modified discrete cosine transform (MDCT), which is based on a DCT of overlapping data. Multidimensional DCTs ( MD DCTs) are developed to extend the concept of DCT to MD signals. There are several algorithms to compute MD DCT . A variety of fast algorithms have been developed to reduce the computational complexity of implementing DCT . One of these is the integer DCT (IntDCT), an integer approximation of the standard DCT ,: ix, xiii, 1, 141–304 used in several ISO /IEC and ITU-T international standards.
What is the Discrete Sine Transform?
In mathematics, the discrete sine transform (DST) is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using a purely real matrix. It is equivalent to the imaginary parts of a DFT of roughly twice the length, operating on real data with odd symmetry (since the Fourier transform of a real and odd function is imaginary and odd), where in some variants the input and/or output data are shifted by half a sample.
A family of transforms composed of sine and sine hyperbolic functions exists. These transforms are made based on the natural vibration of thin square plates with different boundary conditions.
The DST is related to the discrete cosine transform (DCT), which is equivalent to a DFT of real and even functions. See the DCT article for a general discussion of how the boundary conditions relate the various DCT and DST types. Generally, the DST is derived from the DCT by replacing the Neumann condition at x=0 with a Dirichlet condition. Both the DCT and the DST were described by Nasir Ahmed T. Natarajan and K.R. Rao in 1974. The type-I DST (DST-I) was later described by Anil K. Jain in 1976, and the type-II DST (DST-II) was then described by H.B. Kekra and J.K. Solanka in 1978.
Notable settings
windowper = period for calculation, restricted to powers of 2: "16", "32", "64", "128", "256", "512", "1024", "2048", this reason for this is FFT is an algorithm that computes DFT (Discrete Fourier Transform) in a fast way, generally in 𝑂(𝑁⋅log2(𝑁)) instead of 𝑂(𝑁2). To achieve this the input matrix has to be a power of 2 but many FFT algorithm can handle any size of input since the matrix can be zero-padded. For our purposes here, we stick to powers of 2 to keep this fast and neat. read more about this here: Cooley–Tukey FFT algorithm
SS = smoothing count, this smoothing happens after the first FCT regular pass. this zeros out frequencies from the previously calculated values above SS count. the lower this number, the smoother the output, it works opposite from other smoothing periods
Fmin1 = zeroes out frequencies not passing this test for min value
Fmax1 = zeroes out frequencies not passing this test for max value
barsback = moves the window backward
Inverse = whether or not you wish to invert the FFT after first pass calculation
Related indicators
Real-Fast Fourier Transform of Price Oscillator
STD-Stepped Fast Cosine Transform Moving Average
Real-Fast Fourier Transform of Price w/ Linear Regression
Variety RSI of Fast Discrete Cosine Transform
Additional reading
A Fast Computational Algorithm for the Discrete Cosine Transform by Chen et al.
Practical Fast 1-D DCT Algorithms With 11 Multiplications by Loeffler et al.
Cooley–Tukey FFT algorithm
Ahmed, Nasir (January 1991). "How I Came Up With the Discrete Cosine Transform". Digital Signal Processing. 1 (1): 4–5. doi:10.1016/1051-2004(91)90086-Z.
DCT-History - How I Came Up With The Discrete Cosine Transform
Comparative Analysis for Discrete Sine Transform as a suitable method for noise estimation
Lower TimeFrame Mini Candle[rsu]Lower Timeframe mini Candle
It is used to display the candle chart status of the small period 30m and 5m period through One Chart in the large period (day, or 8h, Week),
The period and window offset of the left and right windows can be set to suit your desktop resolution requirements.
Alert
Alert can be added to trigger when the stock price touches 200ma, please set the alert in the Day period.
It will trigger the alert at both 5m and 30m period.
DominantCycleCollection of Dominant Cycle estimators. Length adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly). This collection may become encyclopaedic, so if you have any working cycle estimator, drop me a line in the comments below. Suggestions are welcome. Currently included estimators are based on the work of John F. Ehlers
mamaPeriod(src, dynLow, dynHigh) MESA Adaptation - MAMA Cycle
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
Returns: Calculated period
Based on MESA Adaptive Moving Average by John F. Ehlers
Performs Hilbert Transform Homodyne Discriminator cycle measurement
Unlike MAMA Alpha function (in LengthAdaptation library), this does not compute phase rate of change
Introduced in the September 2001 issue of Stocks and Commodities
Inspired by the @everget implementation:
Inspired by the @anoojpatel implementation:
paPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Pearson Autocorrelation
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hann Windowing prefilter
Returns: Calculated period
Based on Pearson Autocorrelation Periodogram by John F. Ehlers
Introduced in the September 2016 issue of Stocks and Commodities
Inspired by the @blackcat1402 implementation:
Inspired by the @rumpypumpydumpy implementation:
Corrected many errors, and made small speed optimizations, so this could be the best implementation to date (still slow, though, so may revisit in future)
High Pass and Super Smoother prefilters are used in the original implementation
dftPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Discrete Fourier Transform
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hann Windowing prefilter
Returns: Calculated period
Based on Spectrum from Discrete Fourier Transform by John F. Ehlers
Inspired by the @blackcat1402 implementation:
High Pass, Super Smoother and Hann Windowing prefilters are used in the original implementation
phasePeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Phase Accumulation
Parameters:
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter (default)
preSS : Use Super Smoother prefilter (default)
preHP : Use Hamm Windowing prefilter
Returns: Calculated period
Based on Dominant Cycle from Phase Accumulation by John F. Ehlers
High Pass and Super Smoother prefilters are used in the original implementation
doAdapt(type, src, len, dynLow, dynHigh, chandeSDLen, chandeSmooth, chandePower, preHP, preSS, preHP) Execute a particular Length Adaptation or Dominant Cycle Estimator from the list
Parameters:
type : Length Adaptation or Dominant Cycle Estimator type to use
src : Series to use
len : Reference lookback length
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
chandeSDLen : Lookback length of Standard deviation for Chande's Dynamic Length
chandeSmooth : Smoothing length of Standard deviation for Chande's Dynamic Length
chandePower : Exponent of the length adaptation for Chande's Dynamic Length (lower is smaller variation)
preHP : Use High Pass prefilter for the Estimators that support it (default)
preSS : Use Super Smoother prefilter for the Estimators that support it (default)
preHP : Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
doEstimate(type, src, dynLow, dynHigh, preHP, preSS, preHP) Execute a particular Dominant Cycle Estimator from the list
Parameters:
type : Dominant Cycle Estimator type to use
src : Series to use
dynLow : Lower bound for the dynamic length
dynHigh : Upper bound for the dynamic length
preHP : Use High Pass prefilter for the Estimators that support it (default)
preSS : Use Super Smoother prefilter for the Estimators that support it (default)
preHP : Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
Volatility Percentile🎲 Volatility is an important measure to be included in trading plan and strategy. Strategies have varied outcome based on volatility of the instruments in hand.
For example,
🚩 Trend following strategies work better on low volatility instruments and reversal patterns work better in high volatility instruments. It is also important for us to understand the median volatility of an instrument before applying particular strategy strategy on them.
🚩 Different instrument will have different volatility range. For instance crypto currencies have higher volatility whereas major currency pairs have lower volatility with respect to their price. It is also important for us to understand if the current volatility of the instrument is relatively higher or lower based on the historical values.
This indicator is created to study and understand more about volatility of the instruments.
⬜ Process
▶ Volatility metric used here is ATR as percentage of price. Other things such as bollinger bandwidth etc can also be used with few changes.
▶ We use array based counters to count ATR values in different range. For example, if we are measuring ATR range based on precision 2, we will use array containing 10000 values all initially set to 0 which act as 10000 buckets to hold counters of different range. But, based on the ATR percentage range, they will be incremented. Let's say, if atr percent is 2, then 200th element of the array is increased by 1.
▶ When we do this for every bar, we have array of counters which has the division on how many bars had what range of atr percent.
▶ Using this array, we can calculate how many bars had atr percent more than current value, how many had less than current value, and how many bars in history has same atr percent as current value.
▶ With these information, we can calculate the percentile of atr percentage value. We can also plot a detailed table mentioning what percentile each range map to.
⬜ Settings
▶ ATR Parameters - this include Moving average type and Length for atr calculation.
▶ Rounding type refers to rounding ATR percentage value before we put into certain bucket. For example, if ATR percentage 2.7, round or ceil will make it 3, whereas floor will make it 2 which may fall into different buckets based on the precision selected.
▶ Precision refers to how much detailed the range should be. If precision set to 0, then we get array of 100 to collect the range where each value will represent a range of 1%. Similarly precision of 1 will lead to array of 1000 with each item representing range of 0.1. Default value used is 2 which is also the max precision possible in this script. This means, we use array of 10000 to track the range and percentile of the ATR.
▶ Display Settings - Inverse when applied track percentile with respect to lowest value of ATR instead of high. By default this is set to false. Other two options allow users to enable stats table. When detailed stats are enabled, ATR Percentile as plot is hidden.
▶ Table Settings - Allows users to select set size and coloring options.
▶ Indicator Time Window - Allow users to select particular timeframe instead of all available bars to run the study. By default windows are disabled. Users can chose start and end time individually.
Indicator display components can be described as below:
TASC 2021.12 Directional Movement w/Hann█ OVERVIEW
Presented here is code for the "Directional Movement w/Hann" indicator originally conceived by John Ehlers. The code is also published in the December 2021 issue of Trader's Tips by Technical Analysis of Stocks & Commodities (TASC) magazine.
Ehlers continues here his exploration of the application of Hann windowing to conventional trading indicators.
█ FEATURES
The rolling length can be modified in the script's inputs, as well as the width of the line.
█ NOTES
Calculations
The calculation starts with the classic definition of PlusDM and MinusDM. These directional movements are summed in an exponential moving average (EMA). Then, this EMA is further smoothed in a finite impulse response (FIR) filter using Hann window coefficients over the calculation period.
Background
The DMI and ADX indicators were designed by J. Welles Wilder and presented in his "New Concepts in Technical Trading Systems" book published in 1978.
Join TradingView!
Ehlers Deviation Scaled Super Smoother [CC]The Deviation Scaled Super Smoother was created by John Ehlers and this is an excellent moving average that changes direction very quickly and can keep up with the current underlying trend. This indicator works by applying a Hann Windowed Moving Average to the stock's momentum and scaling that by the Root Mean Square and then using that value in the input for a Super Smoother . I have included strong buy and sell signals in addition to normal ones so lighter colors are normal signals and darker colors are strong ones. Buy when the line turns green and sell when it turns red.
Let me know if there are any other scripts you would like to see me publish!
sDEFI Synthetix ExchangeTradingView allows combining/summing up to a maximum of only 10 tickers in its search field. Their support staff suggested I could combine up to 40 by using Pine Script, so here it is, for a specific 'basket' of crypto tokens.
This study displays the combination of price history for Synthetix Exchange’s sDEFI index.
Tokens included in the index are COMP, MKR, KNC, SNX, ZRX, REP, LEND, REN, LRC, BNT, BAL and UMA. You will see the prices only go back as far as July 31st 2020, which is when the most recent of the compilation (UMA) started its trading history on TradingView. (The study can only display prices for days that *all* the tickers were trading.)
The price history will display as a study, below an existing chart. You will need to resize the windows, to see this study at a larger size. (Grab the window border and move it up, once you have added this study to a chart)
Unfortunately you will not be able to interact with it like a normal chart, i.e. drawing trendlines, adding moving averages, notes or annotations, etc.
May I suggest you send a support request to TradingView, asking for them to allow us to enter more than 10 (perhaps up to 40) tickers with + symbol between them, in the search field, which gives a ‘proper’ chart to analyse?
Please note that when publishing this script, I was required to choose a category from a list that does not contain a relevant category. Given that I had to choose something from the list to proceed, I used 'Support and Resistance', since chartists can see S and R levels by looking at this study.
I trust this study is useful for you sDEFI traders.
Nth Order Differencing Oscillator Perform higher order differencing through convolution, the result is equivalent to cascading N momentum oscillators of periods P :
mom(mom(mom(mom(x,P)...,P)
Settings
length - Period of the oscillator, indicate the lag to use (equivalent to the period in a momentum oscillator)
order - Differencing order, indicate how many times differencing is performed (number of times a momentum oscillator is cascaded)
src - Input of the indicator
Usage
Differencing consists in subtracting an input to a previous input, this is what the momentum oscillator performs. This is often done in order to remove longer-term variations in the price. Differencing also induces a 90-degree phase shift for all sinusoids in a signal, this is why oscillators can have this leading effect, as such higher differencing can sometimes help have a faster and more visible lead.
In red the indicator with period 50 and differencing order 2, below a momentum oscillator of the same period.
It is important to note that differencing is an operation that increases noise, in fact, you might have seen some oscillators use the median price hl2 instead of the closing price, this is because the median price contains less noise than the closing price, as such more differencing require a smoother input.
Here both the sma and the oscillator period are equal to 20 with a differencing order of 5.
In time series analysis the order of differencing is chosen depending on the order of integration, more simply put we should choose a differencing order that responds to the question: "How many time should I differentiate my time series so that the result is stationary?", for stocks prices this differencing order should be 1.
Technically speaking differencing orders higher than 3 might be overkill, as higher orders return noisier outputs that might no longer be representative of the original input.
here a period of 14 with differencing order of 20 is used, we can see more periodic results but they are not really representative of the closing prices.
Details
Simple differencing is actually achieved thought convolution, if we take a first-order difference x - x(1) , we can see that this is equivalent to 1*x + -1*x(1) , the coefficients are 1 and -1, for the momentum oscillator the difference is that the coefficients include 0 values. So we only need a function generating the coefficients of our Nth order difference oscillator, in order to get them lets analyze the impulse response of a cascaded change function.
Here 5 change function are cascaded, the coefficients are: (1,-5,10,-10,5,-1)
If you look at these coefficients and the ones of higher/lower order differences we can deduce various things
The impulse response is symmetric
The first coefficient is always 1 and the last always -1
The number of coefficients increase with higher differencing orders
The sign of the current coefficient is different from the sign of the previous one
From the shape of the impulse response, we can deduce that the coefficients of an Nth order differencing operator is a windowed series of 1,-1,1...,-1 , and that's actually the case, for an Nth order differencing operator the values of this window are given by the Nth row of the Pascal triangle.
There are various ways to get the values in the row of the Pascal triangle, one involving using the combination formula, however, we can do it way faster by using the recursive formula used in line number 13. Now that we have our coefficients we only need to separate them with 0 values and that's all.
Conclusion
We can see that oscillators are noisier than the original input signal, this is can be a desired effect in order to make lagging indicators more reactive, but it can also be overlooked due to the results appearing leading the price or just looking more predictable, however, we should note that higher-order differencing does not provide a consistent nor reliable solution toward minimizing lag, nor does classical oscillators.
The indicator is not useful, but if for some reason you require a lot of differencing operations to be done and don't want to use consecutive change or mom functions, then this script might results useful to you.
FX Meter ScriptA while ago, we wrote* about the usefulness of using a currency strength meter and how you can build one from scratch.
See here: www.globalprime.com.au
Now we've taken this little project to the next level by visually spotting, via color signals in a dashboard and alerts, when a potential new trend might be developing in a currency pair.
*It's critical that you first read that article before you jump into reading this one or else you could get easily lost.
The script gives a trigger every time two currencies show diverging flows via opposing moving average slopes.
The signals originate from a first chart where currency indexes can be found, calculated through a formula, in various thin lines. Then a moving average to each currency index is applied so that it can smooth out the lines (what I call Micro moving averages – thicker lines -) and is usually a 4-5 period MA, with the key input to pay attention being the slope. One can perform their own tests on what works best for their particular trading style. The smaller the period in the moving average, the more responsive to changes in biases but the downside is that you will get a greater number of false moves. In the windows below the 1st chart, the stochRSI is calculated for each currency index (these values originate from the currency index and not from the applied MA). By default, a 25-period is applied to both RSI and Stoch length.
A 2nd chart that looks at the same logic is also accounted for to build this script, but instead of checking the micro trend, it applies a 25MA to the currency index, so it looks at what I call the slope of the macro trend. In this case, by default, a 125-period is applied to both RSI and Stoch length.
We had in mind to transition from just eye-balling and monitoring these charts manually to build a script via Tradingview that makes calculations real time (whenever the change in the moving average slope first occurs, and not when the bar/line closes), so that one can decide whether or not its a signal worth trading as part of a new trend emerging. Note, this is not so much a signal-triggering indicator but rather a tool to constantly be on the lookout monitoring what currencies might start to develop trends.
The actual script consists of a dashboard with different colored rectangles being triggered depending on the quality of the signal.
We will be happy to discuss it further with anyone who is interested in exploiting all the benefits that it can offer.
The way you add the script into your Tradingview chart is by first copy everything in the txt file. Then go to Pine editor (bottom middle-left) in your tradingview chart, delete everything there, then Paste the script. Then click Add to Chart (top right of the pine editor).
Note, you should add via the Anchored Text function the following list of pairs below, in this alphabetic order, on the right-hand side of the chart, as demonstrated above:
AUDCAD
AUDJPY
AUDNZD
AUDUSD
CADJPY
EURAUD
EURJPY
EURCAD
EURNZD
EURGBP
EURUSD
GBPAUD
GBPCAD
GBPJPY
GBPNZD
GBPUSD
NZDCAD
NZDJPY
NZDUSD
USDCAD
USDJPY
There are only 2 rules for the script to trigger a signal (see below). However, as I will elaborate further down, there are up to 6 different colors we can grade a signal
RULE 1 -> 2 moving averages, which are a calculation applied to a currency index as shown in the micro trend above, exhibit slopes in the opposite direction.
RULE 2 -> The Stoch RSI cannot be in overbought conditions if the slope of the moving average points higher or in oversold if the slope points lower.
Note 1: Even if the chart is a 60m timeframe by default (can be changed to any timeframe(, one gets the signal the moment the change of slope is identified, which means the indicator monitors changes in price tick by tick, and not on a candle close, otherwise one would get the trigger too late.
As an example of the highest-graded signal triggering (in green), a few hours ago we were given the visual cue that GBPCAD was experiencing a change of behavior. If we crosscheck the time the green-colored trigger was given with the actual GBPCAD chart, this is what we can observe. The pair is 30p higher since the trigger.
HOW TO SETUP ALERTS
One can easily setup a notification window each time the above rules are met, for example, if the EUR MA slope changes to bullish, and the AUD MA slope changes to bearish, and none of the 2 currency index values corresponding to these 2 moving averages (EUR and AUD) show a stoch RSI in overbought (above 80) in the case of the EUR, or oversold (below 20) in the case of the AUD, then the notification pop up would show a customized line: Long EURAUD
Note 1: Recording the slope of the macro moving average, which is usually a 25period MA applied to the currency index, is not included as part of the rules to trigger a signal, but it is taken into account to grade the quality of each signal.
Note 2: I recommend each signal to be triggered once or if you prefer, simply monitor the chart visually on the change of colors via the dashboard. The calculation resets and can appear again the moment that the slope changes to the opposite direction, so it’s a very dynamic indicator that will alert you the second a pair of currencies starts trending.
Note 3: When the signal is triggered, the indicator draws a colored rectangle. Each signal notification should be colored based on the following logic below.
LOGIC TO QUALIFY SIGNALS
-> Any long micro position with Macro MA in full agreement (ie/ Long EURAUD, Macro EUR up, Macro AUD down) is highlighted with green color
-> Any long micro position with macro moving averages in partial agreement (for example Long EURAUD, Macro EUR up AUD up) is highlighted with blue color
-> Any long micro position with macro moving averages in full disagreement (for example Long EURAUD, Macro EUR down AUD up) is highlighted with magenta color
-> Any short micro position with macro moving averages in full agreement (for example Short EURAUD, Macro EUR down AUD up) is highlighted with red color
-> Any short micro position with macro moving averages in partial agreement (for example Short EURAUD, Macro EUR up AUD up) is highlighted with orange color
-> Any short micro position with macro moving averages in full disagreement (for example Short EURAUD, Macro EUR up AUD down) is highlighted with purple color
PARAMETERS IN THE SCRIPT SETTINGS
Overbought/oversold: One can modify the stoch RSI level from which the indicator considers the value to be in overbought or oversold conditions. As a rule of thumb, consider 20/30 for oversold and 70/80 for oversold.
Slopes micro/macro MAs: One can edit the slope of the micro MA period (rule of thumb 4-5) and the macro MA (by default 25).
Value StochRSI: The default inputs are K 3, D 3, RSI Length 25, Stoch Length 25 for the micro and 125 period for the macro.
Change colors: One can edit the assigned colors in the signals dashboard.
Timeframe applied: The indicator has the flexibility to be applied to any timeframe, not just the 60m by default. Simply change the timeframe temporality.
CURRENCY INDEXES FORMULAS
It is the responsibility of the user to keep the values of the indexes updated. Find a recent sample below, as per values in early April. What this means is that at least once a week, in order to not let the values outdated, you should update the script with the latest valuations in the denominator.
NZD INDEX -> FX_IDC:NZDAUD/0.96+FX:NZDJPY/75.81+FX:NZDUSD/0.68+FX_IDC:NZDEUR/0.6+FX_IDC:NZDGBP/0.52+FX:NZDCHF/0.69+FX:NZDCAD/0.9
EUR INDEX -> FX:EURUSD/1.13+FX:EURJPY/125.5+FX:EURGBP/0.87+FX:EURCHF/1.135+FX:EURCAD/1.49+FX:EURNZD/1.655+FX:EURAUD/1.59
JPY INDEX -> 1/(FX:USDJPY/110.5+FX:EURJPY/125.5+FX:AUDJPY/79+FX:NZDJPY/75.5+FX:GBPJPY/144.5+FX:CHFJPY/110.5+FX:CADJPY/84)
USD INDEX -> FX_IDC:USDEUR/0.88+FX:USDJPY/110.5+FX_IDC:USDGBP/0.77+FX:USDCHF+FX:USDCAD/1.315+FX_IDC:USDNZD/1.46+FX_IDC:USDAUD/1.4
CAD INDEX-> FX_IDC:CADAUD/1.07+FX_IDC:CADNZD/1.11+FX:CADJPY/84.27+FX_IDC:CADUSD/0.76+FX_IDC:CADEUR/0.67+FX:CADCHF/0.76+FX_IDC:CADGBP/0.58
GBP INDEX -> FX:GBPAUD/1.83+FX:GBPNZD/1.91+FX:GBPJPY/144.5+FX_IDC:GBPEUR/1.15+FX:GBPCHF/1.31+FX:GBPUSD/1.31+FX:GBPCAD/1.71
Remember, I have provided a manual on how to build a currency strength meter. That’s what you will need to do first if you want to obtain the actual currency indexes other than just the indicator, which is just the visual cue to get you alerted when the slopes turn.
Once you’ve created your indexes via tradingview, you then apply a moving average to each index. Then apply the stochrsi 25 period to each index. For the macro trend, I make the same calculations, but the period of the MA is 25 instead of 4, while the stoch rsi is 125 periods vs 25 periods.
FINAL NOTE
This is a tool that should be interpreted as visual assistance, via the dashboard, to get that first cue when opposing micro slopes via the FX meter occur. However, you still need to check the technical context of the pair (levels marked, proj reached, etc.) but that first cue is a major time saver to constantly spot what's trending in FX. The permutations u can play with, as part of this script, are significant. You can tweak the timeframes you use, the periods of the moving averages, etc. I find the micro and macro trend combos when either a green or red signals is triggered the most reliable, with positions to be exploited via 15m and hourly under the right technical context.
Alpha Chart Patterns [AlphaGroup.Live]What it does
Automatically detects classical patterns and draws clean, price-anchored annotations with a single, text-only label per pattern (no filled background). Each label includes the pattern name and bias (Bullish/Bearish). Uses confirmed pivots, so it’s non-repainting after confirmation.
Detected patterns:
Double Top / Double Bottom
Head & Shoulders / Inverse H&S
Triangles: Ascending, Descending, Symmetrical
How it works
The script builds swing structure from confirmed pivot highs/lows. Tolerance and minimum swing filters keep only meaningful structures. Triangle detection looks for falling highs / rising lows (or flat sides) within a configurable window. Drawings and labels are anchored to bar_index and the price scale so they follow candles when you pan/zoom.
Inputs
Pivot Left/Right Bars : pivot sensitivity (higher = stricter, fewer signals).
Level Tolerance (%) : how close “equal” highs/lows must be (double tops/bottoms, flat triangle sides).
Min Swing Size (%) : filters out tiny wiggles.
Triangles Window (bars) : max span used when validating triangles.
Max Lookback (bars) : limits how far back objects are drawn.
Label Offset (ATR) : vertical offset for labels to avoid covering price.
Draw Necklines / Borders : toggle helper lines.
Bullish/Bearish Text & Line Colors + Neutral Line Color : fully editable to match light/dark themes.
Alerts
One-shot alerts are provided for each pattern. After adding the script to your chart:
Create Alert → Condition: this script → choose the specific pattern event (e.g., “Ascending Triangle”). Alerts trigger once per newly labeled instance.
Tips
If drawings ever appear detached after manual scale changes, enable Pin to right scale in the script’s Style (or just toggle the indicator once).
For noisier markets/timeframes, increase Pivot Bars and/or Min Swing .
Combine with trend/volume for confirmation.
Non-repainting note
Patterns are confirmed using completed pivots (labels appear only after the swing completes), so past signals don’t repaint.
Known limitations
Classical pattern recognition is heuristic by nature. Structures can overlap, and triangle classifications may vary with tolerance choices. Tune inputs to your instrument/timeframe.
Open-source
Pine Script v6. Clone, tweak, and share improvements. Please credit “Alpha Chart Patterns” if you fork.
Change log
v1.0 — Initial release: DT/DB, H&S/Inverse, Asc/Desc/Sym triangles, editable colors, minimal labels, price-anchored drawings, one-shot alerts.
Overnight Gap Dominance Indicator (OGDI)The Overnight Gap Dominance Indicator (OGDI) measures the relative volatility of overnight price gaps versus intraday price movements for a given security, such as SPY or SPX. It uses a rolling standard deviation of absolute overnight percentage changes divided by the standard deviation of absolute intraday percentage changes over a customizable window. This helps traders identify periods where overnight gaps predominate, suggesting potential opportunities for strategies leveraging extended market moves.
Instructions
A
pply the indicator to your TradingView chart for the desired security (e.g., SPY or SPX).
Adjust the "Rolling Window" input to set the lookback period (default: 60 bars).
Modify the "1DTE Threshold" and "2DTE+ Threshold" inputs to tailor the levels at which you switch from 0DTE to 1DTE or multi-DTE strategies (default: 0.5 and 0.6).
Observe the OGDI line: values above the 1DTE threshold suggest favoring 1DTE strategies, while values above the 2DTE+ threshold indicate multi-DTE strategies may be more effective.
Use in conjunction with low VIX environments and uptrend legs for optimal results.
SmartPlusSmartPlus
Overview
The SmartPlus indicator is a complete framework for intraday traders. It combines key market reference points (VWAP, moving averages, and the first 15-minute high/low range) with predictive levels based on historical daily moves. Together, these elements allow traders to build directional bias, spot breakouts, and manage risk throughout the session.
Key Features
1. VWAP (Volume-Weighted Average Price)
- Plots the intraday VWAP in real time.
- VWAP acts as a central “fair value” reference point for institutional order flow.
- Price trading above VWAP generally suggests bullish bias, while below VWAP leans bearish.
2. Exponential Moving Averages (EMAs)
- Two configurable EMAs are included:
- Fast EMA (default: 21 periods)
- Slow EMA (default: 34 periods)
- Each EMA is plotted with a single, user-selectable color for clarity.
- Crossovers or alignment between price, VWAP, and EMAs help define market structure.
3. Smart Bar Coloring
- Candles automatically change color when conditions align:
- Bull Zone: Price above VWAP, Fast EMA, and Slow EMA.
- Bear Zone: Price below VWAP, Fast EMA, and Slow EMA.
- Fluorescent bar coloring helps highlight momentum zones visually without additional analysis.
4. First 15-Minute High/Low/Mid (Automatic)
- Automatically detects the first 15 minutes of each new trading day (no manual input required).
- Plots horizontal lines for:
- First 15-Minute High (green)
- First 15-Minute Low (red)
- Midpoint of that range (gray)
- Once the initial 15-minute window ends, these levels remain projected throughout the session as breakout or support/resistance zones.
- Alerts trigger when price breaks above the high or below the low after the window.
5. Daily Support/Resistance Forecast
- Uses a rolling lookback of recent daily ranges (default: 126 days).
- Tracks average up moves and down moves from the daily open.
- Optionally incorporates standard deviation for wider confidence bands.
- Plots forecast levels above/below the current day’s open for reference.
Trading Logic (How to Use)
- Bullish Bias:
- Price is above VWAP, above both EMAs, and ideally above the first 15-minute high.
- This setup suggests trend continuation or breakout opportunities on the long side.
- Bearish Bias:
- Price is below VWAP, below both EMAs, and ideally below the first 15-minute low.
- This setup suggests downward pressure or breakout opportunities on the short side.
- Neutral / Caution Zone:
- Price caught between VWAP, EMAs, or inside the 15-minute range often signals indecision.
- Best to wait for confirmation or breakout before committing to trades.
Expectations After Using It
- The script provides context and structure, not trading signals.
- It highlights where price is relative to meaningful market levels so traders can act with greater confidence.
- Combining VWAP, EMAs, and the 15-minute breakout framework helps traders stay aligned with the market’s natural rhythm.
Disclaimer
This script is a tool for market analysis and educational purposes only.
It does not constitute financial advice, trading recommendations, or guaranteed profitability.
Markets are inherently risky, and past patterns do not ensure future results.
Always combine this tool with sound risk management, personal research, and professional guidance before making any trading decisions.
Golden Launch Pad🔰 Golden Launch Pad
This indicator identifies high-probability bullish setups by analyzing the relationship between multiple moving averages (MAs). A “Golden Launch Pad” is formed when the following five conditions are met simultaneously:
📌 Launch Pad Criteria (all must be true):
MAs Are Tightly Grouped
The selected MAs must be close together, measured using the Z-score spread — the difference between the highest and lowest Z-scores of the MAs.
Z-scores are calculated relative to the average and standard deviation of price over a user-defined window.
This normalizes MA distance based on volatility, making the signal adaptive across different assets.
MAs Are Bullishly Stacked
The MAs must be in strict ascending order: MA1 > MA2 > MA3 > ... > MA(n).
This ensures the short-term trend leads the longer-term trend — a classic sign of bullish structure.
All MAs Have Positive Slope
Each MA must be rising, based on a lookback period that is a percentage of its length (e.g. 30% of the MA’s bars).
This confirms momentum and avoids signals during sideways or weakening trends.
Price Is Above the Fastest MA
The current close must be higher than the first (fastest) moving average.
This adds a momentum filter and reduces false positives.
Price Is Near the MA Cluster
The current price must be close to the average of all selected MAs.
Proximity is measured in standard deviations (e.g. within 1.0), ensuring the price hasn't already made a large move away from the setup zone.
⚙️ Customization Options:
Use 2 to 6 MAs for the stack
Choose from SMA, EMA, WMA, VWMA for each MA
Adjustable Z-score window and spread threshold
Dynamic slope lookback based on MA length
Volatility-adjusted price proximity filter
🧠 Use Case:
This indicator helps traders visually and systematically detect strong continuation setups — often appearing before breakouts or sustained uptrends. It works well on intraday, swing, and positional timeframes across all asset classes.
For best results, combine with volume, breakout structure, or multi-timeframe confirmation.
X EMA EQThe X EMA EQ is a versatile technical analysis tool designed to overlay price action with customizable Exponential Moving Averages (EMAs) and real-time equilibrium levels. Ideal for intraday traders, it blends trend-following and mean-reversion concepts to highlight both directional bias and potential value zones.
🔹 Key Features:
1. Dual EMA Visualization
Plot up to two user-defined EMAs (default: 20 and 50 periods).
Independently toggle and style each EMA to suit your strategy.
Helps track short- and mid-term trend dynamics with clarity.
2. Running Equilibrium Bands
Displays a real-time dynamic price range based on the highest high and lowest low over a user-defined rolling window (default: 15 minutes).
Includes upper/lower quartile lines and a central midpoint, giving structure to intraday price movement.
Useful for identifying compression, breakouts, and fair value zones.
3. Linear Regression Overlay (Optional)
Apply a smoothed linear regression curve across the same time window.
Highlights directional momentum and price mean trajectory.
Valuable for assessing slope bias and trend strength over the equilibrium period.
4. Intraday Timeframe Optimization
Designed specifically for intraday charts with minute-based resolutions (30 seconds to 60 minutes).
Auto-adjusts logic based on the current chart’s timeframe.
5. Clean Visual Design
Minimalist and translucent color schemes ensure readability without clutter.
All components are independently toggleable for full customization.
⚙️ Settings Overview:
EMA Settings: Enable/disable each EMA, set lengths and colors.
Time & Price Settings: Define the running equilibrium period (in minutes), control visibility of bands and regression line, and adjust styling.
X EMA EQ offers a compact yet powerful visual framework for traders seeking to align with short-term trend structure while keeping an eye on evolving price balance zones.
NY HIGH LOW BREAKNY HIGH LOW BREAK: A New York Session Breakout Strategy
The "NY HIGH LOW BREAK" indicator is a powerful TradingView script designed to identify and capitalize on breakout opportunities during the New York trading session. This strategy focuses on the initial price action of the New York market open, looking for clear breaches of the high or low established within the first 30 minutes. It's particularly suited for intraday traders who seek to capture momentum-driven moves.
Strategy Logic
The core of the "NY HIGH LOW BREAK" strategy revolves around these key components:
New York Session Opening Range Identification:
The script first identifies the opening range of the New York session. This is defined by the high and low prices established during the first 30 minutes of the New York trading session (from 7:01 AM GMT-4 to 7:31 AM GMT-4).
These crucial levels are then extended forward on the chart as horizontal lines, serving as potential support and resistance zones.
Breakout Signal Generation:
Long Signal: A buy signal is generated when the price breaks above the high of the New York opening range. Specifically, it looks for a candle whose open and close are both above the highLinePrice, and importantly, the previous candle's open was below and close was above the highLinePrice. This indicates a strong upward momentum confirming the breakout.
Short Signal: Conversely, a sell signal is generated when the price breaks below the low of the New York opening range. It looks for a candle whose open and close are both below the lowLinePrice, and the previous candle's open was above and close was below the lowLinePrice. This suggests strong downward momentum confirming the breakdown.
Supertrend Filter (Implicit/Future Enhancement):
While the supertrend and direction variables are present in the code, they are not actively used in the current signal generation logic. This suggests a potential future enhancement where the Supertrend indicator could be incorporated as a trend filter to confirm breakout directions, adding an extra layer of confluence to the signals. For example, only taking long breakouts when Supertrend indicates an uptrend, and short breakouts when Supertrend indicates a downtrend.
Second Candle Confirmation (Possible Future Enhancement):
The close_sec_candle function and openSEC, closeSEC variables indicate an attempt to capture the open and close of a "second candle" (30 minutes after the initial New York open). Currently, closeSEC is used in a specific condition for signal_way but not directly in the primary longSignal or shortSignal logic. This also suggests a potential future refinement where the price action of this second candle could be used for further confirmation or specific entry criteria.
Time-Based Filtering:
Signals are only considered valid within a specific trading window from 8:00 AM GMT-4 to 8:00 AM GMT-4 + 16 * 30 minutes (which is 480 minutes, or 8 hours) on 1-minute and 5-minute timeframes. This ensures that trades are taken during the most active and volatile periods of the New York session, avoiding late-session chop.
The script also highlights the New York session and lunch hours using background colors, providing visual context to the trading day.
Key Features
Automated New York Open Range Detection: The script automatically identifies and plots the high and low of the first 30 minutes of the New York trading session.
Clear Breakout Signals: Visually distinct "BUY" and "SELL" labels appear on the chart when a breakout occurs, making it easy to spot trading opportunities.
Timeframe Adaptability: While optimized for 1-minute and 5-minute timeframes for signal generation, the opening range lines can be displayed on various timeframes.
Customizable Risk-to-Reward (RR): The rr input allows users to define their preferred risk-to-reward ratio for potential trades, although it's not directly implemented in the current signal or trade management logic. This could be used by traders for manual trade management.
Visual Session and Lunch Highlights: The script colors the background to clearly delineate the New York trading session and the lunch break, helping traders understand the market context.
How to Use
Apply the Indicator: Add the "NY HIGH LOW BREAK" indicator to your chart on TradingView.
Select a Relevant Timeframe: For optimal signal generation, use 1-minute or 5-minute timeframes.
Observe the Opening Range: The green and red lines represent the high and low of the first 30 minutes of the New York session.
Look for Breakouts: Wait for price to decisively break above the green line (for a buy) or below the red line (for a sell).
Confirm Signals: The "BUY" or "SELL" labels will appear on the chart when the breakout conditions are met within the active trading window.
Implement Your Risk Management: Use your preferred risk management techniques, including stop-loss and take-profit levels, in conjunction with the signals generated. The rr input can guide your manual risk-to-reward calculations.
Potential Enhancements & Considerations
Supertrend Confirmation: Integrating the supertrend variable to filter signals would significantly enhance the strategy's robustness by aligning trades with the prevailing trend.
Stop-Loss and Take-Profit Automation: The rr input currently serves as a manual guide. Future versions could integrate automated stop-loss and take-profit placement based on this ratio, potentially using ATR for dynamic sizing.
Volume Confirmation: Adding a volume filter to confirm breakouts would ensure that only high-conviction moves are traded.
Backtesting and Optimization: Thorough backtesting across various assets and market conditions is crucial to determine the optimal settings and profitability of this strategy.
Session Times: The current session times are hardcoded. Making these user-definable inputs would allow for greater flexibility across different time zones and trading preferences.
The "NY HIGH LOW BREAK" is a straightforward yet effective strategy for capturing initial New York session momentum. By focusing on clear breakout levels, it aims to provide timely and actionable trading signals for intraday traders.