close-hl2 Price actionStill not tested, but looks very good ; it is the difference between EMA median price and EMA close in different time frame, I used 240, 60, and the current Time frame ,plus one more customed period ; can forcast the price movement , but it s not in scale, so it can not show how much higher or lower the price can goes but just the next direction. I think intraday on 5 ,15 ,60 better then high frame.If you need to try on Daily frame have to change the period to higher then Daily
"股价站上60月线" için komut dosyalarını ara
Everyday 0002 _ MAC 1st Trading Hour WalkoverThis is the second strategy for my Everyday project.
Like I wrote the last time - my goal is to create a new strategy everyday
for the rest of 2016 and post it here on TradingView.
I'm a complete beginner so this is my way of learning about coding strategies.
I'll give myself between 15 minutes and 2 hours to complete each creation.
This is basically a repetition of the first strategy I wrote - a Moving Average Crossover,
but I added a tiny thing.
I read that "Statistics have proven that the daily high or low is established within the first hour of trading on more than 70% of the time."
(source: )
My first Moving Average Crossover strategy, tested on VOLVB daily, got stoped out by the volatility
and because of this missed one nice bull run and a very nice bear run.
So I added this single line: if time("60", "1000-1600") regarding when to take exits:
if time("60", "1000-1600")
strategy.exit("Close Long", "Long", profit=2000, loss=500)
strategy.exit("Close Short", "Short", profit=2000, loss=500)
Sweden is UTC+2 so I guess UTC 1000 equals 12.00 in Stockholm. Not sure if this is correct, actually.
Anyway, I hope this means the strategy will only take exits based on price action which occur in the afternoon, when there is a higher probability of a lower volatility.
When I ran the new modified strategy on the same VOLVB daily it didn't get stoped out so easily.
On the other hand I'll have to test this on various stocks .
Reading and learning about how to properly test strategies is on my todo list - all tips on youtube videos or blogs
to read on this topic is very welcome!
Like I said the last time, I'm posting these strategies hoping to learn from the community - so any feedback, advice, or corrections is very much welcome and appreciated!
/pbergden
first candle time 60 min by niceshort with chatgpttime and date first 1H candle.
Displaying the date and time of the first candle can be useful when searching for a chart with the longest history for a given asset.
XAUUSD Multi-Timeframe Bias Scanner🎯 Purpose & Overview
This is a sophisticated trading indicator that analyzes XAUUSD (Gold) across 5 different timeframes simultaneously to determine market bias and trend direction.
⚙️ Core Components
2. Bias Calculation Engine
The heart of the indicator uses 5 technical factors to score each timeframe:
Technical Factors (Weighted):
Moving Average Alignment (30 points)
Bullish: EMA(9) > EMA(21) > EMA(50)
Bearish: EMA(9) < EMA(21) < EMA(50)
Price vs MA Position (20 points)
Score increases when price above MAs
Score decreases when price below MAs
RSI Momentum (20 points)
Bullish: RSI > 60 or > 50
Bearish: RSI < 40 or < 50
MACD Signals (15 points)
Bullish: MACD line > Signal line AND > 0
Bearish: MACD line < Signal line AND < 0
Volume Confirmation (15 points)
Volume spikes with price movement add confirmation
📊 Timeframe Analysis
Five Timeframes Monitored:
5-minute - Short-term noise (10% weight)
15-minute - Intraday direction (15% weight)
1-hour - Key intraday bias (25% weight)
4-hour - Primary directional bias (30% weight)
1-day - Overall trend context (20% weight)
Bias Scoring System:
0-100 Scale (50 = Neutral)
STRONG BULLISH: ≥70 (Green)
BULLISH: 55-69 (Lime)
NEUTRAL: 46-54 (Gray)
BEARISH: 31-45 (Orange)
STRONG BEARISH: ≤30 (Red)
🎨 Visual Features
1. Comprehensive Table Display
pinescript
var table biasTable = table.new(position.top_right, 3, 7, ...)
Shows a color-coded table with:
Timeframe name
Numerical bias score (0-100)
Strength description with color coding
2. Chart Visual Indicators
Background coloring based on overall bias
Label markers for strong bullish/bearish conditions
Real-time label showing all timeframe scores
3. Alert System
Triggers when overall bias crosses 70 (bullish) or 30 (bearish)
Configurable with sound options
🔄 How It Processes Data
Data Flow:
Requests security data for each timeframe using request.security()
Calculates technical indicators for each TF separately
Scores each TF based on 5 technical factors
Computes weighted overall bias
Updates visual displays and checks alert conditions
💡 Trading Applications
Bullish Scenarios:
Multiple timeframes show bullish alignment
Higher timeframe bias supports lower timeframe direction
Overall score > 70 indicates strong bullish conviction
Bearish Scenarios:
Multiple timeframes show bearish alignment
Higher timeframe bias confirms lower timeframe moves
Overall score < 30 indicates strong bearish conviction
Conflict Detection:
When timeframes show conflicting biases
Caution required - market may be consolidating
Wait for alignment before taking trades
🎚️ Customization Options
Users can modify:
Timeframe weights
Technical indicator parameters
Alert thresholds
Visual display preferences
Scoring sensitivity
📈 XAUUSD Specific Optimizations
The indicator considers Gold's unique characteristics:
High volatility periods
ATR-based volatility adjustments
Volume confirmation for breakouts
Multiple timeframe confirmation for trend reliability
This creates a powerful tool for identifying high-probability trade setups in XAUUSD by ensuring traders have a complete multi-timeframe perspective before entering positions.
Altseason IndexDescription of the "Altseason Index" Indicator
The Altseason Index is a powerful and visually minimalist tool designed to objectively identify the onset and conclusion of an "altseason" in the cryptocurrency market. Moving beyond subjective speculation, this indicator employs a clear, mathematical methodology by comparing the performance of a broad basket of altcoins against Bitcoin.
🎯 Core Concept and Utility
An "Altseason" is a market period where altcoins (cryptocurrencies other than Bitcoin) consistently yield higher returns than BTC. This indicator empowers traders and investors to:
Objectively Identify Market Cycles: Precisely pinpoint when capital is actively rotating from Bitcoin into altcoins and vice versa.
Make Data-Driven Decisions: Adjust their strategy in a timely manner: increasing exposure to altcoins during an altseason or rotating back into BTC upon its conclusion.
Avoid Emotional Pitfalls: Steer clear of FOMO (Fear Of Missing Out) and base decisions on hard data rather than market noise.
⚙️ How the Calculation Works
1. Asset Selection: The indicator tracks the performance of 15 leading altcoins across various market segments (Layer 1s, DeFi, Meme, Payments), ensuring a representative sample.
2. Performance Comparison: For each altcoin, the percentage price change over the user-defined lookback period (default: 90 days) is calculated. This performance is then compared to BTC's performance over the same period.
3. Counting the "Outperformers": The index counts the number of altcoins that have "outperformed" BTC.
4. Calculating the Index: The Altseason Index value is the percentage of altcoins in the basket that are outperforming BTC. For example, a value of 60% means that 9 out of the 15 coins performed better than Bitcoin.
🛠️ Indicator Settings
The settings are kept simple and intuitive, allowing you to customize the indicator to your strategy:
Lookback Period (days) (Default: 90):
- Defines the time horizon for the performance calculation.
- Shorter Periods (30-60 days) react faster to new trends but may produce more false signals.
- Longer Periods (90-180 days) provide smoother and more reliable signals, capturing sustained macro-trends.
Altseason Threshold (%) (Default: 75%):
- This is the key parameter that defines what index value constitutes an official "altseason."
- A threshold of 75% means an altseason is declared when at least 11 out of the 15 altcoins (75%) are outperforming BTC.
- You can increase the threshold (e.g., to 85%) for more conservative and stronger signals, or decrease it (e.g., to 65%) for earlier entries.
📊 Interpreting the Readings and Signals
The indicator uses a clear color-coding system and levels for easy interpretation:
🔴 < 30%: "BTC SEASON"
Bitcoin is dominating. The market is in risk-off mode or a state of anticipation. Growth is concentrated in BTC.
⚪ 30% - 49%: "NEUTRAL"
A transitional phase. The market is uncertain. Some alts show strength, but there is no unified trend.
🔵 50% - 74%: "BULLISH"
Growing strength in altcoins. Capital is beginning to rotate actively. This can be an early stage of an altseason.
🟢 ≥ 75% (or your custom threshold): "ALTSEASON"
The active altseason phase. The vast majority of altcoins are rising faster than BTC. This is the period of maximum potential returns for alts.
Signal Markers:
Green Dot: Signals the potential start of an altseason (the index crosses above the threshold).
Red Dot: Signals the potential end of an altseason (the index crosses below the threshold).
ℹ️ Information Panel
The chart displays two clean information panels:
1. Main Info Label:
Current index value (e.g., ⟠ 80%).
Market status (ALTSEASON, BULLISH, etc.).
The ratio of outperforming altcoins (11/15 alts).
2. Dominance & Market Cap Panel:
Alts: Altcoin Dominance (the market cap share of all coins except BTC).
BTC: Bitcoin Dominance.
Market: Total cryptocurrency market capitalization in billions of USD. This helps assess the overall market context (bullish/bearish).
💎 Conclusion
The Altseason Index is your strategic companion for navigating the crypto markets. It transforms the complex task of identifying market cycles into a simple and visual process. Use it to confirm broad market trends, identify potential entry and exit points, and, most importantly, to maintain discipline in your trading strategy by filtering out noise and emotion.
Disclaimer: This indicator is a tool for analysis and does not constitute investment advice. All trading decisions are taken at your own risk.
Thirdeyechart Volume Gold//@version=6
indicator("MT5 Style Quotes – Custom Pair Table", overlay=true, max_labels_count=500)
// ==== USER INPUTS ====
// Masukkan pair tambahan kat sini (pisahkan dengan koma)
extraPairsInput = input.string("XAUUSD,XAUJPY,USDJPY,EURJPY", "Custom Pairs (comma separated)")
// Convert input → array
string extraPairs = str.split(extraPairsInput, ",")
// Function kira % change
f_change(sym, tf) =>
o = request.security(sym, tf, open)
c = request.security(sym, tf, close)
pct = ((c - o) / o) * 100
pct
// Table setup
rowCount = array.size(extraPairs) + 1
var tbl = table.new(position.top_right, 4, rowCount, border_width=1)
// Header row
table.cell(tbl, 0, 0, "Symbol", bgcolor=color.new(color.white, 90))
table.cell(tbl, 1, 0, "Day %", bgcolor=color.new(color.white, 90))
table.cell(tbl, 2, 0, "H1 %", bgcolor=color.new(color.white, 90))
table.cell(tbl, 3, 0, "H4 %", bgcolor=color.new(color.white, 90))
// Loop setiap pair
for i = 0 to array.size(extraPairs)-1
sym = str.trim(array.get(extraPairs, i))
day = f_change(sym, "D")
h1 = f_change(sym, "60")
h4 = f_change(sym, "240")
col_day = day >= 0 ? color.blue : color.red
col_h1 = h1 >= 0 ? color.blue : color.red
col_h4 = h4 >= 0 ? color.blue : color.red
table.cell(tbl, 0, i+1, sym)
table.cell(tbl, 1, i+1, str.tostring(day, format.percent), text_color=col_day)
table.cell(tbl, 2, i+1, str.tostring(h1, format.percent), text_color=col_h1)
table.cell(tbl, 3, i+1, str.tostring(h4, format.percent), text_color=col_h4)
3-EMA Ribbon Scalping System 3-EMA Ribbon Scalping System V2 - Trading Guide
Overview
This indicator combines a triple EMA ribbon with VWAP, RSI, and volume analysis to catch high-probability scalping setups for short pip hunting on highly liquid Forex pairs such as EUR/USD
The Core Strategy
The system waits for three conditions to align before firing a signal:
1. EMA Stack** - The 8/13/21 EMAs must be properly stacked (bullish: 8>13>21, bearish: 8<13<21)
2. VWAP Position** - Price needs to be on the right side of VWAP for the trade direction
3. Pullback Entry** - Price pulls back to test the fast EMA while maintaining the trend structure
When these line up with proper RSI readings and a volume spike, you get your entry signal.
Reading the Signals
LONG Entries
Triggered when:
- EMAs are bullishly stacked (green background)
- Price is above VWAP
- We get a pullback to the 8 EMA that holds
- RSI is between 40-70 (momentum present but not overbought)
- Volume exceeds the 20-period average by 1.2x
SHORT Entries
Mirror opposite conditions:
- Bearish EMA stack (red background)
- Price below VWAP
- Rejection at the 8 EMA
- RSI between 30-60
- Volume confirmation present
Risk Management Built In (freely adjustable to match your own approach when it comes to taking risk)
Each signal automatically calculates:
- Stop Loss: 1x ATR from entry
- Target 1: 1:1 risk/reward ratio
- *arget 2: 2:1 risk/reward ratio
You can display these as lines or labels, or turn them off entirely if you prefer your own levels.
Quick Setup Tips
Start with the default settings - they work well on most timeframes from 1-minute to 1-hour charts. The sweet spot for scalping is typically the 3-minute or 5-minute timeframe.
The info panel in the top right gives you a quick market snapshot without cluttering your chart:
- Trend direction
- VWAP position
- RSI value
- Volume status
- Current signal state
If you're getting too many signals, increase the "Min Bars Between Signals" to filter out choppy action. For cleaner charts during analysis, you can toggle off individual components like the ribbon, backgrounds, or signals.
Tips for Live Trading
1. Don't chase - Wait for price to come to the 8 EMA, not the other way around
2. Volume matters - That volume spike filter catches the moves with real momentum behind them
3. Respect the trend - The EMA stack keeps you trading with the flow, not against it
4. Use multiple timeframes - Check a higher timeframe for overall bias before taking signals
The indicator includes alerts that fire with exact entry, stop, and target levels - perfect for quick execution or logging trades.
Remember, this is a scalping system designed for active trading. It works best in trending markets with good volatility. During ranging or low-volume periods, consider sitting on your hands or reducing position size. Trade at your own risk, I created this solely for educational purposes!
Customization Options
Display Settings
- Show/hide EMA ribbon
- Toggle entry signals
- Background colors with adjustable opacity
- Info panel size options
- VWAP visibility
Technical Parameters
- EMA Settings: Adjustable lengths for fast (8), medium (13), and slow (21) EMAs
- RSI Settings: Customizable overbought/oversold levels and momentum thresholds
- Volume Settings: Multiplier for volume confirmation and MA length
- Risk Management: ATR multiplier for stops, customizable R:R ratios
Nearly everything is adjustable, but the defaults are solid. Focus on reading the market structure first before tweaking settings.
Visual Features
Background Colors
- Green: Bullish trend (EMAs stacked bullishly)
- Red: Bearish trend (EMAs stacked bearishly)
- Gray: Neutral/choppy conditions
Signal Styles
Choose between:
- Text labels
- Arrow markers
- Both combined
Stop Loss & Take Profit Display
Three modes available:
- None: No SL/TP visualization
- Current: Shows lines for active trade
- Labels: Displays small labels at price levels
Best Markets & Timeframes
Optimal Markets:
- Forex pairs (especially majors)
- Stock indices
- Liquid cryptocurrencies
- High-volume stocks
Alert System
Comprehensive alerts include:
- Entry signal notification
- Exact entry price
- Stop loss level with pip distance
- Take profit levels with pip distances
- Trade direction and symbol
Important Notes
- This is a "momentum-based scalping system" - not suitable for ranging markets
- Best results come from pairing with your understanding of key levels and market context
- The volume filter helps avoid false signals during low-liquidity periods
- Consider overall market conditions and news events before trading
Version Info
3-EMA Ribbon Scalping System
- Refined entry logic
- Improved visual clarity
- Enhanced risk management tools
- Optimized performance tracking
BTC Halving Cycle SignalsBTC Halving Cycle Signals
What signals does this script give in real history (2011-2025):
2015 → BUY (bear market bottom)
2019 → BUY (post-2018 bottom)
October 2020 → BUY
November 2023 → BUY
And right now (Nov 2025) → green bottom + price above weekly EMA200 → about to give a buy signal if it breaks $72k strongly.
BUY signal: ~500 days pre-halving + price > weekly EMA200 + monthly RSI <60 (accumulation).
SELL signal: ~1064 days post-halving + RSI >75 or close < SuperTrend (distribution).
Hardcoded halving dates (can be edited). Works on BTCUSD weekly/monthly, gives 1-2 signals per cycle.
45DS v6.0 FULL FINAL1-5-15-30-60 dakıkalık zaman dlimlerinde sculp indikatörü . Başarısına inanamayacalsınız..
Ichimoku Cloud (Auto Crypto/Non-Crypto settings)Save the hassle of switching back and forth between crypto and non-crypto settings by using the `syminfo.type` value under the hood.
If it's crypto it uses the 20, 60, 120, 30 settings, otherwise it uses 18, 52, 104, 26 defaults.
You can always override it using the Market Mode input in the settings.
The settings type is displayed in the top right of the chart as either "Crypto Cloud" or "Legacy Cloud" so you know which settings are being applied.
Defended Price Levels (DPLs) — Melvin Dickover ConceptThis indicator identifies and draws horizontal “Defended Price Levels” (DPLs) exactly as originally described by Melvin E. Dickover in his trading methodology.
Dickover observed that when extreme relative volume and extreme “freedom of movement” (volume-to-price-movement ratio) occur on the same bar, especially on bars with large gaps or unusually large bodies, the closing price (or previous close) of that bar very often becomes a significant future support/resistance level that the market later “defends.”
This script automates the detection of those exact coincident spikes using two well-known public indicators:
Relative Volume (RVI)
• Original idea: Melvin Dickover
• Pine Script implementation used here: “Relative Volume Indicator (Freedom Of Movement)” by LazyBear
Link:
Freedom of Movement (FoM)
• Original idea and calculation: starbolt64
• Pine Script: “Freedom of Movement” by starbolt64
Link:
How this indicator works
Calculates the raw (possibly negative) LazyBear RVI and starbolt64’s exact FoM values
Normalizes and standardizes both over the user-defined lookback
Triggers only when both RVI and FoM exceed the chosen number of standard deviations on the same bar (true Dickover coincident-spike condition)
Applies Dickover’s original price-selection rules (uses current close on big gaps or 2× body expansion candles, otherwise previous close)
Draws a thin maroon horizontal ray only when the new level is sufficiently far from all previously drawn levels (default ≥0.8 %) and the maximum number of levels has not been reached
Keeps the chart clean by limiting the total number of significant defended levels shown
This is not a republish or minor variation of the two source scripts — it is a faithful automation of Melvin Dickover’s specific “defended price line” concept that he manually marked using the coincidence of these two indicators.
Full credit goes to:
Melvin E. Dickover — creator of the Defended Price Levels concept
LazyBear — author of the Relative Volume (RVI) implementation used here
starbolt64 — author of the Freedom of Movement indicator and calculation
Settings (all adjustable):
Standard Deviation Length (default 60)
Spike Threshold in standard deviations (default 2.0)
Minimum distance between levels in % (default 0.8 %)
Maximum significant levels to display (15–80)
Use these horizontal maroon lines as potential future support/resistance zones that the market has previously shown strong willingness to defend.
Thank you to Melvin, LazyBear, and starbolt64 for the original work that made this automation possible.
Advanced Market Profile & S/R Zones (Pro)Advanced Market Profile & S/R Zones
This indicator brings professional Auction Market Theory to your chart using a custom rolling Volume Profile algorithm. Unlike standard profiles that remain fixed, this tool dynamically calculates the "Fair Value" of the asset based on your specific lookback period (e.g., the last 100 bars).
It automatically highlights the Point of Control (POC), Value Area (VA), and suggests statistical Discount (Buy) and Premium (Sell) zones.
Key Features
Volume Splitting Algorithm:
Most basic scripts dump the entire volume of a candle into a single price point (the average). This script splits the volume across the candle's entire High-Low range. This results in a much smoother, higher-resolution bell curve that accurately reflects price action, especially on higher timeframes like Monthly charts.
Auto-generated Zones:
Green Zone (Discount): Prices below the Value Area Low (VAL). Statistically "cheap."
Red Zone (Premium): Prices above the Value Area High (VAH). Statistically "expensive."
Real-Time Dashboard:
A built-in panel displays the exact price levels for the POC, VAH, and VAL for precise limit order placement, along with the current Market Trend.
How to Use
For Intraday (Day Trading):
Settings: Set Lookback to 100 - 300.
Strategy: Watch for price to open outside the Value Area. If price breaks back inside the Value Area, target the POC (Red Line).
For Macro (Monthly/Weekly Charts):
Settings: Set Lookback to 12 (1 Year) or 60 (5 Years).
Strategy: Identify multi-year structural support. When a monthly candle enters the Green Discount Zone of a 5-year profile, it is often a high-probability institutional entry point.
Trend Logic
The Dashboard indicates trend based on price location relative to value:
Strong Bullish: Price is accepted ABOVE the Value Area.
Strong Bearish: Price is accepted BELOW the Value Area.
Neutral / In VA: Price is chopping inside the Value Area.
Disclaimer
This is a "Rolling Profile." It calculates the profile based on the current lookback window relative to the latest bar. As new bars form, the lookback window shifts, and the profile updates to reflect the new dataset.
RSI Ensemble Confidence [CHE]RSI Ensemble Confidence — Measures RSI agreement across multiple lengths and price sources
Summary
This indicator does not just show you one RSI — it shows you how strongly dozens of different RSI variants agree with each other right now.
The Confidence line (0–100) is the core idea:
- High Confidence → almost all RSIs see the same thing → clean, reliable situation
- Low Confidence → the RSIs contradict each other → the market is messy, RSI signals are questionable
How it works (exactly as you wanted it described)
1. Multiple RSIs instead of just one
The indicator builds a true ensemble:
- 4 lengths (default 8, 14, 21, 34)
- 6 price sources (Close, Open, High, Low, HL2, OHLC4 – individually switchable)
→ When everything is enabled, up to 24 different RSIs are calculated on every single bar.
These 24 opinions form a real “vote” about the current market state.
2. Mean and dispersion
From all active RSIs it calculates:
- rsiMean → the average opinion of the entire ensemble (orange line)
- rsiStd → how far the individual RSIs deviate from each other
Small rsiStd = they all lie close together → strong agreement
Large rsiStd = they are all over the place → contradiction
3. Confidence (0–100)
The standard deviation is compared to the user parameter “Max expected StdDev” (default 20):
- rsiStd = 0 → Confidence ≈ 100
- rsiStd = maxStd → Confidence ≈ 0
- Everything in between is scaled linearly
If only one RSI is active, Confidence is automatically set to ~80 for practicality.
What you see on the chart
1. Classic reference RSI – blue line (Close, length 14) → your familiar benchmark
2. Ensemble mean – orange line → the true consensus RSI
±1 StdDev band (optional) → shows dispersion directly:
- narrow band = clean, consistent setup
- wide band = the RSIs disagree → caution
3. Confidence line (aqua, 0–100) → your quality meter for any RSI signal
4. StdDev histogram (optional, fuchsia columns) → raw dispersion if you prefer the unscaled value
5. Background coloring
- Greenish ≥ 80 → high agreement
- Orange 60–80 → medium
- Reddish < 40 → strong disagreement
- Transparent below that
6. Two built-in alerts
- High Confidence (crossover 80)
- Low Confidence (crossunder 40)
Why this indicator is practically useful
1. Perfect filter for all RSI strategies
Only trade overbought/oversold, divergences, or failures when Confidence ≥ 70. Skip or reduce size when Confidence < 40.
2. Protection against overinterpretation
You immediately see whether a “beautiful” RSI hook is confirmed by the other 23 variants — or whether it’s just one outlier fooling you.
3. Excellent regime detector
Long periods of high Confidence = clean trends or clear overbought/oversold phases
Constantly low Confidence = choppy, noisy market → RSI becomes almost useless
4. Turns gut feeling into numbers
We all sometimes think “this setup somehow doesn’t feel right”. Now you have the exact number that says why.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Smart Cloud by Ilker (Custom Matriks)A Proprietary Hybrid Trend System for All Major Financial Assets
This indicator, originally developed for the Matriks platform, is a highly effective hybrid trend identification system designed for day-to-day analysis across all major asset classes, including Stocks, Forex, Indices, and Cryptocurrencies. It combines the forward-looking principle of the Ichimoku Kinko Hyo Cloud with heavily smoothed Moving Averages (MAs) to create a clear, visually guided trading signal. (Daily Timeframe recommended for optimal results).
📊 Algorithmic Structure and Parameters
The "Smart Cloud" utilizes six primary user-adjustable parameters that govern its sensitivity and shape, moving away from standard Ichimoku settings to provide a robust, customized trend view:
P1, P2, P3 (60, 56, 248): These long-term settings define the core structure and width of the cloud, acting as the primary dynamic support and resistance zone. The significantly longer P3 (Lagging Period) ensures the cloud reflects strong, deep market cycles.
P4 (Displacement 26): Maintains the traditional Ichimoku principle of projecting the cloud 26 periods forward to provide a predictive view of future trend support/resistance.
P5 (MA50 - Blue) & P6 (MA10 - Purple): These are the two primary Moving Averages plotted inside the cloud. They serve as fast-response momentum lines:
P5 (MA50): Represents the middle-term trend average.
P6 (MA10): Represents the short-term market momentum.
📈 Core Trend and Signal Interpretation
The indicator provides powerful trend identification based on three key components:
The Cloud (Kumo):
Green Cloud (Bullish): Indicates the dominant trend is up, suggesting dynamic support for price action.
Red Cloud (Bearish): Indicates the dominant trend is down, suggesting dynamic resistance.
The thickness and slope of the cloud are key indicators of trend strength.
MA Crossover Signal (Blue/Purple):
Buy Signal: When the faster Purple MA (P6=10) crosses above the slower Blue MA (P5=50).
Sell Signal: When the faster Purple MA (P6=10) crosses below the slower Blue MA (P5=50).
Price Action & Confirmation:
The most powerful signals occur when a MA Crossover is confirmed by price breaking out of the cloud in the same direction.
Price above the cloud and MA crossover to the upside suggests a strong buy entry.
Disclaimer: This tool is intended for analysis and decision-making support. It is not financial advice. Always use stop-loss orders and manage your risk accordingly.
Guppy of SMA of RSIIn this script:
The rsiLengths input allows you to input a comma-separated list of RSI lengths for which you want to calculate the SMAs. For example, "30,60,90" will calculate SMAs for RSI with variable lengths .
The smaLength input determines the length of the EMA that will be applied to the RSI values.
The rsiValues variable calculates the RSI values for the selected lengths using the daily timeframe data.
The script then iterates through each RSI length, calculates the SMA of the RSI, and plots the EMA values on the chart with the specified color.
This script will help you visualize and analyze the SMAs of the RSI for different lengths on the price chart. You can customize the RSI lengths and EMA length according to your preferences.
Aspects of Mars-Saturn by BTThis script displays the most commonly used aspects between Mars and Saturn. It uses a +/-2 degree orb (deviation), meaning the script shows the dates when the calculated distance between Mars and Saturn is within a 2 degree deviation of a major aspect.
Most of the astrological applications uses 3 degree or more for orb however this will cause chart overload. So please keep in mind to consider a couple of dates before or after if you want to use bigger orb.
The script includes an option to plot only the start date of sequential aspect events to reduce visual clutter and improve chart clarity. It currently covers dates from 2020 to 2030, but more will be added soon.
Currently available aspects:
Conjunction - 0 Degree
Opposition - 180 Degree
Trine - 120 Degree
Square - 90 Degree
Sextile - 60 Degree
Inconjunction - 150 Degree
Semi-Sextile - 30 Degree
Semi-Square - 45 Degree
Sesquiquadrate - 135 Degree
Sector Performance (2x12 Grid, labeled)Sector Performance Dashboard that tracks short-term and multi-interval returns for 24 major U.S. market ETFs. It renders a clean, color-coded performance grid directly on the chart, making sector rotation and broad-market strength/weakness easy to read at a glance.
The dashboard covers t wo full rows of liquid U.S. sector and thematic ETFs, including:
Row 1 (Core Market + GICS sectors)
SPY, QQQ, IWM, XLF, XLE, XLRE, XLY, XLU, XLP, XLI, XLV, XLB
Row 2 (Extended industries / themes)
XLF, XBI, XHB, CLOU, XOP, IGV, XME, SOXX, DIA, KRE, XLK, VIX (VX1!)
Key features include:
Time-interval selector (1–60 min, 1D, 1W, 1M, 3M, 12M)
Automatic rate-of-return calculation with inside/outside-bar detection
Two-row, twelve-column grid with dynamic layout anchoring (top/middle/bottom + left/center/right)
Uniform white text for clarity, while inside/outside candles retain custom colors
Adaptive transparency rules (heavy/avg/light) based on magnitude of % change
Ticker label normalization (cleans up prefixes like “CBOE_DLY:”)
Reduced-Lag Chande Momentum Oscillator [BOSWaves]Reduced-Lag Chande Momentum Oscillator – Adaptive Momentum Geometry with Reduced-Latency Reversion Logic
Overview
The Reduced-Lag Chande Momentum Oscillator represents a sophisticated extension of the classical Chande Momentum Oscillator, preserving the foundational measurement of net directional pressure while addressing inherent limitations in lag, noise, and signal clarity. The traditional CMO provides reliable snapshots of upward versus downward force but reacts slowly to rapid market accelerations and can obscure meaningful momentum inflections with delayed readings. This iteration integrates a dual-stage reduced-lag filter, optional advanced smoothing, and acceleration-based analytics, producing a real-time, multi-dimensional representation of market momentum.
The design reframes classical momentum using a layered curvature and gradient structure - main, midline, and shadow - to show trajectory, velocity, and intensity in one view. Instead of the usual ±70/30 extremes, it uses ±50 as a statistically grounded threshold where one side of the market begins exerting true dominance. This captures structural imbalance more reliably, exposing exhaustion and actionable inflection without amplifying noise.
This visualization gives traders a continuous, responsive read on market structure, revealing not just direction but rate of change, acceleration alignment, and curvature behavior. The oscillator becomes a momentum map, expressing both probability and intensity behind directional shifts.
Where conventional oscillators mislabel short-lived swings as signals, the Reduced-Lag CMO separates baseline shifts from high-conviction transitions, enabling cleaner, more decisive signal interpretation.
Theoretical Foundation
The classical Chande Momentum Oscillator, created by Tushar Chande, calculates the normalized net difference between consecutive upward and downward price changes over a defined window, generating readings from –100 to +100. While effective for capturing basic directional pressure, the unmodified CMO suffers from signal latency and sensitivity to abrupt market swings, which can obscure actionable inflection points.
The Reduced-Lag CMO augments this foundation with three key mechanisms:
Reduced-Lag Filtering : A dual-EMA structure eliminates inertial lag, aligning the oscillator curve closely with real-time market momentum without producing overshoot artifacts.
Smoothing Architecture : Optional SMA, EMA, or WMA smoothing is applied post-filter, balancing noise reduction with trajectory fidelity. A multi-layer line system (shadow → midline → main) communicates depth, curvature, and gradient dynamics.
Acceleration Integration : First and second derivatives of the smoothed curve quantify velocity and acceleration, allowing the indicator to identify not only momentum flips but the force behind each shift, forming the basis for the strong-signal overlay.
The combination of these mechanisms produces an oscillator that respects the original CMO framework while delivering real-time, context-sensitive intelligence. The ±50 boundaries are selected as the statistically validated pressure zones where directional dominance exceeds neutral oscillation. Crosses and rejections at these boundaries are not arbitrary overbought/oversold events, but measurable imbalances with actionable significance.
How It Works
The Reduced-Lag CMO is constructed through a multi-stage process:
Momentum Estimation Core : Raw CMO values are calculated and then passed through a reduced-lag filter to remove delay, creating a curve that closely tracks instantaneous directional pressure.
Smoothing & Layered Representation : The filtered curve can be smoothed and split into three layers - shadow, midline, and main - giving visual depth, trajectory clarity, and curvature instead of a single-line oscillator.
Gradient-Based Pressure Mapping : Color gradients encode momentum strength and polarity. Green-yellow transitions highlight increasing upward dominance, while red-yellow transitions indicate weakening downward force.
Pressure-Zone Anchoring (±50) : The system defines statistically significant pressure zones at ±50. Moves beyond these levels reflect dominant directional control, and rejections inside the zone signal potential exhaustion.
Signal Generation : Momentum events are evaluated through velocity and acceleration. Standard signals appear as triangle markers indicating validated momentum flips. Strong signals appear as triangles with diamonds when acceleration confirms a high-conviction transition.
A cooldown rule spaces signals apart to reduce clutter and emphasize structurally meaningful events.
Interpretation
The Reduced-Lag CMO reframes momentum as a dynamic equilibrium between directional force and structural pressure:
Positive Momentum Phases : Curves above zero with green-yellow gradients indicate sustained upward pressure. Shallow retracements or midline tests denote controlled pullbacks.
Negative Momentum Phases : Curves below zero with red-yellow gradients show downward dominance. Rejections from –50 highlight potential exhaustion and reversal readiness.
Pressure-Zone Dynamics (±50) : Crosses beyond ±50 confirm dominant directional force. Meanwhile, rejections and rotations inside the zone signal structural fatigue.
Velocity & Acceleration Analysis : Rising momentum with decelerating velocity suggests fading force; acceleration alignment amplifies signal strength and forms the basis of strong signals.
Signal Architecture
The Reduced-Lag CMO produces a single event type with two intensities: a validated momentum inflection.
Standard Signals - Triangles:
Triggered by momentum flips confirmed by velocity.
Represent moderate-intensity directional changes.
Appear at zero-line crosses or ±50 rejections with aligned velocity.
Strong Signals Triangles + Diamonds:
Triggered when acceleration confirms the directional change.
Represent high-intensity, high-conviction shifts.
Rare by design; indicate robust momentum inflections.
Cooldown mechanics prevent repeated signals in short succession, emphasizing structural reliability over noise.
Strategy Integration
Trend Confirmation : Align zero-line flips with higher-timeframe directional bias.
Reversal Detection : Strong signals from ±50 zones highlight potential inflection points.
Volatility Assessment : Gradient transitions reveal strengthening or weakening momentum.
Pullback Timing : Multi-layer curvature identifies controlled retracements vs trend exhaustion.
Confluence Mapping : Pair with structure-based indicators to filter signals in context.
Technical Implementation Details
Core Engine : Classical CMO with Ehlers reduced-lag extension
Lag Reduction : Dual EMA filtering
Smoothing : Optional SMA/EMA/WMA post-filter
Multi-Layer Curve : Shadow, midline, main
Signal System : Two-tier momentum-acceleration framework
Pressure Zones : ±50 statistically validated thresholds
Cooldown Logic : Bar-indexed suppression
Gradient Mapping : Encodes magnitude and direction
Alerts : Standard and strong signals
Optimal Application Parameters
Timeframes:
1 - 5 min : Intraday momentum tracking
15 - 60 min : Trend rotations & volatility transitions
4H - Daily : Macro momentum exhaustion & re-accumulation mapping
Suggested Ranges:
CMO Length : 7 - 12
Reduced-Lag Length : 5 - 15
Smoothing : 10 - 20
Cooldown Bars : 5 - 15
Performance Characteristics
High Effectiveness:
Markets with directional pulses & clean pressure transitions
Trending phases with measurable pullbacks
Instruments with stable volatility cycles
Reduced Edge:
Choppy consolidations
Ultra-low volatility environments
Disclaimer
The Reduced-Lag Chande Momentum Oscillator is a professional-grade analytical tool. It is not predictive and carries no guaranteed profitability. Effectiveness depends on asset class, volatility regime, parameter selection, and disciplined execution. Any suggested application timeframes or recommended ranges are guidance only - they are not universally optimal and will not deliver consistent accuracy on every asset or market condition. BOSWaves recommends using it in conjunction with structure, liquidity, and momentum context.






















