Overnight Gap Dominance Indicator (OGDI)The Overnight Gap Dominance Indicator (OGDI) measures the relative volatility of overnight price gaps versus intraday price movements for a given security, such as SPY or SPX. It uses a rolling standard deviation of absolute overnight percentage changes divided by the standard deviation of absolute intraday percentage changes over a customizable window. This helps traders identify periods where overnight gaps predominate, suggesting potential opportunities for strategies leveraging extended market moves.
Instructions
A
pply the indicator to your TradingView chart for the desired security (e.g., SPY or SPX).
Adjust the "Rolling Window" input to set the lookback period (default: 60 bars).
Modify the "1DTE Threshold" and "2DTE+ Threshold" inputs to tailor the levels at which you switch from 0DTE to 1DTE or multi-DTE strategies (default: 0.5 and 0.6).
Observe the OGDI line: values above the 1DTE threshold suggest favoring 1DTE strategies, while values above the 2DTE+ threshold indicate multi-DTE strategies may be more effective.
Use in conjunction with low VIX environments and uptrend legs for optimal results.
Cerca negli script per "如何用wind搜索股票的发行价和份数"
SmartPlusSmartPlus
Overview
The SmartPlus indicator is a complete framework for intraday traders. It combines key market reference points (VWAP, moving averages, and the first 15-minute high/low range) with predictive levels based on historical daily moves. Together, these elements allow traders to build directional bias, spot breakouts, and manage risk throughout the session.
Key Features
1. VWAP (Volume-Weighted Average Price)
- Plots the intraday VWAP in real time.
- VWAP acts as a central “fair value” reference point for institutional order flow.
- Price trading above VWAP generally suggests bullish bias, while below VWAP leans bearish.
2. Exponential Moving Averages (EMAs)
- Two configurable EMAs are included:
- Fast EMA (default: 21 periods)
- Slow EMA (default: 34 periods)
- Each EMA is plotted with a single, user-selectable color for clarity.
- Crossovers or alignment between price, VWAP, and EMAs help define market structure.
3. Smart Bar Coloring
- Candles automatically change color when conditions align:
- Bull Zone: Price above VWAP, Fast EMA, and Slow EMA.
- Bear Zone: Price below VWAP, Fast EMA, and Slow EMA.
- Fluorescent bar coloring helps highlight momentum zones visually without additional analysis.
4. First 15-Minute High/Low/Mid (Automatic)
- Automatically detects the first 15 minutes of each new trading day (no manual input required).
- Plots horizontal lines for:
- First 15-Minute High (green)
- First 15-Minute Low (red)
- Midpoint of that range (gray)
- Once the initial 15-minute window ends, these levels remain projected throughout the session as breakout or support/resistance zones.
- Alerts trigger when price breaks above the high or below the low after the window.
5. Daily Support/Resistance Forecast
- Uses a rolling lookback of recent daily ranges (default: 126 days).
- Tracks average up moves and down moves from the daily open.
- Optionally incorporates standard deviation for wider confidence bands.
- Plots forecast levels above/below the current day’s open for reference.
Trading Logic (How to Use)
- Bullish Bias:
- Price is above VWAP, above both EMAs, and ideally above the first 15-minute high.
- This setup suggests trend continuation or breakout opportunities on the long side.
- Bearish Bias:
- Price is below VWAP, below both EMAs, and ideally below the first 15-minute low.
- This setup suggests downward pressure or breakout opportunities on the short side.
- Neutral / Caution Zone:
- Price caught between VWAP, EMAs, or inside the 15-minute range often signals indecision.
- Best to wait for confirmation or breakout before committing to trades.
Expectations After Using It
- The script provides context and structure, not trading signals.
- It highlights where price is relative to meaningful market levels so traders can act with greater confidence.
- Combining VWAP, EMAs, and the 15-minute breakout framework helps traders stay aligned with the market’s natural rhythm.
Disclaimer
This script is a tool for market analysis and educational purposes only.
It does not constitute financial advice, trading recommendations, or guaranteed profitability.
Markets are inherently risky, and past patterns do not ensure future results.
Always combine this tool with sound risk management, personal research, and professional guidance before making any trading decisions.
Golden Launch Pad🔰 Golden Launch Pad
This indicator identifies high-probability bullish setups by analyzing the relationship between multiple moving averages (MAs). A “Golden Launch Pad” is formed when the following five conditions are met simultaneously:
📌 Launch Pad Criteria (all must be true):
MAs Are Tightly Grouped
The selected MAs must be close together, measured using the Z-score spread — the difference between the highest and lowest Z-scores of the MAs.
Z-scores are calculated relative to the average and standard deviation of price over a user-defined window.
This normalizes MA distance based on volatility, making the signal adaptive across different assets.
MAs Are Bullishly Stacked
The MAs must be in strict ascending order: MA1 > MA2 > MA3 > ... > MA(n).
This ensures the short-term trend leads the longer-term trend — a classic sign of bullish structure.
All MAs Have Positive Slope
Each MA must be rising, based on a lookback period that is a percentage of its length (e.g. 30% of the MA’s bars).
This confirms momentum and avoids signals during sideways or weakening trends.
Price Is Above the Fastest MA
The current close must be higher than the first (fastest) moving average.
This adds a momentum filter and reduces false positives.
Price Is Near the MA Cluster
The current price must be close to the average of all selected MAs.
Proximity is measured in standard deviations (e.g. within 1.0), ensuring the price hasn't already made a large move away from the setup zone.
⚙️ Customization Options:
Use 2 to 6 MAs for the stack
Choose from SMA, EMA, WMA, VWMA for each MA
Adjustable Z-score window and spread threshold
Dynamic slope lookback based on MA length
Volatility-adjusted price proximity filter
🧠 Use Case:
This indicator helps traders visually and systematically detect strong continuation setups — often appearing before breakouts or sustained uptrends. It works well on intraday, swing, and positional timeframes across all asset classes.
For best results, combine with volume, breakout structure, or multi-timeframe confirmation.
X EMA EQThe X EMA EQ is a versatile technical analysis tool designed to overlay price action with customizable Exponential Moving Averages (EMAs) and real-time equilibrium levels. Ideal for intraday traders, it blends trend-following and mean-reversion concepts to highlight both directional bias and potential value zones.
🔹 Key Features:
1. Dual EMA Visualization
Plot up to two user-defined EMAs (default: 20 and 50 periods).
Independently toggle and style each EMA to suit your strategy.
Helps track short- and mid-term trend dynamics with clarity.
2. Running Equilibrium Bands
Displays a real-time dynamic price range based on the highest high and lowest low over a user-defined rolling window (default: 15 minutes).
Includes upper/lower quartile lines and a central midpoint, giving structure to intraday price movement.
Useful for identifying compression, breakouts, and fair value zones.
3. Linear Regression Overlay (Optional)
Apply a smoothed linear regression curve across the same time window.
Highlights directional momentum and price mean trajectory.
Valuable for assessing slope bias and trend strength over the equilibrium period.
4. Intraday Timeframe Optimization
Designed specifically for intraday charts with minute-based resolutions (30 seconds to 60 minutes).
Auto-adjusts logic based on the current chart’s timeframe.
5. Clean Visual Design
Minimalist and translucent color schemes ensure readability without clutter.
All components are independently toggleable for full customization.
⚙️ Settings Overview:
EMA Settings: Enable/disable each EMA, set lengths and colors.
Time & Price Settings: Define the running equilibrium period (in minutes), control visibility of bands and regression line, and adjust styling.
X EMA EQ offers a compact yet powerful visual framework for traders seeking to align with short-term trend structure while keeping an eye on evolving price balance zones.
NY HIGH LOW BREAKNY HIGH LOW BREAK: A New York Session Breakout Strategy
The "NY HIGH LOW BREAK" indicator is a powerful TradingView script designed to identify and capitalize on breakout opportunities during the New York trading session. This strategy focuses on the initial price action of the New York market open, looking for clear breaches of the high or low established within the first 30 minutes. It's particularly suited for intraday traders who seek to capture momentum-driven moves.
Strategy Logic
The core of the "NY HIGH LOW BREAK" strategy revolves around these key components:
New York Session Opening Range Identification:
The script first identifies the opening range of the New York session. This is defined by the high and low prices established during the first 30 minutes of the New York trading session (from 7:01 AM GMT-4 to 7:31 AM GMT-4).
These crucial levels are then extended forward on the chart as horizontal lines, serving as potential support and resistance zones.
Breakout Signal Generation:
Long Signal: A buy signal is generated when the price breaks above the high of the New York opening range. Specifically, it looks for a candle whose open and close are both above the highLinePrice, and importantly, the previous candle's open was below and close was above the highLinePrice. This indicates a strong upward momentum confirming the breakout.
Short Signal: Conversely, a sell signal is generated when the price breaks below the low of the New York opening range. It looks for a candle whose open and close are both below the lowLinePrice, and the previous candle's open was above and close was below the lowLinePrice. This suggests strong downward momentum confirming the breakdown.
Supertrend Filter (Implicit/Future Enhancement):
While the supertrend and direction variables are present in the code, they are not actively used in the current signal generation logic. This suggests a potential future enhancement where the Supertrend indicator could be incorporated as a trend filter to confirm breakout directions, adding an extra layer of confluence to the signals. For example, only taking long breakouts when Supertrend indicates an uptrend, and short breakouts when Supertrend indicates a downtrend.
Second Candle Confirmation (Possible Future Enhancement):
The close_sec_candle function and openSEC, closeSEC variables indicate an attempt to capture the open and close of a "second candle" (30 minutes after the initial New York open). Currently, closeSEC is used in a specific condition for signal_way but not directly in the primary longSignal or shortSignal logic. This also suggests a potential future refinement where the price action of this second candle could be used for further confirmation or specific entry criteria.
Time-Based Filtering:
Signals are only considered valid within a specific trading window from 8:00 AM GMT-4 to 8:00 AM GMT-4 + 16 * 30 minutes (which is 480 minutes, or 8 hours) on 1-minute and 5-minute timeframes. This ensures that trades are taken during the most active and volatile periods of the New York session, avoiding late-session chop.
The script also highlights the New York session and lunch hours using background colors, providing visual context to the trading day.
Key Features
Automated New York Open Range Detection: The script automatically identifies and plots the high and low of the first 30 minutes of the New York trading session.
Clear Breakout Signals: Visually distinct "BUY" and "SELL" labels appear on the chart when a breakout occurs, making it easy to spot trading opportunities.
Timeframe Adaptability: While optimized for 1-minute and 5-minute timeframes for signal generation, the opening range lines can be displayed on various timeframes.
Customizable Risk-to-Reward (RR): The rr input allows users to define their preferred risk-to-reward ratio for potential trades, although it's not directly implemented in the current signal or trade management logic. This could be used by traders for manual trade management.
Visual Session and Lunch Highlights: The script colors the background to clearly delineate the New York trading session and the lunch break, helping traders understand the market context.
How to Use
Apply the Indicator: Add the "NY HIGH LOW BREAK" indicator to your chart on TradingView.
Select a Relevant Timeframe: For optimal signal generation, use 1-minute or 5-minute timeframes.
Observe the Opening Range: The green and red lines represent the high and low of the first 30 minutes of the New York session.
Look for Breakouts: Wait for price to decisively break above the green line (for a buy) or below the red line (for a sell).
Confirm Signals: The "BUY" or "SELL" labels will appear on the chart when the breakout conditions are met within the active trading window.
Implement Your Risk Management: Use your preferred risk management techniques, including stop-loss and take-profit levels, in conjunction with the signals generated. The rr input can guide your manual risk-to-reward calculations.
Potential Enhancements & Considerations
Supertrend Confirmation: Integrating the supertrend variable to filter signals would significantly enhance the strategy's robustness by aligning trades with the prevailing trend.
Stop-Loss and Take-Profit Automation: The rr input currently serves as a manual guide. Future versions could integrate automated stop-loss and take-profit placement based on this ratio, potentially using ATR for dynamic sizing.
Volume Confirmation: Adding a volume filter to confirm breakouts would ensure that only high-conviction moves are traded.
Backtesting and Optimization: Thorough backtesting across various assets and market conditions is crucial to determine the optimal settings and profitability of this strategy.
Session Times: The current session times are hardcoded. Making these user-definable inputs would allow for greater flexibility across different time zones and trading preferences.
The "NY HIGH LOW BREAK" is a straightforward yet effective strategy for capturing initial New York session momentum. By focusing on clear breakout levels, it aims to provide timely and actionable trading signals for intraday traders.
Momentum Regression [BackQuant]Momentum Regression
The Momentum Regression is an advanced statistical indicator built to empower quants, strategists, and technically inclined traders with a robust visual and quantitative framework for analyzing momentum effects in financial markets. Unlike traditional momentum indicators that rely on raw price movements or moving averages, this tool leverages a volatility-adjusted linear regression model (y ~ x) to uncover and validate momentum behavior over a user-defined lookback window.
Purpose & Design Philosophy
Momentum is a core anomaly in quantitative finance — an effect where assets that have performed well (or poorly) continue to do so over short to medium-term horizons. However, this effect can be noisy, regime-dependent, and sometimes spurious.
The Momentum Regression is designed as a pre-strategy analytical tool to help you filter and verify whether statistically meaningful and tradable momentum exists in a given asset. Its architecture includes:
Volatility normalization to account for differences in scale and distribution.
Regression analysis to model the relationship between past and present standardized returns.
Deviation bands to highlight overbought/oversold zones around the predicted trendline.
Statistical summary tables to assess the reliability of the detected momentum.
Core Concepts and Calculations
The model uses the following:
Independent variable (x): The volatility-adjusted return over the chosen momentum period.
Dependent variable (y): The 1-bar lagged log return, also adjusted for volatility.
A simple linear regression is performed over a large lookback window (default: 1000 bars), which reveals the slope and intercept of the momentum line. These values are then used to construct:
A predicted momentum trendline across time.
Upper and lower deviation bands , representing ±n standard deviations of the regression residuals (errors).
These visual elements help traders judge how far current returns deviate from the modeled momentum trend, similar to Bollinger Bands but derived from a regression model rather than a moving average.
Key Metrics Provided
On each update, the indicator dynamically displays:
Momentum Slope (β₁): Indicates trend direction and strength. A higher absolute value implies a stronger effect.
Intercept (β₀): The predicted return when x = 0.
Pearson’s R: Correlation coefficient between x and y.
R² (Coefficient of Determination): Indicates how well the regression line explains the variance in y.
Standard Error of Residuals: Measures dispersion around the trendline.
t-Statistic of β₁: Used to evaluate statistical significance of the momentum slope.
These statistics are presented in a top-right summary table for immediate interpretation. A bottom-right signal table also summarizes key takeaways with visual indicators.
Features and Inputs
✅ Volatility-Adjusted Momentum : Reduces distortions from noisy price spikes.
✅ Custom Lookback Control : Set the number of bars to analyze regression.
✅ Extendable Trendlines : For continuous visualization into the future.
✅ Deviation Bands : Optional ±σ multipliers to detect abnormal price action.
✅ Contextual Tables : Help determine strength, direction, and significance of momentum.
✅ Separate Pane Design : Cleanly isolates statistical momentum from price chart.
How It Helps Traders
📉 Quantitative Strategy Validation:
Use the regression results to confirm whether a momentum-based strategy is worth pursuing on a specific asset or timeframe.
🔍 Regime Detection:
Track when momentum breaks down or reverses. Slope changes, drops in R², or weak t-stats can signal regime shifts.
📊 Trade Filtering:
Avoid false positives by entering trades only when momentum is both statistically significant and directionally favorable.
📈 Backtest Preparation:
Before running costly simulations, use this tool to pre-screen assets for exploitable return structures.
When to Use It
Before building or deploying a momentum strategy : Test if momentum exists and is statistically reliable.
During market transitions : Detect early signs of fading strength or reversal.
As part of an edge-stacking framework : Combine with other filters such as volatility compression, volume surges, or macro filters.
Conclusion
The Momentum Regression indicator offers a powerful fusion of statistical analysis and visual interpretation. By combining volatility-adjusted returns with real-time linear regression modeling, it helps quantify and qualify one of the most studied and traded anomalies in finance: momentum.
Aetherium Institutional Market Resonance EngineAetherium Institutional Market Resonance Engine (AIMRE)
A Three-Pillar Framework for Decoding Institutional Activity
🎓 THEORETICAL FOUNDATION
The Aetherium Institutional Market Resonance Engine (AIMRE) is a multi-faceted analysis system designed to move beyond conventional indicators and decode the market's underlying structure as dictated by institutional capital flow. Its philosophy is built on a singular premise: significant market moves are preceded by a convergence of context , location , and timing . Aetherium quantifies these three dimensions through a revolutionary three-pillar architecture.
This system is not a simple combination of indicators; it is an integrated engine where each pillar's analysis feeds into a central logic core. A signal is only generated when all three pillars achieve a state of resonance, indicating a high-probability alignment between market organization, key liquidity levels, and cyclical momentum.
⚡ THE THREE-PILLAR ARCHITECTURE
1. 🌌 PILLAR I: THE COHERENCE ENGINE (THE 'CONTEXT')
Purpose: To measure the degree of organization within the market. This pillar answers the question: " Is the market acting with a unified purpose, or is it chaotic and random? "
Conceptual Framework: Institutional campaigns (accumulation or distribution) create a non-random, organized market environment. Retail-driven or directionless markets are characterized by "noise" and chaos. The Coherence Engine acts as a filter to ensure we only engage when institutional players are actively steering the market.
Formulaic Concept:
Coherence = f(Dominance, Synchronization)
Dominance Factor: Calculates the absolute difference between smoothed buying pressure (volume-weighted bullish candles) and smoothed selling pressure (volume-weighted bearish candles), normalized by total pressure. A high value signifies a clear winner between buyers and sellers.
Synchronization Factor: Measures the correlation between the streams of buying and selling pressure over the analysis window. A high positive correlation indicates synchronized, directional activity, while a negative correlation suggests choppy, conflicting action.
The final Coherence score (0-100) represents the percentage of market organization. A high score is a prerequisite for any signal, filtering out unpredictable market conditions.
2. 💎 PILLAR II: HARMONIC LIQUIDITY MATRIX (THE 'LOCATION')
Purpose: To identify and map high-impact institutional footprints. This pillar answers the question: " Where have institutions previously committed significant capital? "
Conceptual Framework: Large institutional orders leave indelible marks on the market in the form of anomalous volume spikes at specific price levels. These are not random occurrences but are areas of intense historical interest. The Harmonic Liquidity Matrix finds these footprints and consolidates them into actionable support and resistance zones called "Harmonic Nodes."
Algorithmic Process:
Footprint Identification: The engine scans the historical lookback period for candles where volume > average_volume * Institutional_Volume_Filter. This identifies statistically significant volume events.
Node Creation: A raw node is created at the mean price of the identified candle.
Dynamic Clustering: The engine uses an ATR-based proximity algorithm. If a new footprint is identified within Node_Clustering_Distance (ATR) of an existing Harmonic Node, it is merged. The node's price is volume-weighted, and its magnitude is increased. This prevents chart clutter and consolidates nearby institutional orders into a single, more significant level.
Node Decay: Nodes that are older than the Institutional_Liquidity_Scanback period are automatically removed from the chart, ensuring the analysis remains relevant to recent market dynamics.
3. 🌊 PILLAR III: CYCLICAL RESONANCE MATRIX (THE 'TIMING')
Purpose: To identify the market's dominant rhythm and its current phase. This pillar answers the question: " Is the market's immediate energy flowing up or down? "
Conceptual Framework: Markets move in waves and cycles of varying lengths. Trading in harmony with the current cyclical phase dramatically increases the probability of success. Aetherium employs a simplified wavelet analysis concept to decompose price action into short, medium, and long-term cycles.
Algorithmic Process:
Cycle Decomposition: The engine calculates three oscillators based on the difference between pairs of Exponential Moving Averages (e.g., EMA8-EMA13 for short cycle, EMA21-EMA34 for medium cycle).
Energy Measurement: The 'energy' of each cycle is determined by its recent volatility (standard deviation). The cycle with the highest energy is designated as the "Dominant Cycle."
Phase Analysis: The engine determines if the dominant cycles are in a bullish phase (rising from a trough) or a bearish phase (falling from a peak).
Cycle Sync: The highest conviction timing signals occur when multiple cycles (e.g., short and medium) are synchronized in the same direction, indicating broad-based momentum.
🔧 COMPREHENSIVE INPUT SYSTEM
Pillar I: Market Coherence Engine
Coherence Analysis Window (10-50, Default: 21): The lookback period for the Coherence Engine.
Lower Values (10-15): Highly responsive to rapid shifts in market control. Ideal for scalping but can be sensitive to noise.
Balanced (20-30): Excellent for day trading, capturing the ebb and flow of institutional sessions.
Higher Values (35-50): Smoother, more stable reading. Best for swing trading and identifying long-term institutional campaigns.
Coherence Activation Level (50-90%, Default: 70%): The minimum market organization required to enable signal generation.
Strict (80-90%): Only allows signals in extremely clear, powerful trends. Fewer, but potentially higher quality signals.
Standard (65-75%): A robust filter that effectively removes choppy conditions while capturing most valid institutional moves.
Lenient (50-60%): Allows signals in less-organized markets. Can be useful in ranging markets but may increase false signals.
Pillar II: Harmonic Liquidity Matrix
Institutional Liquidity Scanback (100-400, Default: 200): How far back the engine looks for institutional footprints.
Short (100-150): Focuses on recent institutional activity, providing highly relevant, immediate levels.
Long (300-400): Identifies major, long-term structural levels. These nodes are often extremely powerful but may be less frequent.
Institutional Volume Filter (1.3-3.0, Default: 1.8): The multiplier for detecting a volume spike.
High (2.5-3.0): Only registers climactic, undeniable institutional volume. Fewer, but more significant nodes.
Low (1.3-1.7): More sensitive, identifying smaller but still relevant institutional interest.
Node Clustering Distance (0.2-0.8 ATR, Default: 0.4): The ATR-based distance for merging nearby nodes.
High (0.6-0.8): Creates wider, more consolidated zones of liquidity.
Low (0.2-0.3): Creates more numerous, precise, and distinct levels.
Pillar III: Cyclical Resonance Matrix
Cycle Resonance Analysis (30-100, Default: 50): The lookback for determining cycle energy and dominance.
Short (30-40): Tunes the engine to faster, shorter-term market rhythms. Best for scalping.
Long (70-100): Aligns the timing component with the larger primary trend. Best for swing trading.
Institutional Signal Architecture
Signal Quality Mode (Professional, Elite, Supreme): Controls the strictness of the three-pillar confluence.
Professional: Loosest setting. May generate signals if two of the three pillars are in strong alignment. Increases signal frequency.
Elite: Balanced setting. Requires a clear, unambiguous resonance of all three pillars. The recommended default.
Supreme: Most stringent. Requires perfect alignment of all three pillars, with each pillar exhibiting exceptionally strong readings (e.g., coherence > 85%). The highest conviction signals.
Signal Spacing Control (5-25, Default: 10): The minimum bars between signals to prevent clutter and redundant alerts.
🎨 ADVANCED VISUAL SYSTEM
The visual architecture of Aetherium is designed not merely for aesthetics, but to provide an intuitive, at-a-glance understanding of the complex data being processed.
Harmonic Liquidity Nodes: The core visual element. Displayed as multi-layered, semi-transparent horizontal boxes.
Magnitude Visualization: The height and opacity of a node's "glow" are proportional to its volume magnitude. More significant nodes appear brighter and larger, instantly drawing the eye to key levels.
Color Coding: Standard nodes are blue/purple, while exceptionally high-magnitude nodes are highlighted in an accent color to denote critical importance.
🌌 Quantum Resonance Field: A dynamic background gradient that visualizes the overall market environment.
Color: Shifts from cool blues/purples (low coherence) to energetic greens/cyans (high coherence and organization), providing instant context.
Intensity: The brightness and opacity of the field are influenced by total market energy (a composite of coherence, momentum, and volume), making powerful market states visually apparent.
💎 Crystalline Lattice Matrix: A geometric web of lines projected from a central moving average.
Mathematical Basis: Levels are projected using multiples of the Golden Ratio (Phi ≈ 1.618) and the ATR. This visualizes the natural harmonic and fractal structure of the market. It is not arbitrary but is based on mathematical principles of market geometry.
🧠 Synaptic Flow Network: A dynamic particle system visualizing the engine's "thought process."
Node Density & Activation: The number of particles and their brightness/color are tied directly to the Market Coherence score. In high-coherence states, the network becomes a dense, bright, and organized web. In chaotic states, it becomes sparse and dim.
⚡ Institutional Energy Waves: Flowing sine waves that visualize market volatility and rhythm.
Amplitude & Speed: The height and speed of the waves are directly influenced by the ATR and volume, providing a feel for market energy.
📊 INSTITUTIONAL CONTROL MATRIX (DASHBOARD)
The dashboard is the central command console, providing a real-time, quantitative summary of each pillar's status.
Header: Displays the script title and version.
Coherence Engine Section:
State: Displays a qualitative assessment of market organization: ◉ PHASE LOCK (High Coherence), ◎ ORGANIZING (Moderate Coherence), or ○ CHAOTIC (Low Coherence). Color-coded for immediate recognition.
Power: Shows the precise Coherence percentage and a directional arrow (↗ or ↘) indicating if organization is increasing or decreasing.
Liquidity Matrix Section:
Nodes: Displays the total number of active Harmonic Liquidity Nodes currently being tracked.
Target: Shows the price level of the nearest significant Harmonic Node to the current price, representing the most immediate institutional level of interest.
Cycle Matrix Section:
Cycle: Identifies the currently dominant market cycle (e.g., "MID ") based on cycle energy.
Sync: Indicates the alignment of the cyclical forces: ▲ BULLISH , ▼ BEARISH , or ◆ DIVERGENT . This is the core timing confirmation.
Signal Status Section:
A unified status bar that provides the final verdict of the engine. It will display "QUANTUM SCAN" during neutral periods, or announce the tier and direction of an active signal (e.g., "◉ TIER 1 BUY ◉" ), highlighted with the appropriate color.
🎯 SIGNAL GENERATION LOGIC
Aetherium's signal logic is built on the principle of strict, non-negotiable confluence.
Condition 1: Context (Coherence Filter): The Market Coherence must be above the Coherence Activation Level. No signals can be generated in a chaotic market.
Condition 2: Location (Liquidity Node Interaction): Price must be actively interacting with a significant Harmonic Liquidity Node.
For a Buy Signal: Price must be rejecting the Node from below (testing it as support).
For a Sell Signal: Price must be rejecting the Node from above (testing it as resistance).
Condition 3: Timing (Cycle Alignment): The Cyclical Resonance Matrix must confirm that the dominant cycles are synchronized with the intended trade direction.
Signal Tiering: The Signal Quality Mode input determines how strictly these three conditions must be met. 'Supreme' mode, for example, might require not only that the conditions are met, but that the Market Coherence is exceptionally high and the interaction with the Node is accompanied by a significant volume spike.
Signal Spacing: A final filter ensures that signals are spaced by a minimum number of bars, preventing over-alerting in a single move.
🚀 ADVANCED TRADING STRATEGIES
The Primary Confluence Strategy: The intended use of the system. Wait for a Tier 1 (Elite/Supreme) or Tier 2 (Professional/Elite) signal to appear on the chart. This represents the alignment of all three pillars. Enter after the signal bar closes, with a stop-loss placed logically on the other side of the Harmonic Node that triggered the signal.
The Coherence Context Strategy: Use the Coherence Engine as a standalone market filter. When Coherence is high (>70%), favor trend-following strategies. When Coherence is low (<50%), avoid new directional trades or favor range-bound strategies. A sharp drop in Coherence during a trend can be an early warning of a trend's exhaustion.
Node-to-Node Trading: In a high-coherence environment, use the Harmonic Liquidity Nodes as both entry points and profit targets. For example, after a BUY signal is generated at one Node, the next Node above it becomes a logical first profit target.
⚖️ RESPONSIBLE USAGE AND LIMITATIONS
Decision Support, Not a Crystal Ball: Aetherium is an advanced decision-support tool. It is designed to identify high-probability conditions based on a model of institutional behavior. It does not predict the future.
Risk Management is Paramount: No indicator can replace a sound risk management plan. Always use appropriate position sizing and stop-losses. The signals provided are probabilistic, not certainties.
Past Performance Disclaimer: The market models used in this script are based on historical data. While robust, there is no guarantee that these patterns will persist in the future. Market conditions can and do change.
Not a "Set and Forget" System: The indicator performs best when its user understands the concepts behind the three pillars. Use the dashboard and visual cues to build a comprehensive view of the market before acting on a signal.
Backtesting is Essential: Before applying this tool to live trading, it is crucial to backtest and forward-test it on your preferred instruments and timeframes to understand its unique behavior and characteristics.
🔮 CONCLUSION
The Aetherium Institutional Market Resonance Engine represents a paradigm shift from single-variable analysis to a holistic, multi-pillar framework. By quantifying the abstract concepts of market context, location, and timing into a unified, logical system, it provides traders with an unprecedented lens into the mechanics of institutional market operations.
It is not merely an indicator, but a complete analytical engine designed to foster a deeper understanding of market dynamics. By focusing on the core principles of institutional order flow, Aetherium empowers traders to filter out market noise, identify key structural levels, and time their entries in harmony with the market's underlying rhythm.
"In all chaos there is a cosmos, in all disorder a secret order." - Carl Jung
— Dskyz, Trade with insight. Trade with confluence. Trade with Aetherium.
Adaptive Signal Oscillator (ASO)📘 Adaptive Signal Oscillator (ASO)
A fully dynamic, self-calibrating oscillator that adapts to any asset or timeframe by optimizing for real-time signal stability and volatility structure — without relying on static parameters or hardcoded thresholds.
🔍 Overview
The Adaptive Signal Oscillator (ASO) is a next-generation technical analysis tool designed to provide context-aware long/short signals across crypto, equities, or forex markets. Unlike traditional oscillators (RSI, Stochastics, MACD), ASO requires no manual tuning of lookback periods or overbought/oversold zones — it self-optimizes based on current market behavior.
🧠 How It Works
✅ 1. Dynamic Lookback Optimization
ASO evaluates a range of lookback lengths between user-defined minLen and maxLen. For each length, it calculates the standard deviation of returns and finds the one with the least volatility change (i.e., the most stable structure). This length is dynamically assigned as bestLen, recalculated on every bar.
✅ 2. Multi-Layer Signal Composition
Four independent signal layers are computed using bestLen:
RSI Layer: Measures relative price strength via a custom dynamic RSI.
Z-Score Layer: Standardized deviation of price from its mean.
Volatility Layer: Standard deviation of log or percent returns.
Price Position Layer: Current price percentile within the lookback window.
Each of these layers is transformed into a percentile score scaled to the range .
✅ 3. Volatility-Based Weighting
The standard deviation (volatility) of each signal layer is computed. Less volatile layers are weighted more heavily, ensuring the final composite signal prioritizes stable, consistent inputs.
Weights are normalized and combined to form a composite score, representing a dynamically blended, noise-weighted signal across the four layers.
✅ 4. Optional Adaptive Smoothing
A boolean toggle lets users apply smoothing to the final score. The smoothing window scales proportionally to bestLen, preserving adaptiveness even during trend transitions.
✅ 5. Percentile-Based Thresholding
Rather than using arbitrary fixed thresholds, ASO converts the composite score into a ranked percentile. Long/short signals are then generated based on user-defined percentile bands, adapting naturally to each asset’s behavior.
📈 Interpreting ASO
Score > Threshold → Strong long signal (highlighted in aqua).
Score < Threshold → Strong short signal (highlighted in fuchsia).
Crossing h_thresh (e.g., 0) → Neutral-to-bias change; useful for early trend cues.
The background and label update in real time to reflect the current regime and bestLen.
⚙️ Inputs
minLen, maxLen, step: Define the search range for optimal lookback length.
retMethod: Choose between log or percent return calculations.
threshHigh, threshLow: Define signal zones using percentiles.
smooth: Enable dynamic score smoothing.
h_thresh: Midline crossover zone for directional context.
⚠️ Disclaimer
This tool is designed for exploratory and educational purposes only. It does not offer financial advice or trading recommendations. Past performance is not indicative of future results.
Always consult a licensed financial advisor before making investment decisions.
Chebyshev-Gauss Moving AverageThis indicator applies the principles of Chebyshev-Gauss Quadrature to create a novel type of moving average. Inspired by reading rohangautam.github.io
What is Chebyshev-Gauss Quadrature?
It's a numerical method to approximate the integral of a function f(x) that is weighted by 1/sqrt(1-x^2) over the interval . The approximation is a simple sum: ∫ f(x)/sqrt(1-x^2) dx ≈ (π/n) * Σ f(xᵢ) where xᵢ are special points called Chebyshev nodes.
How is this applied to a Moving Average?
A moving average can be seen as the "mean value" of the price over a lookback window. The mean value of a function with the Chebyshev weight is calculated as:
Mean = /
The math simplifies beautifully, resulting in the mean being the simple arithmetic average of the function evaluated at the Chebyshev nodes:
Mean = (1/n) * Σ f(xᵢ)
What's unique about this MA?
The Chebyshev nodes xᵢ are not evenly spaced. They are clustered towards the ends of the interval . We map this interval to our lookback period. This means the moving average samples prices more intensely from the beginning and the end of the lookback window, and less intensely from the middle. This gives it a unique character, responding quickly to recent changes while also having a long "memory" of the start of the trend.
PCA Regime-Adjusted MomentumSummary
The PCA Regime-Adjusted Momentum (PCA-RAM) is an advanced market analysis tool designed to provide nuanced insights into market momentum and structural stability. It moves beyond traditional indicators by using Principal Component Analysis (PCA) to deconstruct market data into its most essential patterns.
The indicator provides two key pieces of information:
A smoothed momentum signal based on the market's dominant underlying trend.
A dynamic regime filter that gauges the stability and clarity of the market's structure, advising you when to trust or fade the momentum signals.
This allows traders to not only identify potential shifts in momentum but also to understand the context and confidence behind those signals.
Core Concepts & Methodology
The strength of this indicator lies in its sound, data-driven methodology.
1. Principal Component Analysis (PCA)
At its core, the indicator analyzes a rolling window (default 50 periods) of standardized market data (Open, High, Low, Close, and Volume). PCA is a powerful statistical technique that distills this complex, 5-dimensional data into its fundamental, uncorrelated components of variance. We focus on the First Principal Component (PC1), which represents the single most dominant pattern or "theme" driving the market's behavior in the lookback window.
2. The Momentum Signal
Instead of just looking at price, we project the current market data onto this dominant underlying pattern (PC1). This gives us a raw "projection score" that measures how strongly the current bar aligns with the historically dominant market structure. This raw score is then smoothed using two an exponential moving averages (a fast and a slow line) to create a clear, actionable momentum signal, similar in concept to a MACD.
3. The Dynamic Regime Filter
This is arguably the indicator's most powerful feature. It answers the question: "How clear is the current market picture?"
It calculates the Market Concentration Ratio, which is the percentage of total market variance explained by PC1 alone.
A high ratio indicates that the market is moving in a simple, one-dimensional way (e.g., a clear, strong trend).
A low ratio indicates the market is complex, multi-dimensional, and choppy, with no single dominant theme.
Crucially, this filter is dynamic. It compares the current concentration ratio to its own recent average, allowing it to adapt to any asset or timeframe. It automatically learns what "normal" and "choppy" look like for the specific chart you are viewing.
How to Interpret the Indicator
The indicator is displayed in a separate pane with two key visual elements:
The Momentum Lines (White & Gold)
White Line: The "Fast Line," representing the current momentum.
Gold Line: The "Slow Line," acting as the trend confirmation.
Bullish Signal: A crossover of the White Line above the Gold Line suggests a shift to positive momentum.
Bearish Signal: A crossover of the White Line below the Gold Line suggests a shift to negative momentum.
The Regime Filter (Purple & Dark Red Background)
This is your confidence gauge.
Navy Blue Background (High Concentration): The market structure is stable, simple, and trending. Momentum signals are more reliable and should be given higher priority.
Dark Red Background (Low Concentration): The market structure is complex, choppy, or directionless. Momentum signals are unreliable and prone to failure or "whipsaws." This is a signal to be cautious, tighten stops, or potentially stay out of the market.
Potential Trading Strategies
This tool is versatile and can be used in several ways:
1. Primary Signal Strategy
Condition: Wait for the background to turn Purple, confirming a stable, high-confidence regime.
Entry: Take the next crossover signal from the momentum lines (White over Gold for long, White under Gold for short).
Exit/Filter: Consider exiting positions or ignoring new signals when the background turns Navy.
2. As a Confirmation or Filter for Your Existing Strategy
Do you have a trend-following system? Only enable its long and short signals when the PCA-RAM background is Purple.
Do you have a range-trading or mean-reversion system? It might be most effective when the PCA-RAM background is Navy, indicating a lack of a clear trend.
3. Advanced Divergence Analysis
Look for classic divergences between price and the momentum lines. For example, if the price is making a new high, but the Gold Line is making a lower high, it may indicate underlying weakness in the trend, even on a Purple background. This divergence signal is more powerful because it shows that the new price high is not being confirmed by the market's dominant underlying pattern.
Pearson vs Approx. Spearman CorrelationThis indicator displays the rolling Pearson and approximate Spearman correlation between the chart's asset and a second user-defined asset, based on log returns over a customizable window.
Features:
- Pearson correlation of log returns (standard linear dependency measure)
- Approximate Spearman correlation, using percentile ranks to better capture nonlinear and monotonic relationships
/ Horizontal lines showing:
Maximum and minimum correlation values over a statistical window
1st quartile (25%) and 3rd quartile (75%) — helpful for identifying statistically high or low regimes
This script is useful for identifying dynamic co-movements, regime changes, or correlation breakdowns between assets — applicable in risk management, portfolio construction, and pairs trading strategies.
SMPivot Gaussian Trend Strategy [Js.K]This open-source strategy combines a Gaussian-weighted moving average with “Smart Money” swing-pivot breaks (BoS = Break-of-Structure) to capture trend continuations and early reversals. It is intended for educational and research purposes only and must not be interpreted as financial advice.
How the logic works
-------------------
1. Gaussian Moving Average (GMA)
• A custom Gaussian kernel (length = 30 by default) smooths price while preserving turning points.
• A second pass (“Smoothed GMA”) further filters noise; only its direction is used for bias.
2. Swing-Pivot detection
• High/Low pivots are found with a symmetric look-back/forward window (Pivot Length = 20).
• The most recent confirmed pivot creates a dynamic structure level (UpdatedHigh / UpdatedLow).
3. Entry rules
Long
• Price closes above the most recent pivot high **and** above Smoothed GMA.
Short
• Price closes below the most recent pivot low **and** below Smoothed GMA.
4. Exit rules
• Fixed stop-loss and take-profit in percent of current price (user-defined).
• Separate parameters and on/off switches for longs and shorts.
5. Visuals
• GMA (dots) and Smoothed GMA (line).
• Structure break lines plus “BoS PH/PL” labels at the midpoint between pivot and break.
Inputs
------
Gaussian
• Gaussian Length (default 30) – smoothing window.
• Gaussian Scatterplot – toggle GMA dots.
Smart-Money Pivot
• Pivot Length (default 20).
• Bull / Bear colors.
Risk settings
• Long / Short enable.
• Individual SL % and TP % (default 1 % SL, 30 % TP).
• Strategy uses percent-of-equity sizing; initial capital defaults to 10 000 USD.
Adjust these to reflect your own account size, realistic commission and slippage.
Best practice & compliance notes
--------------------------------
• Test on a data sample that yields ≥ 100 trades to obtain statistically relevant results.
• Keep risk per trade below 5–10 % of equity; the default values comply with this guideline.
• Explain any custom settings you publish that differ from the defaults.
• Do **not** remove the code header or licence notice (MPL-2.0).
• Include realistic commission and slippage in your back-test before publishing.
• The script does **not** repaint; orders are processed on bar close.
Usage
-----
1. Add the script to any symbol / timeframe; intraday and swing timeframes both work—adjust lengths accordingly.
2. Configure SL/TP and position size to match your personal risk management.
3. Run “List of trades” and the performance summary to evaluate expectancy; forward-test before live use.
Disclaimer
----------
Trading involves substantial risk. Past performance based on back-testing is not necessarily indicative of future results. The author is **not** responsible for any financial losses arising from the use of this script.
Hippo Battlefield - Bulls VS Bears 20 bars## Hippo Battlefield – Bulls VS Bears (20 Bars)
**What it is**
A multi-dimensional momentum-and-sentiment oscillator that combines classic Bull/Bear Power with ATR- or peak-normalization, then layers on RSI and MACD-derived metrics into:
1. **A colored bar series** showing net Bull+Bear Power strength over the last 20 bars,
2. **A dynamic table** of each of those 20 BBP values (grouped into four 5-bar “quartals”), with symbols, per-bar change, and rolling averages, and
3. **A composite “Weighted BBP” histogram** blending normalized RSI, MACD, and BBP into a single view.
---
### Key Inputs
- **Length (EMA)** – look-back for the underlying EMA (default 60)
- **Normalization Length** – look-back window for peak-normalization (default 60)
- **Use ATR for Norm.** – toggle ATR-based normalization vs. highest-abs(BBP)
- **Show Tables** – toggle the bottom-right 21×11 grid of raw and average BBP values
---
### What You See
#### 1. Colored Bars (Overlay = false)
- Bars are colored by normalized BBP intensity:
- Extreme Bull (≥+10): deep blue
- Strong Bull (+5 to +10): green/yellow
- Weak Bull (+0 to +5): dark green
- Weak Bear (–0 to –5): dark red
- Strong Bear (–5 to –10): pink/red
- Extreme Bear (<–10): magenta
#### 2. Bottom-Right Table (20 Bars of Data)
- Divided into four columns (0–4, 5–9, 10–14, 15–19 bars ago) and one “average” row.
- Each cell shows:
1. Bar index (1–20),
2. Normalized BBP value (to four decimals),
3. Direction symbol (↑/↓/=),
4. Bar-to-bar change (± value),
5. A separator “|”.
- At the very bottom, each column’s 5-bar average is displayed as “Avg: X.XXXX” with a dot marker.
#### 3. Top-Center Mini-Table
- When ≥20 bars have elapsed, shows the date at 20 bars ago and the average BBP across the full 20-bar window.
#### 4. Normalized RSI Line
- Rescales the classic 14-period RSI into a –20…+20 band to align with BBP.
#### 5. MACD Lines (Hidden) & Composite Histogram
- MACD and signal lines are calculated but not plotted by default.
- A “Weighted BBP” histogram combines:
- 20% normalized RSI,
- 20% average of (MACD + signal + normalized BBP),
- 60% normalized BBP
- Plotted as columns, color-coded by strength using the same palette as the main bars.
#### 6. Middle Reference Line
- A horizontal zero line to anchor over/under-zero readings.
---
### How to Use It
- **Trend confirmation**: Strong blue/green bars alongside a rising histogram suggest bull conviction; strong reds/magentas signal bear dominance.
- **Divergence spotting**: Watch for price making new highs/lows while BBP or the histogram fails to follow.
- **Quartal analysis**: The 5-bar group averages can reveal whether recent momentum is accelerating or waning.
- **Cross-indicator weighting**: Because RSI, MACD, and raw BBP all feed into the final histogram, you get a smoothed, blended view of momentum shifts.
---
**Tip:** Tweak the EMA and normalization length to suit your preferred timeframe (e.g. shorter for intraday scalps, longer for swing trades). Enable/disable the table if you prefer a cleaner pane.
Aggregate PDH High Break Alert**Aggregate PDH High Break Alert**
**Overview**
The “Aggregate PDH High Break Alert” is a lightweight Pine Script v6 indicator designed to instantly notify you when today’s price breaks above any prior-day high in a user-defined lookback window. Instead of manually scanning dozens of daily highs, this script automatically loops through the last _N_ days (up to 100) and fires a single-bar alert the moment price eclipses a specific day’s high.
**Key Features**
- **Dynamic Lookback**: Choose any lookback period from 1 to 100 days via a single `High-Break Lookback` input.
- **Single Security Call**: Efficiently retrieves the entire daily-high series in one call to avoid TradingView’s 40-call security limit.
- **Automatic Looping**: Internally loops through each prior-day high, so there’s no need to manually code dozens of lines.
- **Custom Alerts**: Generates a clear, formatted alert message—e.g. “Crossed high from 7 day(s) ago”—for each breakout.
- **Lightweight & Maintainable**: Compact codebase (<15 lines) makes tweaking and debugging a breeze.
**Inputs**
- **High-Break Lookback (days)**: Number of past days to monitor for high breaks. Valid range: 1–100.
**How to Use**
1. **Add to Chart**: Open TradingView, click “Indicators,” then “Create,” and paste in the code.
2. **Configure Lookback**: In the script’s settings, set your desired lookback window (e.g., 20 for the past 20 days).
3. **Enable Alerts**: Right-click the indicator’s name on your chart, select “Add Alert on Aggregate PDH High Break Alert,” and choose “Once per bar close.”
4. **Receive Notifications**: Whenever price crosses above any of the specified prior-day highs, you’ll get an on-screen and/or mobile push alert with the exact number of days ago.
**Use Cases**
- **Trend Confirmation**: Confirm fresh bullish momentum when today’s high outpaces any of the last _N_ days.
- **Breakout Trading**: Automate entries off multi-day highs without manual chart scanning.
- **System Integration**: Integrate with alerts to trigger orders in third-party bots or webhook receivers.
**Disclaimer**
Breakouts alone do not guarantee sustained moves. Combine with your preferred risk management, volume filters, and other indicators for higher-probability setups. Use on markets and timeframes where daily breakout behavior aligns with your strategy.
ICT Liquidity Sweep MAX RETRI (ALERT)Strategy Description: SMC + ICT Reversal Sniper | 5-Min | R2 TP
This strategy applies Smart Money Concepts (SMC) and ICT methodology to identify high-probability reversal trades using a clean, rule-based system designed for the 5-minute timeframe.
⸻
Core Logic:
• Liquidity Sweep: Identifies stop hunts beyond recent swing highs/lows using a configurable lookback window.
• Break of Structure (BOS): Validates a directional shift after the sweep.
• Fixed R2 Risk-Reward: Entry is followed by a 2:1 take-profit target. Stop loss is set at the sweep candle’s high/low.
• No Entry Between 8 PM–12 AM NY Time: Avoids the manipulation-prone and illiquid zone.
• Discreet SL Handling: SL hits close trades silently — no labels or visuals.
⸻
Entry Precision & Timing Notes:
• The strategy may occasionally fire before a confirmed liquidity sweep — this is expected. If a sweep occurs later, you may still re-enter toward equilibrium, with take profit also targeted at equilibrium.
• Alerts or trades that trigger near 9:30 AM NY often align with real direction, but this time can be volatile.
• For more reliable and lower-risk entries, focus on the 1:30 PM to 2:00 PM silver bullet window, which tends to produce cleaner setups with more favorable flow. 🖤
Uptrick: Z-Score FlowOverview
Uptrick: Z-Score Flow is a technical indicator that integrates trend-sensitive momentum analysi s with mean-reversion logic derived from Z-Score calculations. Its primary objective is to identify market conditions where price has either stretched too far from its mean (overbought or oversold) or sits at a statistically “normal” range, and then cross-reference this observation with trend direction and RSI-based momentum signals. The result is a more contextual approach to trade entry and exit, emphasizing precision, clarity, and adaptability across varying market regimes.
Introduction
Financial instruments frequently transition between trending modes, where price extends strongly in one direction, and ranging modes, where price oscillates around a central value. A simple statistical measure like Z-Score can highlight price extremes by comparing the current price against its historical mean and standard deviation. However, such extremes alone can be misleading if the broader market structure is trending forcefully. Uptrick: Z-Score Flow aims to solve this gap by combining Z-Score with an exponential moving average (EMA) trend filter and a smoothed RSI momentum check, thus filtering out signals that contradict the prevailing market environment.
Purpose
The purpose of this script is to help traders pinpoint both mean-reversion opportunities and trend-based pullbacks in a way that is statistically grounded yet still mindful of overarching price action. By pairing Z-Score thresholds with supportive conditions, the script reduces the likelihood of acting on random price spikes or dips and instead focuses on movements that are significant within both historical and current contextual frameworks.
Originality and Uniquness
Layered Signal Verification: Signals require the fulfillment of multiple layers (Z-Score extreme, EMA trend bias, and RSI momentum posture) rather than merely breaching a statistical threshold.
RSI Zone Lockout: Once RSI enters an overbought/oversold zone and triggers a signal, the script locks out subsequent signals until RSI recovers above or below those zones, limiting back-to-back triggers.
Controlled Cooldown: A dedicated cooldown mechanic ensures that the script waits a specified number of bars before issuing a new signal in the opposite direction.
Gradient-Based Visualization: Distinct gradient fills between price and the Z-Mean line enhance readability, showing at a glance whether price is trading above or below its statistical average.
Comprehensive Metrics Panel: An optional on-chart table summarizes the Z-Score’s key metrics, streamlining the process of verifying current statistical extremes, mean levels, and momentum directions.
Why these indicators were merged
Z-Score measurements excel at identifying when price deviates from its mean, but they do not intrinsically reveal whether the market’s trajectory supports a reversion or if price might continue along its trend. The EMA, commonly used for spotting trend directions, offers valuable insight into whether price is predominantly ascending or descending. However, relying solely on a trend filter overlooks the intensity of price moves. RSI then adds a dedicated measure of momentum, helping confirm if the market’s energy aligns with a potential reversal (for example, price is statistically low but RSI suggests looming upward momentum). By uniting these three lenses—Z-Score for statistical context, EMA for trend direction, and RSI for momentum force—the script offers a more comprehensive and adaptable system, aiming to avoid false positives caused by focusing on just one aspect of price behavior.
Calculations
The core calculation begins with a simple moving average (SMA) of price over zLen bars, referred to as the basis. Next, the script computes the standard deviation of price over the same window. Dividing the difference between the current price and the basis by this standard deviation produces the Z-Score, indicating how many standard deviations the price is from its mean. A positive Z-Score reveals price is above its average; a negative reading indicates the opposite.
To detect overall market direction, the script calculates an exponential moving average (emaTrend) over emaTrendLen bars. If price is above this EMA, the script deems the market bullish; if below, it’s considered bearish. For momentum confirmation, the script computes a standard RSI over rsiLen bars, then applies a smoothing EMA over rsiEmaLen bars. This smoothed RSI (rsiEma) is monitored for both its absolute level (oversold or overbought) and its slope (the difference between the current and previous value). Finally, slopeIndex determines how many bars back the script compares the basis to check whether the Z-Mean line is generally rising, falling, or flat, which then informs the coloring scheme on the chart.
Calculations and Rational
Simple Moving Average for Baseline: An SMA is used for the core mean because it places equal weight on each bar in the lookback period. This helps maintain a straightforward interpretation of overbought or oversold conditions in the context of a uniform historical average.
Standard Deviation for Volatility: Standard deviation measures the variability of the data around the mean. By dividing price’s difference from the mean by this value, the Z-Score can highlight whether price is unusually stretched given typical volatility.
Exponential Moving Average for Trend: Unlike an SMA, an EMA places more emphasis on recent data, reacting quicker to new price developments. This quicker response helps the script promptly identify trend shifts, which can be crucial for filtering out signals that go against a strong directional move.
RSI for Momentum Confirmation: RSI is an oscillator that gauges price movement strength by comparing average gains to average losses over a set period. By further smoothing this RSI with another EMA, short-lived oscillations become less influential, making signals more robust.
SlopeIndex for Slope-Based Coloring: To clarify whether the market’s central tendency is rising or falling, the script compares the basis now to its level slopeIndex bars ago. A higher current reading indicates an upward slope; a lower reading, a downward slope; and similar readings, a flat slope. This is visually represented on the chart, providing an immediate sense of the directionality.
Inputs
zLen (Z-Score Period)
Specifies how many bars to include for computing the SMA and standard deviation that form the basis of the Z-Score calculation. Larger values produce smoother but slower signals; smaller values catch quick changes but may generate noise.
emaTrendLen (EMA Trend Filter)
Sets the length of the EMA used to detect the market’s primary direction. This is pivotal for distinguishing whether signals should be considered (price aligning with an uptrend or downtrend) or filtered out.
rsiLen (RSI Length)
Defines the window for the initial RSI calculation. This RSI, when combined with the subsequent smoothing EMA, forms the foundation for momentum-based signal confirmations.
rsiEmaLen (EMA of RSI Period)
Applies an exponential moving average over the RSI readings for additional smoothing. This step helps mitigate rapid RSI fluctuations that might otherwise produce whipsaw signals.
zBuyLevel (Z-Score Buy Threshold)
Determines how negative the Z-Score must be for the script to consider a potential oversold signal. If the Z-Score dives below this threshold (and other criteria are met), a buy signal is generated.
zSellLevel (Z-Score Sell Threshold)
Determines how positive the Z-Score must be for a potential overbought signal. If the Z-Score surpasses this threshold (and other checks are satisfied), a sell signal is generated.
cooldownBars (Cooldown (Bars))
Enforces a bar-based delay between opposite signals. Once a buy signal has fired, the script must wait the specified number of bars before registering a new sell signal, and vice versa.
slopeIndex (Slope Sensitivity (Bars))
Specifies how many bars back the script compares the current basis for slope coloration. A bigger slopeIndex highlights larger directional trends, while a smaller number emphasizes shorter-term shifts.
showMeanLine (Show Z-Score Mean Line)
Enables or disables the plotting of the Z-Mean and its slope-based coloring. Traders who prefer minimal chart clutter may turn this off while still retaining signals.
Features
Statistical Core (Z-Score Detection):
This feature computes the Z-Score by taking the difference between the current price and the basis (SMA) and dividing by the standard deviation. In effect, it translates price fluctuations into a standardized measure that reveals how significant a move is relative to the typical variation seen over the lookback. When the Z-Score crosses predefined thresholds (zBuyLevel for oversold and zSellLevel for overbought), it signals that price could be at an extreme.
How It Works: On each bar, the script updates the SMA and standard deviation. The Z-Score is then refreshed accordingly. Traders can interpret particularly large negative or positive Z-Score values as scenarios where price is abnormally low or high.
EMA Trend Filter:
An EMA over emaTrendLen bars is used to classify the market as bullish if the price is above it and bearish if the price is below it. This classification is applied to the Z-Score signals, accepting them only when they align with the broader price direction.
How It Works: If the script detects a Z-Score below zBuyLevel, it further checks if price is actually in a downtrend (below EMA) before issuing a buy signal. This might seem counterintuitive, but a “downtrend” environment plus an oversold reading often signals a potential bounce or a mean-reversion play. Conversely, for sell signals, the script checks if the market is in an uptrend first. If it is, an overbought reading aligns with potential profit-taking.
RSI Momentum Confirmation with Oversold/Overbought Lockout:
RSI is calculated over rsiLen, then smoothed by an EMA over rsiEmaLen. If this smoothed RSI dips below a certain threshold (for example, 30) and then begins to slope upward, the indicator treats it as a potential sign of recovering momentum. Similarly, if RSI climbs above a certain threshold (for instance, 70) and starts to slope downward, that suggests dwindling momentum. Additionally, once RSI is in these zones, the indicator locks out repetitive signals until RSI fully exits and re-enters those extreme territories.
How It Works: Each bar, the script measures whether RSI has dropped below the oversold threshold (like 30) and has a positive slope. If it does, the buy side is considered “unlocked.” For sell signals, RSI must exceed an overbought threshold (70) and slope downward. The combination of threshold and slope helps confirm that a reversal is genuinely in progress instead of issuing signals while momentum remains weak or stuck in extremes.
Cooldown Mechanism:
The script features a custom bar-based cooldown that prevents issuing new signals in the opposite direction immediately after one is triggered. This helps avoid whipsaw situations where the market quickly flips from oversold to overbought or vice versa.
How It Works: When a buy signal fires, the indicator notes the bar index. If the Z-Score and RSI conditions later suggest a sell, the script compares the current bar index to the last buy signal’s bar index. If the difference is within cooldownBars, the signal is disallowed. This ensures a predefined “quiet period” before switching signals.
Slope-Based Coloring (Z-Mean Line and Shadow):
The script compares the current basis value to its value slopeIndex bars ago. A higher reading now indicates a generally upward slope, while a lower reading indicates a downward slope. The script then shades the Z-Mean line in a corresponding bullish or bearish color, or remains neutral if little change is detected.
How It Works: This slope calculation is refreshingly straightforward: basis – basis . If the result is positive, the line is colored bullish; if negative, it is colored bearish; if approximately zero, it remains neutral. This provides a quick visual cue of the medium-term directional bias.
Gradient Overlays:
With gradient fills, the script highlights where price stands in relation to the Z-Mean. When price is above the basis, a purple-shaded region is painted, visually indicating a “bearish zone” for potential overbought conditions. When price is below, a teal-like overlay is used, suggesting a “bullish zone” for potential oversold conditions.
How It Works: Each bar, the script checks if price is above or below the basis. It then applies a fill between close and basis, using distinct colors to show whether the market is trading above or below its mean. This creates an immediate sense of how extended the market might be.
Buy and Sell Labels (with Alerts):
When a legitimate buy or sell condition passes every check (Z-Score threshold, EMA trend alignment, RSI gating, and cooldown clearance), the script plots a corresponding label directly on the chart. It also fires an alert (if alerts are set up), making it convenient for traders who want timely notifications.
How It Works: If rawBuy or rawSell conditions are met (refined by RSI, EMA trend, and cooldown constraints), the script calls the respective plot function to paint an arrow label on the chart. Alerts are triggered simultaneously, carrying easily recognizable messages.
Metrics Table:
The optional on-chart table (activated by showMetrics) presents real-time Z-Score data, including the current Z-Score, its rolling mean, the maximum and minimum Z-Score values observed over the last zLen bars, a percentile position, and a short-term directional note (rising, falling, or flat).
Current – The present Z-Score reading
Mean – Average Z-Score over the zLen period
Min/Max – Lowest and highest Z-Score values within zLen
Position – Where the current Z-Score sits between the min and max (as a percentile)
Trend – Whether the Z-Score is increasing, decreasing, or flat
Conclusion
Uptrick: Z-Score Flow offers a versatile solution for traders who need a statistically informed perspective on price extremes combined with practical checks for overall trend and momentum. By leveraging a well-defined combination of Z-Score, EMA trend classification, RSI-based momentum gating, slope-based visualization, and a cooldown mechanic, the script reduces the occurrence of false or premature signals. Its gradient fills and optional metrics table contribute further clarity, ensuring that users can quickly assess market posture and make more confident trading decisions in real time.
Disclaimer
This script is intended solely for informational and educational purposes. Trading in any financial market comes with substantial risk, and there is no guarantee of success or the avoidance of loss. Historical performance does not ensure future results. Always conduct thorough research and consider professional guidance prior to making any investment or trading decisions.
[GYTS-CE] Market Regime Detector🧊 Market Regime Detector (Community Edition)
🌸 Part of GoemonYae Trading System (GYTS) 🌸
🌸 --------- INTRODUCTION --------- 🌸
💮 What is the Market Regime Detector?
The Market Regime Detector is an advanced, consensus-based indicator that identifies the current market state to increase the probability of profitable trades. By distinguishing between trending (bullish or bearish) and cyclic (range-bound) market conditions, this detector helps you select appropriate tactics for different environments. Instead of forcing a single strategy across all market conditions, our detector allows you to adapt your approach based on real-time market behaviour.
💮 The Importance of Market Regimes
Markets constantly shift between different behavioural states or "regimes":
• Bullish trending markets - characterised by sustained upward price movement
• Bearish trending markets - characterised by sustained downward price movement
• Cyclic markets - characterised by range-bound, oscillating behaviour
Each regime requires fundamentally different trading approaches. Trend-following strategies excel in trending markets but fail in cyclic ones, while mean-reversion strategies shine in cyclic markets but underperform in trending conditions. Detecting these regimes is essential for successful trading, which is why we've developed the Market Regime Detector to accurately identify market states using complementary detection methods.
🌸 --------- KEY FEATURES --------- 🌸
💮 Consensus-Based Detection
Rather than relying on a single method, our detector employs two complementary detection methodologies that analyse different aspects of market behaviour:
• Dominant Cycle Average (DCA) - analyzes price movement relative to its lookback period, a proxy for the dominant cycle
• Volatility Channel - examines price behaviour within adaptive volatility bands
These diverse perspectives are synthesised into a robust consensus that minimises false signals while maintaining responsiveness to genuine regime changes.
💮 Dominant Cycle Framework
The Market Regime Detector uses the concept of dominant cycles to establish a reference framework. You can input the dominant cycle period that best represents the natural rhythm of your market, providing a stable foundation for regime detection across different timeframes.
💮 Intuitive Parameter System
We've distilled complex technical parameters into intuitive controls that traders can easily understand:
• Adaptability - how quickly the detector responds to changing market conditions
• Sensitivity - how readily the detector identifies transitions between regimes
• Consensus requirement - how much agreement is needed among detection methods
This approach makes the detector accessible to traders of all experience levels while preserving the power of the underlying algorithms.
💮 Visual Market Feedback
The detector provides clear visual feedback about the current market regime through:
• Colour-coded chart backgrounds (purple shades for bullish, pink for bearish, yellow for cyclic)
• Colour-coded price bars
• Strength indicators showing the degree of consensus
• Customizable colour schemes to match your preferences or trading system
💮 Integration in the GYTS suite
The Market Regime Detector is compatible with the GYTS Suite , i.e. it passes the regime into the 🎼 Order Orchestrator where you can set how to trade the trending and cyclic regime.
🌸 --------- CONFIGURATION SETTINGS --------- 🌸
💮 Adaptability
Controls how quickly the Market Regime detector adapts to changing market conditions. You can see it as a low-frequency, long-term change parameter:
Very Low: Very slow adaptation, most stable but may miss regime changes
Low: Slower adaptation, more stability but less responsiveness
Normal: Balanced between stability and responsiveness
High: Faster adaptation, more responsive but less stable
Very High: Very fast adaptation, highly responsive but may generate false signals
This setting affects lookback periods and filter parameters across all detection methods.
💮 Sensitivity
Controls how sensitive the detector is to market regime transitions. This acts as a high-frequency, short-term change parameter:
Very Low: Requires substantial evidence to identify a regime change
Low: Less sensitive, reduces false signals but may miss some transitions
Normal: Balanced sensitivity suitable for most markets
High: More sensitive, detects subtle regime changes but may have more noise
Very High: Very sensitive, detects minor fluctuations but may produce frequent changes
This setting affects thresholds for regime detection across all methods.
💮 Dominant Cycle Period
This parameter allows you to specify the market's natural rhythm in bars. This represents a complete market cycle (up and down movement). Finding the right value for your specific market and timeframe might require some experimentation, but it's a crucial parameter that helps the detector accurately identify regime changes. Most of the times the cycle is between 20 and 40 bars.
💮 Consensus Mode
Determines how the signals from both detection methods are combined to produce the final market regime:
• Any Method (OR) : Signals bullish/bearish if either method detects that regime. If methods conflict (one bullish, one bearish), the stronger signal wins. More sensitive, catches more regime changes but may produce more false signals.
• All Methods (AND) : Signals only when both methods agree on the regime. More conservative, reduces false signals but might miss some legitimate regime changes.
• Weighted Decision : Balances both methods with equal weighting. Provides a middle ground between sensitivity and stability.
Each mode also calculates a continuous regime strength value that's used for colour intensity in the 'unconstrained' display mode.
💮 Display Mode
Choose how to display the market regime colours:
• Unconstrained regime: Shows the regime strength as a continuous gradient. This provides more nuanced visualisation where the intensity of the colour indicates the strength of the trend.
• Consensus only: Shows only the final consensus regime with fixed colours based on the detected regime type.
The background and bar colours will change to indicate the current market regime:
• Purple shades: Bullish trending market (darker purple indicates stronger bullish trend)
• Pink shades: Bearish trending market (darker pink indicates stronger bearish trend)
• Yellow: Cyclic (range-bound) market
💮 Custom Colour Options
The Market Regime Detector allows you to customize the colour scheme to match your personal preferences or to coordinate with other indicators:
• Use custom colours: Toggle to enable your own colour choices instead of the default scheme
• Transparency: Adjust the transparency level of all regime colours
• Bullish colours: Define custom colours for strong, medium, weak, and very weak bullish trends
• Bearish colours: Define custom colours for strong, medium, weak, and very weak bearish trends
• Cyclic colour: Define a custom colour for cyclic (range-bound) market conditions
🌸 --------- DETECTION METHODS --------- 🌸
💮 Dominant Cycle Average (DCA)
The Dominant Cycle Average method forms a key part of our detection system:
1. Theoretical Foundation :
The DCA method builds on cycle analysis and the observation that in trending markets, price consistently remains on one side of a moving average calculated using the dominant cycle period. In contrast, during cyclic markets, price oscillates around this average.
2. Calculation Process :
• We calculate a Simple Moving Average (SMA) using the specified lookback period - a proxy for the dominant cycle period
• We then analyse the proportion of time that price spends above or below this SMA over a lookback window. The theory is that the price should cross the SMA each half cycle, assuming that the dominant cycle period is correct and price follows a sinusoid.
• This lookback window is adaptive, scaling with the dominant cycle period (controlled by the Adaptability setting)
• The different values are standardised and normalised to possess more resolving power and to be more robust to noise.
3. Regime Classification :
• When the normalised proportion exceeds a positive threshold (determined by Sensitivity setting), the market is classified as bullish trending
• When it falls below a negative threshold, the market is classified as bearish trending
• When the proportion remains between these thresholds, the market is classified as cyclic
💮 Volatility Channel
The Volatility Channel method complements the DCA method by focusing on price movement relative to adaptive volatility bands:
1. Theoretical Foundation :
This method is based on the observation that trending markets tend to sustain movement outside of normal volatility ranges, while cyclic markets tend to remain contained within these ranges. By creating adaptive bands that adjust to current market volatility, we can detect when price behaviour indicates a trending or cyclic regime.
2. Calculation Process :
• We first calculate a smooth base channel center using a low pass filter, creating a noise-reduced centreline for price
• True Range (TR) is used to measure market volatility, which is then smoothed and scaled by the deviation factor (controlled by Sensitivity)
• Upper and lower bands are created by adding and subtracting this scaled volatility from the centreline
• Price is smoothed using an adaptive A2RMA filter, which has a very flat and stable behaviour, to reduce noise while preserving trend characteristics
• The position of this smoothed price relative to the bands is continuously monitored
3. Regime Classification :
• When smoothed price moves above the upper band, the market is classified as bullish trending
• When smoothed price moves below the lower band, the market is classified as bearish trending
• When price remains between the bands, the market is classified as cyclic
• The magnitude of price's excursion beyond the bands is used to determine trend strength
4. Adaptive Behaviour :
• The smoothing periods and deviation calculations automatically adjust based on the Adaptability setting
• The measured volatility is calculated over a period proportional to the dominant cycle, ensuring the detector works across different timeframes
• Both the center line and the bands adapt dynamically to changing market conditions, making the detector responsive yet stable
This method provides a unique perspective that complements the DCA approach, with the consensus mechanism synthesising insights from both methods.
🌸 --------- USAGE GUIDE --------- 🌸
💮 Starting with Default Settings
The default settings (Normal for Adaptability and Sensitivity, Weighted Decision for Consensus Mode) provide a balanced starting point suitable for most markets and timeframes. Begin by observing how these settings identify regimes in your preferred instruments.
💮 Finding the Optimal Dominant Cycle
The dominant cycle period is a critical parameter. Here are some approaches to finding an appropriate value:
• Start with typical values, usually something around 25 works well
• Visually identify the average distance between significant peaks and troughs
• Experiment with different values and observe which provides the most stable regime identification
• Consider using cycle-finding indicators to help identify the natural rhythm of your market
💮 Adjusting Parameters
• If you notice too many regime changes → Decrease Sensitivity or increase Consensus requirement
• If regime changes seem delayed → Increase Adaptability
• If a trending regime is not detected, the market is automatically assigned to be in a cyclic state
• If you want to see more nuanced regime transitions → Try the "unconstrained" display mode (note that this will not affect the output to other indicators)
💮 Trading Applications
Regime-Specific Strategies:
• Bullish Trending Regime - Use trend-following strategies, trail stops wider, focus on breakouts, consider holding positions longer, and emphasize buying dips
• Bearish Trending Regime - Consider shorts, tighter stops, focus on breakdown points, sell rallies, implement downside protection, and reduce position sizes
• Cyclic Regime - Apply mean-reversion strategies, trade range boundaries, apply oscillators, target definable support/resistance levels, and use profit-taking at extremes
Strategy Switching:
Create a set of rules for each market regime and switch between them based on the detector's signal. This approach can significantly improve performance compared to applying a single strategy across all market conditions.
GYTS Suite Integration:
• In the GYTS 🎼 Order Orchestrator, select the '🔗 STREAM-int 🧊 Market Regime' as the market regime source
• Note that the consensus output (i.e. not the "unconstrained" display) will be used in this stream
• Create different strategies for trending (bullish/bearish) and cyclic regimes. The GYTS 🎼 Order Orchestrator is specifically made for this.
• The output stream is actually very simple, and can possibly be used in indicators and strategies as well. It outputs 1 for bullish, -1 for bearish and 0 for cyclic regime.
🌸 --------- FINAL NOTES --------- 🌸
💮 Development Philosophy
The Market Regime Detector has been developed with several key principles in mind:
1. Robustness - The detection methods have been rigorously tested across diverse markets and timeframes to ensure reliable performance.
2. Adaptability - The detector automatically adjusts to changing market conditions, requiring minimal manual intervention.
3. Complementarity - Each detection method provides a unique perspective, with the collective consensus being more reliable than any individual method.
4. Intuitiveness - Complex technical parameters have been abstracted into easily understood controls.
💮 Ongoing Refinement
The Market Regime Detector is under continuous development. We regularly:
• Fine-tune parameters based on expanded market data
• Research and integrate new detection methodologies
• Optimise computational efficiency for real-time analysis
Your feedback and suggestions are very important in this ongoing refinement process!
Clustering & Divergences (RSI-Stoch-CCI) [Sam SDF-Solutions]The Clustering & Divergences (RSI-Stoch-CCI) indicator is a comprehensive technical analysis tool that consolidates three popular oscillators—Relative Strength Index (RSI), Stochastic, and Commodity Channel Index (CCI)—into one unified metric called the Score. This Score offers traders an aggregated view of market conditions, allowing them to quickly identify whether the market is oversold, balanced, or overbought.
Functionality:
Oscillator Clustering: The indicator calculates the values of RSI, Stochastic, and CCI using user-defined periods. These oscillator values are then normalized using one of three available methods: MinMax, Z-Score, or Z-Bins.
Score Calculation: Each normalized oscillator value is multiplied by its respective weight (which the user can adjust), and the weighted values are summed to generate an overall Score. This Score serves as a single, interpretable metric representing the combined oscillator behavior.
Market Clustering: The indicator performs clustering on the Score over a configurable window. By dividing the Score range into a set number of clusters (also configurable), the tool visually represents the market’s state. Each cluster is assigned a unique color so that traders can quickly see if the market is trending toward oversold, balanced, or overbought conditions.
Divergence Detection: The script automatically identifies both Regular and Hidden divergences between the price action and the Score. By using pivot detection on both price and Score data, the indicator marks potential reversal signals on the chart with labels and connecting lines. This helps in pinpointing moments when the price and the underlying oscillator dynamics diverge.
Customization Options: Users have full control over the indicator’s behavior. They can adjust:
The periods for each oscillator (RSI, Stochastic, CCI).
The weights applied to each oscillator in the Score calculation.
The normalization method and its manual boundaries.
The number of clusters and whether to invert the cluster order.
Parameters for divergence detection (such as pivot sensitivity and the minimum/maximum bar distance between pivots).
Visual Enhancements:
Depending on the user’s preference, either the Score or the Cluster Index (derived from the clustering process) is plotted on the chart. Additionally, the script changes the color of the price bars based on the identified cluster, providing an at-a-glance visual cue of the current market regime.
Logic & Methodology:
Input Parameters: The script starts by accepting user inputs for clustering settings, oscillator periods, weights, divergence detection, and manual boundary definitions for normalization.
Oscillator Calculation & Normalization: It computes RSI, Stochastic, and CCI values from the price data. These values are then normalized using either the MinMax method (scaling between a lower and upper band) or the Z-Score method (standardizing based on mean and standard deviation), or using Z-Bins for an alternative scaling approach.
Score Computation: Each normalized oscillator is multiplied by its corresponding weight. The sum of these products results in the overall Score that represents the combined oscillator behavior.
Clustering Algorithm: The Score is evaluated over a moving window to determine its minimum and maximum values. Using these values, the script calculates a cluster index that divides the Score into a predefined number of clusters. An option to invert the cluster calculation is provided to adjust the interpretation of the clustering.
Divergence Analysis: The indicator employs pivot detection (using left and right bar parameters) on both the price and the Score. It then compares recent pivot values to detect regular and hidden divergences. When a divergence is found, the script plots labels and optional connecting lines to highlight these key moments on the chart.
Plotting: Finally, based on the user’s selection, the indicator plots either the Score or the Cluster Index. It also overlays manual boundary lines (for the chosen normalization method) and adjusts the bar colors according to the cluster to provide clear visual feedback on market conditions.
_________
By integrating multiple oscillator signals into one cohesive tool, the Clustering & Divergences (RSI-Stoch-CCI) indicator helps traders minimize subjective analysis. Its dynamic clustering and automated divergence detection provide a streamlined method for assessing market conditions and potentially enhancing the accuracy of trading decisions.
For further details on using this indicator, please refer to the guide available at:
2:30 [LuciTech]this is a technical analysis tool designed to highlight key price levels and patterns during a specific trading window, based on UK time (Europe/London). It overlays visual elements on the chart, including a 12 PM reference line, Buy Side Liquidity (BSL) and Sell Side Liquidity (SSL) levels, a highlighted 2:30 PM candle, and Engulfing Fair Value Gaps (FVGs). This indicator is intended for traders who focus on intraday price action and liquidity zones.
Features
The 12 PM Line displays a vertical line at 12:00 PM (UK time) to mark the start of the session. It’s customizable, allowing you to enable or disable it and adjust its color.
BSL/SSL Lines track the highest high (BSL) and lowest low (SSL) from 12:00 PM to 2:00 PM (UK time). These lines extend horizontally until 3:30 PM, after which they remain static at their last recorded levels. You can customize them by enabling or disabling visibility, adjusting colors, choosing a line style (solid, dashed, or dotted), and setting the width.
The 2:30 PM Candle highlights the candle at 2:30 PM (UK time) with a distinct color. It’s customizable, with options to enable or disable it and change its color.
Engulfing FVG (Fair Value Gap) identifies bullish and bearish engulfing patterns with a gap from the prior candle’s range. It draws a shaded box over the FVG area, and you can customize it by enabling or disabling it and adjusting the box color.
How It Works
The indicator operates within a session starting at 12:00 PM (UK time). BSL/SSL levels update between 12:00 PM and 2:00 PM, with lines extending until 3:30 PM. After 3:30 PM, these lines freeze.
BSL/SSL lines show the highest price (BSL) and lowest price (SSL) reached during the 12:00 PM to 2:00 PM window. After 3:30 PM, they remain static, marking the final range boundaries.
The 2:30 PM candle emphasizes a key timestamp, often of interest to intraday traders.
Engulfing FVGs detect significant price gaps created by engulfing candles, which may indicate potential reversal or continuation zones.
Settings
12 PM Line Settings let you toggle visibility and set the line color.
BSL/SSL Line Settings allow you to toggle visibility, set BSL and SSL colors, choose a line style (Solid, Dashed, Dotted), and adjust width (1-4).
2:30 Candle Settings let you toggle visibility and set the candle color.
Engulfing FVG Settings allow you to toggle visibility and set the box color.
Interpretation
The 12 PM Line serves as a reference for the session start.
BSL/SSL Lines may act as potential support or resistance zones or highlight liquidity areas. After 3:30 PM, they remain static, showing the session’s final range.
The 2:30 PM Candle can be monitored for price action signals, such as reversals or breakouts.
Engulfing FVGs shaded areas may indicate imbalances in supply and demand, useful for identifying trade opportunities or stop-loss placement.
Notes
The timezone is set to Europe/London (UK time). Ensure your chart’s timezone aligns for accurate results.
This indicator is best used on intraday timeframes, such as 1-minute or 5-minute charts.
It provides visual aids for analysis and does not generate buy or sell signals on its own.
CBC Strategy with Trend Confirmation & Separate Stop LossCBC Flip Strategy with Trend Confirmation and ATR-Based Targets
This strategy is based on the CBC Flip concept taught by MapleStax and inspired by the original CBC Flip indicator by AsiaRoo. It focuses on identifying potential reversals or trend continuation points using a combination of candlestick patterns (CBC Flips), trend filters, and a time-based entry window. This approach helps traders avoid false signals and increase trade accuracy.
What is a CBC Flip?
The CBC Flip is a candlestick-based pattern that identifies moments when the market is likely to change direction or strengthen its trend. It checks for a shift in price behavior between consecutive candles, signaling a bullish (upward) or bearish (downward) move.
However, not all flips are created equal! This strategy differentiates between Strong Flips and All Flips, allowing traders to choose between a more conservative or aggressive approach.
Strong Flips vs. All Flips
Strong Flips
A Strong Flip is a high-probability setup that occurs only after liquidity is swept from the previous candle’s high or low.
What is a liquidity sweep? This happens when the price briefly moves beyond the high or low of the previous candle, triggering stop-losses and trapping traders in the wrong direction. These sweeps often create fuel for the next move, making them powerful reversal signals.
Examples:
Long Setup: The price dips below the previous candle’s low (sweeping liquidity) and then closes higher, signaling a potential bullish move.
Short Setup: The price moves above the previous candle’s high and then closes lower, signaling a potential bearish move.
Why Use Strong Flips?
They provide fewer signals, but the accuracy is generally higher.
Ideal for trending markets where liquidity sweeps often mark key turning points.
All Flips
All Flips are less selective, offering both Strong Flips and additional signals without requiring a liquidity sweep.
This approach gives traders more frequent opportunities but comes with a higher risk of false signals, especially in sideways markets.
Examples:
Long Setup: A CBC flip occurs without sweeping the previous low, but the trend direction is confirmed (slow EMA is still above VWAP).
Short Setup: A CBC flip occurs without sweeping the previous high, but the trend is still bearish (slow EMA below VWAP).
Why Use All Flips?
Provides more frequent entries for active or aggressive traders.
Works well in trending markets but requires caution during consolidation periods.
How This Strategy Works
The strategy combines CBC Flips with multiple filters to ensure better trade quality:
Trend Confirmation: The slow EMA (20-period) must be positioned relative to the VWAP to confirm the overall trend direction.
Long Trades: Slow EMA must be above VWAP (upward trend).
Short Trades: Slow EMA must be below VWAP (downward trend).
Time-Based Filter: Traders can specify trading hours to limit entries to a particular time window, helping avoid low-volume or high-volatility periods.
Profit Target and Stop-Loss:
Profit Target: Defined as a multiple of the 14-period ATR (Average True Range). For example, if the ATR is 10 points and the profit target multiplier is set to 1.5, the strategy aims for a 15-point profit.
Stop-Loss: Uses a dynamic, candle-based stop-loss:
Long Trades: The trade closes if the market closes below the low of two candles ago.
Short Trades: The trade closes if the market closes above the high of two candles ago.
This approach adapts to recent price behavior and protects against unexpected reversals.
Customizable Settings
Strong Flips vs. All Flips: Choose between a more selective or aggressive entry style.
Profit Target Multiplier: Adjust the ATR multiplier to control the distance for profit targets.
Entry Time Range: Define specific trading hours for the strategy.
Indicators and Visuals
Fast EMA (10-Period) – Black Line
Slow EMA (20-Period) – Red Line
VWAP (Volume-Weighted Average Price) – Orange Line
Visual Labels:
▵ (Triangle Up) – Marks long entries (buy signals).
▿ (Triangle Down) – Marks short entries (sell signals).
Credits
CBC Flip Concept: Inspired by MapleStax, who teaches this concept.
Original Indicator: Developed by AsiaRoo, this strategy builds on the CBC Flip framework with additional features for improved trade management.
Risks and Disclaimer
This strategy is for educational purposes only and does not constitute financial advice.
Trading involves significant risk and may result in the loss of capital. Past performance does not guarantee future results. Use this strategy in a simulated environment before applying it to live trading.
JJ Highlight Time Ranges with First 5 Minutes and LabelsTo effectively use this Pine Script as a day trader , here’s how the various elements can help you manage trades, track time sessions, and monitor price movements:
Key Components for a Day Trader:
1. First 5-Minute Highlight:
- Purpose: Day traders often rely on the first 5 minutes of the trading session to gauge market sentiment, watch for opening price gaps, or plan entries. This script draws a horizontal line at the high or low of the first 5 minutes, which can act as a key level for the rest of the day.
- How to Use: If the price breaks above or below the first 5-minute line, it can signal momentum. You might enter a long position if the price breaks above the first 5-minute high or a short if it breaks below the first 5-minute low.
2. Session Time Highlights:
- Morning Session (9:15–10:30 AM): The market often shows its strongest price action during the first hour of trading. This session is highlighted in yellow. You can use this highlight to focus on the most volatile period, as this is when large institutional moves tend to occur.
- Afternoon Session (12:30–2:55 PM): The blue highlight helps you track the mid-afternoon session, where liquidity may decrease, and price action can sometimes be choppier. Day traders should be more cautious during this period.
- How to Use: By highlighting these key times, you can:
- Focus on key breakouts during the morning session.
- Be more conservative in your trades during the afternoon, as market volatility may drop.
3. Dynamic Labels:
- Top/Bottom Positioning: The script places labels dynamically based on the selected position (Top or Bottom). This allows you to quickly glance at the session's start and identify where you are in terms of time.
- How to Use: Use these labels to remind yourself when major time segments (morning or afternoon) begin. You can adjust your trading strategy depending on the session, e.g., being more aggressive in the morning and more cautious in the afternoon.
Trading Strategy Suggestions:
1. Momentum Trades:
- After the first 5 minutes, use the high/low of that period to set up breakout trades.
- Long Entry: If the price breaks the high of the first 5 minutes (especially if there's a strong trend).
- Short Entry: If the price breaks the low of the first 5 minutes, signaling a potential downtrend.
2. Session-Based Strategy:
- Morning Session (9:15–10:30 AM):
- Look for strong breakout patterns such as support/resistance levels, moving average crossovers, or candlestick patterns (like engulfing candles or pin bars).
- This is a high liquidity period, making it ideal for executing quick trades.
- Afternoon Session (12:30–2:55 PM):
- The market tends to consolidate or show less volatility. Scalping and mean-reversion strategies work better here.
- Avoid chasing big moves unless you see a clear breakout in either direction.
3. Support and Resistance:
- The first 5-minute high/low often acts as a key support or resistance level for the rest of the day. If the price holds above or below this level, it’s an indication of trend continuation.
4. Breakout Confirmation:
- Look for breakouts from the highlighted session time ranges (e.g., 9:15 AM–10:30 AM or 12:30 PM–2:55 PM).
- If a breakout happens during a key time window, combine that with other technical indicators like volume spikes , RSI , or MACD for confirmation.
---
Example Day Trader Usage:
1. First 5 Minutes Strategy: After the market opens at 9:15 AM, watch the price action for the first 5 minutes. The high and low of these 5 minutes are critical levels. If the price breaks above the high of the first 5 minutes, it might indicate a strong bullish trend for the day. Conversely, breaking below the low may suggest bearish movement.
2. Morning Session: After the first 5 minutes, focus on the **9:15 AM–10:30 AM** window. During this time, look for breakout setups at key support/resistance levels, especially when paired with high volume or momentum indicators. This is when many institutions make large trades, so price action tends to be more volatile and predictable.
3. Afternoon Session: From 12:30 PM–2:55 PM, the market might experience lower volatility, making it ideal for scalping or range-bound strategies. You could look for reversals or fading strategies if the market becomes too quiet.
Conclusion:
As a day trader, you can use this script to:
- Track and react to key price levels during the first 5 minutes.
- Focus on high volatility in the morning session (9:15–10:30 AM) and **be cautious** during the afternoon.
- Use session-based timing to adjust your strategies based on the time of day.
PIP Algorithm
# **Script Overview (For Non-Coders)**
1. **Purpose**
- The script tries to capture the essential “shape” of price movement by selecting a limited number of “key points” (anchors) from the latest bars.
- After selecting these anchors, it draws straight lines between them, effectively simplifying the price chart into a smaller set of points without losing major swings.
2. **How It Works, Step by Step**
1. We look back a certain number of bars (e.g., 50).
2. We start by drawing a straight line from the **oldest** bar in that range to the **newest** bar—just two points.
3. Next, we find the bar whose price is *farthest away* from that straight line. That becomes a new anchor point.
4. We “snap” (pin) the line to go exactly through that new anchor. Then we re-draw (re-interpolate) the entire line from the first anchor to the last, in segments.
5. We repeat the process (adding more anchors) until we reach the desired number of points. Each time, we choose the biggest gap between our line and the actual price, then re-draw the entire shape.
6. Finally, we connect these anchors on the chart with red lines, visually simplifying the price curve.
3. **Why It’s Useful**
- It highlights the most *important* bends or swings in the price over the chosen window.
- Instead of plotting every single bar, it condenses the information down to the “key turning points.”
4. **Key Takeaway**
- You’ll see a small number of red line segments connecting the **most significant** points in the price data.
- This is especially helpful if you want a simplified view of recent price action without minor fluctuations.
## **Detailed Logic Explanation**
# **Script Breakdown (For Coders)**
//@version=5
indicator(title="PIP Algorithm", overlay=true)
// 1. Inputs
length = input.int(50, title="Lookback Length")
num_points = input.int(5, title="Number of PIP Points (≥ 3)")
// 2. Helper Functions
// ---------------------------------------------------------------------
// reInterpSubrange(...):
// Given two “anchor” indices in `linesArr`, linearly interpolate
// the array values in between so that the subrange forms a straight line
// from linesArr to linesArr .
reInterpSubrange(linesArr, segmentLeft, segmentRight) =>
float leftVal = array.get(linesArr, segmentLeft)
float rightVal = array.get(linesArr, segmentRight)
int segmentLen = segmentRight - segmentLeft
if segmentLen > 1
for i = segmentLeft + 1 to segmentRight - 1
float ratio = (i - segmentLeft) / segmentLen
float interpVal = leftVal + (rightVal - leftVal) * ratio
array.set(linesArr, i, interpVal)
// reInterpolateAllSegments(...):
// For the entire “linesArr,” re-interpolate each subrange between
// consecutive breakpoints in `lineBreaksArr`.
// This ensures the line is globally correct after each new anchor insertion.
reInterpolateAllSegments(linesArr, lineBreaksArr) =>
array.sort(lineBreaksArr, order.asc)
for i = 0 to array.size(lineBreaksArr) - 2
int leftEdge = array.get(lineBreaksArr, i)
int rightEdge = array.get(lineBreaksArr, i + 1)
reInterpSubrange(linesArr, leftEdge, rightEdge)
// getMaxDistanceIndex(...):
// Return the index (bar) that is farthest from the current “linesArr.”
// We skip any indices already in `lineBreaksArr`.
getMaxDistanceIndex(linesArr, closeArr, lineBreaksArr) =>
float maxDist = -1.0
int maxIdx = -1
int sizeData = array.size(linesArr)
for i = 1 to sizeData - 2
bool isBreak = false
for b = 0 to array.size(lineBreaksArr) - 1
if i == array.get(lineBreaksArr, b)
isBreak := true
break
if not isBreak
float dist = math.abs(array.get(linesArr, i) - array.get(closeArr, i))
if dist > maxDist
maxDist := dist
maxIdx := i
maxIdx
// snapAndReinterpolate(...):
// "Snap" a chosen index to its actual close price, then re-interpolate the entire line again.
snapAndReinterpolate(linesArr, closeArr, lineBreaksArr, idxToSnap) =>
if idxToSnap >= 0
float snapVal = array.get(closeArr, idxToSnap)
array.set(linesArr, idxToSnap, snapVal)
reInterpolateAllSegments(linesArr, lineBreaksArr)
// 3. Global Arrays and Flags
// ---------------------------------------------------------------------
// We store final data globally, then use them outside the barstate.islast scope to draw lines.
var float finalCloseData = array.new_float()
var float finalLines = array.new_float()
var int finalLineBreaks = array.new_int()
var bool didCompute = false
var line pipLines = array.new_line()
// 4. Main Logic (Runs Once at the End of the Current Bar)
// ---------------------------------------------------------------------
if barstate.islast
// A) Prepare closeData in forward order (index 0 = oldest bar, index length-1 = newest)
float closeData = array.new_float()
for i = 0 to length - 1
array.push(closeData, close )
// B) Initialize linesArr with a simple linear interpolation from the first to the last point
float linesArr = array.new_float()
float firstClose = array.get(closeData, 0)
float lastClose = array.get(closeData, length - 1)
for i = 0 to length - 1
float ratio = (length > 1) ? (i / float(length - 1)) : 0.0
float val = firstClose + (lastClose - firstClose) * ratio
array.push(linesArr, val)
// C) Initialize lineBreaks with two anchors: 0 (oldest) and length-1 (newest)
int lineBreaks = array.new_int()
array.push(lineBreaks, 0)
array.push(lineBreaks, length - 1)
// D) Iteratively insert new breakpoints, always re-interpolating globally
int iterationsNeeded = math.max(num_points - 2, 0)
for _iteration = 1 to iterationsNeeded
// 1) Re-interpolate entire shape, so it's globally up to date
reInterpolateAllSegments(linesArr, lineBreaks)
// 2) Find the bar with the largest vertical distance to this line
int maxDistIdx = getMaxDistanceIndex(linesArr, closeData, lineBreaks)
if maxDistIdx == -1
break
// 3) Insert that bar index into lineBreaks and snap it
array.push(lineBreaks, maxDistIdx)
array.sort(lineBreaks, order.asc)
snapAndReinterpolate(linesArr, closeData, lineBreaks, maxDistIdx)
// E) Save results into global arrays for line drawing outside barstate.islast
array.clear(finalCloseData)
array.clear(finalLines)
array.clear(finalLineBreaks)
for i = 0 to array.size(closeData) - 1
array.push(finalCloseData, array.get(closeData, i))
array.push(finalLines, array.get(linesArr, i))
for b = 0 to array.size(lineBreaks) - 1
array.push(finalLineBreaks, array.get(lineBreaks, b))
didCompute := true
// 5. Drawing the Lines in Global Scope
// ---------------------------------------------------------------------
// We cannot create lines inside barstate.islast, so we do it outside.
array.clear(pipLines)
if didCompute
// Connect each pair of anchors with red lines
if array.size(finalLineBreaks) > 1
for i = 0 to array.size(finalLineBreaks) - 2
int idxLeft = array.get(finalLineBreaks, i)
int idxRight = array.get(finalLineBreaks, i + 1)
float x1 = bar_index - (length - 1) + idxLeft
float x2 = bar_index - (length - 1) + idxRight
float y1 = array.get(finalCloseData, idxLeft)
float y2 = array.get(finalCloseData, idxRight)
line ln = line.new(x1, y1, x2, y2, extend=extend.none)
line.set_color(ln, color.red)
line.set_width(ln, 2)
array.push(pipLines, ln)
1. **Data Collection**
- We collect the **most recent** `length` bars in `closeData`. Index 0 is the oldest bar in that window, index `length-1` is the newest bar.
2. **Initial Straight Line**
- We create an array called `linesArr` that starts as a simple linear interpolation from `closeData ` (the oldest bar’s close) to `closeData ` (the newest bar’s close).
3. **Line Breaks**
- We store “anchor points” in `lineBreaks`, initially ` `. These are the start and end of our segment.
4. **Global Re-Interpolation**
- Each time we want to add a new anchor, we **re-draw** (linear interpolation) for *every* subrange ` [lineBreaks , lineBreaks ]`, ensuring we have a globally consistent line.
- This avoids the “local subrange only” approach, which can cause clustering near existing anchors.
5. **Finding the Largest Distance**
- After re-drawing, we compute the vertical distance for each bar `i` that isn’t already a line break. The bar with the biggest distance from the line is chosen as the next anchor (`maxDistIdx`).
6. **Snapping and Re-Interpolate**
- We “snap” that bar’s line value to the actual close, i.e. `linesArr = closeData `. Then we globally re-draw all segments again.
7. **Repeat**
- We repeat these insertions until we have the desired number of points (`num_points`).
8. **Drawing**
- Finally, we connect each consecutive pair of anchor points (`lineBreaks`) with a `line.new(...)` call, coloring them red.
- We offset the line’s `x` coordinate so that the anchor at index 0 lines up with `bar_index - (length - 1)`, and the anchor at index `length-1` lines up with `bar_index` (the current bar).
**Result**:
You get a simplified representation of the price with a small set of line segments capturing the largest “jumps” or swings. By re-drawing the entire line after each insertion, the anchors tend to distribute more *evenly* across the data, mitigating the issue where anchors bunch up near each other.
Enjoy experimenting with different `length` and `num_points` to see how the simplified lines change!
QTALibrary "QTA"
This is simple library for basic Quantitative Technical Analysis for retail investors. One example of it being used can be seen here ().
calculateKellyRatio(returns)
Parameters:
returns (array) : An array of floats representing the returns from bets.
Returns: The calculated Kelly Ratio, which indicates the optimal bet size based on winning and losing probabilities.
calculateAdjustedKellyFraction(kellyRatio, riskTolerance, fedStance)
Parameters:
kellyRatio (float) : The calculated Kelly Ratio.
riskTolerance (float) : A float representing the risk tolerance level.
fedStance (string) : A string indicating the Federal Reserve's stance ("dovish", "hawkish", or neutral).
Returns: The adjusted Kelly Fraction, constrained within the bounds of .
calculateStdDev(returns)
Parameters:
returns (array) : An array of floats representing the returns.
Returns: The standard deviation of the returns, or 0 if insufficient data.
calculateMaxDrawdown(returns)
Parameters:
returns (array) : An array of floats representing the returns.
Returns: The maximum drawdown as a percentage.
calculateEV(avgWinReturn, winProb, avgLossReturn)
Parameters:
avgWinReturn (float) : The average return from winning bets.
winProb (float) : The probability of winning a bet.
avgLossReturn (float) : The average return from losing bets.
Returns: The calculated Expected Value of the bet.
calculateTailRatio(returns)
Parameters:
returns (array) : An array of floats representing the returns.
Returns: The Tail Ratio, or na if the 5th percentile is zero to avoid division by zero.
calculateSharpeRatio(avgReturn, riskFreeRate, stdDev)
Parameters:
avgReturn (float) : The average return of the investment.
riskFreeRate (float) : The risk-free rate of return.
stdDev (float) : The standard deviation of the investment's returns.
Returns: The calculated Sharpe Ratio, or na if standard deviation is zero.
calculateDownsideDeviation(returns)
Parameters:
returns (array) : An array of floats representing the returns.
Returns: The standard deviation of the downside returns, or 0 if no downside returns exist.
calculateSortinoRatio(avgReturn, downsideDeviation)
Parameters:
avgReturn (float) : The average return of the investment.
downsideDeviation (float) : The standard deviation of the downside returns.
Returns: The calculated Sortino Ratio, or na if downside deviation is zero.
calculateVaR(returns, confidenceLevel)
Parameters:
returns (array) : An array of floats representing the returns.
confidenceLevel (float) : A float representing the confidence level (e.g., 0.95 for 95% confidence).
Returns: The Value at Risk at the specified confidence level.
calculateCVaR(returns, varValue)
Parameters:
returns (array) : An array of floats representing the returns.
varValue (float) : The Value at Risk threshold.
Returns: The average Conditional Value at Risk, or na if no returns are below the threshold.
calculateExpectedPriceRange(currentPrice, ev, stdDev, confidenceLevel)
Parameters:
currentPrice (float) : The current price of the asset.
ev (float) : The expected value (in percentage terms).
stdDev (float) : The standard deviation (in percentage terms).
confidenceLevel (float) : The confidence level for the price range (e.g., 1.96 for 95% confidence).
Returns: A tuple containing the minimum and maximum expected prices.
calculateRollingStdDev(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling standard deviation of returns.
calculateRollingVariance(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling variance of returns.
calculateRollingMean(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling mean of returns.
calculateRollingCoefficientOfVariation(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling coefficient of variation of returns.
calculateRollingSumOfPercentReturns(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling sum of percent returns.
calculateRollingCumulativeProduct(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling cumulative product of returns.
calculateRollingCorrelation(priceReturns, volumeReturns, window)
Parameters:
priceReturns (array) : An array of floats representing the price returns.
volumeReturns (array) : An array of floats representing the volume returns.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling correlation.
calculateRollingPercentile(returns, window, percentile)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
percentile (int) : An integer representing the desired percentile (0-100).
Returns: An array of floats representing the rolling percentile of returns.
calculateRollingMaxMinPercentReturns(returns, window)
Parameters:
returns (array) : An array of floats representing the returns.
window (int) : An integer representing the rolling window size.
Returns: A tuple containing two arrays: rolling max and rolling min percent returns.
calculateRollingPriceToVolumeRatio(price, volData, window)
Parameters:
price (array) : An array of floats representing the price data.
volData (array) : An array of floats representing the volume data.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the rolling price-to-volume ratio.
determineMarketRegime(priceChanges)
Parameters:
priceChanges (array) : An array of floats representing the price changes.
Returns: A string indicating the market regime ("Bull", "Bear", or "Neutral").
determineVolatilityRegime(price, window)
Parameters:
price (array) : An array of floats representing the price data.
window (int) : An integer representing the rolling window size.
Returns: An array of floats representing the calculated volatility.
classifyVolatilityRegime(volatility)
Parameters:
volatility (array) : An array of floats representing the calculated volatility.
Returns: A string indicating the volatility regime ("Low" or "High").
method percentPositive(thisArray)
Returns the percentage of positive non-na values in this array.
This method calculates the percentage of positive values in the provided array, ignoring NA values.
Namespace types: array
Parameters:
thisArray (array)
_candleRange()
_PreviousCandleRange(barsback)
Parameters:
barsback (int) : An integer representing how far back you want to get a range
redCandle()
greenCandle()
_WhiteBody()
_BlackBody()
HighOpenDiff()
OpenLowDiff()
_isCloseAbovePreviousOpen(length)
Parameters:
length (int)
_isCloseBelowPrevious()
_isOpenGreaterThanPrevious()
_isOpenLessThanPrevious()
BodyHigh()
BodyLow()
_candleBody()
_BodyAvg(length)
_BodyAvg function.
Parameters:
length (simple int) : Required (recommended is 6).
_SmallBody(length)
Parameters:
length (simple int) : Length of the slow EMA
Returns: a series of bools, after checking if the candle body was less than body average.
_LongBody(length)
Parameters:
length (simple int)
bearWick()
bearWick() function.
Returns: a SERIES of FLOATS, checks if it's a blackBody(open > close), if it is, than check the difference between the high and open, else checks the difference between high and close.
bullWick()
barlength()
sumbarlength()
sumbull()
sumbear()
bull_vol()
bear_vol()
volumeFightMA()
volumeFightDelta()
weightedAVG_BullVolume()
weightedAVG_BearVolume()
VolumeFightDiff()
VolumeFightFlatFilter()
avg_bull_vol(userMA)
avg_bull_vol(int) function.
Parameters:
userMA (int)
avg_bear_vol(userMA)
avg_bear_vol(int) function.
Parameters:
userMA (int)
diff_vol(userMA)
diff_vol(int) function.
Parameters:
userMA (int)
vol_flat(userMA)
vol_flat(int) function.
Parameters:
userMA (int)
_isEngulfingBullish()
_isEngulfingBearish()
dojiup()
dojidown()
EveningStar()
MorningStar()
ShootingStar()
Hammer()
InvertedHammer()
BearishHarami()
BullishHarami()
BullishBelt()
BullishKicker()
BearishKicker()
HangingMan()
DarkCloudCover()