Test OHLCV LibraryThis indicator, "Test OHLCV Library," serves as a practical example of how to use the OHLCVData library to fetch historical candle data from a specific timeframe (like 4H) in a way that is largely impervious to the chart's currently selected time frame.
Here's a breakdown of its purpose and how it addresses request.security limitations:
Indicator Purpose:
The main goal of this indicator is to demonstrate and verify that the OHLCVData library can reliably provide confirmed historical OHLCV data for a user-specified timeframe (e.g., 4H), and that a collection of these data points (the last 10 completed candles) remains consistent even when the user switches the chart's time frame (e.g., from 5-second to Daily).
It does this by:
Importing the OHLCVData library.
Using the library's getTimeframeData function on every bar of the chart.
Checking the isTargetBarClosed flag returned by the library to identify the exact moment a candle in the target timeframe (e.g., 4H) has closed.
When isTargetBarClosed is true, it captures the confirmed OHLCV data provided by the library for that moment and stores it in a persistent var array.
It maintains a list of the last 10 captured historical 4H candle opens in this array.
It displays these last 10 confirmed opens in a table.
It uses the isAdjustedToChartTF flag from the library to show a warning if the chart's time frame is higher than the target timeframe, indicating that the data fetched by request.security is being aligned to that higher resolution.
Circumventing request.security Limitations:
The primary limitation of request.security that this setup addresses is the challenge of getting a consistent, non-repainting collection of historical data points from a different timeframe when the chart's time frame is changed.
The Problem: Standard request.security calls, while capable of fetching data from other timeframes, align that data to the bars of the current chart. When you switch the chart's time frame, the set of chart bars changes, and the way the requested data aligns to these new bars changes. If you simply collected data on every chart bar where request.security returned a non-na value, the resulting collection would differ depending on the chart's resolution. Furthermore, using request.security without lookahead=barmerge.lookahead_off or an offset ( ) can lead to repainting on historical bars, where values change as the script recalculates.
How the Library/Indicator Setup Helps:
Confirmed Data: The OHLCVData library uses lookahead=barmerge.lookahead_off and, more importantly, provides the isTargetBarClosed flag. This flag is calculated using a reliable method (checking for a change in the target timeframe's time series) that accurately identifies the precise chart bar corresponding to the completion of a candle in the target timeframe (e.g., a 4H candle), regardless of the chart's time frame.
Precise Capture: The indicator only captures and stores the OHLCV data into its var array when this isTargetBarClosed flag is true. This means it's capturing the confirmed, finalized data for the target timeframe candle at the exact moment it closes.
Persistent Storage: The var array in the indicator persists its contents across the bars of the chart's history. As the script runs through the historical bars, it selectively adds confirmed 4H candle data points to this array only when the trigger is met.
Impervious Collection: Because the array is populated based on the completion of the target timeframe candles (detected reliably by the library) rather than simply collecting data on every chart bar, the final contents of the array (the list of the last 10 confirmed 4H opens) will be the same regardless of the chart's time frame. The table then displays this static collection.
In essence, this setup doesn't change how request.security fundamentally works or aligns data to the chart's bars. Instead, it uses the capabilities of request.security (fetching data from another timeframe) and Pine Script's execution model (bar-by-bar processing, var persistence) in a specific way, guided by the library's logic, to build a historical collection of data points that represent the target timeframe's candles and are independent of the chart's display resolution.
Cari dalam skrip untuk "change"
BySq - Market PsychologyThe script I provided is a Market Psychology Index indicator for TradingView, which focuses on three key psychological market phases:
FOMO (Fear of Missing Out)
Panic Selling
Reversal
This indicator uses volume, price changes, and specific time periods to gauge market sentiment. Let me break it down:
1. Input Parameters:
FOMO Period: Defines how many bars (candles) the FOMO index will consider for its calculation.
Panic Period: Defines the period to evaluate Panic Selling.
Reversal Period: Defines the period to evaluate potential price reversals.
You can adjust these periods based on your analysis preferences. The default for each period is 14.
2. FOMO Index:
The FOMO Index aims to capture the "fear of missing out" behavior in the market.
It uses volume and price change:
Volume is compared to the Simple Moving Average (SMA) of volume over the specified period.
Price change is calculated as the percentage change in price compared to the previous bar.
If both volume and price change indicate strong upward movement, the FOMO index spikes.
3. Panic Selling Index:
The Panic Selling Index captures when traders are selling out of fear, often in a rapid or irrational way.
Similar to the FOMO Index, it considers volume and price change:
It uses volume and compares it to the SMA of volume for the panic period.
Price change is negative, meaning it considers only price drops.
When there is high volume coupled with significant price drops, it signals panic selling.
4. Reversal Index:
The Reversal Index aims to detect potential trend reversals in the market.
This index also considers volume and price change:
It focuses on upward price movement and compares volume to its SMA.
If there’s strong upward price movement along with increasing volume, it signals the possibility of a price reversal.
5. Graphical Output:
Histograms are drawn on the chart for each of the three indices:
FOMO is shown in green (indicating the presence of FOMO) and red (when the index is low).
Panic Selling is shown in orange.
Reversal is shown in purple.
The Zero Line (horizontal dotted line) helps identify when any of the indices is positive or negative.
6. Labels:
Labels for each index are shown on the chart at the relevant bar when the index spikes.
FOMO is labeled "FOMO" in green when it spikes.
Panic Selling is labeled "Panic Selling" in orange when it spikes.
Reversal is labeled "Reversal" in purple when it spikes.
Additionally, period labels show above the chart, indicating the specific periods (FOMO, Panic, and Reversal periods) currently being applied. This provides clarity on what time frame each index is analyzing.
7. How to Use:
FOMO: High values may indicate that traders are buying out of fear of missing out on a rally, suggesting a potentially overheated market.
Panic Selling: High values could suggest irrational selling behavior or capitulation, potentially marking the bottom of a downtrend.
Reversal: High values signal the potential for a market reversal, where the price could change direction due to increased volume and upward movement.
8. Visual Appearance:
The indicator’s histograms change colors based on the level of market sentiment detected. The color-coded approach provides an easy-to-read visual representation of different psychological phases in the market.
The horizontal zero line allows easy differentiation between positive and negative values.
Summary:
This script combines the psychology of the market (FOMO, Panic Selling, and Reversal) into a set of indicators that help traders identify potential turning points or emotional states in the market. By focusing on volume and price change, the script attempts to give a clear picture of market sentiment and possible future movements.
Follow Line Strategy Version 2.5 (React HTF)Follow Line Strategy v2.5 (React HTF) - TradingView Script Usage
This strategy utilizes a "Follow Line" concept based on Bollinger Bands and ATR to identify potential trading opportunities. It includes advanced features like optional working hours filtering, higher timeframe (HTF) trend confirmation, and improved trend-following entry/exit logic. Version 2.5 introduces reactivity to HTF trend changes for more adaptive trading.
Key Features:
Follow Line: The core of the strategy. It dynamically adjusts based on price breakouts beyond Bollinger Bands, using either the low/high or ATR-adjusted levels.
Bollinger Bands: Uses a standard Bollinger Bands setup to identify overbought/oversold conditions.
ATR Filter: Optionally uses the Average True Range (ATR) to adjust the Follow Line offset, providing a more dynamic and volatility-adjusted entry point.
Optional Trading Session Filter: Allows you to restrict trading to specific hours of the day.
Higher Timeframe (HTF) Confirmation: A significant feature that allows you to confirm trade signals with the trend on a higher timeframe. This can help to filter out false signals and improve the overall win rate.
HTF Selection Method: Choose between Auto and Manual HTF selection:
Auto: The script automatically determines the appropriate HTF based on the current chart timeframe (e.g., 1min -> 15min, 5min -> 4h, 1h -> 1D, Daily -> Monthly).
Manual: Allows you to select a specific HTF using the Manual Higher Timeframe input.
Trend-Following Entries/Exits: The strategy aims to enter trades in the direction of the established trend, using the Follow Line to define the trend.
Reactive HTF Trend Changes: v2.5 exits positions not only based on the trade timeframe (TTF) trend changing, but also when the higher timeframe trend reverses against the position. This makes the strategy more responsive to larger market movements.
Alerts: Provides buy and sell alerts for convenient trading signal notifications.
Visualizations: Plots the Follow Line for both the trade timeframe and the higher timeframe (optional), making it easy to understand the strategy's logic.
How to Use:
Add to Chart: Add the "Follow Line Strategy Version 2.5 (React HTF)" script to your TradingView chart.
Configure Settings: Customize the strategy's settings to match your trading style and preferences. Here's a breakdown of the key settings:
Indicator Settings:
ATR Period: The period used to calculate the ATR. A smaller period is more sensitive to recent price changes.
Bollinger Bands Period: The period used for the Bollinger Bands calculation. A longer period results in smoother bands.
Bollinger Bands Deviation: The number of standard deviations from the moving average that the Bollinger Bands are plotted. Higher deviations create wider bands.
Use ATR for Follow Line Offset?: Enable to use ATR to calculate the Follow Line offset. Disable to use the simple high/low.
Show Trade Signals on Chart?: Enable to show BUY/SELL labels on the chart.
Time Filter:
Use Trading Session Filter?: Enable to restrict trading to specific hours of the day.
Trading Session: The trading session to use (e.g., 0930-1600 for regular US stock market hours). Use 0000-2400 for all hours.
Higher Timeframe Confirmation:
Enable HTF Confirmation?: Enable to use the HTF trend to filter trade signals. If enabled, only trades in the direction of the HTF trend will be taken.
HTF Selection Method: Choose between "Auto" and "Manual" HTF selection.
Manual Higher Timeframe: If "Manual" is selected, choose the specific HTF (e.g., 240 for 4 hours, D for daily).
Show HTF Follow Line?: Enable to plot the HTF Follow Line on the chart.
Understanding the Signals:
Buy Signal: The price breaks above the upper Bollinger Band, and the HTF (if enabled) confirms the uptrend.
Sell Signal: The price breaks below the lower Bollinger Band, and the HTF (if enabled) confirms the downtrend.
Exit Long: The trade timeframe trend changes to downtrend or the higher timeframe trend changes to downtrend.
Exit Short: The trade timeframe trend changes to uptrend or the higher timeframe trend changes to uptrend.
Alerts:
The script includes alert conditions for buy and sell signals. To set up alerts, click the "Alerts" button in TradingView and select the desired alert condition from the script. The alert message provides the ticker and interval.
Backtesting and Optimization:
Use TradingView's Strategy Tester to backtest the strategy on different assets and timeframes.
Experiment with different settings to optimize the strategy for your specific trading style and risk tolerance. Pay close attention to the ATR Period, Bollinger Bands settings, and the HTF confirmation options.
Tips and Considerations:
HTF Confirmation: The HTF confirmation can significantly improve the strategy's performance by filtering out false signals. However, it can also reduce the number of trades.
Risk Management: Always use proper risk management techniques, such as stop-loss orders and position sizing, when trading any strategy.
Market Conditions: The strategy may perform differently in different market conditions. It's important to backtest and optimize the strategy for the specific markets you are trading.
Customization: Feel free to modify the script to suit your specific needs. For example, you could add additional filters or entry/exit conditions.
Pyramiding: The pyramiding = 0 setting prevents multiple entries in the same direction, ensuring the strategy doesn't compound losses. You can adjust this value if you prefer to pyramid into winning positions, but be cautious.
Lookahead: The lookahead = barmerge.lookahead_off setting ensures that the HTF data is calculated based on the current bar's closed data, preventing potential future peeking bias.
Trend Determination: The logic for determining the HTF trend and reacting to changes is critical. Carefully review the f_calculateHTFData function and the conditions for exiting positions to ensure you understand how the strategy responds to different market scenarios.
Disclaimer:
This script is for informational and educational purposes only. It is not financial advice, and you should not trade based solely on the signals generated by this script. Always do your own research and consult with a qualified financial advisor before making any trading decisions. The author is not responsible for any losses incurred as a result of using this script.
GMO (Gyroscopic Momentum Oscillator) GMO
Overview
This indicator fuses multiple advanced concepts to give traders a comprehensive view of market momentum, volatility, and potential turning points. It leverages the Gyroscopic Momentum Oscillator (GMO) foundation and layers on IQR-based bands, dynamic ATR-adjusted OB/OS levels, torque filtering, and divergence detection. The outcome is a versatile tool that can assist in identifying both short-term squeezes and long-term reversal zones while detecting subtle shifts in momentum acceleration.
Key Components:
Gyroscopic Momentum Oscillator (GMO) – A physics-inspired metric capturing trend stability and momentum by treating price dynamics as “angle,” “angular velocity,” and “inertia.”
IQR Bands – Highlight statistically typical oscillation ranges, providing insight into short-term squeezes and potential near-term trend shifts.
ATR-Adjusted OB/OS Levels – Dynamic thresholds for overbought/oversold conditions, adapting to volatility, aiding in identifying long-term potential reversal zones.
Torque Filtering & Scaling – Smooths and thresholds torque (the rate of change of momentum) and visually scales it for clarity, indicating sudden force changes that may precede volatility adjustments.
Divergence Detection – Highlights potential reversal cues by comparing oscillator swings against price swings, revealing regular and hidden bullish/bearish divergences.
Conceptual Insights
IQR Bands (Short-Term Squeeze & Trend Direction):
Short-Term Momentum and Squeeze: The IQR (Interquartile Range) bands show where the oscillator tends to “live” statistically. When the GMO line hovers within compressed IQR bands, it can signal a momentum squeeze phase. Exiting these tight ranges often correlates with short-term breakout opportunities.
Trend Reversals: If the oscillator pushes beyond these IQR ranges, it may indicate an emerging short-term trend change. Traders can watch for GMO escaping the IQR “comfort zone” to anticipate a new directional move.
Dynamic OB/OS Levels (Long-Term Reversal Zones):
ATR-Based Adaptive Thresholds: Instead of static overbought/oversold lines, this tool uses ATR to adjust OB/OS boundaries. In calm markets, these lines remain closer to ±90. As volatility rises, they approach ±100, reflecting greater permissible swings.
Long-Term Trend Reversal Potential: If GMO hits these dynamically adjusted OB/OS extremes, it suggests conditions ripe for possible long-term trend reversals. Traders seeking major inflection points may find these adaptive levels more reliable than fixed thresholds.
Torque (Sudden Force & Directional Shifts):
Momentum Acceleration Insight: Torque represents the second derivative of momentum, highlighting how quickly momentum is changing. High positive torque suggests a rapidly strengthening bullish force, while high negative torque warns of sudden bearish pressure.
Early Warning & Stability/Volatility Adjustments: By monitoring torque spikes, traders can anticipate momentum shifts before price fully confirms them. This can signal imminent changes in stability or increased volatility phases.
Indicator Parameters and Usage
GMO-Related Inputs:
lenPivot (Default 100): Length for calculating the pivot line (slow market axis).
lenSmoothAngle (Default 200): Smooths the angle measure, reducing noise.
lenATR (Default 14): ATR period for scaling factor, linking price changes to volatility.
useVolatility (Default true): If true, volatility (ATR) influences inertia, adjusting momentum calculations.
useVolume (Default false): If true, volume affects inertia, adding a liquidity dimension to momentum.
lenVolSmoothing (Default 50): Smooths volume calculations if useVolume is enabled.
lenMomentumSmooth (Default 20): EMA smoothing of GMO for a cleaner oscillator line.
normalizeRange (Default true): Normalizes GMO to a fixed range for consistent interpretation.
lenNorm (Default 100): Length for normalization window, ensuring GMO’s scale adapts to recent extremes.
IQR Bands Settings:
iqrLength (Default 14): Period to compute the oscillator’s statistical IQR.
iqrMult (Default 1.5): Multiplier to define the upper and lower IQR-based bands.
ATR-Adjusted OB/OS Settings:
baseOBLevel (Fixed at 90) and baseOSLevel (Fixed at 90): Base lines for OB/OS.
atrPeriodForOBOS (Default 50): ATR length for adjusting OB/OS thresholds dynamically.
atrScaling (Default 0.2): Controls how strongly volatility affects OB/OS lines.
Torque Filtering & Visualization:
torqueSmoothLength (Default 10): EMA length to smooth raw torque values.
atrPeriodForTorque (Default 14): ATR period to determine torque threshold.
atrTorqueScaling (Default 0.5): Scales ATR for determining torque’s “significant” threshold.
torqueScaleFactor (Default 10.0): Multiplies the torque values for better visual prominence on the chart.
Divergence Inputs:
showDivergences (Default true): Toggles divergence signals.
lbR, lbL (Defaults 5): Pivot lookback periods to identify swing highs and lows.
rangeUpper, rangeLower: Bar constraints to validate potential divergences.
plotBull, plotHiddenBull, plotBear, plotHiddenBear: Toggles for each divergence type.
Visual Elements on the Chart
GMO Line (Blue) & Zero Line (Gray):
GMO line oscillates around zero. Positive territory hints bullish momentum, negative suggests bearish.
IQR Bands (Teal Lines & Yellow Fill):
Upper/lower bands form a statistical “normal range” for GMO. The median line (purple) provides a central reference. Contraction near these bands indicates a short-term squeeze, expansions beyond them can signal emerging short-term trend changes.
Dynamic OB/OS (Red & Green Lines):
Red line near +90 to +100: Overbought zone (dynamic).
Green line near -90 to -100: Oversold zone (dynamic).
Movement into these zones may mark significant, longer-term reversal potential.
Torque Histogram (Colored Bars):
Plotted below GMO. Green bars = torque above positive threshold (bullish acceleration).
Red bars = torque below negative threshold (bearish acceleration).
Gray bars = neutral range.
This provides early warnings of momentum shifts before price responds fully.
Precession (Orange Line):
Scaled for visibility, adds context to long-term angular shifts in the oscillator.
Divergence Signals (Shapes):
Circles and offset lines highlight regular or hidden bullish/bearish divergences, offering potential reversal signals.
Practical Interpretation & Strategy
Short-Term Opportunities (IQR Focus):
If GMO compresses within IQR bands, the market might be “winding up.” A break above/below these bands can signal a short-term trade opportunity.
Long-Term Reversal Zones (Dynamic OB/OS):
When GMO approaches these dynamically adjusted extremes, conditions may be ripe for a major trend shift. This is particularly useful for swing or position traders looking for significant turnarounds.
Monitoring Torque for Acceleration Cues:
Torque spikes can precede price action, serving as an early catalyst signal. If torque turns strongly positive, anticipate bullish acceleration; strongly negative torque may warn of upcoming bearish pressure.
Confirm with Divergences:
Divergences between price and GMO reinforce potential reversal or continuation signals identified by IQR, OB/OS, or torque. Use them to increase confidence in setups.
Tips and Best Practices
Combine with Price & Volume Action:
While the indicator is powerful, always confirm signals with actual price structure, volume patterns, or other trend-following tools.
Adjust Lengths & Periods as Needed:
Shorter lengths = more responsiveness but more noise. Longer lengths = smoother signals but greater lag. Tune parameters to match your trading style and timeframe.
Use ATR and Volume Settings Wisely:
If markets are highly volatile, consider useVolatility to refine momentum readings. If liquidity is key, enable useVolume.
Scaling Torque:
If torque bars are hard to read, increase torqueScaleFactor further. The scaling doesn’t affect logic—only visibility.
Conclusion
The “GMO + IQR Bands + ATR-Adjusted OB/OS + Torque Filtering (Scaled)” indicator presents a holistic framework for understanding market momentum across multiple timescales and conditions. By interpreting short-term squeezes via IQR bands, long-term reversal zones via adaptive OB/OS, and subtle acceleration changes through torque, traders can gain advanced insights into when to anticipate breakouts, manage risk around potential reversals, and fine-tune timing for entries and exits.
This integrated approach helps navigate complex market dynamics, making it a valuable addition to any technical analysis toolkit.
MultiLayer Acceleration/Deceleration Strategy [Skyrexio]Overview
MultiLayer Acceleration/Deceleration Strategy leverages the combination of Acceleration/Deceleration Indicator(AC), Williams Alligator, Williams Fractals and Exponential Moving Average (EMA) to obtain the high probability long setups. Moreover, strategy uses multi trades system, adding funds to long position if it considered that current trend has likely became stronger. Acceleration/Deceleration Indicator is used for creating signals, while Alligator and Fractal are used in conjunction as an approximation of short-term trend to filter them. At the same time EMA (default EMA's period = 100) is used as high probability long-term trend filter to open long trades only if it considers current price action as an uptrend. More information in "Methodology" and "Justification of Methodology" paragraphs. The strategy opens only long trades.
Unique Features
No fixed stop-loss and take profit: Instead of fixed stop-loss level strategy utilizes technical condition obtained by Fractals and Alligator to identify when current uptrend is likely to be over (more information in "Methodology" and "Justification of Methodology" paragraphs)
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Multilayer trades opening system: strategy uses only 10% of capital in every trade and open up to 5 trades at the same time if script consider current trend as strong one.
Short and long term trend trade filters: strategy uses EMA as high probability long-term trend filter and Alligator and Fractal combination as a short-term one.
Methodology
The strategy opens long trade when the following price met the conditions:
1. Price closed above EMA (by default, period = 100). Crossover is not obligatory.
2. Combination of Alligator and Williams Fractals shall consider current trend as an upward (all details in "Justification of Methodology" paragraph)
3. Acceleration/Deceleration shall create one of two types of long signals (all details in "Justification of Methodology" paragraph). Buy stop order is placed one tick above the candle's high of last created long signal.
4. If price reaches the order price, long position is opened with 10% of capital.
5. If currently we have opened position and price creates and hit the order price of another one long signal, another one long position will be added to the previous with another one 10% of capital. Strategy allows to open up to 5 long trades simultaneously.
6. If combination of Alligator and Williams Fractals shall consider current trend has been changed from up to downtrend, all long trades will be closed, no matter how many trades has been opened.
Script also has additional visuals. If second long trade has been opened simultaneously the Alligator's teeth line is plotted with the green color. Also for every trade in a row from 2 to 5 the label "Buy More" is also plotted just below the teeth line. With every next simultaneously opened trade the green color of the space between teeth and price became less transparent.
Strategy settings
In the inputs window user can setup strategy setting: EMA Length (by default = 100, period of EMA, used for long-term trend filtering EMA calculation). User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Let's explore the key concepts of this strategy and understand how they work together. We'll begin with the simplest: the EMA.
The Exponential Moving Average (EMA) is a type of moving average that assigns greater weight to recent price data, making it more responsive to current market changes compared to the Simple Moving Average (SMA). This tool is widely used in technical analysis to identify trends and generate buy or sell signals. The EMA is calculated as follows:
1.Calculate the Smoothing Multiplier:
Multiplier = 2 / (n + 1), Where n is the number of periods.
2. EMA Calculation
EMA = (Current Price) × Multiplier + (Previous EMA) × (1 − Multiplier)
In this strategy, the EMA acts as a long-term trend filter. For instance, long trades are considered only when the price closes above the EMA (default: 100-period). This increases the likelihood of entering trades aligned with the prevailing trend.
Next, let’s discuss the short-term trend filter, which combines the Williams Alligator and Williams Fractals. Williams Alligator
Developed by Bill Williams, the Alligator is a technical indicator that identifies trends and potential market reversals. It consists of three smoothed moving averages:
Jaw (Blue Line): The slowest of the three, based on a 13-period smoothed moving average shifted 8 bars ahead.
Teeth (Red Line): The medium-speed line, derived from an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, calculated using a 5-period smoothed moving average shifted 3 bars forward.
When the lines diverge and align in order, the "Alligator" is "awake," signaling a strong trend. When the lines overlap or intertwine, the "Alligator" is "asleep," indicating a range-bound or sideways market. This indicator helps traders determine when to enter or avoid trades.
Fractals, another tool by Bill Williams, help identify potential reversal points on a price chart. A fractal forms over at least five consecutive bars, with the middle bar showing either:
Up Fractal: Occurs when the middle bar has a higher high than the two preceding and two following bars, suggesting a potential downward reversal.
Down Fractal: Happens when the middle bar shows a lower low than the surrounding two bars, hinting at a possible upward reversal.
Traders often use fractals alongside other indicators to confirm trends or reversals, enhancing decision-making accuracy.
How do these tools work together in this strategy? Let’s consider an example of an uptrend.
When the price breaks above an up fractal, it signals a potential bullish trend. This occurs because the up fractal represents a shift in market behavior, where a temporary high was formed due to selling pressure. If the price revisits this level and breaks through, it suggests the market sentiment has turned bullish.
The breakout must occur above the Alligator’s teeth line to confirm the trend. A breakout below the teeth is considered invalid, and the downtrend might still persist. Conversely, in a downtrend, the same logic applies with down fractals.
In this strategy if the most recent up fractal breakout occurs above the Alligator's teeth and follows the last down fractal breakout below the teeth, the algorithm identifies an uptrend. Long trades can be opened during this phase if a signal aligns. If the price breaks a down fractal below the teeth line during an uptrend, the strategy assumes the uptrend has ended and closes all open long trades.
By combining the EMA as a long-term trend filter with the Alligator and fractals as short-term filters, this approach increases the likelihood of opening profitable trades while staying aligned with market dynamics.
Now let's talk about Acceleration/Deceleration signals. AC indicator is calculated using the Awesome Oscillator, so let's first of all briefly explain what is Awesome Oscillator and how it can be calculated. The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator designed to measure market momentum by contrasting recent price movements with a longer-term historical perspective. It helps traders detect potential trend reversals and assess the strength of ongoing trends.
The formula for AO is as follows:
AO = SMA5(Median Price) − SMA34(Median Price)
where:
Median Price = (High + Low) / 2
SMA5 = 5-period Simple Moving Average of the Median Price
SMA 34 = 34-period Simple Moving Average of the Median Price
The Acceleration/Deceleration (AC) Indicator, introduced by Bill Williams, measures the rate of change in market momentum. It highlights shifts in the driving force of price movements and helps traders spot early signs of trend changes. The AC Indicator is particularly useful for identifying whether the current momentum is accelerating or decelerating, which can indicate potential reversals or continuations. For AC calculation we shall use the AO calculated above is the following formula:
AC = AO − SMA5(AO), where SMA5(AO)is the 5-period Simple Moving Average of the Awesome Oscillator
When the AC is above the zero line and rising, it suggests accelerating upward momentum.
When the AC is below the zero line and falling, it indicates accelerating downward momentum.
When the AC is below zero line and rising it suggests the decelerating the downtrend momentum. When AC is above the zero line and falling, it suggests the decelerating the uptrend momentum.
Now we can explain which AC signal types are used in this strategy. The first type of long signal is when AC value is below zero line. In this cases we need to see three rising bars on the histogram in a row after the falling one. The second type of signals occurs above the zero line. There we need only two rising AC bars in a row after the falling one to create the signal. The signal bar is the last green bar in this sequence. The strategy places the buy stop order one tick above the candle's high, which corresponds to the signal bar on AC indicator.
After that we can have the following scenarios:
Price hit the order on the next candle in this case strategy opened long with this price.
Price doesn't hit the order price, the next candle set lower high. If current AC bar is increasing buy stop order changes by the script to the high of this new bar plus one tick. This procedure repeats until price finally hit buy order or current AC bar become decreasing. In the second case buy order cancelled and strategy wait for the next AC signal.
If long trades are initiated, the strategy continues utilizing subsequent signals until the total number of trades reaches a maximum of 5. All open trades are closed when the trend shifts to a downtrend, as determined by the combination of the Alligator and Fractals described earlier.
Why we use AC signals? If currently strategy algorithm considers the high probability of the short-term uptrend with the Alligator and Fractals combination pointed out above and the long-term trend is also suggested by the EMA filter as bullish. Rising AC bars after period of falling AC bars indicates the high probability of local pull back end and there is a high chance to open long trade in the direction of the most likely main uptrend. The numbers of rising bars are different for the different AC values (below or above zero line). This is needed because if AC below zero line the local downtrend is likely to be stronger and needs more rising bars to confirm that it has been changed than if AC is above zero.
Why strategy use only 10% per signal? Sometimes we can see the false signals which appears on sideways. Not risking that much script use only 10% per signal. If the first long trade has been open and price continue going up and our trend approximation by Alligator and Fractals is uptrend, strategy add another one 10% of capital to every next AC signal while number of active trades no more than 5. This capital allocation allows to take part in long trades when current uptrend is likely to be strong and use only 10% of capital when there is a high probability of sideways.
Backtest Results
Operating window: Date range of backtests is 2023.01.01 - 2024.11.01. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 10%
Maximum Single Position Loss: -5.15%
Maximum Single Profit: +24.57%
Net Profit: +2108.85 USDT (+21.09%)
Total Trades: 111 (36.94% win rate)
Profit Factor: 2.391
Maximum Accumulated Loss: 367.61 USDT (-2.97%)
Average Profit per Trade: 19.00 USDT (+1.78%)
Average Trade Duration: 75 hours
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 3h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
Trend Stability Index (TSI)Overview
The Trend Stability Index (TSI) is a technical analysis tool designed to evaluate the stability of a market trend by analyzing both price movements and trading volume. By combining these two crucial elements, the TSI provides traders with insights into the strength and reliability of ongoing trends, assisting in making informed trading decisions.
Key Features
• Dual Analysis: Integrates price changes and volume fluctuations to assess trend stability.
• Customizable Periods: Allows users to set evaluation periods for both trend and volume based on their trading preferences.
• Visual Indicators: Displays the Trend Stability Index as a line chart, highlights neutral zones, and uses background colors to indicate trend stability or instability.
Configuration Settings
1. Trend Length (trendLength)
• Description: Determines the number of periods over which the price stability is evaluated.
• Default Value: 15
• Usage: A longer trend length smooths out short-term volatility, providing a clearer picture of the overarching trend.
2. Volume Length (volumeLength)
• Description: Sets the number of periods over which trading volume changes are assessed.
• Default Value: 15
• Usage: Adjusting the volume length helps in capturing significant volume movements that may influence trend strength.
Calculation Methodology
The Trend Stability Index is calculated through a series of steps that analyze both price and volume changes:
1. Price Change Rate (priceChange)
• Calculation: Utilizes the Rate of Change (ROC) function on the closing prices over the specified trendLength.
• Purpose: Measures the percentage change in price over the trend evaluation period, indicating the direction and momentum of the price movement.
2. Volume Change Rate (volumeChange)
• Calculation: Applies the Rate of Change (ROC) function to the trading volume over the specified volumeLength.
• Purpose: Assesses the percentage change in trading volume, providing insight into the conviction behind price movements.
3. Trend Stability (trendStability)
• Calculation: Multiplies priceChange by volumeChange.
• Purpose: Combines price and volume changes to gauge the overall stability of the trend. A higher positive value suggests a strong and stable trend, while negative values may indicate trend weakness or reversal.
4. Trend Stability Index (TSI)
• Calculation: Applies a Simple Moving Average (SMA) to the trendStability over the trendLength period.
• Purpose: Smooths the trend stability data to create a more consistent and interpretable index.
Trend/Ranging Determination
• Stable Trend (isStable)
• Condition: When the TSI value is greater than 0.
• Interpretation: Indicates that the current trend is stable and likely to continue in its direction.
• Unstable Trend / Range-bound Market
• Condition: When the TSI value is less than or equal to 0.
• Interpretation: Suggests that the trend may be weakening, reversing, or that the market is moving sideways without a clear direction.
Visualization
The TSI indicator employs several visual elements to convey information effectively:
1. TSI Line
• Representation: Plotted as a blue line.
• Purpose: Displays the Trend Stability Index values over time, allowing traders to observe trend stability dynamics.
2. Neutral Horizontal Line
• Representation: A gray horizontal line at the 0 level.
• Purpose: Serves as a reference point to distinguish between stable and unstable trends.
3. Background Color
• Stable Trend: Green background with 80% transparency when isStable is true.
• Unstable Trend: Red background with 80% transparency when isStable is false.
• Purpose: Provides an immediate visual cue about the current trend’s stability, enhancing the interpretability of the indicator.
Usage Guidelines
• Identifying Trend Strength: Utilize the TSI to confirm the strength of existing trends. A consistently positive TSI suggests strong trend momentum, while a negative TSI may signal caution or a potential reversal.
• Volume Confirmation: The integration of volume changes helps in validating price movements. Significant price changes accompanied by corresponding volume shifts can reinforce the reliability of the trend.
• Entry and Exit Signals: Traders can use crossovers of the TSI with the neutral line (0 level) as potential entry or exit points. For instance, a crossover from below to above 0 may indicate a bullish trend initiation, while a crossover from above to below 0 could suggest bearish momentum.
• Combining with Other Indicators: To enhance trading strategies, consider using the TSI in conjunction with other technical indicators such as Moving Averages, RSI, or MACD for comprehensive market analysis.
Example Scenario
Imagine analyzing a stock with the following observations using the TSI:
• The TSI has been consistently above 0 for the past 30 periods, accompanied by increasing trading volume. This scenario indicates a strong and stable uptrend, suggesting that buying opportunities may be favorable.
• Conversely, if the TSI drops below 0 while the price remains relatively flat and volume decreases, it may imply that the current trend is losing momentum, and the market could be entering a consolidation phase or preparing for a trend reversal.
Conclusion
The Trend Stability Index is a valuable tool for traders seeking to assess the reliability and strength of market trends by integrating price and volume dynamics. Its customizable settings and clear visual indicators make it adaptable to various trading styles and market conditions. By incorporating the TSI into your trading analysis, you can enhance your ability to identify and act upon stable and profitable trends.
Weighted US Liquidity ROC Indicator with FED RatesThe Weighted US Liquidity ROC Indicator is a technical indicator that measures the Rate of Change (ROC) of a weighted liquidity index. This index aggregates multiple monetary and liquidity measures to provide a comprehensive view of liquidity in the economy. The ROC of the liquidity index indicates the relative change in this index over a specified period, helping to identify trend changes and market movements.
1. Liquidity Components:
The indicator incorporates various monetary and liquidity measures, including M1, M2, the monetary base, total reserves of depository institutions, money market funds, commercial paper, and repurchase agreements (repos). Each of these components is assigned a weight that reflects its relative importance to overall liquidity.
2. ROC Calculation:
The Rate of Change (ROC) of the weighted liquidity index is calculated by finding the difference between the current value of the index and its value from a previous period (ROC period), then dividing this difference by the value from the previous period. This gives the percentage increase or decrease in the index.
3. Visualization:
The ROC value is plotted as a histogram, with positive and negative changes indicated by different colors. The Federal Funds Rate is also plotted separately to show the impact of central bank policy on liquidity.
Discussion of the Relationship Between Liquidity and Stock Market Returns
The relationship between liquidity and stock market returns has been extensively studied in financial economics. Here are some key insights supported by scientific research:
Liquidity and Stock Returns:
Liquidity Premium Theory: One of the primary theories is the liquidity premium theory, which suggests that assets with higher liquidity typically offer lower returns because investors are willing to accept lower yields for more liquid assets. Conversely, assets with lower liquidity may offer higher returns to compensate for the increased risk associated with their illiquidity (Amihud & Mendelson, 1986).
Empirical Evidence: Research by Fama and French (1992) has shown that liquidity is an important factor in explaining stock returns. Their studies suggest that stocks with lower liquidity tend to have higher expected returns, aligning with the liquidity premium theory.
Market Impact of Liquidity Changes:
Liquidity Shocks: Changes in liquidity can impact stock returns significantly. For example, an increase in liquidity is often associated with higher stock prices, as it reduces the cost of trading and enhances market efficiency (Chordia, Roll, & Subrahmanyam, 2000). Conversely, a liquidity shock, such as a sudden decrease in market liquidity, can lead to higher volatility and lower stock prices.
Financial Crises: During financial crises, liquidity tends to dry up, leading to sharp declines in stock market returns. For instance, studies on the 2008 financial crisis illustrate how a reduction in market liquidity exacerbated the decline in stock prices (Brunnermeier & Pedersen, 2009).
Central Bank Policies and Liquidity:
Monetary Policy Impact: Central bank policies, such as changes in the Federal Funds Rate, directly influence market liquidity. Lower interest rates generally increase liquidity by making borrowing cheaper, which can lead to higher stock market returns. On the other hand, higher rates can reduce liquidity and negatively impact stock prices (Bernanke & Gertler, 1999).
Policy Expectations: The anticipation of changes in monetary policy can also affect stock market returns. For example, expectations of rate cuts can lead to a rise in stock prices even before the actual policy change occurs (Kuttner, 2001).
Key References:
Amihud, Y., & Mendelson, H. (1986). "Asset Pricing and the Bid-Ask Spread." Journal of Financial Economics, 17(2), 223-249.
Fama, E. F., & French, K. R. (1992). "The Cross-Section of Expected Stock Returns." Journal of Finance, 47(2), 427-465.
Chordia, T., Roll, R., & Subrahmanyam, A. (2000). "Market Liquidity and Trading Activity." Journal of Finance, 55(2), 265-289.
Brunnermeier, M. K., & Pedersen, L. H. (2009). "Market Liquidity and Funding Liquidity." Review of Financial Studies, 22(6), 2201-2238.
Bernanke, B. S., & Gertler, M. (1999). "Monetary Policy and Asset Prices." NBER Working Paper No. 7559.
Kuttner, K. N. (2001). "Monetary Policy Surprises and Interest Rates: Evidence from the Fed Funds Futures Market." Journal of Monetary Economics, 47(3), 523-544.
These studies collectively highlight how liquidity influences stock market returns and how changes in liquidity conditions, influenced by monetary policy and other factors, can significantly impact stock prices and market stability.
NEXT BAR PercentagesNEXT BAR Percentages Indicator
This Pine Script code implements the "NEXT BAR Percentages" indicator, designed to analyze and display percentage changes between consecutive bars on a TradingView chart. The script provides valuable insights into how percentage changes in price behave after significant price movements, aiding traders in identifying potential trends or reversals.
Key Features:
Percentage Change Calculations :
Close-to-Close : Calculates the percentage change between the close of the current bar and the close of the previous bar.
High-to-Close : Calculates the percentage change between the high of the current bar and the close of the previous bar.
Low-to-Close : Calculates the percentage change between the low of the current bar and the close of the previous bar.
High-to-Close (Wick) : Computes the percentage change from the close to the high of the current bar.
Low-to-Close (Wick) : Computes the percentage change from the close to the low of the current bar.
Dynamic Table Display :
Creates a table on the chart to display various statistics related to percentage changes.
The table position is customizable, with options including "Top Left," "Middle Left," "Bottom Left," "Top Right," "Middle Right," "Bottom Right," "Top Center," "Middle Center," and "Bottom Center."
Count and Average Calculations :
High POS/NEG Counts : Counts occurrences of significant positive and negative percentage changes based on user-defined thresholds.
High POS/NEG Average : Computes the average percentage change following high positive and negative percentage changes.
Next Bar Statistics : Provides statistics on the percentage change of the next bar following identified significant price movements.
Visual Indicators :
Labels : Plots arrows on the chart when a high positive or high negative percentage change is detected, visually highlighting these events.
Customizable Input Parameters :
Adjust the thresholds for identifying high positive and negative percentage changes ( highpos, highposEnd, highneg, highnegEnd ).
Specify the start date for analysis ( teststartdate ), allowing for focused period analysis.
Usage:
Traders : Gain insights into price behavior following significant movements to make informed trading decisions.
Analysis : Customizable parameters and visual indicators enable detailed analysis of price action and trend identification.
Enhance your chart analysis with this indicator for a clear, data-driven view of percentage changes and their implications for future price movements.
Sylvain Zig-Zag [MyTradingCoder]This Pine Script version of ZigZagHighLow is a faithful port of Sylvain Vervoort's original study, initially implemented in NinjaScript and later added to the thinkorswim standard library. This indicator identifies and connects swing points in price data, offering a clear visualization of market moves that exceed a specified threshold. Additionally, it now includes features for detecting and plotting support and resistance levels, enhancing its utility for technical analysis.
Overview
The Sylvain Zig-Zag study excels at highlighting significant price swings by plotting points where the price change, combined with volatility adjustments via the Average True Range (ATR), exceeds a user-defined percentage. It effectively smooths out minor fluctuations, allowing traders to focus on the primary market trends. This tool is particularly useful in identifying potential turning points, trends in price movements, and key support and resistance levels, making it a valuable addition to your technical analysis arsenal.
How It Works
The Sylvain Zig-Zag indicator works by detecting swing points in the price data and connecting them to form a zigzag pattern. A swing point is identified when the price moves a certain distance, defined by a combination of percentage change and ATR. This distance must be exceeded for a swing point to be plotted.
When the price moves upwards and exceeds the previous high by a specified percentage plus a factor of the ATR, a new high swing point is plotted. Conversely, a low swing point is plotted when the price moves downwards and exceeds the previous low by the same criteria. This ensures that only significant price moves are considered, filtering out minor fluctuations and providing a clear view of the overall market trend.
In addition to plotting zigzag lines, the indicator can now identify and draw support and resistance levels based on the detected swing points. These levels are crucial for identifying potential reversal areas and market structure.
Key Features
Swing Point Detection: Accurately identifies significant price swings by considering both percentage price change and volatility (via Average True Range).
Dynamic Support/Resistance: Automatically generates support and resistance lines based on the identified swing points, providing potential areas of price reversals.
Customizable Parameters: Tailor the indicator's sensitivity to your preferred trading style and market conditions. Adjust parameters like percentage reversal, ATR settings, and absolute/tick reversals.
Visual Clarity: Choose to display the ZigZag line, support/resistance levels, new trend icons, continuation icons, and even customize bar colors for easy visual analysis.
Trading Applications
Trend Identification: Easily visualize the prevailing market trend using the direction of the ZigZag line and support/resistance levels.
Entry/Exit Signals: Potential entry points can be identified when the price interacts with the dynamic support/resistance levels.
Stop-Loss Placement: Use recent swing points as logical places for setting stop-loss orders.
Profit Targets: Project potential price targets based on the distance between previous swing points.
Input Parameters
Several input parameters can be adjusted to customize the behavior of the Sylvain Zig-Zag indicator. These parameters allow traders to fine-tune the detection of swing points and support/resistance levels to better suit their trading strategy and the specific market conditions they are analyzing.
High Source and Low Source:
These inputs define the price points used for detecting high and low swing points, respectively. You can choose between high, low, open, or close prices for these calculations.
Percentage Reversal:
This input sets the minimum percentage change in price required for a swing to be detected. A higher percentage value will result in fewer but more significant swing points, while a lower value will detect more frequent, smaller swings.
Absolute Reversal:
This parameter allows for an additional fixed value to be added to the minimum price change and ATR change. This can be useful for increasing the distance between swing points in volatile markets.
ATR Length:
This input defines the period used for calculating the ATR, which is a measure of market volatility. A longer ATR period will smooth out the ATR calculation, while a shorter period will make it more sensitive to recent price changes.
ATR Multiplier:
This factor is applied to the ATR value to adjust the sensitivity of the swing point detection. A higher multiplier will increase the required price movement for a swing point to be plotted, reducing the number of detected swings.
Tick Reversal:
This input allows for an additional value in ticks to be added to the minimum price change and ATR change, providing further customization in the swing point detection process.
Support and Resistance:
Show S/R: Enable or disable the plotting of support and resistance levels.
Max S/R Levels: Set the maximum number of support and resistance levels to display.
S/R Line Width: Adjust the width of the support and resistance lines.
Visual Settings
The Sylvain Zig-Zag indicator also includes visual settings to enhance the clarity of the plotted swing points and trends. You can customize the color and width of the zigzag line, and enable icons to indicate new trends and continuation patterns. Additionally, the bars can be colored based on the detected trend, aiding in quick visual analysis.
Conclusion
This port of the ZigZagHighLow study from NinjaScript to Pine Script preserves the essence of Sylvain Vervoort’s methodology while adding new features for support and resistance. It provides traders with a powerful tool for technical analysis. The combination of price changes and ATR ensures that you have a robust and adaptable tool for identifying key market movements and structural levels. Customize the settings to match your trading style and gain a clearer picture of market trends, turning points, and support/resistance areas. Enjoy improved market analysis and more informed trading decisions with the Sylvain Zig-Zag indicator.
Entropy Volatility Index [CHE]I Entropy Volatility Index (EVI)
II An Experimental Script for Measuring Market Volatility
III Introduction
The Entropy Volatility Index (EVI) is an experimental indicator based on concepts from thermodynamics and information theory. The goal of the EVI is to quantify market uncertainty and volatility by calculating the entropy of price changes.
IV Basic Concepts
Entropy in Thermodynamics
Entropy is a measure of disorder or randomness in a system.
The second law of thermodynamics states that entropy in a closed system tends to increase over time.
Entropy in Information Theory
In information theory, entropy measures the uncertainty or information content of a random variable.
The entropy H of a random variable X with probability distribution P(x) is calculated as:
H(X) = -∑ P(x) log P(x)
V Derivation of the EVI
Calculation of Price Changes
Absolute price changes are calculated to serve as the basis for probability calculations.
Creation of the Histogram
A histogram is created and initialized to count the frequency of price changes.
Updating the Histogram
The histogram is updated by counting the frequency of each price change.
Calculation of Probabilities
The probabilities of the price changes are calculated based on their frequencies in the histogram.
Calculation of Entropy
Entropy is calculated using the probabilities of price changes. Higher entropy indicates higher uncertainty or disorder in the market.
Plotting the Indicator
The EVI is plotted to visually represent market volatility and uncertainty.
VI Interpretation of the EVI
High EVI Values
High Volatility: Strong and irregular price movements.
High Uncertainty: Increased market uncertainty.
Possible Market Turning Points: Indicators of potential trend changes.
Low EVI Values
Low Volatility: More consistent and predictable price movements.
Stability: More stable market phases.
Trend Consistency: Indicators of stable trends or sideways movements.
VII Conclusion
The Entropy Volatility Index (EVI) is an experimental script that applies concepts from thermodynamics and information theory to measure market volatility. It offers a new perspective on market uncertainty and can be used as an additional tool for traders.
VIII Example Use Cases
Identifying Volatile Phases: Use the EVI to identify periods of high volatility and prepare for potential rapid price movements.
Risk Management: Adjust your risk management strategy based on the EVI. During high EVI periods, consider hedging positions or adjusting position sizes.
Complementing Other Indicators: Combine the EVI with other technical indicators (e.g., RSI, MACD) for a more comprehensive view of market conditions.
I hope this experimental script provides valuable insights. Thank you for your feedback and suggestions for improvement.
Best regards,
Chervolino
Preday Price ChannelPreday Price Channel Indicator
This indicator is designed to help traders easily observe and capitalize on key price levels and their implications on market trends. It displays the previous day's high and low prices, as well as lines representing Fibonacci ratios between these prices. When a high or low is double-broken (retested and broken again), the indicator confirms a trend change and fills the channel with orange or navy color to visually indicate this shift.
Before a large directionality appears in the market, a breakout of the previous day's high or low must occur in that direction. As long as the previous day's low is maintained, an uptrend persists, and as long as the previous day's high is maintained, a downtrend persists.
In the crypto market, the significance of the previous day's high or low is often underemphasized and less known. This simple indicator was created to help traders observe the powerful influence of the previous day's high and low, and to potentially use it to their advantage in trading.
Wishing you successful trading with this tool.
Options
Day Open: Check this box to display the current day's opening price on the chart. The opening price of the day often remains intact and is one of the simplest and most powerful indicators of whether the day's trend is upward or downward.
Preday Open: Check this box to display the previous day's opening price on the chart. The previous day's opening price often exhibits a strong tendency for retests.
Preday High and Low: Check this box to display the previous day's high and low prices on the chart. These levels are critical for determining potential breakout points.
FIB On: Check this box to display the Fibonacci ratios between the previous day's high and low prices. This feature helps identify potential support and resistance levels within this range.
Day Mid On: Check this box to display the midpoint of the preday's price range on the chart. This serves as a reference point for trend changes.
Day Trend Color On: Check this box to enable color-coding for uptrends and downtrends based on the previous day's high and low prices.
When the previous day's high is breached, the trend value is set to 2, and an orange shaded area is filled in.
When the previous day's low is breached, the trend value is set to -2, and a navy shaded area is filled in.
When a high or low is double-broken (retested and broken again), the indicator confirms the trend change, filling the channel with orange for an uptrend and navy for a downtrend to make it easy for users to recognize the trend change.
These trend values and colors remain as long as the midpoint of the previous day's price range is not violated, indicating the trend is still valid.
If, during a downtrend (trend value of -2), the low price crosses above the previous day's midpoint, the trend value changes to 1, indicating a potential issue in the downtrend, and a light orange color is displayed.
Conversely, if, during an uptrend (trend value of 2), the high price crosses below the previous day's midpoint, the trend value changes to -1, signaling a potential issue in the uptrend, and a light navy color is displayed.
This comprehensive set of features allows traders to make informed decisions by clearly observing key price levels and their implications on market trends.
Gap Trend Lines by @eyemaginativeSummary:
The "Gap Trend Lines" script is designed to identify and visualize gaps between the close of one candle and the opening of the next on a TradingView chart. It draws extended trend lines to visually connect these gaps, helping traders to identify significant price movements between consecutive candles.
Functionality:
Indicator Setup:
The script is set as an overlay indicator on the main chart.
It includes settings for maximum line and label counts, ensuring efficient performance.
Parameter Customization:
Gap Threshold: Defines the minimum gap size considered significant.
Line Colors: Allows customization of colors for small and large gaps.
Line Thickness and Style: Provides options to adjust the thickness and style (solid, dotted, dashed) of the trend lines.
Drawing Extended Trend Lines:
For each bar (candlestick) on the chart, the script checks if there is a gap between the previous candle's close and the current candle's open.
If a gap is detected (i.e., close != open), it determines the size of the gap.
Depending on the size relative to the defined threshold, it selects the appropriate color (small or large gap).
It then draws an extended trend line that starts from the close of the previous candle (bar_index , close ) and extends to the open of the current candle (bar_index, open).
The trend line is drawn with the specified thickness, color, and style.
Dynamic Line Attribute Changes:
The script includes a function (changeLineAttributes()) that periodically changes the color and style of the trend lines.
By default, it changes the color every 4 hours (adjustable), alternating between green and the original color.
Enhanced Functionality:
Handles both small and large gaps with different visual cues (colors).
Supports extended trend lines that span both past and future directions (extend=extend.both), ensuring visibility across the entire chart.
Usage:
Traders can use the "Gap Trend Lines" script to:
Identify and analyze gaps between candlesticks.
Visualize significant price movements or breaks in continuity.
Customize the appearance of trend lines for better clarity and analysis.
By utilizing this script, traders can gain insights into price gap dynamics directly on TradingView charts, aiding in decision-making and strategy development.
Moving average to price cloudHi all!
This indicator shows when the price crosses the defined moving average. It plots a green or red cloud (depending on trend) and the moving average. It also plots an arrow when the trend changes (this can be disabled in 'style'->'labels' in the settings).
The moving average itself can be used as dynamic support/resistance. The trend will change based on your settings (described below). By default the trend will change when the whole bar is above/below the moving average for 2 bars (that's closed). This can be changed by "Source" and "Bars".
Settings
• Length (choose the length of the moving average. Defaults to 21)
• Type (choose what type of moving average).
- "SMA" (Simple Moving Average)
- "EMA" (Exponential Moving Average)
- "HMA" (Hull Moving Average)
- "WMA" (Weighted Moving Average)
- "VWMA" (Volume Weighted Moving Average)
- "DEMA" (Double Exponential Moving Average)
Defaults to"EMA".
• Source (Define the price source that must be above/below the moving average for the trend to change. Defaults to 'High/low (passive)')
- 'Open' The open of the bar has to cross the moving average
- 'Close' The close of the bar has to cross the moving average
- 'High/low (passive)' In a down trend: the low of the bar has to cross the moving average
- 'High/low (aggressive)' In a down trend: the high of the bar has to cross the moving average
• Source bar must be close. Defaults to 'true'.
• Bars (Define the number bars whose value (defined in 'Source') must be above/below the moving average. All the bars (defined by this number) must be above/below the moving average for the trend to change. Defaults to 2.)
Let me know if you have any questions.
Best of trading luck!
Long / Short OI Build Up ntroduction
The "Long / Short OI Build Up" script is designed to identify potential long or short build-up opportunities based on changes in open interest (OI) and price movements. Open interest refers to the total number of outstanding contracts for a financial asset, such as futures or options, that have not been settled. This script provides insights into whether there is a build-up of long positions (bullish sentiment) or short positions (bearish sentiment) in the market.
Script Overview
Indicator Overlay: This script functions as an overlay indicator, meaning it plots its output on the price chart.
Input Customization: Users can customize the symbol for which they want to analyze open interest data. Additionally, they can adjust parameters like the percentage change in open interest and price to define build-up conditions.
Dashboard Display: The script includes a dashboard feature that displays the build-up analysis at a chosen location on the chart.
Build-Up Analysis: Based on the defined criteria, the script identifies whether there is a long build-up (bullish) or short build-up (bearish) scenario. It calculates the change in open interest and price and compares them against user-defined thresholds.
Table Visualization: The results of the analysis are presented in a table format, showing the build-up type, percentage change in open interest, and percentage change in price.
Usage
Override Symbol: Users can choose to override the default symbol for analysis by selecting this option and entering the desired symbol.
Price Change Percentage: Set the percentage change in price that should trigger a build-up signal.
OI Change Percentage: Define the percentage change in open interest necessary to signal a build-up scenario.
Dashboard Location: Choose the location on the chart where the build-up analysis table will be displayed (options include Top Right, Bottom Right, and Bottom Left).
Interpretation
Build Up: Indicates whether there is a long build-up (green) or short build-up (red) based on the defined criteria.
OI Change: Shows the percentage change in open interest relative to the previous value. Positive values are highlighted in green, indicating an increase, while negative values are highlighted in red, indicating a decrease.
Price Change: Displays the percentage change in price relative to the previous close. Positive values are highlighted in green for price increase, while negative values are highlighted in red for price decrease.
Conclusion
The "Long / Short OI Build Up" script provides traders with valuable insights into potential bullish or bearish build-up scenarios based on changes in open interest and price movements. By customizing parameters and visualizing the analysis on a chart dashboard, traders can make more informed decisions regarding their trading strategies.
AI Momentum [YinYang]Overview:
AI Momentum is a kernel function based momentum Indicator. It uses Rational Quadratics to help smooth out the Moving Averages, this may give them a more accurate result. This Indicator has 2 main uses, first it displays ‘Zones’ that help you visualize the potential movement areas and when the price is out of bounds (Overvalued or Undervalued). Secondly it creates signals that display the momentum of the current trend.
The Zones are composed of the Highest Highs and Lowest lows turned into a Rational Quadratic over varying lengths. These create our Rational High and Low zones. There is however a second zone. The second zone is composed of the avg of the Inner High and Inner Low zones (yellow line) and the Rational Quadratic of the current Close. This helps to create a second zone that is within the High and Low bounds that may represent momentum changes within these zones. When the Rationalized Close crosses above the High and Low Zone Average it may signify a bullish momentum change and vice versa when it crosses below.
There are 3 different signals created to display momentum:
Bullish and Bearish Momentum. These signals display when there is current bullish or bearish momentum happening within the trend. When the momentum changes there will likely be a lull where there are neither Bullish or Bearish momentum signals. These signals may be useful to help visualize when the momentum has started and stopped for both the bulls and the bears. Bullish Momentum is calculated by checking if the Rational Quadratic Close > Rational Quadratic of the Highest OHLC4 smoothed over a VWMA. The Bearish Momentum is calculated by checking the opposite.
Overly Bullish and Bearish Momentum. These signals occur when the bar has Bullish or Bearish Momentum and also has an Rationalized RSI greater or less than a certain level. Bullish is >= 57 and Bearish is <= 43. There is also the option to ‘Factor Volume’ into these signals. This means, the Overly Bullish and Bearish Signals will only occur when the Rationalized Volume > VWMA Rationalized Volume as well as the previously mentioned factors above. This can be useful for removing ‘clutter’ as volume may dictate when these momentum changes will occur, but it can also remove some of the useful signals and you may miss the swing too if the volume just was low. Overly Bullish and Bearish Momentum may dictate when a momentum change will occur. Remember, they are OVERLY Bullish and Bearish, meaning there is a chance a correction may occur around these signals.
Bull and Bear Crosses. These signals occur when the Rationalized Close crosses the Gaussian Close that is 2 bars back. These signals may show when there is a strong change in momentum, but be careful as more often than not they’re predicting that the momentum may change in the opposite direction.
Tutorial:
As we can see in the example above, generally what happens is we get the regular Bullish or Bearish momentum, followed by the Rationalized Close crossing the Zone average and finally the Overly Bullish or Bearish signals. This is normally the order of operations but isn’t always how it happens as sometimes momentum changes don’t make it that far; also the Rationalized Close and Zone Average don’t follow any of the same math as the Signals which can result in differing appearances. The Bull and Bear Crosses are also quite sporadic in appearance and don’t generally follow any sort of order of operations. However, they may occur as a Predictor between Bullish and Bearish momentum, signifying the beginning of the momentum change.
The Bull and Bear crosses may be a Predictor of momentum change. They generally happen when there is no Bullish or Bearish momentum happening; and this helps to add strength to their prediction. When they occur during momentum (orange circle) there is a less likely chance that it will happen, and may instead signify the exact opposite; it may help predict a large spike in momentum in the direction of the Bullish or Bearish momentum. In the case of the orange circle, there is currently Bearish Momentum and therefore the Bull Cross may help predict a large momentum movement is about to occur in favor of the Bears.
We have disabled signals here to properly display and talk about the zones. As you can see, Rationalizing the Highest Highs and Lowest Lows over 2 different lengths creates inner and outer bounds that help to predict where parabolic movement and momentum may move to. Our Inner and Outer zones are great for seeing potential Support and Resistance locations.
The secondary zone, which can cross over and change from Green to Red is also a very important zone. Let's zoom in and talk about it specifically.
The Middle Zone Crosses may help deduce where parabolic movement and strong momentum changes may occur. Generally what may happen is when the cross occurs, you will see parabolic movement to the High / Low zones. This may be the Inner zone but can sometimes be the outer zone too. The hard part is sometimes it can be a Fakeout, like displayed with the Blue Circle. The Cross doesn’t mean it may move to the opposing side, sometimes it may just be predicting Parabolic movement in a general sense.
When we turn the Momentum Signals back on, we can see where the Fakeout occurred that it not only almost hit the Inner Low Zone but it also exhibited 2 Overly Bearish Signals. Remember, Overly bearish signals mean a momentum change in favor of the Bulls may occur soon and overly Bullish signals mean a momentum change in favor of the Bears may occur soon.
You may be wondering, well what does “may occur soon” mean and how do we tell?
The purpose of the momentum signals is not only to let you know when Momentum has occurred and when it is still prevalent. It also matters A LOT when it has STOPPED!
In this example above, we look at when the Overly Bullish and Bearish Momentum has STOPPED. As you can see, when the Overly Bullish or Bearish Momentum stopped may be a strong predictor of potential momentum change in the opposing direction.
We will conclude our Tutorial here, hopefully this Indicator has been helpful for showing you where momentum is occurring and help predict how far it may move. We have been dabbling with and are planning on releasing a Strategy based on this Indicator shortly.
Settings:
1. Momentum:
Show Signals: Sometimes it can be difficult to visualize the zones with signals enabled.
Factor Volume: Factor Volume only applies to Overly Bullish and Bearish Signals. It's when the Volume is > VWMA Volume over the Smoothing Length.
Zone Inside Length: The Zone Inside is the Inner zone of the High and Low. This is the length used to create it.
Zone Outside Length: The Zone Outside is the Outer zone of the High and Low. This is the length used to create it.
Smoothing length: Smoothing length is the length used to smooth out our Bullish and Bearish signals, along with our Overly Bullish and Overly Bearish Signals.
2. Kernel Settings:
Lookback Window: The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars. Recommended range: 3-50.
Relative Weighting: Relative weighting of time frames. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel. Recommended range: 0.25-25.
Start Regression at Bar: Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit. Recommended range: 5-25.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Market Health OscillatorDesigned to provide traders with a comprehensive view of the overall health of a market. By combining the rate of change of key indicators, the MHO offers insight into potential shifts in market sentiment.
Components:
Price Rate of Change: The MHO considers the rate of change of the price of an asset over a specified period. This element reflects the momentum of the asset's price movement, aiding in the assessment of potential trend shifts.
Volume Rate of Change: Tracking the rate of change of trading volume provides insights into market participation and interest. Changes in volume can signify shifts in market sentiment and potential trend reversals.
Volatility Rate of Change: The rate of change of volatility, often measured using the Average True Range (ATR), helps gauge the level of uncertainty in the market. An increase in volatility can indicate heightened market activity and potential reversals.
Advance-Decline Line: The MHO takes into account the Advance-Decline Line, which compares the number of advancing stocks to declining stocks. This component offers insights into market breadth and the underlying strength of the current trend.
Calculation and Interpretation:
The MHO aggregates the rate of change of these components and combines them to provide a single oscillator reading. This reading is then normalized to a range between -1 and 1. Positive values suggest bullish market health, while negative values indicate bearish conditions. The oscillator's extremes, coupled with divergence patterns, can signal potential market turning points.
Application:
Identify potential trend reversals or corrections by watching for extreme MHO readings.
Assess the overall health of a market by observing the general direction and amplitude of the oscillator.
Look for divergences between price and the MHO for insights into potential shifts in market sentiment.
This was inspired to offer a holistic perspective on market dynamics. By encompassing price, volume, volatility, and breadth factors, the MHO assists in a comprehensive assessment of market health.
Precision Trader Indicator, v1.01Overview:
The PTI is a custom indicator designed to provide buy and sell signals based on price movements and volatility. It uses the Average True Range (ATR) to calculate stop levels and identifies potential trend changes.
Parameters:
The indicator has several customizable parameters that you can adjust according to your preferences. These parameters include:
- ATR Period (length): Determines the lookback period for calculating the ATR.
- ATR Multiplier (mult): Specifies the multiplier applied to the ATR to determine the stop levels.
- Show Buy/Sell Labels (showLabels): Allows you to choose whether to display buy/sell labels on the chart.
- Use Close Price for Extremums (useClose): Determines whether the indicator considers the close price for calculating extremums.
- Highlight State (highlightState): Enables highlighting of the long and short state on the chart.
Calculation:
1. ATR Calculation: The indicator calculates the Average True Range (ATR) using the specified length parameter and multiplies it by the ATR Multiplier (mult) to obtain the ATR value.
2. Long Stop Calculation: The long stop level is calculated based on the highest price over the specified length period (using either the high or close price, depending on the useClose parameter) minus the ATR value. It ensures that the long stop is below the recent highest point.
3. Short Stop Calculation: The short stop level is calculated based on the lowest price over the specified length period (using either the low or close price) plus the ATR value. It ensures that the short stop is above the recent lowest point.
4. Direction Calculation: The indicator determines the current direction based on the close price compared to the previous long stop and short stop levels. If the close price is above the previous long stop, the direction is set to 1 (indicating a bullish trend). If the close price is below the previous short stop, the direction is set to -1 (indicating a bearish trend). Otherwise, the direction remains unchanged.
Plotting:
The indicator plots several visual elements on the chart:
- Long Stop: Draws a line representing the long stop level.
- Long Stop Start: Plots a small circle marker indicating the start of a long stop (buy signal).
- Buy Label: Displays a "Buy" label near the long stop start marker.
- Short Stop: Draws a line representing the short stop level.
- Short Stop Start: Plots a small circle marker indicating the start of a short stop (sell signal).
- Sell Label: Displays a "Sell" label near the short stop start marker.
- Long State Filling: Fills the area between the mid price and the long stop line with a color (optional).
- Short State Filling: Fills the area between the mid price and the short stop line with a color (optional).
Alerts:
The indicator includes three types of alerts:
- PTI Direction Change: Triggers an alert when the PTI direction changes (from bullish to bearish or vice versa).
- PTI Buy: Triggers an alert when a buy signal occurs (long stop start).
- PTI Sell: Triggers an alert when a sell signal occurs (short stop start).
By using the PTI indicator, traders can monitor potential trend changes and receive alerts when buy or sell signals are generated based on price and volatility dynamics.
Please note that the interpretation and effectiveness of this indicator should be evaluated through rigorous backtesting and analysis before making any trading decisions.
Bitwise, Encode, DecodeLibrary "Bitwise, Encode, Decode"
Bitwise, Encode, Decode, and more Library
docs()
Hover-Over Documentation for inside Text Editor
bAnd(a, b)
Returns the bitwise AND of two integers
Parameters:
a : `int` - The first integer
b : `int` - The second integer
Returns: `int` - The bitwise AND of the two integers
bOr(a, b)
Performs a bitwise OR operation on two integers.
Parameters:
a : `int` - The first integer.
b : `int` - The second integer.
Returns: `int` - The result of the bitwise OR operation.
bXor(a, b)
Performs a bitwise Xor operation on two integers.
Parameters:
a : `int` - The first integer.
b : `int` - The second integer.
Returns: `int` - The result of the bitwise Xor operation.
bNot(n)
Performs a bitwise NOT operation on an integer.
Parameters:
n : `int` - The integer to perform the bitwise NOT operation on.
Returns: `int` - The result of the bitwise NOT operation.
bShiftLeft(n, step)
Performs a bitwise left shift operation on an integer.
Parameters:
n : `int` - The integer to perform the bitwise left shift operation on.
step : `int` - The number of positions to shift the bits to the left.
Returns: `int` - The result of the bitwise left shift operation.
bShiftRight(n, step)
Performs a bitwise right shift operation on an integer.
Parameters:
n : `int` - The integer to perform the bitwise right shift operation on.
step : `int` - The number of bits to shift by.
Returns: `int` - The result of the bitwise right shift operation.
bRotateLeft(n, step)
Performs a bitwise right shift operation on an integer.
Parameters:
n : `int` - The int to perform the bitwise Left rotation on the bits.
step : `int` - The number of bits to shift by.
Returns: `int`- The result of the bitwise right shift operation.
bRotateRight(n, step)
Performs a bitwise right shift operation on an integer.
Parameters:
n : `int` - The int to perform the bitwise Right rotation on the bits.
step : `int` - The number of bits to shift by.
Returns: `int` - The result of the bitwise right shift operation.
bSetCheck(n, pos)
Checks if the bit at the given position is set to 1.
Parameters:
n : `int` - The integer to check.
pos : `int` - The position of the bit to check.
Returns: `bool` - True if the bit is set to 1, False otherwise.
bClear(n, pos)
Clears a particular bit of an integer (changes from 1 to 0) passes if bit at pos is 0.
Parameters:
n : `int` - The integer to clear a bit from.
pos : `int` - The zero-based index of the bit to clear.
Returns: `int` - The result of clearing the specified bit.
bFlip0s(n)
Flips all 0 bits in the number to 1.
Parameters:
n : `int` - The integer to flip the bits of.
Returns: `int` - The result of flipping all 0 bits in the number.
bFlip1s(n)
Flips all 1 bits in the number to 0.
Parameters:
n : `int` - The integer to flip the bits of.
Returns: `int` - The result of flipping all 1 bits in the number.
bFlipAll(n)
Flips all bits in the number.
Parameters:
n : `int` - The integer to flip the bits of.
Returns: `int` - The result of flipping all bits in the number.
bSet(n, pos, newBit)
Changes the value of the bit at the given position.
Parameters:
n : `int` - The integer to modify.
pos : `int` - The position of the bit to change.
newBit : `int` - na = flips bit at pos reguardless 1 or 0 | The new value of the bit (0 or 1).
Returns: `int` - The modified integer.
changeDigit(n, pos, newDigit)
Changes the value of the digit at the given position.
Parameters:
n : `int` - The integer to modify.
pos : `int` - The position of the digit to change.
newDigit : `int` - The new value of the digit (0-9).
Returns: `int` - The modified integer.
bSwap(n, i, j)
Switch the position of 2 bits of an int
Parameters:
n : `int` - int to manipulate
i : `int` - bit pos to switch with j
j : `int` - bit pos to switch with i
Returns: `int` - new int with bits switched
bPalindrome(n)
Checks to see if the binary form is a Palindrome (reads the same left to right and vice versa)
Parameters:
n : `int` - int to check
Returns: `bool` - result of check
bEven(n)
Checks if n is Even
Parameters:
n : `int` - The integer to check.
Returns: `bool` - result.
bOdd(n)
checks if n is Even if not even Odd
Parameters:
n : `int` - The integer to check.
Returns: `bool` - result.
bPowerOfTwo(n)
Checks if n is a Power of 2.
Parameters:
n : `int` - number to check.
Returns: `bool` - result.
bCount(n, to_count)
Counts the number of bits that are equal to 1 in an integer.
Parameters:
n : `int` - The integer to count the bits in.
to_count `string` - the bits to count
Returns: `int` - The number of bits that are equal to 1 in n.
GCD(a, b)
Finds the greatest common divisor (GCD) of two numbers.
Parameters:
a : `int` - The first number.
b : `int` - The second number.
Returns: `int` - The GCD of a and b.
LCM(a, b)
Finds the least common multiple (LCM) of two integers.
Parameters:
a : `int` - The first integer.
b : `int` - The second integer.
Returns: `int` - The LCM of a and b.
aLCM(nums)
Finds the LCM of an array of integers.
Parameters:
nums : `int ` - The list of integers.
Returns: `int` - The LCM of the integers in nums.
adjustedLCM(nums, LCM)
adjust an array of integers to Least Common Multiple (LCM)
Parameters:
nums : `int ` - The first integer
LCM : `int` - The second integer
Returns: `int ` - array of ints with LCM
charAt(str, pos)
gets a Char at a given position.
Parameters:
str : `string` - string to pull char from.
pos : `int` - pos to get char from string (left to right index).
Returns: `string` - char from pos of string or "" if pos is not within index range
decimalToBinary(num)
Converts a decimal number to binary
Parameters:
num : `int` - The decimal number to convert to binary
Returns: `string` - The binary representation of the decimal number
decimalToBinary(num, to_binary_int)
Converts a decimal number to binary
Parameters:
num : `int` - The decimal number to convert to binary
to_binary_int : `bool` - bool to convert to int or to string (true for int, false for string)
Returns: `string` - The binary representation of the decimal number
binaryToDecimal(binary)
Converts a binary number to decimal
Parameters:
binary : `string` - The binary number to convert to decimal
Returns: `int` - The decimal representation of the binary number
decimal_len(n)
way of finding decimal length using arithmetic
Parameters:
n `float` - floating decimal point to get length of.
Returns: `int` - number of decimal places
int_len(n)
way of finding number length using arithmetic
Parameters:
n : `int`- value to find length of number
Returns: `int` - lenth of nunber i.e. 23 == 2
float_decimal_to_whole(n)
Converts a float decimal number to an integer `0.365 to 365`.
Parameters:
n : `string` - The decimal number represented as a string.
Returns: `int` - The integer obtained by removing the decimal point and leading zeroes from s.
fractional_part(x)
Returns the fractional part of a float.
Parameters:
x : `float` - The float to get the fractional part of.
Returns: `float` - The fractional part of the float.
form_decimal(a, b, zero_fix)
helper to form 2 ints into 1 float seperated by the decimal
Parameters:
a : `int` - a int
b : `int` - b int
zero_fix : `bool` - fix for trailing zeros being truncated when converting to float
Returns: ` ` - float = float decimal of ints | string = string version of b for future use to ref length
bEncode(n1, n2)
Encodes two numbers into one using bit OR. (fastest)
Parameters:
n1 : `int` - The first number to Encodes.
n2 : `int` - The second number to Encodes.
Returns: `int` - The result of combining the two numbers using bit OR.
bDecode(n)
Decodes an integer created by the bCombine function.(fastest)
Parameters:
n : `int` - The integer to decode.
Returns: ` ` - A tuple containing the two decoded components of the integer.
Encode(a, b)
Encodes by seperating ints into left and right of decimal float
Parameters:
a : `int` - a int
b : `int` - b int
Returns: `float` - new float of encoded ints one on left of decimal point one on right
Decode(encoded)
Decodes float of 2 ints seperated by decimal point
Parameters:
encoded : `float` - the encoded float value
Returns: ` ` - tuple of the 2 ints from encoded float
encode_heavy(a, b)
Encodes by combining numbers and tracking size in the
decimal of a floating number (slowest)
Parameters:
a : `int` - a int
b : `int` - b int
Returns: `float` - new decimal of encoded ints
decode_heavy(encoded)
Decodes encoded float that tracks size of ints in float decimal
Parameters:
encoded : `float` - encoded float
Returns: ` ` - tuple of decoded ints
decimal of float (slowest)
Parameters:
encoded : `float` - the encoded float value
Returns: ` ` - tuple of the 2 ints from encoded float
Bitwise, Encode, Decode Docs
In the documentation you may notice the word decimal
not used as normal this is because when referring to
binary a decimal number is a number that
can be represented with base 10 numbers 0-9
(the wiki below explains better)
A rule of thumb for the two integers being
encoded it to keep both numbers
less than 65535 this is because anything lower uses 16 bits or less
this will maintain 100% accuracy when decoding
although it is possible to do numbers up to 2147483645 with
this library doesnt seem useful enough
to explain or demonstrate.
The functions provided work within this 32-bit range,
where the highest number is all 1s and
the lowest number is all 0s. These functions were created
to overcome the lack of built-in bitwise functions in Pinescript.
By combining two integers into a single number,
the code can access both values i.e when
indexing only one array index
for a matrices row/column, thus improving execution time.
This technique can be applied to various coding
scenarios to enhance performance.
Bitwise functions are a way to use integers in binary form
that can be used to speed up several different processes
most languages have operators to perform these function such as
`<<, >>, &, ^, |, ~`
en.wikipedia.org
Divergence for Many Panel (D4MP+)Divergence for Many Panel (D4MP+)
This Divergence for Many Panel indicator is built upon the realtme divergence drawing code originally authored by LonesomeTheBlue, now in the form of a panel indicator.
The available oscillators, hand picked for their ability to identify high quality divergences currently include:
- Ultimate Oscillator (UO)
- True Strength Index (TSI)
- Money Flow Index (MFI)
- Relative Strength Index (RSI)
- Stochastic RSI
- Time Segmented Volume (TSV)
- Cumulative Delta Volume (CDV)
Note : this list of available oscillators may be added to or altered at a later date.
The indicator includes the following features:
- Ability to select any of the above oscillators
- Optional divergence lines drawn directly onto the oscillator in realtime .
- Configurable alerts to notify you when divergences occur.
- Configurable pivot lookback periods to fine tune the divergences drawn in order to suit different trading styles and timeframes, including the ability to enable automatic adjustment of pivot period per chart timeframe.
- Background colouring option to indicate when the selected oscillator has crossed above or below its centerline.
- Alternate timeframe feature allows you to configure the oscillator to use data from a different timeframe than the chart it is loaded on.
- Oscillator name label, so you can clearly see which oscillator is selected, in the case you have multiple loaded onto a chart.
- Optional adjustable range bands.
- Automatic adjustment of line colours, centerlines and range band levels on a per oscillator basis by default.
- Ability to customise the colours of each of the oscillators.
What is the Ultimate Oscillator ( UO )?
“The Ultimate Oscillator indicator (UO) indicator is a technical analysis tool used to measure momentum across three varying timeframes. The problem with many momentum oscillators is that after a rapid advance or decline in price, they can form false divergence trading signals. For example, after a rapid rise in price, a bearish divergence signal may present itself, however price continues to rise. The ultimate Oscillator attempts to correct this by using multiple timeframes in its calculation as opposed to just one timeframe which is what is used in most other momentum oscillators.”
What is the True Strength Index ( TSI )?
"The true strength index (TSI) is a technical momentum oscillator used to identify trends and reversals. The indicator may be useful for determining overbought and oversold conditions, indicating potential trend direction changes via centerline or signal line crossovers, and warning of trend weakness through divergence."
What is the Money Flow Index ( MFI )?
“The Money Flow Index ( MFI ) is a technical oscillator that uses price and volume data for identifying overbought or oversold signals in an asset. It can also be used to spot divergences which warn of a trend change in price. The oscillator moves between 0 and 100. Unlike conventional oscillators such as the Relative Strength Index ( RSI ), the Money Flow Index incorporates both price and volume data, as opposed to just price. For this reason, some analysts call MFI the volume-weighted RSI .”
What is the Relative Strength Index ( RSI )?
"The relative strength index (RSI) is a momentum indicator used in technical analysis. RSI measures the speed and magnitude of a security's recent price changes to evaluate overvalued or undervalued conditions in the price of that security. The RSI can do more than point to overbought and oversold securities. It can also indicate securities that may be primed for a trend reversal or corrective pullback in price. It can signal when to buy and sell. Traditionally, an RSI reading of 70 or above indicates an overbought situation. A reading of 30 or below indicates an oversold condition. It is also commonly used to identify divergences."
What is the Stochastic RSI (StochRSI)?
"The Stochastic RSI (StochRSI) is an indicator used in technical analysis that ranges between zero and one (or zero and 100 on some charting platforms) and is created by applying the Stochastic oscillator formula to a set of relative strength index (RSI) values rather than to standard price data. Using RSI values within the Stochastic formula gives traders an idea of whether the current RSI value is overbought or oversold. The StochRSI oscillator was developed to take advantage of both momentum indicators in order to create a more sensitive indicator that is attuned to a specific security's historical performance rather than a generalized analysis of price change."
What Is Time Segmented Volume?
"Time segmented volume (TSV) is a technical analysis indicator developed by Worden Brothers Inc. that segments a stock's price and volume according to specific time intervals. The price and volume data is then compared to uncover periods of accumulation (buying) and distribution (selling)."
What is Cumulative Volume Delta ( CDV )?
"The CDV analyses the net buying at market price and net selling at market price. This means, that volume delta is measuring whether it is the buyers or sellers that are more aggressive in taking the current market price. It measures the degree of intent by buyers and sellers, which can be used to indicate who is more dominant. The CDV can be used to help identify possible trends and also divergences"
What are divergences?
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
There are 4 main types of divergence, which are split into 2 categories;
regular divergences and hidden divergences. Regular divergences indicate possible trend reversals, and hidden divergences indicate possible trend continuation.
Regular bullish divergence: An indication of a potential trend reversal, from the current downtrend, to an uptrend.
Regular bearish divergence: An indication of a potential trend reversal, from the current uptrend, to a downtrend.
Hidden bullish divergence: An indication of a potential uptrend continuation.
Hidden bearish divergence: An indication of a potential downtrend continuation.
Setting alerts.
With this indicator you can set alerts to notify you when any/all of the above types of divergences occur, on any chart timeframe you choose.
Configurable pivot periods.
You can adjust the default pivot periods to suit your prefered trading style and timeframe. If you like to trade a shorter time frame, lowering the default lookback values will make the divergences drawn more sensitive to short term price action.
How do traders use divergences in their trading?
A divergence is considered a leading indicator in technical analysis , meaning it has the ability to indicate a potential price move in the short term future.
Hidden bullish and hidden bearish divergences, which indicate a potential continuation of the current trend are sometimes considered a good place for traders to begin, since trend continuation occurs more frequently than reversals, or trend changes.
When trading regular bullish divergences and regular bearish divergences, which are indications of a trend reversal, the probability of it doing so may increase when these occur at a strong support or resistance level . A common mistake new traders make is to get into a regular divergence trade too early, assuming it will immediately reverse, but these can continue to form for some time before the trend eventually changes, by using forms of support or resistance as an added confluence, such as when price reaches a moving average, the success rate when trading these patterns may increase.
Typically, traders will manually draw lines across the swing highs and swing lows of both the price chart and the oscillator to see whether they appear to present a divergence, this indicator will draw them for you, quickly and clearly, and can notify you when they occur.
Disclaimer : This script includes code from several stock indicators by Tradingview as well as the Divergence for Many Indicators v4 by LonesomeTheBlue. With special thanks.
Stock Tech Bot One ViewTechnical indicators are not limited. Hence, here is another indicator with the combination of OBV, RSI, and MACD along with support, and resistance that follows the price while honoring the moving average of 200, 90 & 50.
The default lookback period of this indicator is 21 though it is changeable as per the user's desire.
The highest high and lowest low for the last 21 days lookback period proven to be the perfect Support & Resistance as the price of particular stock values are decided by market psychology. The support and resistance lines are very important to understand the market psychology which is very well proven with price action patterns and the lines are drawn based on,
Lower Extreme = 0.1 (Changeable)
Maximum Range = 21 days highest high - 21 days lowest low.
Support Line = 21 days lowest low + (Maximum Range * Lower Extreme)
Resistance Line = 21 days highest high - (Maximum Range * Lower Extreme)
RSI - Relative strength indicator is very famous to find the market momentum within the range of 0 - 100. Though the lookback period is changeable, the 14 days lookback period is the perfect match as the momentum of market movement for the last 3 weeks will always assist to identify the market regime. Here the momentum is just to highlight the indication (green up arrow under the candle for long and red down arrow above the candle for short) of market movement though it is not very important to consider if the price of the stock respect the support & resistance lines along with volume indicator (* = violet color).
OBV - Momentum:
The on-balance volume is always going indicator on any kind of tickers, which helps to identify the buying interest. Now, applying momentum on OBV with the positive movement for at least two consecutive days gives perfect confirmation for entry. A combination of the price along with this momentum(OBV) in the chart will help us to know the whipsaw in the price.
The Symbol "*" on top of each bar shows the market interest in that particular stock. If your ticker is fundamentally strong then you can see this "*" even when the market falls.
MACD:
One of the favorites and simple indicators widely used, where the thump of the rule is not to change the length even if it is allowed. It's OK to believe blindly in certain indicator and consider it while trading. That's why the indicator changes the bar color by following the MACD histogram.
Volume:
It may be the OBV works based on the open price and close price along with volume movement, it is wise to have the volume that is plotted along with price movement that should help you to decide whether the market is greedy or fearful.
The symbol "-" on top of each bar tells you a lot and don't ignore it.
Moving Average:
Moving average is a very good trend indicator as everyone considers seeing along with the price in the chart which is not omitted while we gauge the price movement alone with volume in this indicator. The 200, 90 & 50 MA's are everyone's favorite, and the same is plotted on the chart.
As explained above, the combination of all four indicators with price movement will give us very good confidence to take entry.
Candlestick Pattern:
You should admire the techniques of the candlestick pattern as you navigate the chart from right to left. Though there are a lot of patterns that exist, it is easy to enable and disable to view the signal as the label.
Further, last but not least, the exit always depends on individual conviction and how often the individual watch the price movement, if your conviction is strong then follow the down arrow red indication. If not, then exit with a trailing stop that indicates the bar with orange color.
Happy investing
Note: It is just a combination of multiple indicators and patterns to get one holistic view. So, the credit goes to all wise developers who publically published.
Other alts compensated capitalization [Peregringlk]DISCLAIMER: I'm not a native English speaker, so let me know please about mistakes in my wording.
Introduction
==========
This indicator (the middle one in the image) shows how the "others altcoins" (all altcoins except coins with high capitalization) are adding own value to its capitalization by removing BTC price changes. By "own value" I mean USD value gaining by actual buys in BTC markets beyong arbitrage effects of BTC price changes.
The main idea is that, if bitcoin has increased is value by 20%, and the other altcoins has increased its capitalization by 30%, the chart will only plot an increased of 10%. In other words, it will show its increased capitalization measured in BTC (the combined altcoin/BTC market is uptrending). Its purpose is to try to identify altseasons. A bit more concisely, the graph will only grow when both USD and BTC capitalization are growing. If any of them are going down, the graph will go down as well.
Rationale
========
- Altseasons are characterized by an incresed in BTC value of almost every altcoin during some period of time, although not all at once, but distributed over the altseason. For example, in the crazy altseason of Dec17/Jan18, almost every (low capitalized) altcoin increased its BTC value by a minimum of +300%, some at the beginning of the season, some at the end.
- When this happens, BTC loss capitalization dominance, but this also can happen if BTC is downtrending while altcoins are being bought in BTC markets but its USD value doesn't change too much. This happens when altcoins are uptrending in BTC price, but there are actually no gain of USD value because the BTC gain in value is not enough to compensate the BTC fall in price. Since BTC is losing USD price, but altcoins are not, dominance falls. So, looking at BTC dominance is not enough to spot possible beginnings of altseasons, because of arbitrage of other effects.
- The "big altcoins" are removed from the counting because one single big capitalized altcoin that grows, let's say, a 20%, will have an observable effect on the total altcoin capitalization, even if the rest of the altcoins are stagnated in price. For example, at today's date (8th April 2020), Ethereum by itself has the 23.89% of the total altcoins capitalization. A +10% in Ethereum price will increase the total altcoin capitalization by a +2.38%. I wanted to remove that effect to focus on generalized price changes of all altcoins. Remember that there are only 9 big altcoins 9 coins representing the 71% of the alts capitalization, while there are exists more than 5000 altcoins in total.
- Another key factor is that I want to focus on what happens in alt/BTC markets, because almost every altcoin can be traded against BTC, and most of them can only be traded against BTC. However, big altcoins can usually be traded against USD or other alt coins or fiat currencies as well. Removing the big alts from the equation helps (just a bit) to simplify the interpretation of the chart because arbitrage effects of those "impactfull" alts are limited (although not removed, because arbitrage also happens cross-markets).
- There are situations where BTC price is going up, alts USD capitalization is going up as well, but alts BTC capitalization is going down because altcoins are being sold in BTC markets, it just happens that the speed of the selling is not high enough as to compensated the increased in BTC price. That makes the USD capitalization grows, while alts are really being dumped in BTC markets. I wanted to reflect that effect as well by making sure that the graph is growing only when both USD and BTC capitalization of alts are growing.
Interpretation
============
If you want, you can see this chart as if plotting the Other alts capitalization as if priced against a fictional coin FCOIN, that start by having a price of 1, that combines the up and downs of both BTC price and alts USD capitalization in a very conservative way: if FCOIN price goes up, means that the other alts are gained USD value but only when they have overcome BTC price changes. Otherwise, it goes down.
If this fictional FCOIN has went up during some days straight with a total gain of maybe, greater than 10%, we are maybe in front of the start of an altseason. Sometimes, maybe (it requires some more years to extract a theory out of here), it can be used as proxy of the BTC near future (trend changes or continuations): if this FCOIN goes up, while BTC is doing nothing relevant or even is going down, it could signal that "people" is getting prepared and a generalized altcoin accumulation process has started, because of a combined people's assumption that BTC will start to have an stable uptrend, or will continue the current trend soon. There's some matches in the past about that, but there are also false positives, as usual.
Additionally, four customizable EMAs are added to the script, by default 21, 50, 100 and 150.
Definitions
=========
- Let's call `altcap_btc` the altcoin capitalization in USD, divided by BTC price. In other words, `altcap_btc` is the capitalization in terms of BTC.
- Let's call `x` the BTC price change rate as `btc_price_current_candle / btc_price_previous_candle`. So, if BTC has grown a +20%, `x = 1.20`, and if BTC has gone down a -20%, `x = 0.80`.
- Let's call `y` the `altcap_btc` price change rate, calculated as before but for `altcap_btc`.
- For pure math equivalence, `x * y` is thus the USD capitalization change rate.
Calculation
=========
For plotting the graph, for each candle, I choose a change rate, and then I plot the total accumulated change rate as by `ch0 * ch1 * ch2 * .... * ch_today`, where each `chX` is the choosen change rate of each candle since the beginning of the chart. So, if the "alts compensated value" has grown yesterday +20% and today's -10%, `1.20 * 0.9 = 1.08`, which means that in two days the compensated value has grown an 8% in total.
- If `x * y > 1` (USD cap is growing), I take `y` as change rate (alt/btc change rate).
- If both `x` and `y` are `> 1`, then the graph grows because I'm taking `y`.
- If `x > 1` and `y < 1`, the graph goes down because I'm taking `y`, reflecting the BTC markets are dumping.
- If `x < 1` and `y > 1`, the graph goes up because I'm taking `y`, reflecting the BTC markets are pumping so much that it overcomes the btc fall.
- `x < 1` and `y < 1` is impossible here because `x * y` must be `> 1` by precondition.
- If `x * y < 1` (USD cap is going down), I take `y` or `x * y` depending on the individual change rates:
- If `x` and `y` go in different directions (one up and the other down), I take `x * y` to reflect that USD capitalization has gone down. I don't take `y` here because it could be `> 1`, and I don't want to make the graph grow if alts are lossing USD value. Also, if `y < 1` and I take `y` the graph will go down faster than USD capitalization and I want to show that "alts compensated value is gown down slower than BTC because some boughts are happening". I don't take `x` either here for the same reasons.
- If both `x` and `y` are `< 1`, I take `y`, because otherwise the graph would be less than 0.000001 today after two years of bleeding, making literally impossible to see if alts "grow tomorrow".
- `x > 1` and `y > 1` is impossible here because `x * y` must be `< 1` by precondition.
Point and Figure (PnF) RSIThis is live and non-repainting Point and Figure Chart RSI tool. The script has it’s own P&F engine and not using integrated function of Trading View.
Point and Figure method is over 150 years old. It consist of columns that represent filtered price movements. Time is not a factor on P&F chart but as you can see with this script P&F chart created on time chart.
P&F chart provide several advantages, some of them are filtering insignificant price movements and noise, focusing on important price movements and making support/resistance levels much easier to identify.
P&F RSI is calculated and shown by using its own P&F engine.
If you are new to Point & Figure Chart then you better get some information about it before using this tool. There are very good web sites and books. Please PM me if you need help about resources.
Options in the Script
Box size is one of the most important part of Point and Figure Charting. Chart price movement sensitivity is determined by the Point and Figure scale. Large box sizes see little movement across a specific price region, small box sizes see greater price movement on P&F chart. There are four different box scaling with this tool: Traditional, Percentage, Dynamic (ATR), or User-Defined
4 different methods for Box size can be used in this tool.
User Defined: The box size is set by user. A larger box size will result in more filtered price movements and fewer reversals. A smaller box size will result in less filtered price movements and more reversals.
ATR: Box size is dynamically calculated by using ATR, default period is 20.
Percentage: uses box sizes that are a fixed percentage of the stock's price. If percentage is 1 and stock’s price is $100 then box size will be $1
Traditional: uses a predefined table of price ranges to determine what the box size should be.
Price Range Box Size
Under 0.25 0.0625
0.25 to 1.00 0.125
1.00 to 5.00 0.25
5.00 to 20.00 0.50
20.00 to 100 1.0
100 to 200 2.0
200 to 500 4.0
500 to 1000 5.0
1000 to 25000 50.0
25000 and up 500.0
Default value is “ATR”, you may use one of these scaling method that suits your trading strategy.
If ATR or Percentage is chosen then there is rounding algorithm according to mintick value of the security. For example if mintick value is 0.001 and box size (ATR/Percentage) is 0.00124 then box size becomes 0.001.
And also while using dynamic box size (ATR or Percentage), box size changes only when closing price changed.
Reversal : It is the number of boxes required to change from a column of Xs to a column of Os or from a column of Os to a column of Xs. Default value is 3 (most used). For example if you choose reversal = 2 then you get the chart similar to Renko chart.
Source: Closing price or High-Low prices can be chosen as data source for P&F charting.
you can use PNF type RSI or RENKO type RSI.
What is the difference between them?
While calculating PNF type RSI, the script checks last X/O column's closing price but when using RENKO type RSI the scipt calculates RSI on every price changes according to number of boxes. and also with RENKO type RSI, calculation is made for each boxes on price changes.
Important note if you use this PNF script with reversal = 2 then you get RENKO chart. So, with this RENKO chart better to use RENKO type RSI ;)
Fourier series Model Of The Market█ OVERVIEW
The Fourier Series Model of the Market (FSMM) decomposes price action into harmonic components using bandpass filtering, then reconstructs a composite wave weighted by rolling energy ratios. This approach isolates cyclical market behavior at multiple frequencies, emphasizing dominant cycles for cleaner signal generation. The energy-adaptive weighting is the key differentiator from simple harmonic summation: cycles that dominate current price action contribute more to the output.
Based on Fourier analysis principles applied to financial markets, the indicator extracts harmonics (fundamental, 2nd, 3rd, etc.) using second-order IIR bandpass filters, then weights each harmonic's contribution by its relative energy compared to adjacent harmonics. This energy-adaptive weighting naturally emphasizes the cycles that are most prominent in current market conditions.
█ CONCEPTS
Fourier Decomposition
Fourier analysis represents any periodic signal as a sum of sine waves at different frequencies. In market analysis, price action can be decomposed into a fundamental cycle (the base period) plus harmonics at integer multiples of that frequency (period/2, period/3, etc.). Each harmonic captures oscillations at a specific frequency band, and their sum reconstructs the original cyclical behavior.
Bandpass Filtering
Each harmonic is extracted using a second-order IIR (Infinite Impulse Response) bandpass filter tuned to that harmonic's frequency. The filter isolates price activity within a narrow frequency range while rejecting both higher-frequency noise and lower-frequency trend drift. Before filtering, the source is debiased via 2-bar momentum to remove DC offset, ensuring each bandpass operates around true zero.
Energy-Weighted Reconstruction
Rather than simply summing all harmonics equally, FSMM weights each harmonic by its rolling energy relative to the previous harmonic. The energy score combines the current harmonic value with its rate of change, so it reflects both amplitude and momentum. Higher harmonics that hold comparatively more energy therefore contribute more to the composite wave, while weaker harmonics fade out. This adaptive weighting allows the model to respond to changing market cyclicality.
Quadrature Component (Rate of Change)
The rate of change output represents the 90°-phase-shifted (quadrature) component of the wave. When the wave is at zero and rising, the rate of change is at maximum positive. This provides complementary information about cycle phase and can be used for timing entries relative to cycle position.
█ INTERPRETATION
Wave Output
The composite wave oscillates around zero, representing the sum of all extracted harmonic components weighted by energy:
• Above zero : Net bullish cyclical momentum across harmonics
• Below zero : Net bearish cyclical momentum across harmonics
• Zero crossings : Cycle phase transitions - potential reversal points
• Wave amplitude : Strength of cyclical behavior; larger swings indicate cleaner cycles
Rate of Change
The quadrature component (90° phase-shifted) provides cycle phase information:
• Maximum rate of change : Wave is near zero and accelerating - early cycle phase
• Zero rate of change : Wave is at peak or trough - cycle extremes
• Rate/Wave divergence : When wave makes new highs/lows but rate of change does not confirm (lower momentum), suggests cycle exhaustion or impending phase shift
Combined Analysis
• Wave crossing above zero with positive rate of change: Strong bullish cycle initiation
• Wave crossing below zero with negative rate of change: Strong bearish cycle initiation
• Wave at extreme with rate of change reversing: Potential cycle peak/trough
Threshold Bands
When enabled, threshold bands define statistically significant wave deviations:
• Breach above +threshold : Unusually strong bullish cyclical behavior
• Breach below -threshold : Unusually strong bearish cyclical behavior
• Return inside thresholds : Normalizing behavior, potential mean reversion ahead
Alert Conditions
Four built-in alerts trigger on bar close (no repainting):
• Above +Threshold : Strong bullish cycle behavior
• Below -Threshold : Strong bearish cycle behavior
• Above Zero : Bullish cycle phase shift
• Below Zero : Bearish cycle phase shift
█ SETTINGS & PARAMETER TUNING
Fourier Series Model
• Source : Price series to decompose into harmonic components.
• Period (6-100): Base period for the fundamental harmonic. Higher harmonics divide this period (harmonic 2 = period/2, harmonic 3 = period/3). Match to the dominant market cycle for best results. Default 20.
• Bandwidth (0.05-0.5): Bandpass filter selectivity. Lower values create narrower passbands that isolate harmonics more precisely but may miss slightly off-frequency cycles. Higher values capture broader ranges but reduce harmonic separation. Default 0.1 balances precision and robustness.
• Harmonics (1-20): Number of harmonic components to extract. More harmonics capture finer cyclical detail but increase computation. For most applications, 3-5 harmonics suffice. The fundamental alone (1 harmonic) functions as a simple bandpass filter.
Display Settings
• Wave Outputs : Toggle visibility and color of the composite Fourier wave.
• Rate of Change : Toggle visibility and color of the quadrature component (90° phase-shifted wave).
• Zero Line : Reference line for oscillator neutrality.
Diagnostics - Dynamic Thresholds
Optional significance bands that identify when wave readings indicate strong cyclical behavior:
• Dynamic Threshold : Toggle threshold bands and set colors.
• Threshold Mode : Select calculation method:
- MAD (Median Absolute Deviation) : Robust, outlier-resistant measure using k * MAD where MAD ≈ 0.6745 * stdev.
- Standard Deviation : Volatility-sensitive, calculated as k * stdev of wave over the lookback period.
- Percentile Rank : Fixed probability bands using percentile of |wave| (90% means only 10% of values exceed threshold).
• Period (2-200): Lookback for threshold calculations. Default 50.
• Multiplier (k) : Scaling for MAD/Standard Deviation modes. Default 1.5.
• Percentile (%) (0-100): For Percentile Rank mode only. Default 90%.
Parameter Interactions
• Shorter periods respond faster to cycle changes but may capture noise.
• Lower bandwidth + more harmonics = more precise decomposition but requires accurate period setting.
• Higher bandwidth is more forgiving of period mismatches.
• For strongly trending markets, restrict harmonics to 1-2 so the model tracks the dominant cycle with fewer higher-frequency components.
• For ranging/oscillating markets, more harmonics (4-6) capture complex cycles.
█ LIMITATIONS
Inherent Characteristics
• Period dependency : Effectiveness depends on correctly matching the Period parameter to actual market cycles. Use cycle measurement tools (autocorrelation, FFT, dominant cycle indicators) to identify appropriate periods.
• Stationarity assumption : The indicator assumes cycle frequencies remain relatively stable within the lookback window. Rapidly shifting dominant cycles (regime transitions) may produce inconsistent results until the buffer adapts.
• Filter lag : Despite bandpass design, some lag remains inherent to causal filtering. Higher harmonics have less lag but more noise sensitivity.
• Energy weighting artifacts : During regime changes when harmonic energy ratios shift rapidly, weighting may produce transient anomalies.
Market Conditions to Avoid
• Strong trending markets : Pure trends with no cyclicality produce weak, meandering signals. The indicator assumes cyclical market behavior.
• News events/gaps : Large discontinuities disrupt filter continuity. Requires 1-2 full periods to stabilize.
• Period mismatch : If the Period parameter doesn't match actual market cycles, harmonic extraction produces noise rather than signal.
Parameter Selection Pitfalls
• Too many harmonics : Beyond 5-6 harmonics, additional components often capture noise rather than meaningful cycles.
• Bandwidth too narrow : Very low bandwidth (< 0.05) requires extremely precise period matching; slight mismatches cause signal loss.
• Over-optimization : Perfect historical parameter fits typically fail forward. Use robust defaults across multiple instruments.
█ NOTES
Credits
This indicator applies Fourier analysis principles to financial market data, building on the extensive work of Dr. John F. Ehlers in applying digital signal processing to trading. The bandpass filter implementation and harmonic decomposition approach draw from DSP fundamentals as presented in Ehlers' publications.
For those interested in the underlying mathematics and DSP concepts:
• Ehlers, J.F. (2001). Rocket Science for Traders: Digital Signal Processing Applications . John Wiley & Sons.
• Ehlers, J.F. (2013). Cycle Analytics for Traders . John Wiley & Sons.
• Various TASC articles by John Ehlers on bandpass filters, cycle analysis, and harmonic decomposition.
by ♚@e2e4






















