CYCLE BY RiotWolftradingDescription of the "CYCLE" Indicator
The "CYCLE" indicator is a custom Pine Script v5 script for TradingView that visualizes cyclic patterns in price action, dividing the trading day into specific sessions and 90-minute quarters (Q1-Q4). It is designed to identify and display market phases (Accumulation, Manipulation, Distribution, and Continuation/Reversal) along with key support and resistance levels within those sessions. Additionally, it allows customization of boxes, lines, labels, and colors to suit user preferences.
Main Features
Cycle Phases:
Accumulation (1900-0100): Represents the phase where large operators accumulate positions.
Manipulation (0100-0700): Identifies potential manipulative moves to mislead retail traders.
Distribution (0700-1300): The phase where large operators distribute their positions.
Continuation/Reversal (1300-1900): Indicates whether the price continues the trend or reverses.
90-Minute Quarters (Q1-Q4):
Divides each 6-hour cycle (360 minutes) into four 90-minute quarters (Q1: 00:00-01:30, Q2: 01:30-03:00, Q3: 03:00-04:30, Q4: 04:30-06:00 UTC).
Each quarter is displayed with a colored box (Q1: light purple, Q2: light blue, Q3: light gray, Q4: light pink) and labels (defaulted to black).
Support and Resistance Visualization:
Draws boxes or lines (based on settings) showing the high and low levels of each session.
Optionally displays accumulated volume at the highs and lows within the boxes.
Daily Lines and Last 3 Boxes:
How to Use the Indicator
Step 1: Add the Indicator to TradingView
Open TradingView and select the chart where you want to apply the indicator (e.g., UMG9OOR on a 5-minute timeframe, as shown in the screenshot).
Go to the Pine Editor (at the bottom of the TradingView interface).
Copy and paste the provided code.
Click Compile and then Add to Chart.
Step 2: Configure the Indicator
Click on the indicator name on the chart ("CYCLE") and select Settings (or double-click the name).
Adjust the options based on your needs:
Cycle Phases: Enable/disable phases (Accumulation, Manipulation, Distribution, Continuation/Reversal) and adjust their time slots if needed.
90-Minute Quarters: Enable/disable quarters (Q1-Q4).
Step 3: Interpret the Indicator
Identify Cycle Phases:
Observe the red boxes indicating the phases (Accumulation, Manipulation, etc.).
The high and low levels within each phase are potential support/resistance zones.
If volume is enabled, pay attention to the accumulated volume at highs and lows, as it may indicate the strength of those levels.
Use the 90-Minute Quarters (Q1-Q4):
The colored boxes (Q1-Q4) divide the day into 90-minute segments.
Each quarter shows the price range (high and low) during that period.
Use these boxes to identify price patterns within each quarter, such as breakouts or consolidations.
The labels (Q1, Q2, etc.) help you track time and anticipate potential moves in the next quarter.
Analyze Support and Resistance:
The high and low levels of each phase/quarter act as support and resistance.
Daily lines (if enabled) show key levels from the previous day, useful for planning entries/exits.
The "last 3 boxes below price" (if enabled) highlight potential support levels the price might target.
Avoid Manipulation:
During the Manipulation phase (0100-0700), be cautious of sharp moves or false breakouts.
Use the high/low levels of this phase to identify potential traps (as explained in your first question about manipulation candles).
Step 4: Trading Strategy
Entries and Exits:
Support/Resistance: Use the high/low levels of phases and quarters to set entry or exit points.
For example, if the price bounces off a Q1 support level, consider a buy.
Breakouts: If the price breaks a high/low of a quarter (e.g., Q2), wait for confirmation to enter in the direction of the breakout.
Volume: If accumulated volume is high near a key level, that level may be more significant.
Risk Management:
Place stop-loss orders below lows (for buys) or above highs (for sells) identified by the indicator.
Avoid trading during the Manipulation phase unless you have a specific strategy to handle false breakouts.
Time Context:
Use the quarters (Q1-Q4) to plan your trades based on time. For example, if Q3 is typically volatile in your market, prepare for larger moves between 03:00-04:30 UTC.
Step 5: Adjustments and Testing
Test on Different Timeframes: The indicator is set for a 5-minute timeframe (as in the screenshot), but you can test it on other timeframes (e.g., 1-minute, 15-minute) by adjusting the time slots if needed.
Adjust Colors and Styles: If the default colors are not visible on your chart, change them for better clarity.
---
📌 1. **Accumulation: Strong Institutional Activity**
- During the **accumulation phase, we see **high volume: 82.773K, which suggests strong buying interest**, likely from institutional players.
- This sets the base for the following upward move in price.
---
📌 2. **Manipulation: False Breakout with Lower Volume**
- Later, there's a manipulation phase where price breaks above previous highs, but the volume (71.814K) is **lower than during accumulation**.
- This implies that buyers are not as aggressive as before—no real demandbehind the breakout.
- It’s likely a bull trap, where smart money is selling into the breakout to exit their positions.
---
### 📌 3. Distribution: Weakness and Lack of Demand
- The market enters a distribution phase, and volume drops even further (only 7.914K).
- Price struggles to go higher, and you start seeing rejections at the top.
- This shows that demand is drying up, and smart money is offloading positions**—not accumulating anymore.
---
### 💡 Why Take the Short Here?
- Volume is not increasing with new highs—showing weak demand**.
- The manipulation volume is weaker than the accumulation volume, confirming the breakout was likely false.
- Structure starts to break down (Q levels falling), which confirms weakness.
- This creates a high-probability short setup:
- **Entry:** after confirmation of distribution and structural breakdown.
- **Stop loss:** above the manipulation high.
- **Target:** down toward previous lows or value zones.
---
### ✅ Conclusion
Since the manipulation volume failed to exceed the accumulation volume, the breakout lacked real strength. Combined with decreasing volume in the distribution phase, this indicates fading demand and supply taking control—which justifies entering a short position.
Buscar en scripts para "low"
IU Bigger than range strategyDESCRIPTION
IU Bigger Than Range Strategy is designed to capture breakout opportunities by identifying candles that are significantly larger than the previous range. It dynamically calculates the high and low of the last N candles and enters trades when the current candle's range exceeds the previous range. The strategy includes multiple stop-loss methods (Previous High/Low, ATR, Swing High/Low) and automatically manages take-profit and stop-loss levels based on user-defined risk-to-reward ratios. This versatile strategy is optimized for higher timeframes and assets like BTC but can be fine-tuned for different instruments and intervals.
USER INPUTS:
Look back Length: Number of candles to calculate the high-low range. Default is 22.
Risk to Reward: Sets the target reward relative to the stop-loss distance. Default is 3.
Stop Loss Method: Choose between:(Default is "Previous High/Low")
- Previous High/Low
- ATR (Average True Range)
- Swing High/Low
ATR Length: Defines the length for ATR calculation (only applicable when ATR is selected as the stop-loss method) (Default is 14).
ATR Factor: Multiplier applied to the ATR to determine stop-loss distance(Default is 2).
Swing High/Low Length: Specifies the length for identifying swing points (only applicable when Swing High/Low is selected as the stop-loss method).(Default is 2)
LONG CONDITION:
The current candle’s range (absolute difference between open and close) is greater than the previous range.
The closing price is higher than the opening price (bullish candle).
SHORT CONDITIONS:
The current candle’s range exceeds the previous range.
The closing price is lower than the opening price (bearish candle).
LONG EXIT:
Stop-loss:
- Previous Low
- ATR-based trailing stop
- Recent Swing Low
Take-profit:
- Defined by the Risk-to-Reward ratio (default 3x the stop-loss distance).
SHORT EXIT:
Stop-loss:
- Previous High
- ATR-based trailing stop
- Recent Swing High
Take-profit:
- Defined by the Risk-to-Reward ratio (default 3x the stop-loss distance).
ALERTS:
Long Entry Triggered
Short Entry Triggered
WHY IT IS UNIQUE:
This strategy dynamically adapts to different market conditions by identifying candles that exceed the previous range, ensuring that it only enters trades during strong breakout scenarios.
Multiple stop-loss methods provide flexibility for different trading styles and risk profiles.
The visual representation of stop-loss and take-profit levels with color-coded plots improves trade monitoring and decision-making.
HOW USERS CAN BENEFIT FROM IT:
Ideal for breakout traders looking to capitalize on momentum-driven price moves.
Provides flexibility to customize stop-loss methods and fine-tune risk management parameters.
Helps minimize drawdowns with a strong risk-to-reward framework while maximizing profit potential.
StatPivot- Dynamic Range Analyzer - indicator [PresentTrading]Hello everyone! In the following few open scripts, I would like to share various statistical tools that benefit trading. For this time, it is a powerful indicator called StatPivot- Dynamic Range Analyzer that brings a whole new dimension to your technical analysis toolkit.
This tool goes beyond traditional pivot point analysis by providing comprehensive statistical insights about price movements, helping you identify high-probability trading opportunities based on historical data patterns rather than subjective interpretations. Whether you're a day trader, swing trader, or position trader, StatPivot's real-time percentile rankings give you a statistical edge in understanding exactly where current price action stands within historical contexts.
Welcome to share your opinions! Looking forward to sharing the next tool soon!
█ Introduction and How it is Different
StatPivot is an advanced technical analysis tool that revolutionizes retracement analysis. Unlike traditional pivot indicators that only show static support/resistance levels, StatPivot delivers dynamic statistical insights based on historical pivot patterns.
Its key innovation is real-time percentile calculation - while conventional tools require new pivot formations before updating (often too late for trading decisions), StatPivot continuously analyzes where current price stands within historical retracement distributions.
Furthermore, StatPivot provides comprehensive statistical metrics including mean, median, standard deviation, and percentile distributions of price movements, giving traders a probabilistic edge by revealing which price levels represent statistically significant zones for potential reversals or continuations. By transforming raw price data into statistical insights, StatPivot helps traders move beyond subjective price analysis to evidence-based decision making.
█ Strategy, How it Works: Detailed Explanation
🔶 Pivot Point Detection and Analysis
The core of StatPivot's functionality begins with identifying significant pivot points in the price structure. Using the parameters left and right, the indicator locates pivot highs and lows by examining a specified number of bars to the left and right of each potential pivot point:
Copyp_low = ta.pivotlow(low, left, right)
p_high = ta.pivothigh(high, left, right)
For a point to qualify as a pivot low, it must have left higher lows to its left and right higher lows to its right. Similarly, a pivot high must have left lower highs to its left and right lower highs to its right. This approach ensures that only significant turning points are recognized.
🔶 Percentage Change Calculation
Once pivot points are identified, StatPivot calculates the percentage changes between consecutive pivot points:
For drops (when a pivot low is lower than the previous pivot low):
CopydropPercent = (previous_pivot_low - current_pivot_low) / previous_pivot_low * 100
For rises (when a pivot high is higher than the previous pivot high):
CopyrisePercent = (current_pivot_high - previous_pivot_high) / previous_pivot_high * 100
These calculations quantify the magnitude of each market swing, allowing for statistical analysis of historical price movements.
🔶 Statistical Distribution Analysis
StatPivot computes comprehensive statistics on the historical distribution of drops and rises:
Average (Mean): The arithmetic mean of all recorded percentage changes
CopyavgDrop = array.avg(dropValues)
Median: The middle value when all percentage changes are arranged in order
CopymedianDrop = array.median(dropValues)
Standard Deviation: Measures the dispersion of percentage changes from the average
CopystdDevDrop = array.stdev(dropValues)
Percentiles (25th, 75th): Values below which 25% and 75% of observations fall
Copyq1 = array.get(sorted, math.floor(cnt * 0.25))
q3 = array.get(sorted, math.floor(cnt * 0.75))
VaR95: The maximum expected percentage drop with 95% confidence
Copyvar95D = array.get(sortedD, math.floor(nD * 0.95))
Coefficient of Variation (CV): Measures relative variability
CopycvD = stdDevDrop / avgDrop
These statistics provide a comprehensive view of market behavior, enabling traders to understand the typical ranges and extreme moves.
🔶 Real-time Percentile Ranking
StatPivot's most innovative feature is its real-time percentile calculation. For each current price, it calculates:
The percentage drop from the latest pivot high:
CopycurrentDropPct = (latestPivotHigh - close) / latestPivotHigh * 100
The percentage rise from the latest pivot low:
CopycurrentRisePct = (close - latestPivotLow) / latestPivotLow * 100
The percentile ranks of these values within the historical distribution:
CopyrealtimeDropRank = (count of historical drops <= currentDropPct) / total drops * 100
This calculation reveals exactly where the current price movement stands in relation to all historical movements, providing crucial context for decision-making.
🔶 Cluster Analysis
To identify the most common retracement zones, StatPivot performs a cluster analysis by dividing the range of historical drops into five equal intervals:
CopyrangeSize = maxVal - minVal
For each interval boundary:
Copyboundaries = minVal + rangeSize * i / 5
By counting the number of observations in each interval, the indicator identifies the most frequently occurring retracement zones, which often serve as significant support or resistance areas.
🔶 Expected Price Targets
Using the statistical data, StatPivot calculates expected price targets:
CopytargetBuyPrice = close * (1 - avgDrop / 100)
targetSellPrice = close * (1 + avgRise / 100)
These targets represent statistically probable price levels for potential entries and exits based on the average historical behavior of the market.
█ Trade Direction
StatPivot functions as an analytical tool rather than a direct trading signal generator, providing statistical insights that can be applied to various trading strategies. However, the data it generates can be interpreted for different trade directions:
For Long Trades:
Entry considerations: Look for price drops that reach the 70-80th percentile range in the historical distribution, suggesting a statistically significant retracement
Target setting: Use the Expected Sell price or consider the average rise percentage as a reasonable target
Risk management: Set stop losses below recent pivot lows or at a distance related to the statistical volatility (standard deviation)
For Short Trades:
Entry considerations: Look for price rises that reach the 70-80th percentile range, indicating an unusual extension
Target setting: Use the Expected Buy price or average drop percentage as a target
Risk management: Set stop losses above recent pivot highs or based on statistical measures of volatility
For Range Trading:
Use the most common drop and rise clusters to identify probable reversal zones
Trade bounces between these statistically significant levels
For Trend Following:
Confirm trend strength by analyzing consecutive higher pivot lows (uptrend) or lower pivot highs (downtrend)
Use lower percentile retracements (20-30th percentile) as entry opportunities in established trends
█ Usage
StatPivot offers multiple ways to integrate its statistical insights into your trading workflow:
Statistical Table Analysis: Review the comprehensive statistics displayed in the data table to understand the market's behavior. Pay particular attention to:
Average drop and rise percentages to set reasonable expectations
Standard deviation to gauge volatility
VaR95 for risk assessment
Real-time Percentile Monitoring: Watch the real-time percentile display to see where the current price movement stands within the historical distribution. This can help identify:
Extreme movements (90th+ percentile) that might indicate reversal opportunities
Typical retracements (40-60th percentile) that might continue further
Shallow pullbacks (10-30th percentile) that might represent continuation opportunities in trends
Support and Resistance Identification: Utilize the plotted pivot points as key support and resistance levels, especially when they align with statistically significant percentile ranges.
Target Price Setting: Use the expected buy and sell prices calculated from historical averages as initial targets for your trades.
Risk Management: Apply the statistical measurements like standard deviation and VaR95 to set appropriate stop loss levels that account for the market's historical volatility.
Pattern Recognition: Over time, learn to recognize when certain percentile levels consistently lead to reversals or continuations in your specific market, and develop personalized strategies based on these observations.
█ Default Settings
The default settings of StatPivot have been carefully calibrated to provide reliable statistical analysis across a variety of markets and timeframes, but understanding their effects allows for optimal customization:
Left Bars (30) and Right Bars (30): These parameters determine how pivot points are identified. With both set to 30 by default:
A pivot low must be the lowest point among 30 bars to its left and 30 bars to its right
A pivot high must be the highest point among 30 bars to its left and 30 bars to its right
Effect on performance: Larger values create fewer but more significant pivot points, reducing noise but potentially missing important market structures. Smaller values generate more pivot points, capturing more nuanced movements but potentially including noise.
Table Position (Top Right): Determines where the statistical data table appears on the chart.
Effect on performance: No impact on analytical performance, purely a visual preference.
Show Distribution Histogram (False): Controls whether the distribution histogram of drop percentages is displayed.
Effect on performance: Enabling this provides visual insight into the distribution of retracements but can clutter the chart.
Show Real-time Percentile (True): Toggles the display of real-time percentile rankings.
Effect on performance: A critical setting that enables the dynamic analysis of current price movements. Disabling this removes one of the key advantages of the indicator.
Real-time Percentile Display Mode (Label): Chooses between label display or indicator line for percentile rankings.
Effect on performance: Labels provide precise information at the current price point, while indicator lines show the evolution of percentile rankings over time.
Advanced Considerations for Settings Optimization:
Timeframe Adjustment: Higher timeframes generally benefit from larger Left/Right values to identify truly significant pivots, while lower timeframes may require smaller values to capture shorter-term swings.
Volatility-Based Tuning: In highly volatile markets, consider increasing the Left/Right values to filter out noise. In less volatile conditions, lower values can help identify more potential entry and exit points.
Market-Specific Optimization: Different markets (forex, stocks, commodities) display different retracement patterns. Monitor the statistics table to see if your market typically shows larger or smaller retracements than the current settings are optimized for.
Trading Style Alignment: Adjust the settings to match your trading timeframe. Day traders might prefer settings that identify shorter-term pivots (smaller Left/Right values), while swing traders benefit from more significant pivots (larger Left/Right values).
By understanding how these settings affect the analysis and customizing them to your specific market and trading style, you can maximize the effectiveness of StatPivot as a powerful statistical tool for identifying high-probability trading opportunities.
HTF Hi-Lo Zones [CHE]HTF Hi-Lo Zones Indicator
The HTF Hi-Lo Zones Indicator is a Pine Script tool designed to highlight important high and low values from a selected higher timeframe. It provides traders with clear visual zones where price activity has reached significant points, helping in decision-making by identifying potential support and resistance levels. This indicator is customizable, allowing users to select the resolution type, control the visualization of session ranges, and even display detailed information about the chosen timeframe.
Key Functionalities
1. Timeframe Resolution Selection:
- The indicator offers three modes to determine the resolution:
- Automatic: Dynamically calculates the higher timeframe based on the current chart's resolution.
- Multiplier: Allows users to apply a multiplier to the current chart's timeframe.
- Manual: Enables manual input for custom resolution settings.
- Each resolution type ensures flexibility to suit different trading styles and strategies.
2. Data Fetching for High and Low Values:
- The indicator retrieves the current high and low values for the selected higher timeframe using `request.security`.
- It also calculates the lowest and highest values over a configurable lookback period, providing insights into significant price movements within the chosen timeframe.
3. Session High and Low Detection:
- The indicator detects whether the current value represents a new session high or low by comparing the highest and lowest values with the current data.
- This is crucial for identifying breakouts or significant turning points during a session.
4. Visual Representation:
- When a new session high or low is detected:
- Range Zones: A colored box marks the session's high-to-low range.
- Labels: Optional labels indicate "New High" or "New Low" for clarity.
- Users can customize colors, transparency, and whether range outlines or labels should be displayed.
5. Information Box:
- An optional dashboard displays details about the chosen timeframe resolution and current session activity.
- The box's size, position, and colors are fully customizable.
6. Session Tracking:
- Tracks session boundaries, updating the visualization dynamically as the session progresses.
- Displays session-specific maximum and minimum values if enabled.
7. Additional Features:
- Configurable dividers for session or daily boundaries.
- Transparency and styling options for the displayed zones.
- A dashboard for advanced visualization and information overlay.
Key Code Sections Explained
1. Resolution Determination:
- Depending on the user's input (Auto, Multiplier, or Manual), the script determines the appropriate timeframe resolution for higher timeframe analysis.
- The resolution adapts dynamically based on intraday, daily, or higher-period charts.
2. Fetching Security Data:
- Using the `getSecurityDataFunction`, the script fetches high and low values for the chosen timeframe, including historical and real-time data management to avoid repainting issues.
3. Session High/Low Logic:
- By comparing the highest and lowest values over a lookback period, the script identifies whether the current value is a new session high or low, updating session boundaries and initiating visual indicators.
4. Visualization:
- The script creates visual representations using `box.new` for range zones and `label.new` for session labels.
- These elements update dynamically to reflect the most recent data.
5. Customization Options:
- Users can configure the appearance, behavior, and displayed data through multiple input options, ensuring adaptability to individual trading preferences.
This indicator is a robust tool for tracking higher timeframe activity, offering a blend of automation, customization, and visual clarity to enhance trading strategies.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Best regards and happy trading
Chervolino
[blackat] L1 Funding Bottom Wave█ OVERVIEW
The script "Funding Bottom Wave" is an indicator designed to analyze market conditions based on multiple smoothed price calculations and specific thresholds. It calculates several values such as B-value, VAR2-value, and additional signals like SK and SD to identify buy/sell levels and reversals, aiding traders in making informed decisions.
█ LOGICAL FRAMEWORK
The script consists of several main components:
• Input parameters that allow customization of calculation periods and thresholds.
• A custom function funding_wave that computes various financial metrics and conditions.
• Plotting commands to visualize different aspects of those computations.
Data flows from input parameters into the funding_wave function where calculations are performed. These results are then plotted according to specified conditions. The script uses conditional expressions to define when certain plots should appear based on the computed values.
█ CUSTOM FUNCTIONS
funding_wave Function:
This function takes six arguments: close_price, high_price, low_price, open_price, period_b, and period_var2. It performs several calculations including:
• Price range percentage normalized between lowest and highest prices over 60 bars.
• SMA of this value over periods defined by period_b and period_var2.
• Several moving averages (MA), EMAs, and extreme point markers (highest/lowest).
• Multiple condition checks involving these metrics leading to buy/high signal flags.
Returns: An array containing B-value, VAR2-value, SK-value, SD-value, along with various conditional signal indicators.
█ KEY POINTS AND TECHNIQUES
• Utilizes built-in TA functions (ta.highest, ta.lowest, ta.sma, ta.ema) for smoothing and normalization purposes.
• Implements extensive use of ternary operators and boolean logic to determine plot visibility based on specific criteria.
• Employs column-style plotting which highlights significant transitions in calculated metric levels visually.
• No explicit loops; computations utilize vectorized operations inherent to Pine Script's nature.
█ EXTENDED KNOWLEDGE AND APPLICATIONS
Potential modifications/extensions include:
• Adding alerts for key threshold crossovers or meeting certain conditions.
• Customizing more sophisticated alert messages incorporating current time and symbol details.
• Incorporating stop-loss/take-profit strategies dynamically adjusted by indicator outputs.
Similar techniques can be applied in:
• Developing robust trend-following systems combining momentum oscillators.
• Enhancing basic price action rulesets with statistical filters derived from historical data behaviors.
• Exploring intraday breakout strategies predicated upon sudden changes in market sentiment captured via volatility spikes.
Related concepts/features:
• Using arrays to encapsulate complex return structures for reusability across scripts/functions.
• Leveraging na effectively within plotting constructs ensures cleaner chart presentation avoiding clutter from irrelevant points.
█ MARKET MEANING OF DIFFERENT COLORED COLUMNS
Red Columns ("B above Var2"):
• Market Interpretation: When the red columns appear, it indicates that the B-value is higher than the VAR2-value. This suggests a strengthening upward trend or consolidation phase where the market might be experiencing buying pressure relative to recent trends.
• Trading Implication: Traders may consider this as a potentially bullish sign, indicating strength in the underlying asset.
Green Columns ("B below Var2"):
• Market Interpretation: Green columns indicate that the B-value is lower than the VAR2-value. This could suggest downward trend acceleration or weakening buying pressure compared to recent trends.
• Trading Implication: Traders might interpret this as a bearish signal, suggesting a possible decline in the market.
Aqua Columns ("SK below SD"):
• Market Interpretation: Aqua columns show instances where the SK-value is below the SD-value. This typically signifies that the short-term stochastic oscillator (or similar measure) is signaling oversold conditions but not yet reaching extremes.
• Trading Implication: While not necessarily a strong sell signal, aqua columns might prompt traders to look for further confirmation before entering long positions.
Fuchsia Columns ("SK above SD"):
• Market Interpretation: Fuchsia columns represent situations where the SK-value exceeds the SD-value. This usually indicates overbought conditions in the near term.
• Trading Implication: Traders often view fuchsia columns as cautionary signs, possibly prompting them to exit existing long positions or refrain from adding new ones without further analysis.
Yellow Columns ("High Condition" and "High Condition Both"):
• Market Interpretation: Yellow columns occur when either the SK-value or B-value crosses above predefined high thresholds (e.g., 90). If both cross simultaneously, they form "High Condition Both."
• Trading Implication: Strongly bullish signals indicating overheated markets prone to corrections. Traders may see this as a good opportunity to take profits or prepare for a pullback/corrective move.
Blue Columns ("Low Condition" and "Low Condition Both"):
• Market Interpretation: Blue columns emerge when either the SK-value or B-value drops below predefined low thresholds (e.g., 10). Simultaneous crossing forms "Low Condition Both."
• Trading Implication: Potentially bullish reversal setups once the market starts showing signs of bottoming out after being significantly oversold. Traders might use blue columns as entry points for establishing long positions or hedging against anticipated rebounds.
Light Purple Columns ("Low Condition with Reversal" and "Low Condition Both with Reversal"):
• Market Interpretation: Light purple columns signify moments when the SK-value or B-value falls below their respective thresholds but has started reversing upwards immediately afterward. If both fall and reverse together, it's denoted as "Low Condition Both with Reversal."
• Trading Implication: Suggests a possible early-stage rebound from an extended downtrend or sideways movement. This could be seen as a highly reliable bulls' flag formation setup.
White Columns ("High Condition with Reversal" and "High Condition Both with Reversal"):
• Market Interpretation: White columns denote scenarios where the SK-value or B-value breaches high thresholds (e.g., 90) but begins descending shortly thereafter. Both simultaneously crossing leads to "High Condition Both with Reversal."
• Trading Implication: Indicative of peak overbought conditions followed quickly by exhaustion in buying interest. This warns traders about potential imminent retracements or pullbacks, prompting exits or short positions.
█ SUMMARY TABLE OF COLUMN COLORS AND THEIR MEANINGS
Color Type Market Interpretation Trading Implication
Red B above Var2 Strengthening upward trend/consolidation Bullish sign
Green B below Var2 Downward trend acceleration/weakening buying pressure Bearish sign
Aqua SK below SD Oversold conditions but not extreme Cautionary signal
Fuchsia SK above SD Overbought conditions Take profit/precaution
Yellow High Condition / High Condition Both Overheated market, likely correction coming Good time to exit/additional selling
Blue Low Condition / Low Condition Both Possible bull/rebound setup Entry point/hedging
Light Purple Low Condition with Reversal / Low Condition Both with Reversal Early-stage rebound from downtrend Reliable bulls' flag formation
White High Condition with Reversal / High Condition Both with Reversal Peak overbought with imminent retracement Exit positions/warning
Understanding these color-coded signals can help traders make more informed decisions, whether for entry, exit, or risk management in trading strategies. Each set of colors provides distinct insights into market dynamics and trends, aiding in effective execution of trade plans.
Larry Williams: Market StructureLarry Williams' Three-Bar System of Highs and Lows: A Definition of Market Structure
Larry Williams developed a method of market structure analysis based on identifying local extrema using a sequence of three consecutive bars. This approach helps traders pinpoint significant turning points on the price chart.
Definition of Local Extrema:
Local High:
Consists of three bars where the middle bar has the highest high, while the lows of the bars on either side are lower than the low of the middle bar.
Local Low:
Consists of three bars where the middle bar has the lowest low, while the highs of the bars on either side are higher than the high of the middle bar.
This structure helps identify meaningful reversal points on the price chart.
Constructing the Zigzag Line:
Once the local highs and lows are determined, they are connected with lines to create a zigzag pattern.
This zigzag reflects the major price swings, filtering out minor fluctuations and market noise.
Medium-Term Market Structure:
By analyzing the sequence of local extrema, it is possible to determine the medium-term market trend:
Upward Structure: A sequence of higher highs and higher lows.
Downward Structure: A sequence of lower highs and lower lows.
Sideways Structure (Flat): Lack of a clear trend, where highs and lows remain approximately at the same level.
This method allows traders and analysts to better understand the current market phase and make informed trading decisions.
Built-in Indicator Feature:
The indicator includes a built-in functionality to display Intermediate Term Highs and Lows , which are defined by filtering short-term highs and lows as described in Larry Williams' methodology. This feature is enabled by default, ensuring traders can immediately visualize key levels for support, resistance, and trend assessment.
Quote from Larry Williams' Work on Intermediate Term Highs and Lows:
"Now, the most interesting part! Look, if we can identify a short-term high by defining it as a day with lower highs (excluding inside days) on both sides, we can take a giant leap forward and define an intermediate term high as any short-term high with lower short-term highs on both sides. But that’s not all, because we can take it even further and say that any intermediate term high with lower intermediate term highs on both sides—you see where I’m going—forms a long-term high.
For many years, I made a very good living simply by identifying these points as buy and sell signals. These points are the only valid support and resistance levels I’ve ever found. They are crucial, and the breach of these price levels provides important information about trend development and changes. Therefore, I use them for placing stop loss protection and entry methods into the market."
— Larry Williams
This insightful quote highlights the practical importance of identifying market highs and lows at different timeframes and underscores their role in effective trading strategies.
CandleCandle: A Comprehensive Pine Script™ Library for Candlestick Analysis
Overview
The Candle library, developed in Pine Script™, provides traders and developers with a robust toolkit for analyzing candlestick data. By offering easy access to fundamental candlestick components like open, high, low, and close prices, along with advanced derived metrics such as body-to-wick ratios, percentage calculations, and volatility analysis, this library enables detailed insights into market behavior.
This library is ideal for creating custom indicators, trading strategies, and backtesting frameworks, making it a powerful resource for any Pine Script™ developer.
Key Features
1. Core Candlestick Data
• Open : Access the opening price of the current candle.
• High : Retrieve the highest price.
• Low : Retrieve the lowest price.
• Close : Access the closing price.
2. Candle Metrics
• Full Size : Calculates the total range of the candle (high - low).
• Body Size : Computes the size of the candle’s body (open - close).
• Wick Size : Provides the combined size of the upper and lower wicks.
3. Wick and Body Ratios
• Upper Wick Size and Lower Wick Size .
• Body-to-Wick Ratio and Wick-to-Body Ratio .
4. Percentage Calculations
• Upper Wick Percentage : The proportion of the upper wick size relative to the full candle size.
• Lower Wick Percentage : The proportion of the lower wick size relative to the full candle size.
• Body Percentage and Wick Percentage relative to the candle’s range.
5. Candle Direction Analysis
• Determines if a candle is "Bullish" or "Bearish" based on its closing and opening prices.
6. Price Metrics
• Average Price : The mean of the open, high, low, and close prices.
• Midpoint Price : The midpoint between the high and low prices.
7. Volatility Measurement
• Calculates the standard deviation of the OHLC prices, providing a volatility metric for the current candle.
Code Architecture
Example Functionality
The library employs a modular structure, exporting various functions that can be used independently or in combination. For instance:
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © DevArjun
//@version=6
indicator("Candle Data", overlay = true)
import DevArjun/Candle/1 as Candle
// Body Size %
bodySize = Candle.BodySize()
// Determining the candle direction
candleDirection = Candle.CandleDirection()
// Calculating the volatility of the current candle
volatility = Candle.Volatility()
// Plotting the metrics (for demonstration)
plot(bodySize, title="Body Size", color=color.blue)
label.new(bar_index, high, candleDirection, style=label.style_circle)
Scalability
The modularity of the Candle library allows seamless integration into more extensive trading systems. Functions can be mixed and matched to suit specific analytical or strategic needs.
Use Cases
Trading Strategies
Developers can use the library to create strategies based on candle properties such as:
• Identifying long-bodied candles (momentum signals).
• Detecting wicks as potential reversal zones.
• Filtering trades based on candle ratios.
Visualization
Plotting components like body size, wick size, and directional labels helps visualize market behavior and identify patterns.
Backtesting
By incorporating volatility and ratio metrics, traders can design and test strategies on historical data, ensuring robust performance before live trading.
Education
This library is a great tool for teaching candlestick analysis and how each component contributes to market behavior.
Portfolio Highlights
Project Objective
To create a Pine Script™ library that simplifies candlestick analysis by providing comprehensive metrics and insights, empowering traders and developers with advanced tools for market analysis.
Development Challenges and Solutions
• Challenge : Achieving high precision in calculating ratios and percentages.
• Solution : Implemented robust mathematical operations and safeguarded against division-by-zero errors.
• Challenge : Ensuring modularity and scalability.
• Solution : Designed functions as independent modules, allowing flexible integration.
Impact
• Efficiency : The library reduces the time required to calculate complex candlestick metrics.
• Versatility : Supports various trading styles, from scalping to swing trading.
• Clarity : Clean code and detailed documentation ensure usability for developers of all levels.
Conclusion
The Candle library exemplifies the power of Pine Script™ in simplifying and enhancing candlestick analysis. By including this project in your portfolio, you showcase your expertise in:
• Financial data analysis.
• Pine Script™ development.
• Creating tools that solve real-world trading challenges.
This project demonstrates both technical proficiency and a keen understanding of market analysis, making it an excellent addition to your professional portfolio.
Library "Candle"
A comprehensive library to access and analyze the basic components of a candlestick, including open, high, low, close prices, and various derived metrics such as full size, body size, wick sizes, ratios, percentages, and additional analysis metrics.
Open()
Open
@description Returns the opening price of the current candle.
Returns: float - The opening price of the current candle.
High()
High
@description Returns the highest price of the current candle.
Returns: float - The highest price of the current candle.
Low()
Low
@description Returns the lowest price of the current candle.
Returns: float - The lowest price of the current candle.
Close()
Close
@description Returns the closing price of the current candle.
Returns: float - The closing price of the current candle.
FullSize()
FullSize
@description Returns the full size (range) of the current candle (high - low).
Returns: float - The full size of the current candle.
BodySize()
BodySize
@description Returns the body size of the current candle (open - close).
Returns: float - The body size of the current candle.
WickSize()
WickSize
@description Returns the size of the wicks of the current candle (full size - body size).
Returns: float - The size of the wicks of the current candle.
UpperWickSize()
UpperWickSize
@description Returns the size of the upper wick of the current candle.
Returns: float - The size of the upper wick of the current candle.
LowerWickSize()
LowerWickSize
@description Returns the size of the lower wick of the current candle.
Returns: float - The size of the lower wick of the current candle.
BodyToWickRatio()
BodyToWickRatio
@description Returns the ratio of the body size to the wick size of the current candle.
Returns: float - The body to wick ratio of the current candle.
UpperWickPercentage()
UpperWickPercentage
@description Returns the percentage of the upper wick size relative to the full size of the current candle.
Returns: float - The percentage of the upper wick size relative to the full size of the current candle.
LowerWickPercentage()
LowerWickPercentage
@description Returns the percentage of the lower wick size relative to the full size of the current candle.
Returns: float - The percentage of the lower wick size relative to the full size of the current candle.
WickToBodyRatio()
WickToBodyRatio
@description Returns the ratio of the wick size to the body size of the current candle.
Returns: float - The wick to body ratio of the current candle.
BodyPercentage()
BodyPercentage
@description Returns the percentage of the body size relative to the full size of the current candle.
Returns: float - The percentage of the body size relative to the full size of the current candle.
WickPercentage()
WickPercentage
@description Returns the percentage of the wick size relative to the full size of the current candle.
Returns: float - The percentage of the wick size relative to the full size of the current candle.
CandleDirection()
CandleDirection
@description Returns the direction of the current candle.
Returns: string - "Bullish" if the candle is bullish, "Bearish" if the candle is bearish.
AveragePrice()
AveragePrice
@description Returns the average price of the current candle (mean of open, high, low, and close).
Returns: float - The average price of the current candle.
MidpointPrice()
MidpointPrice
@description Returns the midpoint price of the current candle (mean of high and low).
Returns: float - The midpoint price of the current candle.
Volatility()
Volatility
@description Returns the standard deviation of the OHLC prices of the current candle.
Returns: float - The volatility of the current candle.
supertrendLibrary "supertrend"
supertrend : Library dedicated to different variations of supertrend
supertrend_atr(length, multiplier, atrMaType, source, highSource, lowSource, waitForClose, delayed)
supertrend_atr: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
length (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
delayed (simple bool) : : if set to true lags supertrend atr stop based on target levels.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_bands(bandType, maType, length, multiplier, source, highSource, lowSource, waitForClose, useTrueRange, useAlternateSource, alternateSource, sticky)
supertrend_bands: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
bandType (simple string) : : Type of band used - can be bb, kc or dc
maType (simple string) : : Moving Average type for Bands. This can be sma, ema, hma, rma, wma, vwma, swma
length (simple int) : : Band Length
multiplier (float) : : Std deviation or ATR multiplier for Bollinger Bands and Keltner Channel
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
useTrueRange (simple bool) : : Used for Keltner channel. If set to false, then high-low is used as range instead of true range
useAlternateSource (simple bool) : - Custom source is used for Donchian Chanbel only if useAlternateSource is set to true
alternateSource (float) : - Custom source for Donchian channel
sticky (simple bool) : : if set to true borders change only when price is beyond borders.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_zigzag(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
supertrend_zigzag: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zupertrend(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
zupertrend: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zsupertrend(zigzagpivots, history, source, highSource, lowSource, waitForClose, atrMaType, atrlength, multiplier)
zsupertrend: Same as zigzag supertrend. But, works on already calculated array rather than Calculating fresh zigzag
Parameters:
zigzagpivots (array) : : Precalculated zigzag pivots
history (simple int) : : number of historical pivots to consider
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
Price Action Dynamics Oscillator (PADO)1 minute ago
Price Action Dynamics Oscillator (PADO)
Indicator Overview and Technical Deep Dive
Concept and Philosophy
The Price Action Dynamics Oscillator (PADO) is a sophisticated technical analysis tool designed to provide multi-dimensional insights into market behavior by decomposing price action into manipulation and distribution metrics. The indicator goes beyond traditional momentum or trend indicators by introducing a nuanced approach to understanding market microstructure.
Key Architectural Components
1. Timeframe and Depth Selection
Pivot Depth Options:
Short Term (Length: 12 periods)
Intermediate Term (Length: 20 periods)
Long Term (Length: 100 periods)
This flexible configuration allows traders to adapt the indicator's sensitivity to different market conditions and trading styles.
2. Core Calculation Methodology
Manipulation Metrics
Calculates manipulation differently for green (bullish) and red (bearish) candles
Normalized against Average True Range (ATR) for consistent comparison across different volatility environments
Green Candle Manipulation: (Open - Low) / ATR
Red Candle Manipulation: (High - Open) / ATR
Distribution Metrics
Measures the directional strength and potential momentum shift
Green Candle Distribution: (Close - Open)
Red Candle Distribution: (Open - Close)
3. Normalization and Smoothing
Uses Simple Moving Average (SMA) for smoothing
Dynamic length calculation based on price range distance
Ensures minimum SMA length of 2 to prevent calculation errors
Unique Features
Visualization Toggles
Traders can selectively display:
Manipulation data
Distribution data
Long-term reference lines
Valuation metrics
Strategy signals
Valuation Comparative Analysis
Compares current manipulation and distribution metrics to 1000-bar long-term averages
Color-coded visualization for quick interpretation
Blue: Manipulation above average
Purple: Manipulation below average
Orange: Distribution above average
Yellow: Distribution below average
Strategy Deployment
Generates a composite strategy signal by comparing manipulation and distribution valuations
Uses Exponential Moving Average (EMA) for smoother signal generation
Incorporates volatility bands for context-aware signal interpretation
Quadrant Analysis
Classifies market state into four quadrants based on manipulation and distribution valuations:
Q1: Low Manipulation, High Distribution
Q2: High Manipulation, High Distribution
Q3: Low Manipulation, Low Distribution
Q4: High Manipulation, Low Distribution
Each quadrant is color-coded to provide visual market state representation.
Warning Signals
Manipulation Warning: When strategy crosses below low volatility band
Distribution Warning: When strategy crosses above high volatility band
Visual Indicators
Bar coloration based on strategy momentum
Multiple color states representing different market dynamics
Recommended Use Cases
Intraday and swing trading
Multi-timeframe market analysis
Volatility and momentum assessment
Trend reversal and continuation identification
Potential Limitations
Complexity might require significant trader education
Performance can vary across different market conditions
Requires careful parameter optimization
Recommended Settings
Best used on liquid markets with clear price action
Ideal for:
Forex
Futures
Large-cap stocks
Cryptocurrency pairs
Customization and Optimization
Traders should:
Backtest across multiple assets
Adjust timeframe settings
Calibrate visualization toggles
Use in conjunction with other technical indicators
Licensing
Mozilla Public License 2.0
Open-source and modification-friendly
Conclusion
The PADO represents an advanced approach to market analysis, blending traditional technical analysis with innovative metrics for deeper market understanding.
PADO Quadrant Color Analysis: Deep Dive
Quadrant Color Scheme Breakdown
Quadrant 1: Lime Green Background (RGB: 0, 255, 21, 90)
Condition: val_manip < 1 AND val_distr > 1
Market Interpretation:
Low Manipulation Pressure
High Distribution Activity
Potential Scenario:
Smart money might be gradually distributing positions
Trading Implications:
Caution for current trend followers
Potential preparation for trend change
Increased probability of consolidation or reversal
Quadrant 2: Bright Blue Background (RGB: 0, 191, 255, 90)
Condition: val_manip > 1 AND val_distr > 1
Market Interpretation:
High Manipulation Pressure
High Distribution Activity
Potential Scenario:
Strong institutional involvement
Potential market transition phase
Significant volume and momentum
Trading Implications:
High volatility expected
Increased market uncertainty
Potential for sharp price movements
Requires careful risk management
Quadrant 3: Light Gray Background (RGB: 252, 252, 252, 90)
Condition: val_manip < 1 AND val_distr < 1
Market Interpretation:
Low Manipulation Pressure
Low Distribution Activity
Potential Scenario:
Market consolidation
Reduced institutional activity
Potential low-volatility period
Trading Implications:
Range-bound market
Reduced trading opportunities
Potential setup for future breakout
Ideal for mean reversion strategies
Quadrant 4: Light Yellow Background (Hex: #f6ff0019)
Condition: val_manip > 1 AND val_distr < 1
Market Interpretation:
High Manipulation Pressure
Low Distribution Activity
Potential Scenario:
Accumulation of positions
Trading Implications:
Increased probability of directional move soon
Color Psychology and Technical Significance
Color Selection Rationale
Lime Green (Q1): Represents potential growth and transition
Bright Blue (Q2): Signifies high energy and institutional activity
Light Gray (Q3): Indicates neutrality and consolidation
Transparent Green (Q4): Suggests emerging trend potential
Advanced Interpretation Guidelines
Color Transition Analysis
Observe how the quadrant colors change
Rapid color shifts might indicate:
Market regime changes
Shifts in institutional sentiment
Potential trend acceleration or reversal
Technical Implementation Notes
Calculation Snippet
pinescriptCopyq1 = (val_manip < 1) and (val_distr > 1)
q2 = (val_manip > 1) and (val_distr > 1)
q3 = (val_manip < 1) and (val_distr < 1)
q4 = (val_manip > 1) and (val_distr < 1)
bgcolor(q1 ? color.rgb(0, 255, 21, 90):
q2 ? color.rgb(0, 191, 255, 90):
q3 ? color.rgb(252, 252, 252, 90):
q4 ? #f6ff0019:na)
Alpha Channel (Transparency)
90 and 0x19 values ensure background color doesn't overwhelm chart
Allows underlying price action to remain visible
Subtle visual cue without significant chart obstruction
Practical Trading Recommendations
Never Trade Solely on Quadrant Colors
Use as a complementary analysis tool
Combine with other technical and fundamental indicators
Timeframe Considerations
Validate quadrant signals across multiple timeframes
Longer timeframes provide more reliable signals
Risk Management
Set appropriate stop-loss levels
Use position sizing strategies
Be prepared for false signals
Recommended Workflow
Identify current quadrant
Assess overall market context
Confirm with other indicators
Execute with proper risk management
Mean Price
^^ Plotting switched to Line.
This method of financial time series (aka bars) downsampling is literally, naturally, and thankfully the best you can do in terms of maximizing info gain. You can finally chill and feed it to your studies & eyes, and probably use nothing else anymore.
(HL2 and occ3 also have use cases, but other aggregation methods? Not really, even if they do, the use cases are ‘very’ specific). Tho in order to understand why, you gotta read the following wall, or just believe me telling you, ‘I put it on my momma’.
The true story about trading volumes and why this is all a big misdirection
Actually, you don’t need to be a quant to get there. All you gotta do is stop blindly following other people’s contextual (at best) solutions, eg OC2 aggregation xD, and start using your own brain to figure things out.
Every individual trade (basically an imprint on 1D price space that emerges when market orders hit the order book) has several features like: price, time, volume, AND direction (Up if a market buy order hits the asks, Down if a market sell order hits the bids). Now, the last two features—volume and direction—can be effectively combined into one (by multiplying volume by 1 or -1), and this is probably how every order matching engine should output data. If we’re not considering size/direction, we’re leaving data behind. Moreover, trades aren’t just one-price dots all the time. One trade can consume liquidity on several levels of the order book, so a single trade can be several ticks big on the price axis.
You may think now that there are no zero-volume ticks. Well, yes and no. It depends on how you design an exchange and whether you allow intra-spread trades/mid-spread trades (now try to Google it). Intra-spread trades could happen if implemented when a matching engine receives both buy and sell orders at the same microsecond period. This way, you can match the orders with each other at a better price for both parties without even hitting the book and consuming liquidity. Also, if orders have different sizes, the remaining part of the bigger order can be sent to the order book. Basically, this type of trade can be treated as an OTC trade, having zero volume because we never actually hit the book—there’s no imprint. Another reason why it makes sense is when we think about volume as an impact or imbalance act, and how the medium (order book in our case) responds to it, providing information. OTC and mid-spread trades are not aggressive sells or buys; they’re neutral ticks, so to say. However huge they are, sometimes many blocks on NYSE, they don’t move the price because there’s no impact on the medium (again, which is the order book)—they’re not providing information.
... Now, we need to aggregate these trades into, let’s say, 1-hour bars (remember that a trade can have either positive or negative volume). We either don’t want to do it, or we don’t have this kind of information. What we can do is take already aggregated OHLC bars and extract all the info from them. Given the market is fractal, bars & trades gotta have the same set of features:
- Highest & lowest ticks (high & low) <- by price;
- First & last ticks (open & close) <- by time;
- Biggest and smallest ticks <- by volume.*
*e.g., in the array ,
2323: biggest trade,
-1212: smallest trade.
Now, in our world, somehow nobody started to care about the biggest and smallest trades and their inclusion in OHLC data, while this is actually natural. It’s the same way as it’s done with high & low and open & close: we choose the minimum and maximum value of a given feature/axis within the aggregation period.
So, we don’t have these 2 values: biggest and smallest ticks. The best we can do is infer them, and given the fact the biggest and smallest ticks can be located with the same probability everywhere, all we can do is predict them in the middle of the bar, both in time and price axes. That’s why you can see two HL2’s in each of the 3 formulas in the code.
So, summed up absolute volumes that you see in almost every trading platform are actually just a derivative metric, something that I call Type 2 time series in my own (proprietary ‘for now’) methods. It doesn’t have much to do with market orders hitting the non-uniform medium (aka order book); it’s more like a statistic. Still wanna use VWAP? Ok, but you gotta understand you’re weighting Type 1 (natural) time series by Type 2 (synthetic) ones.
How to combine all the data in the right way (khmm khhm ‘order’)
Now, since we have 6 values for each bar, let’s see what information we have about them, what we don’t have, and what we can do about it:
- Open and close: we got both when and where (time (order) and price);
- High and low: we got where, but we don’t know when;
- Biggest & smallest trades: we know shit, we infer it the way it was described before.'
By using the location of the close & open prices relative to the high & low prices, we can make educated guesses about whether high or low was made first in a given bar. It’s not perfect, but it’s ultimately all we can do—this is the very last bit of info we can extract from the data we have.
There are 2 methods for inferring volume delta (which I call simply volume) that are presented everywhere, even here on TradingView. Funny thing is, this is actually 2 parts of the 1 method. I wonder how many folks see through it xD. The same method can be used for both inferring volume delta AND making educated guesses whether high or low was made first.
Imagine and/or find the cases on your charts to understand faster:
* Close > open means we have an up bar and probably the volume is positive, and probably high was made later than low.
* Close < open means we have a down bar and probably the volume is negative, and probably low was made later than high.
Now that’s the point when you see that these 2 mentioned methods are actually parts of the 1 method:
If close = open, we still have another clue: distance from open/close pair to high (HC), and distance from open/close pair to low (LC):
* HC < LC, probably high was made later.
* HC > LC, probably low was made later.
And only if close = open and HC = LC, only in this case we have no clue whether high or low was made earlier within a bar. We simply don’t have any more information to even guess. This bar is called a neutral bar.
At this point, we have both time (order) and price info for each of our 6 values. Now, we have to solve another weighted average problem, and that’s it. We’ll weight prices according to the order we’ve guessed. In the neutral bar case, open has a weight of 1, close has a weight of 3, and both high and low have weights of 2 since we can’t infer which one was made first. In all cases, biggest and smallest ticks are modeled with HL2 and weighted like they’re located in the middle of the bar in a time sense.
P.S.: I’ve also included a "robust" method where all the bars are treated like neutral ones. I’ve used it before; obviously, it has lesser info gain -> works a bit worse.
FibExtender [tradeviZion]FibExtender : A Guide to Identifying Resistance with Fibonacci Levels
Introduction
Fibonacci levels are essential tools in technical analysis, helping traders identify potential resistance and support zones in trending markets. FibExtender is designed to make this analysis accessible to traders at all levels, especially beginners, by automating the process of plotting Fibonacci extensions. With FibExtender, you can visualize potential resistance levels quickly, empowering you to make more informed trading decisions without manually identifying every pivot point. In this article, we’ll explore how FibExtender works, guide you step-by-step in using it, and share insights for both beginner and advanced users.
What is FibExtender ?
FibExtender is an advanced tool that automates Fibonacci extension plotting based on significant pivot points in price movements. Fibonacci extensions are percentages based on prior price swings, often used to forecast potential resistance zones where price might reverse or consolidate. By automatically marking these Fibonacci levels on your chart, FibExtender saves time and reduces the complexity of technical analysis, especially for users unfamiliar with calculating and plotting these levels manually.
FibExtender not only identifies Fibonacci levels but also provides a customizable framework where you can adjust anchor points, colors, and level visibility to suit your trading strategy. This customization allows traders to tailor the indicator to fit different market conditions and personal preferences.
Key Features of FibExtender
FibExtender offers several features to make Fibonacci level analysis easier and more effective. Here are some highlights:
Automated Fibonacci Level Identification : The script automatically detects recent swing lows and pivot points to anchor Fibonacci extensions, allowing you to view potential resistance levels with minimal effort.
Customizable Fibonacci Levels : Users can adjust the specific Fibonacci levels they want to display (e.g., 0.618, 1.0, 1.618), enabling a more focused analysis based on preferred ratios. Each level can be color-coded for visual clarity.
Dual Anchor Points : FibExtender allows you to choose between anchoring levels from either the last pivot low or a recent swing low, depending on your preference. This flexibility helps in aligning Fibonacci levels with key market structures.
Transparency and Visual Hierarchy : FibExtender automatically adjusts the transparency of levels based on their "sequence age," creating a subtle visual hierarchy. Older levels appear slightly faded, helping you focus on more recent, potentially impactful levels.
Connection Lines for Context : FibExtender draws connecting lines from recent lows to pivot highs, allowing users to visualize the price movements that generated each Fibonacci extension level.
Step-by-Step Guide for Beginners
Let’s walk through how to use the FibExtender script on a TradingView chart. This guide will ensure that you’re able to set it up and interpret the key information displayed by the indicator.
Step 1: Adding FibExtender to Your Chart
Open your TradingView chart and select the asset you wish to analyze.
Search for “FibExtender ” in the Indicators section.
Click to add the indicator to your chart, and it will automatically plot Fibonacci levels based on recent pivot points.
Step 2: Customizing Fibonacci Levels
Adjust Levels : Under the "Fibonacci Settings" tab, you can enable or disable specific levels, such as 0.618, 1.0, or 1.618. You can also change the color for each level to improve visibility.
Set Anchor Points : Choose between "Last Pivot Low" and "Recent Swing Low" as your Fibonacci anchor point. If you want a broader view, choose "Recent Swing Low"; if you prefer tighter levels, "Last Pivot Low" may be more suitable.
Fib Line Length : Modify the line length for Fibonacci levels to make them more visible on your chart.
Step 3: Spotting Visual Clusters (Manual Analysis)
Identify Potential Resistance Clusters : Look for areas on your chart where multiple Fibonacci levels appear close together. For example, if you see 1.0, 1.272, and 1.618 levels clustered within a small price range, this may indicate a stronger resistance zone.
Why Clusters Matter : Visual clusters often signify areas where traders expect heightened price reaction. When levels are close, it suggests that resistance may be reinforced by multiple significant ratios, making it harder for price to break through. Use these clusters to anticipate potential pullbacks or consolidation areas.
Step 4: Observing the Price Action Around Fibonacci Levels
As price approaches these identified levels, watch for any slowing momentum or reversal patterns, such as doji candles or bearish engulfing formations, that might confirm resistance.
Adjust Strategy Based on Resistance : If price hesitates or reverses at a clustered resistance zone, it may be a signal to secure profits or tighten stops on a long position.
Advanced Insights (for Intermediate to Advanced Users)
For users interested in the technical workings of FibExtender, this section provides insights into how the indicator functions on a code level.
Pivot Point and Swing Detection
FibExtender uses a pivot-high and pivot-low detection function to identify significant price points. The upFractal and dnFractal variables detect these levels based on recent highs and lows, creating the basis for Fibonacci extension calculations. Here’s an example of the code used for this detection:
// Fractal Calculations
upFractal = ta.pivothigh(n, n)
dnFractal = ta.pivotlow(n, n)
By setting the number of periods for n, users can adjust the sensitivity of the script to recent price swings.
Fibonacci Level Calculation
The following function calculates the Fibonacci levels based on the selected pivot points and applies each level’s specific ratio (e.g., 0.618, 1.618) to project extensions above the recent price swing.
calculateFibExtensions(float startPrice, float highPrice, float retracePrice) =>
fibRange = highPrice - startPrice
var float levels = array.new_float(0)
array.clear(levels)
if array.size(fibLevels) > 0
for i = 0 to array.size(fibLevels) - 1
level = retracePrice + (fibRange * array.get(fibLevels, i))
array.push(levels, level)
levels
This function iterates over each level enabled by the user, calculating extensions by multiplying the price range by the corresponding Fibonacci ratio.
Example Use Case: Identifying Resistance in Microsoft (MSFT)
To better understand how FibExtender highlights resistance, let’s look at Microsoft’s stock chart (MSFT), as shown in the image. The chart displays several Fibonacci levels extending upward from a recent pivot low around $408.17. Here’s how you can interpret the chart:
Clustered Resistance Levels : In the chart, note the grouping of several Fibonacci levels in the range of $450–$470. These levels, particularly when tightly packed, suggest a zone where Microsoft may encounter stronger resistance, as multiple Fibonacci levels signal potential barriers.
Applying Trading Strategies : As price approaches this clustered resistance, traders can watch for weakening momentum. If price begins to stall, it may be wise to lock in profits on long positions or set tighter stop-loss orders.
Observing Momentum Reversals : Look for specific candlestick patterns as price nears these levels, such as bearish engulfing candles or doji patterns. Such patterns can confirm resistance, helping you make informed decisions on whether to exit or manage your position.
Conclusion: Harnessing Fibonacci Extensions with FibExtender
FibExtender is a powerful tool for identifying potential resistance levels without the need for manual Fibonacci calculations. It automates the detection of key swing points and projects Fibonacci extensions, offering traders a straightforward approach to spotting potential resistance zones. For beginners, FibExtender provides a user-friendly gateway to technical analysis, helping you visualize levels where price may react.
For those with a bit more experience, the indicator offers insight into pivot points and Fibonacci calculations, enabling you to fine-tune the analysis for different market conditions. By carefully observing price reactions around clustered levels, users can identify areas of stronger resistance and refine their trade management strategies accordingly.
FibExtender is not just a tool but a framework for disciplined analysis. Using Fibonacci levels for guidance can support your trading decisions, helping you recognize areas where price might struggle or reverse. Integrating FibExtender into your trading strategy can simplify the complexity of Fibonacci extensions and enhance your understanding of resistance dynamics.
Note: Always practice proper risk management and thoroughly test the indicator to ensure it aligns with your trading strategy. Past performance is not indicative of future results.
Trade smarter with TradeVizion—unlock your trading potential today!
Bearish signal using Point of Control (POC) with PAC by guruThis indicator code helps traders identify potential sell opportunities using several important technical indicators:
Point of Control (POC) – This is the price level where the most volume was traded over the past several days.
Previous Day's Low – This shows the lowest price reached during the previous day.
PAC (Price Action Channel) EMA – These are two moving averages (one based on the low price and one based on the close price) that help determine if the price is trending within a certain range.
Volume SMA – This is a 3-day simple moving average (SMA) of volume, which helps filter out signals based on market activity.
What the Script Does:
Point of Control (POC):
The script looks at the last 50 days (configurable) and calculates which price level had the highest trading volume.
It then plots a red line on the chart at the POC level. This is important because it helps identify areas where there was strong market interest in the past.
Volume Moving Average:
The script calculates a 3-day SMA of volume, but it excludes the current day to avoid premature signals based on today’s trading.
The volume SMA is used to ensure there’s enough market activity (with a threshold set to 25 units) before triggering a sell signal.
Price Action Channel (PAC) EMA:
The PAC consists of two exponential moving averages (EMAs):
The PAC Low EMA: This is based on the low prices over the last 34 periods (configurable).
The PAC Close EMA: This is based on the closing prices over the last 34 periods.
These EMAs help determine if the price is trending above or below certain price levels.
Sell Signal Logic: The script checks three conditions before displaying a "Sell" signal:
Price Below POC and Previous Day’s Low:
The close price must be below both the Point of Control (POC) and the previous day's low.
Volume SMA Above 25:
The 3-day volume SMA must be greater than 25. This ensures the signal only triggers when there’s enough trading volume in the market.
Today’s Low is Above PAC EMAs:
Today's low price must be above both the PAC low EMA and the PAC close EMA. This prevents sell signals when prices are already significantly below the PAC, indicating possible exhaustion in the downtrend.
If all three conditions are met, the script will display a red "Sell" label on the chart, signaling a potential selling opportunity.
No Sell Signal if Price Reverses:
If the price crosses back above the POC or the previous day's low, the script will remove the sell signal and reset for a new opportunity.
Summary of Conditions:
For the script to display a "Sell" label:
The close price must be below the Point of Control (POC) and the previous day’s low.
The 3-day volume SMA (excluding today) must be greater than 25 units.
The low price of the current day must be above both the PAC low EMA and the PAC close EMA.
If these conditions are met, a red sell label appears on the chart as a potential signal for a short (sell) trade.
Dynamic Candle StrengthHow It Works
Initialization of Dynamic Levels:
The first candle's high and low are taken as the initial dynamic high and dynamic low levels.
If the next candle's close price is above the dynamic high, the candle is colored green, indicating bullish conditions.
If the next candle's close price is below the dynamic low, the candle is colored black, indicating bearish conditions.
If a candle's high and low crossed both the dynamic high and dynamic low, the dynamic high and low levels are updated to the high and low of that candle, but the candle color will continue with the same color as the previous candle.
Maintaining and Updating Dynamic Levels:
The dynamic high and low are only updated if a candle's close is above the current dynamic high or below the current dynamic low.
If the candle does not close above or below these levels, the dynamic high and low remain unchanged.
Visual Signals:
Green Bars: Indicate that the candle's close is above the dynamic high, suggesting bullish conditions.
Black Bars: Indicate that the candle's close is below the dynamic low, suggesting bearish conditions.
This method ensures that the dynamic high and low levels are adjusted in real-time based on the most recent significant price movements, providing a reliable measure of market sentiment.
Depth of Market (DOM) [LuxAlgo]The Depth Of Market (DOM) tool allows traders to look under the hood of any market, taking price and volume analysis to the next level. The following features are included: DOM, Time & Sales, Volume Profile, Depth of Market, Imbalances, Buying Pressure, and up to 24 key intraday levels (it really packs a punch).
As a disclaimer, this tool does not use tick data, it is a DOM reconstruction from the provided real-time time series data (price and volume). So the volume you see is from filled orders only, this tool does not show unfilled limit orders.
Traders can enable or disable any of the features at will to avoid being overwhelmed with too much information and to make the tool perform faster.
The features that have the biggest impact on performance are Historical Data Collection, Key Levels (POC & VWAP), Time & Sales, Profile, and Imbalances. Disable these features to improve the indicator computational performance.
🔶 DOM
This is the simplest form of the tool, a simple DOM or ladder that displays the following columns:
PRICE: Price level
BID: Total number of market sell orders filled or limit buy orders filled.
SELL: Sell market orders
BUY: Buy market orders
ASK: Total number of market buy orders filled or limit sell orders filled.
The DOM only collects historical data from the last 24 hours and real-time data.
Traders can select a reset period for the DOM with two options:
DAILY: Resets at the beginning of each trading day
SESSIONS: Resets twice, as DAILY and 15.5 hours later, to coincide with the start of the RTH session for US tickers.
The DOM has two main modes, it can display price levels as ticks or points. The default is automatic based on the current daily volatility, but traders can manually force one mode or the other if they wish.
For convenience, traders have the option to set the number of lines (price levels), and the size of the text and to display only real-time data.
By default, the top price is set to 0 so that the DOM automatically adjusts the price levels to be displayed, but traders can set the top price manually so that the tool displays only the desired price levels in a fixed manner.
🔹 Volume Profile
As additional features to the basic DOM, traders have access to the volume profile histogram and the total volume per price level.
This helps traders identify at a glance key price areas where volume is accumulating (high volume nodes) or areas where volume is lacking (low volume nodes) - these areas are important to some traders who base their decision-making process on them.
🔹 Imbalances
Other added features are imbalances and buying pressure:
Interlevel Imbalance: volume delta between two different price levels
Intralevel Imbalance: delta between buy and sell volume at the same price level
Buying Pressure Percent: percentage of buy volume compared to total volume
Imbalances can help traders identify areas of interest in the price for possible support or resistance.
🔹 Depth
Depth allows traders to see at a glance how much supply is above the current price level or how much demand is below the current price level.
Above the current price level shows the cumulative ask volume (filled sell limit orders) and below the current price level shows the cumulative bid volume (filled buy limit orders).
🔶 KEY LEVELS
The tool includes up to 24 different key intraday levels of particular relevance:
Previous Week Levels
PWH: Previous week high
PWL: Previous week low
PWM: Previous week middle
PWS: Previous week settlement (close)
Previous Day Levels
PDH: Previous day high
PDL: Previous day low
PDM: Previous day middle
PDS: Previous day settlement (close)
Current Day Levels
OPEN: Open of day (or session)
HOD: High of day (or session)
LOD: Low of day (or session)
MOD: Middle of day (or session)
Opening Range
ORH: Open range high
ORL: Open range low
Initial Balance
IBH: Initial balance high
IBL: Initial balance low
VWAP
+3SD: Volume weighted average price plus 3 standard deviations
+2SD: Volume weighted average price plus 2 standard deviations
+1SD: Volume weighted average price plus 1 standard deviation
VWAP: Volume weighted average price
-1SD: Volume weighted average price minus 1 standard deviation
-2SD: Volume weighted average price minus 2 standard deviations
-3SD: Volume weighted average price minus 3 standard deviations
POC: Point of control
Different traders look at different levels, the key levels shown here are objective and specific areas of interest that traders can act on, providing us with potential areas of support or resistance in the price.
🔶 TIME & SALES
The tool also features a full-time and sales panel with time, price, and size columns, a size filter, and the ability to set the timezone to display time in the trader's local time.
The information shown here is what feeds the DOM and it can be useful in several ways, for example in detecting absorption. If a large number of orders are coming into the market but the price is barely moving, this indicates that there is enough liquidity at these levels to absorb all these orders, so if these orders stop coming into the market, the price may turn around.
🔶 SETTINGS
Period: Select the anchoring period to start data collection, DAILY will anchor at the start of the trading day, and SESSIONS will start as DAILY and 15.5 hours later (RTH for US tickers).
Mode: Select between AUTO and MANUAL modes for displaying TICKS or POINTS, in AUTO mode the tool will automatically select TICKS for tickers with a daily average volatility below 5000 ticks and POINTS for the rest of the tickers.
Rows: Select the number of price levels to display
Text Size: Select the text size
🔹 DOM
DOM: Enable/Disable DOM display
Realtime only: Enable/Disable real-time data only, historical data will be collected if disabled
Top Price: Specify the price to be displayed on the top row, set to 0 to enable dynamic DOM
Max updates: Specify how many times the values on the SELL and BUY columns are accumulated until reset.
Profile/Depth size: Maximum size of the histograms on the PROFILE and DEPTH columns.
Profile: Enable/Disable Profile column. High impact on performance.
Volume: Enable/Disable Volume column. Total volume traded at price level.
Interlevel Imbalance: Enable/Disable Interlevel Imbalance column. Total volume delta between the current price level and the price level above. High impact on performance.
Depth: Enable/Disable Depth, showing the cumulative supply above the current price and the cumulative demand below. Impact on performance.
Intralevel Imbalance: Enable/Disable Intralevel Imbalance column. Delta between total buy volume and total sell volume. High impact on performance.
Buying Pressure Percent: Enable/Disable Buy Percent column. Percentage of total buy volume compared to total volume.
Imbalance Threshold %: Threshold for highlighting imbalances. Set to 90 to highlight the top 10% of interlevel imbalances and the top and bottom 10% of intra-level imbalances.
Crypto volume precision: Specify the number of decimals to display on the volume of crypto assets
🔹 Key Levels
Key Levels: Enable/Disable KEY column. Very high performance impact.
Previous Week: Enable/Disable High, Low, Middle, and Close of the previous trading week.
Previous Day: Enable/Disable High, Low, Middle, and Settlement of the previous trading day.
Current Day/Session: Enable/Disable Open, High, Low and Middle of the current period.
Open Range: Enable/Disable High and Low of the first candle of the period.
Initial Balance: Enable/Disable High and Low of the first hour of the period.
VWAP: Enable/Disable Volume-weighted average price of the period with 1, 2, and 3 standard deviations.
POC: Enable/Disable Point of Control (price level with the highest volume traded) of the period.
🔹 Time & Sales
Time & Sales: Enable/Disable time and sales panel.
Timezone offset (hours): Enter your time zone\'s offset (+ or −), including a decimal fraction if needed.
Order Size: Set order size filter. Orders smaller than the value are not displayed.
🔶 THANKS
Hi, I'm makit0 coder of this tool and proud member of the LuxAlgo Opensource team, it's an honor to be part of the LuxAlgo family doing something I love as it's writing opensource code and sharing it with the world. I'd like to thank all of you who use, comment on, and vote for all of our open-source tools, and all of you who give us your support.
And of course thanks to the PineCoders family for all the work in front of and behind the scenes that makes the PineScript community what it is, simply the best.
Peace, Love & PineScript!
Fib Pivot Points HLThis TradingView indicator allows users to select a specific timeframe (TF) and then analyzes the high, low, and closing prices from the past period within that TF to calculate a central pivot point. The pivot point is determined using the formula (High + Close + Low) / 3, providing a key level around which the market is expected to pivot or change direction.
In addition to the central pivot point, the indicator enhances its utility by incorporating Fibonacci levels. These levels are calculated based on the range from the low to the high of the selected timeframe. For instance, a Fibonacci level like R0.38 would be calculated by adding 38% of the high-low range to the pivot point, giving traders potential resistance levels above the pivot.
Key features of this indicator include:
Timeframe Selection: Users can choose their desired timeframe, such as weekly, daily, etc., for analysis.
Pivot Point Calculation: The indicator calculates the pivot point based on the previous period's high, low, and closing prices within the selected timeframe.
Fibonacci Levels: Adds Fibonacci retracement levels to the pivot point, offering traders additional layers of potential support and resistance based on the natural Fibonacci sequence.
This indicator is particularly useful for traders looking to identify potential turning points in the market and key levels of support and resistance based on historical price action and the Fibonacci sequence, which is widely regarded for its ability to predict market movements.
Example:
Suppose you're analyzing the EUR/USD currency pair using this indicator with a weekly timeframe setting. The previous week's price action showed a high of 1.2100, a low of 1.1900, and the week closed at 1.2000.
Using the formula ( High + Close + Low ) / 3 (High+Close+Low)/3, the pivot point would be calculated as ( 1.2100 + 1.2000 + 1.1900 ) / 3 = 1.2000. Thus, the central pivot point for the current week is at 1.2000.
The range from the low to the high is 1.2100 − 1.1900 = 0.0200 1.2100−1.1900=0.0200.
To calculate a specific Fibonacci level, such as R0.38, you would add 38% of the high-low range to the pivot point: 1.2000 + ( 0.0200 ∗ 0.38 ) = 1.2076 1.2000+(0.0200∗0.38)=1.2076. Thus, the R0.38 Fibonacci resistance level is at 1.2076.
Similarly, you can calculate other Fibonacci levels such as S0.38 (Support level at 38% retracement) by subtracting 38% of the high-low range from the pivot point.
Traders can use the pivot point as a reference for the market's directional bias: prices above the pivot point suggest bullish sentiment, while prices below indicate bearish sentiment. The Fibonacci levels act as potential stepping stones for price movements, offering strategic points for entry, exit, or placing stop-loss orders.
Bearish Cassiopeia C Harmonic Patterns [theEccentricTrader]█ OVERVIEW
This indicator automatically detects and draws bearish Cassiopeia C harmonic patterns and price projections derived from the ranges that constitute the patterns.
Cassiopeia A, B and C harmonic patterns are patterns that I created/discovered myself. They are all inspired by the Cassiopeia constellation and each one is based on different rotations of the constellation as it moves through the sky. The range ratios are also based on the constellation's right ascension and declination listed on Wikipedia:
Right ascension 22h 57m 04.5897s–03h 41m 14.0997s
Declination 77.6923447°–48.6632690°
en.wikipedia.org
I actually developed this idea quite a while ago now but have not felt audacious enough to introduce a new harmonic pattern, let alone 3 at the same time! But I have since been able to run backtests on tick data going back to 2002 across a variety of market and timeframe combinations and have learned that the Cassiopeia patterns can certainly hold their own against the currently known harmonic patterns.
I would also point out that the Cassiopeia constellation does actually look like a harmonic pattern and the Cassiopeia A star is literally the 'strongest source of radio emission in the sky beyond the solar system', so its arguably more of a real harmonic phenomenon than the current patterns.
www.britannica.com
chandra.si.edu
█ CONCEPTS
Green and Red Candles
• A green candle is one that closes with a close price equal to or above the price it opened.
• A red candle is one that closes with a close price that is lower than the price it opened.
Swing Highs and Swing Lows
• A swing high is a green candle or series of consecutive green candles followed by a single red candle to complete the swing and form the peak.
• A swing low is a red candle or series of consecutive red candles followed by a single green candle to complete the swing and form the trough.
Peak and Trough Prices (Basic)
• The peak price of a complete swing high is the high price of either the red candle that completes the swing high or the high price of the preceding green candle, depending on which is higher.
• The trough price of a complete swing low is the low price of either the green candle that completes the swing low or the low price of the preceding red candle, depending on which is lower.
Historic Peaks and Troughs
The current, or most recent, peak and trough occurrences are referred to as occurrence zero. Previous peak and trough occurrences are referred to as historic and ordered numerically from right to left, with the most recent historic peak and trough occurrences being occurrence one.
Range
The range is simply the difference between the current peak and current trough prices, generally expressed in terms of points or pips.
Upper Trends
• A return line uptrend is formed when the current peak price is higher than the preceding peak price.
• A downtrend is formed when the current peak price is lower than the preceding peak price.
• A double-top is formed when the current peak price is equal to the preceding peak price.
Lower Trends
• An uptrend is formed when the current trough price is higher than the preceding trough price.
• A return line downtrend is formed when the current trough price is lower than the preceding trough price.
• A double-bottom is formed when the current trough price is equal to the preceding trough price.
Muti-Part Upper and Lower Trends
• A multi-part return line uptrend begins with the formation of a new return line uptrend and continues until a new downtrend ends the trend.
• A multi-part downtrend begins with the formation of a new downtrend and continues until a new return line uptrend ends the trend.
• A multi-part uptrend begins with the formation of a new uptrend and continues until a new return line downtrend ends the trend.
• A multi-part return line downtrend begins with the formation of a new return line downtrend and continues until a new uptrend ends the trend.
Double Trends
• A double uptrend is formed when the current trough price is higher than the preceding trough price and the current peak price is higher than the preceding peak price.
• A double downtrend is formed when the current peak price is lower than the preceding peak price and the current trough price is lower than the preceding trough price.
Muti-Part Double Trends
• A multi-part double uptrend begins with the formation of a new uptrend that proceeds a new return line uptrend, and continues until a new downtrend or return line downtrend ends the trend.
• A multi-part double downtrend begins with the formation of a new downtrend that proceeds a new return line downtrend, and continues until a new uptrend or return line uptrend ends the trend.
Wave Cycles
A wave cycle is here defined as a complete two-part move between a swing high and a swing low, or a swing low and a swing high. The first swing high or swing low will set the course for the sequence of wave cycles that follow; for example a chart that begins with a swing low will form its first complete wave cycle upon the formation of the first complete swing high and vice versa.
Figure 1.
Retracement and Extension Ratios
Retracement and extension ratios are calculated by dividing the current range by the preceding range and multiplying the answer by 100. Retracement ratios are those that are equal to or below 100% of the preceding range and extension ratios are those that are above 100% of the preceding range.
Fibonacci Retracement and Extension Ratios
The Fibonacci sequence is a series of numbers in which each number is the sum of the two preceding numbers, starting with 0 and 1. For example 0 + 1 = 1, 1 + 1 = 2, 1 + 2 = 3, and so on. Ultimately, we could go on forever but the first few numbers in the sequence are as follows: 0 , 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144.
The extension ratios are calculated by dividing each number in the sequence by the number preceding it. For example 0/1 = 0, 1/1 = 1, 2/1 = 2, 3/2 = 1.5, 5/3 = 1.6666..., 8/5 = 1.6, 13/8 = 1.625, 21/13 = 1.6153..., 34/21 = 1.6190..., 55/34 = 1.6176..., 89/55 = 1.6181..., 144/89 = 1.6179..., and so on. The retracement ratios are calculated by inverting this process and dividing each number in the sequence by the number proceeding it. For example 0/1 = 0, 1/1 = 1, 1/2 = 0.5, 2/3 = 0.666..., 3/5 = 0.6, 5/8 = 0.625, 8/13 = 0.6153..., 13/21 = 0.6190..., 21/34 = 0.6176..., 34/55 = 0.6181..., 55/89 = 0.6179..., 89/144 = 0.6180..., and so on.
1.618 is considered to be the 'golden ratio', found in many natural phenomena such as the growth of seashells and the branching of trees. Some now speculate the universe oscillates at a frequency of 0,618 Hz, which could help to explain such phenomena, but this theory has yet to be proven.
Traders and analysts use Fibonacci retracement and extension indicators, consisting of horizontal lines representing different Fibonacci ratios, for identifying potential levels of support and resistance. Fibonacci ranges are typically drawn from left to right, with retracement levels representing ratios inside of the current range and extension levels representing ratios extended outside of the current range. If the current wave cycle ends on a swing low, the Fibonacci range is drawn from peak to trough. If the current wave cycle ends on a swing high the Fibonacci range is drawn from trough to peak.
Harmonic Patterns
The concept of harmonic patterns in trading was first introduced by H.M. Gartley in his book "Profits in the Stock Market", published in 1935. Gartley observed that markets have a tendency to move in repetitive patterns, and he identified several specific patterns that he believed could be used to predict future price movements.
Since then, many other traders and analysts have built upon Gartley's work and developed their own variations of harmonic patterns. One such contributor is Larry Pesavento, who developed his own methods for measuring harmonic patterns using Fibonacci ratios. Pesavento has written several books on the subject of harmonic patterns and Fibonacci ratios in trading. Another notable contributor to harmonic patterns is Scott Carney, who developed his own approach to harmonic trading in the late 1990s and also popularised the use of Fibonacci ratios to measure harmonic patterns. Carney expanded on Gartley's work and also introduced several new harmonic patterns, such as the Shark pattern and the 5-0 pattern.
The bullish and bearish Gartley patterns are the oldest recognized harmonic patterns in trading and all the other harmonic patterns are ultimately modifications of the original Gartley patterns. Gartley patterns are fundamentally composed of 5 points, or 4 waves.
Bullish and Bearish Cassiopeia C Harmonic Patterns
• Bullish Cassiopeia C patterns are fundamentally composed of three troughs and two peaks. The second peak being higher than the first peak. And the third trough being lower than both the first and second troughs, while the second trough is higher than the first.
• Bearish Cassiopeia C patterns are fundamentally composed of three peaks and two troughs. The second trough being lower than the first trough. And the third peak being higher than both the first and second peaks, while the second peak is lower than the first.
The ratio measurements I use to detect the patterns are as follows:
• Wave 1 of the pattern, generally referred to as XA, has no specific ratio requirements.
• Wave 2 of the pattern, generally referred to as AB, should retrace by at least 11.34%, but no further than 22.31% of the range set by wave 1.
• Wave 3 of the pattern, generally referred to as BC, should extend by at least 225.7%, but no further than 341% of the range set by wave 2.
• Wave 4 of the pattern, generally referred to as CD, should retrace by at least 77.69%, but no further than 88.66% of the range set by wave 3.
Measurement Tolerances
In general, tolerance in measurements refers to the allowable variation or deviation from a specific value or dimension. It is the range within which a particular measurement is considered to be acceptable or accurate. In this script I have applied this concept to the measurement of harmonic pattern ratios to increase to the frequency of pattern occurrences.
For example, the AB measurement of Gartley patterns is generally set at around 61.8%, but with such specificity in the measuring requirements the patterns are very rare. We can increase the frequency of pattern occurrences by setting a tolerance. A tolerance of 10% to both downside and upside, which is the default setting for all tolerances, means we would have a tolerable measurement range between 51.8-71.8%, thus increasing the frequency of occurrence.
█ FEATURES
Inputs
• AB Lower Tolerance
• AB Upper Tolerance
• BC Lower Tolerance
• BC Upper Tolerance
• CD Lower Tolerance
• CD Upper Tolerance
• Pattern Color
• Label Color
• Show Projections
• Extend Current Projection Lines
Alerts
Users can set alerts for when the patterns occur.
█ LIMITATIONS
All green and red candle calculations are based on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. This may cause some unexpected behaviour on some markets and timeframes. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with.
█ NOTES
I know a few people have been requesting a single indicator that contains all my patterns and I definitely hear you on that one. However, I have been very busy working on other projects while trying to trade and be a human at the same time. For now I am going to maintain my original approach of releasing each pattern individually so as to maintain consistency. But I am now also working on getting my some of my libraries ready for public release and in doing so I will finally be able to fit all patterns into one script. I will also be giving my scripts some TLC by making them cleaner once I have the libraries up and running. Please bear with me in the meantime, this may take a while. Cheers!