Mean Reversion Mirror📌 Mean Reversion Mirror — Multi‑Level Mean Reversion Strategy
Mean Reversion Mirror is an advanced modular mean‑reversion strategy built around dynamic and static deviation levels from a moving average.
The strategy automatically scales into positions across six levels (LONG and SHORT), using both dynamic MA‑based deviation levels and static levels that lock in after entry.
🔍 Core Concept
Price tends to revert toward its mean.
This strategy exploits that behavior by opening an initial base entry at the first deviation and adding positions as the imbalance grows.
Each additional level improves the average entry price and increases the probability of exiting profitably.
⚙️ Key Features
📈 Six Dynamic Deviation Levels
Levels are calculated as percentage deviations from a selected MA (WMA, SMA, EMA, RMA, HMA).
This makes the strategy adaptive to volatility and market structure.
📉 Six Static Levels
Once triggered, each level becomes fixed and no longer changes.
This creates a stable averaging grid independent of future MA movement.
🎯 Flexible Take‑Profit System
fixed take‑profit
or trailing take‑profit with dynamic offset
🖐 Manual Entry Support
You can manually set a price for LONG or SHORT, and the strategy will execute the base entry automatically.
📊 Rich Visualization
dynamic deviation levels
static levels
dotted “last chance” levels
average position price
take‑profit line
compact mini‑table with key position metrics
📦 Two Operating Modes
STK Mode — fixed unit size
Classic Mode — quantity calculated from USD value
🧠 Entry Logic
The strategy uses sequences B1–B6 (LONG) and S1–S6 (SHORT):
B1/S1 — base entry
B2–B6 / S2–S6 — averaging entries as deviation increases
L6/S6 — “last chance” level with its own size
Each level activates only after the previous one.
📌 Who This Strategy Is For
mean‑reversion traders
grid/averaging system users
pullback‑based investors
traders who want clear visual levels
users who prefer manual control over entry points
⚠️ Disclaimer
This strategy is not financial advice.
Always backtest and adjust parameters according to your risk tolerance before using it in live markets.
"entry"に関するスクリプトを検索
ORB - BO-RT-ENThis script is designed for the Opening Range Breakout (ORB) trader who seeks high-probability entries through price action confirmation. Unlike standard breakout tools that trigger on the first touch, this indicator requires a three-step validation process: Breakout, Retest, and Momentum Confirmation.
High-Level Summary
The script identifies the high and low of the first 5 minutes of the trading session (adjustable via inputs). It then monitors price action to find a confirmed breakout outside this range. To filter out "fakeouts," the script requires the price to return and touch the broken level (the retest) before signaling an entry. If at any point the price closes back inside the opening range before the setup is complete, the trade is invalidated and the sequence resets.
Core Features
Sequential Signal Logic: Tracks the BO → RT → ENTRY process across distinct candles to prevent early entries.
Momentum Confirmation: Entry arrows only trigger after a user-defined candle delay and a close in the trend direction.
Visual Clarity: Plots high-visibility 5-minute range lines that persist until the market close.
Advanced Invalidation: Automatically cancels setups if a "stop-run" or fakeout closes price back within the range.
Scanner Ready: Includes specific alertcondition calls for Breakouts, Retests, and Entries, making it compatible with the TradingView Stock Screener.
How to Use the Script (Steps to Play)
1. Setup the Timeframe
Apply the indicator to a 1-minute chart. While the opening range is calculated based on the first 5 minutes, the entry logic requires the granularity of the 1-minute timeframe to detect precise retests.
2. Define the Range
By default, the script calculates the range from 09:30 to 09:35 EST. If you trade a different market (e.g., London Open or Crypto), adjust the "Opening Range Period" in the settings.
3. Monitor for the Breakout (BO)
Wait for a 1-minute candle to close above the High or below the Low. A label marked "BO" will appear on your chart.
4. The Retest (RT)
After the breakout, look for the price to "wick" or touch the breakout line. A triangle marked "RT" will appear.
Note: If the price closes back inside the range during this phase, the labels will disappear, signaling an invalid setup.
5. Execution (ENTRY)
Once the retest is complete, wait for the "ENTRY" arrow. This triggers when:
The user-defined candle delay (default: 1 bar) has passed since the retest.
The candle closes in the direction of the breakout (Green for Long / Red for Short).
6. Exit Strategy
Following the original strategy parameters, place your Stop Loss at the opposite end of the 5-minute opening range and set your Take Profit at a 2.0 Risk-to-Reward (2R) ratio from your entry price.
Larry Williams Qualified Trend Break Signals [tradeviZion]Larry Williams Qualified Trend Break Signals - Description
📖 Introduction
Welcome to the Larry Williams Qualified Trend Break Signals indicator. This description explains how the indicator works, its settings, and how to use it.
This indicator demonstrates Larry Williams' Qualified Trend Line Break technique - his preferred method for timing precise entries on daily charts when you already have a confirmed market setup.
---
🎯 About This Script
This indicator implements the Qualified Trend Line Break system - an entry technique that qualifies trend line breaks for better timing.
Important: This is NOT a signal generator. It's an entry timing tool for traders who already have a market setup and confirmation. Use it only after establishing weekly bias and daily confirmation.
Why We Made This Indicator:
This indicator demonstrates Larry Williams' favorite entry technique for daily timeframe trading. It's designed to be used as part of his complete methodology:
How To Use It Properly:
First, establish your setup: Check weekly chart for overall market bias (bullish/bearish)
Then confirm on daily: Look for confirmation signals on daily timeframe
Finally, use trend breaks: Enter trades only when trend breaks align with your setup direction
Important Warning: This is NOT a standalone buy/sell signal indicator. Using trend breaks without proper setup and confirmation will likely produce poor results. It's a timing tool for entries, not a signal generator.
---
About The Qualification Rules
The system improves on qualification methodology with these key changes:
For BUY signals (breaking above downtrend lines):
Break is usually bad if previous bar closed higher
But can still be good if:
Previous bar was inside the prior bar AND that prior bar closed lower
Price gaps above trend line and moves up at least one tick
Previous bar closed below its own opening price
For SELL signals (breaking below uptrend lines):
Break is usually bad if previous bar closed lower
But can still be good if:
Previous bar was inside the prior bar AND that prior bar closed higher
Price gaps below trend line and moves down at least one tick
Previous bar closed above its own opening price
---
📐 How The Qualification System Works
The trend break system is based on qualification methodology as developed by Larry Williams . It solves the problem where trend line breaks often fail and price goes back.
Trend Line Setup:
For BUY signals: Connect the two most recent declining swing highs to make a downtrend line
For SELL signals: Connect the two most recent rising swing lows to make an uptrend line
Inside Bar Rule:
A key principle: Trend breaks that occur on inside bars are completely ignored. The system only evaluates breaks that occur on regular bars, making signals more reliable.
How It Works In The Code
The indicator follows these steps:
Finds swing points: Identifies highs and lows in the price action
Draws trend lines: Connects 2 recent swing points to make trend lines
Checks inside bars: Ignores breaks that happen on inside bars
Qualifies signals: Uses the rules to check if breaks are good or bad
Shows signals: Only displays qualified BUY/SELL signals
Optional feature: Can show disqualified signals
⚙️ Settings
The indicator has 3 groups of settings to customize how it works.
---
📊 Signal Settings
Show Signals
Default: ON
ON: Displays green/red labels when trend breaks qualify for entry
OFF: Hides entry labels (trend lines still show for analysis)
Remember: These are entry TIMING signals, not standalone buy/sell signals
Signal Selection
Default: Both | Options: Buy Only, Sell Only, Both
Buy Only: Shows only BUY signals
Sell Only: Shows only SELL signals
Both: Shows both BUY and SELL signals
Break Validation
Default: Close | Options: Break Level, Close
Break Level: Signal when price touches the trend line (more signals)
Close: Signal when bar closes beyond trend line (fewer signals)
Tip: Try "Close" first for better signals
Show Disqualified
Default: OFF | Options: ON/OFF
What it does: Shows bad breaks
ON: Shows gray ❌ labels with explanations
OFF: Hides bad signals
👁️ Display Settings
Show Trend Lines
Default: ON
What it does: Shows trend lines on the chart
Looks like: Dashed blue lines connecting swing points
Goes to: Extends into future bars
Why: Shows where breakouts are expected
Show Swing Points
Default: ON
What it does: Marks highs/lows used for trend lines
Looks like: Shape markers at swing locations
Shows: How trend lines are constructed
Marker Style
Default: Circle | Options: Circle, Triangle, Square, Diamond, Cross
What it does: Choose shape for swing markers
Options: Circle, Triangle, Square, Diamond, Cross
Best choice: Circle is clear without being busy
Marker Size
Default: 3 | Range: 1-10
What it does: Controls marker size
Range: 1 (tiny) to 10 (large)
Show Inside Bars
Default: ON
What it does: Highlights inside bars
Looks like: Light orange background on inside bars
Note: These bars are ignored for break qualification
Important: Inside bars are ignored for break qualification
🎨 Colors
Signal Colors
Buy Signal (Default: Green) - Color for good BUY signals
Sell Signal (Default: Red) - Color for good SELL signals
Disqualified (Default: Gray) - Color for bad signals
Display Colors
Trend Line (Default: Blue) - Color for trend lines and markers
Inside Bar (Default: Light Orange) - Background for inside bars
💡 How To Use It In Larry Williams Methodology
Step 1 - Weekly Setup: Identify market bias on weekly chart (clear bullish/bearish trend)
Step 2 - Daily Confirmation: Find confirmation signals on daily timeframe
Step 3 - Trend Break Entry: Use qualified trend breaks only in setup direction
Important: Never enter based on trend breaks alone - always require setup + confirmation first
⚠️ Important Notice
This indicator implements Larry Williams' trend break entry technique. It should NOT be used as standalone buy/sell signals. Only use trend breaks for entry timing after you have established a proper market setup and confirmation. Poor results will occur if using signals without the complete Larry Williams methodology.
Credits: Based on Larry Williams' trading approach and qualification methodology. Swing detection logic adapted from "Larry Williams: Market Structure" by Smollet.
Trinity Tactical: BTC Liquidity Snatch//@version=6
indicator("Trinity Tactical: BTC Liquidity Snatch", overlay=true)
// --- INPUTS ---
liq_level = input.float(87156.0, "Liquidity Low to Sweep", step=10)
fvg_threshold = input.float(0.5, "FVG Min Size (%)", step=0.1)
// --- LIQUIDITY SWEEP LOGIC ---
is_swept = low < liq_level and close > liq_level
plotshape(is_swept, title="Liquidity Sweep", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="SWEEP")
// --- FVG DETECTION (FOR ENTRY) ---
// Bullish FVG: Low of bar > High of bar
is_bullish_fvg = low > high and (low - high ) > (close * fvg_threshold / 100)
// Visualizing the Entry FVG Zone
var box fvg_box = na
if is_bullish_fvg and barstate.isconfirmed
fvg_box := box.new(bar_index , low , bar_index, high , bgcolor=color.new(color.green, 80), border_color=color.green)
// --- LEVELS ---
hline(87156, "8H Liquidity Low", color=color.red, linestyle=hline.style_dashed)
hline(92500, "TP1: Supply", color=color.orange, linestyle=hline.style_dotted)
hline(97000, "TP2: Range High", color=color.green, linestyle=hline.style_dotted)
// --- ALERTS ---
alertcondition(is_swept, title="BTC Sweep Alert", message="Liquidity Swept! Look for FVG Entry.")
alertcondition(is_bullish_fvg, title="BTC FVG Entry", message="Bullish Displacement Detected. Check 15m Structure.")
Adaptive Trend & SL SystemAdaptive Trend & Risk System
1. The Problem: "Naked" Signals
Most trend indicators on TradingView have a fatal flaw: they tell you when to enter, but they never tell you when to leave . They give you a "Buy" signal, but leave you guessing about where to place your Stop Loss or where to take profit.
A signal without a risk management plan is not a strategy—it's a gamble.
2. The Solution: A Complete Trading System
The Adaptive Trend & Risk System (ATS) is designed to be a complete "Turnkey" trading suite. It doesn't just generate signals; it manages the entire lifecycle of the trade.
It combines three distinct market concepts into one clean overlay:
Trend Detection: Uses a Hull Moving Average (HMA) baseline to determine the immediate market flow.
Signal Filtering: Uses the Average Directional Index (ADX) to filter out "fakeouts" and weak trends.
Dynamic Risk Management: Automatically calculates Volatility-Based (ATR) Stop Losses and Risk:Reward targets the moment a signal is generated.
3. How It Works (The Math)
The script operates on a strict "State Machine" logic. It remembers the state of your trade bar-by-bar.
The Entry (Strong Signals)
A "STRONG" signal is only generated when two conditions are met:
Price crosses the Trend Baseline.
ADX (Trend Strength) is above the threshold (Default: 25).
Note: Weak signals (small triangles) are shown when price crosses the baseline but ADX is low. These are risky and should be treated with caution.
The Stop Loss (Red/Green Crosses ++++)
Upon a strong entry, the script calculates a Stop Loss based on the Average True Range (ATR).
Long SL: Low - (ATR * Multiplier)
Short SL: High + (ATR * Multiplier)
The "Hard" Stop: Unlike trailing stops that move every bar, this SL is fixed to the volatility at the moment of entry. It only disappears if price hits it (marked by an Orange X ) or if a reversal signal occurs.
The Targets (Blue/Purple Dots oooo)
The script projects two Take Profit levels based on your risk:
TP1 (Blue Dots): 1.5x your Risk.
TP2 (Purple Dots): 3.0x your Risk.
Smart Visuals: If price hits TP1, the dots disappear to keep your chart clean, letting you focus on TP2.
4. How to Use This Indicator
Step 1: Wait for a "STRONG" Label. Do not trade every crossover. Wait for the large triangle with the text label.
Step 2: Place your Entry at the close of the signal bar.
Step 3: Place your Physical Stop Loss exactly at the level of the Green/Red Crosses .
Step 4: Place Limit Orders at the Blue Dots (TP1) and Purple Dots (TP2) .
Management:
If the Orange X appears, your Stop Loss was hit. Exit the trade immediately.
If a Weak Signal (small triangle) appears against your trade, consider tightening your stops, as momentum may be fading.
5. Settings Guide
Trend Baseline Length: Controls the sensitivity of the trend filter. Higher = Fewer signals, longer trends.
ATR Length: Controls how "volatile" the Stop Loss calculation is.
Stop Loss Multiplier: The "breathing room" for your trade. 2.0 is standard. 3.0 is for volatile assets like Crypto.
TP Risk:Reward Ratios: Fully customizable. Default is 1.5R and 3.0R.
Risk Warning & Disclaimer
Trading financial assets involves a high level of risk and may not be suitable for all investors. The content, indicators, and signals provided by this script are for educational and informational purposes only and do not constitute financial, investment, or trading advice.
The "Adaptive Trend & Risk System" is a technical analysis tool based on historical price data and mathematical formulas (ATR, ADX, Hull MA). Past performance is not indicative of future results. Market conditions can change rapidly, and no indicator can guarantee profits or prevent losses.
By using this script, you acknowledge that:
You are solely responsible for your own trading decisions and risk management.
You should never trade with money you cannot afford to lose.
The author of this script assumes no liability for any financial losses or damages incurred from the use of this tool.
Always consult with a qualified financial advisor before making investment decisions.
Gamma of Gamma - AnticipationGamma of Gamma — Anticipation Engine
What if you could detect market inflections before they become obvious? Not react to momentum — anticipate the momentum itself.
"Gamma here refers to mathematical acceleration (2nd derivative), NOT options Gamma"
Gamma of Gamma (GoG) operates one abstraction layer above conventional indicators. While RSI tells you what momentum did , GoG tells you what momentum is about to do . This is the difference between chasing price and positioning ahead of it.
Core Innovation: Traditional indicators measure first-order effects (price change) or second-order effects (momentum/acceleration). This system measures the third derivative — the rate of change of acceleration itself. When Gamma-of-Gamma reaches extremes, it signals that pressure dynamics are about to flip — often 2-5 bars before price visibly reacts.
Target Users: Discretionary traders, scalpers, and swing traders who want early positioning signals with statistical rigor. Effective on stocks, crypto, forex, and futures with meaningful volume data.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY THIRD-DERIVATIVE ANALYSIS?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The Hierarchy of Market Information
Most traders operate at the wrong level of abstraction:
• Price → What happened (lagging)
• Momentum → How fast it happened (still lagging)
• Gamma (2nd Derivative) → How momentum is changing (coincident)
• Gamma of Gamma (3rd Derivative) → How FAST that change is changing ( leading )
The third derivative captures inflection acceleration — the mathematical signature of regime transition. When GoG reaches extreme values, the market is telegraphing that current pressure dynamics are unsustainable.
Why This Beats RSI
RSI measures momentum magnitude. GoG measures momentum trajectory .
Consider this scenario: RSI reads 70 (overbought). Is the move exhausted or just getting started? RSI cannot tell you. GoG can — because it measures whether buying pressure is accelerating into the high RSI reading (continuation likely) or decelerating despite high RSI (reversal imminent).
RSI answers: "How strong was the move?"
GoG answers: "Is the move strengthening or weakening right now ?"
The first is historical. The second is predictive.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MATHEMATICAL FOUNDATION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Layer 1: Cumulative Volume Delta (CVD)
The foundation is order flow approximation:
• Up bar (close > prior close): Volume classified as buying pressure
• Down bar (close < prior close): Volume classified as selling pressure
• CVD = Running sum of signed volume
Interpretation: Rising CVD indicates net aggressive buying. Falling CVD indicates net aggressive selling. CVD divergence from price often precedes reversals.
Layer 2: Gamma (Second Derivative)
Gamma measures acceleration of order flow:
Formula: Gamma = CVD - 2×CVD + CVD
This is the discrete second derivative — the rate of change of the rate of change. When Gamma spikes positive, buying pressure is accelerating . When Gamma spikes negative, selling pressure is accelerating.
Layer 3: Gamma of Gamma (Third Derivative)
GoG measures jerk — the acceleration of acceleration:
Formula: GoG = Gamma - 2×Gamma + Gamma
Critical insight: Extreme GoG readings indicate that current pressure dynamics are reaching an inflection point. The system is "overextended" in its current trajectory and will likely revert or reverse.
Layer 4: Z-Score Normalization
Raw GoG values are normalized against their 50-period distribution:
Formula: GoG_Z = (GoG - Mean_50) / StdDev_50
Benefit: Z-scores are regime-adaptive. A "2.0" reading always means "2 standard deviations from normal" regardless of whether you're trading a penny stock or ES futures. This makes thresholds consistent across instruments and timeframes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIGNAL GENERATION LOGIC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Long Signal (Bullish Anticipation)
Triggers when:
• GoG Z-score < -Threshold (default -2.0)
• Volume > Average Volume × Minimum Multiple (default 1.2×)
Interpretation: Selling pressure acceleration has reached an extreme negative reading. The selling is "exhausting itself" — acceleration is peaking and will soon decelerate. Buyers are likely to step in.
Short Signal (Bearish Anticipation)
Triggers when:
• GoG Z-score > +Threshold (default +2.0)
• Volume > Average Volume × Minimum Multiple (default 1.2×)
Interpretation: Buying pressure acceleration has reached an extreme positive reading. The buying is "exhausting itself" — often occurs at blow-off tops, failed breakouts, or momentum climaxes.
Why Volume Confirmation?
Gamma acceleration in thin liquidity is meaningless noise. The volume filter ensures signals occur only when meaningful participation backs the pressure dynamics. This dramatically reduces false signals during low-activity periods.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFIDENCE ENGINE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Not all signals are equal. The Confidence Engine quantifies signal strength:
Confidence Calculation:
Confidence = 50 + ((|Z-Score| - Threshold) / Threshold) × 100
Capped at 100%
Visual Representation:
• Small orb = Low confidence (50-65%)
• Normal orb = Medium confidence (65-80%)
• Large orb = High confidence (80-100%)
Orb transparency also adjusts — high-confidence signals appear brighter and more prominent. This creates intuitive visual hierarchy where stronger signals demand more attention.
Practical Use:
• High confidence (>80%): Consider larger position size, tighter stops
• Medium confidence (50-80%): Standard position size
• Low confidence (<50%): Reduced size or wait for confirmation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
INTEGRATED BACKTESTER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Every signal system needs accountability. The onboard backtester provides real-time performance tracking:
Core Metrics:
• Total Trades
• Win Rate
• Profit Factor
• Expectancy (average P&L per trade)
• Net P&L
• Max Drawdown
• Average Win / Average Loss
Methodology:
• Positions held for configurable bar count (default 10 bars)
• Forces objective evaluation independent of discretionary exits
• Updates in real-time as new trades complete
Optimizer Mode:
Enable for parameter tuning research:
• Stability Score (0-100 points): Composite evaluation of parameter robustness
• Trade Density : Signals per 1000 bars — monitors over/under-trading
• Parameter Display : Current settings for documentation
• Robustness Rating : ROBUST / STABLE / FRAGILE / OVERFIT
Stability Scoring Breakdown:
• Win Rate ≥55%: +25 points | ≥50%: +15 points | ≥45%: +5 points
• Expectancy >0.5%: +25 points | >0.1%: +15 points | >0%: +5 points
• Total Trades ≥30: +25 points | ≥20: +15 points | ≥10: +5 points
• Profit Factor ≥1.5: +25 points | ≥1.2: +15 points | ≥1.0: +5 points
Target: 60+ points indicates stable parameters. Below 40 suggests overfitting risk.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CHART EXECUTION SIGNALS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Unique feature: Entry and exit markers display directly on the price chart via force_overlay, even though the indicator runs in a separate pane.
Visual Markers:
• ▲ Green Triangle (below bar): Long entry at exact price level
• ▼ Red Triangle (above bar): Short entry at exact price level
• ✕ Gold X-Cross : Position exit after hold period
Benefit: Immediate visual correlation between GoG signals and price action. Review historical trades without switching between panes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DUAL DASHBOARD SYSTEM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Main Dashboard — Real-Time State
Displays:
• Current GoG regime (EXTREME HIGH / EXTREME LOW / NEUTRAL)
• GoG Z-Score (numerical)
• Raw GoG value
• Gamma value
• CVD (Cumulative Volume Delta)
• Volume status (Active/Low with ratio)
• Signal state (Scanning / Long Signal / Short Signal / In Position)
• Confidence meter with visual bar
• Entry price when in position
Backtest Dashboard — Performance Metrics
Displays all backtester metrics in compact format. Switches to Optimizer view when Optimizer Mode enabled.
Both dashboards feature:
• Configurable position (6 locations including Middle Left/Right)
• Adjustable text size (Tiny/Small/Normal/Large)
• Transparency control for visual integration
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PARAMETER GUIDE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Calculation Settings
• GoG Extreme Threshold (default 2.0): Z-score level for signal generation. Higher = fewer but stronger signals. Range: 0.5-5.0
• Gamma Smoothing (default 3): SMA period for Gamma. Lower = more responsive, more noise. Higher = smoother, more lag. Range: 1-20
• GoG Smoothing (default 5): SMA period for GoG. Filters micro-spikes while preserving structural inflections. Range: 1-20
• Min Volume Multiple (default 1.2): Volume must exceed this multiple of 20-period average. Ensures signals have participation backing. Range: 0.5-3.0
Backtester Settings
• Backtest Hold Bars (default 10): Forced holding period for backtester evaluation. Adjust based on timeframe and trading style.
• Parameter Optimizer Mode : Enables extended metrics for tuning research.
Tuning by Timeframe
Scalping (1-5 min):
Threshold: 1.5-2.0 | Gamma Smooth: 2-3 | GoG Smooth: 3-4 | Hold: 5-8 bars
Day Trading (15-60 min):
Threshold: 2.0-2.5 | Gamma Smooth: 3-5 | GoG Smooth: 5-7 | Hold: 8-12 bars
Swing Trading (4H-Daily):
Threshold: 2.5-3.0 | Gamma Smooth: 5-7 | GoG Smooth: 7-10 | Hold: 10-15 bars
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE: PRACTICAL WORKFLOW
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 1: Identify Regime
Watch the GoG Z-score line. Most of the time it oscillates within the neutral zone (between thresholds). This is "scanning" mode — no actionable signal.
Step 2: Wait for Extreme
When Z-score crosses threshold AND volume confirms, a signal fires. The orb appears in the indicator pane; the triangle appears on price chart.
Step 3: Assess Confidence
Check orb size and dashboard confidence reading:
• Large bright orb + 80%+ confidence = High conviction setup
• Small faint orb + <60% confidence = Requires additional confirmation
Step 4: Execute with Context
GoG signals anticipate — they don't confirm. Use price structure (support/resistance), higher timeframe trend, or other confirmation before entry.
Step 5: Manage Position
Exit markers show backtester exits. For live trading, consider:
• Time-based exit (signal's hold period)
• Opposite signal exit
• Fixed R:R targets
Step 6: Review Performance
Check Backtest Dashboard regularly. If Win Rate drops below 45% or Expectancy goes negative, reassess parameters or market conditions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT THIS INDICATOR IS — AND ISN'T
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This Indicator IS:
✅ State-transition detector (balance → imbalance)
✅ Early warning system for momentum shifts
✅ Anticipation tool for pre-positioning
✅ Statistical framework with built-in accountability
This Indicator IS NOT:
❌ Mechanical buy/sell system (requires discretion)
❌ Trend-following indicator
❌ Reversal-only indicator
❌ Replacement for risk management
Best Use Cases:
• Detecting early reversals before obvious confirmation
• Anticipating breakouts during volatility compression
• Timing pullback entries in established trends
• Identifying exhaustion at momentum climaxes
Challenging Conditions:
• Extremely low volume environments
• News-driven gaps (no order flow to measure)
• Instruments with unreliable volume data
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ORIGINALITY STATEMENT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Innovation 1: Third-Derivative Order Flow Analysis
While first and second derivatives are common, applying third-derivative (jerk) analysis to cumulative volume delta is novel. This captures inflection points that lower-order analysis misses entirely.
Innovation 2: Z-Score Adaptive Thresholds
Rather than fixed thresholds that require per-instrument tuning, z-score normalization creates self-adapting signal levels that work consistently across any liquid instrument.
Innovation 3: Confidence-Weighted Visual System
Dynamic orb sizing and transparency based on signal strength provides intuitive visual hierarchy. Stronger signals literally appear larger and brighter.
Innovation 4: Integrated Accountability
Built-in backtester with optimizer mode enables parameter validation directly on chart. No external tools or spreadsheets required.
Innovation 5: Dual-Pane Execution Visualization
Force-overlay chart signals bridge the gap between indicator pane and price action, enabling immediate visual trade review.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LIMITATIONS & DISCLAIMERS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Technical Limitations
• Volume classification uses bar direction (close vs prior close), not tick-level aggressor data. Precision loss estimated 10-15% vs institutional-grade data.
• CVD approximation assumes volume follows price direction. Works well in trending conditions; less precise in choppy markets.
• Backtester uses fixed hold period, not optimal exit logic. Real performance may vary with proper trade management.
Market Limitations
• Requires meaningful volume data. Avoid instruments with reported volume issues.
• Signals may cluster during high-volatility events. Not every signal should be traded.
• Anticipation signals appear early by design. Patience required — price may continue against signal briefly before reversing.
Risk Disclosure
• Trading involves risk of loss. Past performance does not guarantee future results.
• This indicator provides analysis tools, not financial advice.
• Always use proper position sizing and risk management.
• Backtest results are hypothetical and do not include slippage, commissions, or fees.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RECOMMENDED SETTINGS BY MARKET
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Crypto (BTC, ETH, SOL)
Threshold: 1.8-2.2 | Gamma: 3 | GoG: 5 | Volume: 1.3x | TF: 15min-4H
Notes: Higher volatility produces more signals. Consider higher threshold to filter.
Forex Majors (EURUSD, GBPUSD)
Threshold: 2.0-2.5 | Gamma: 4 | GoG: 6 | Volume: 1.2x | TF: 5min-1H
Notes: Lower volatility requires patience. Volume proxy via tick volume works adequately.
Stocks (Large Cap)
Threshold: 2.0-2.5 | Gamma: 3-4 | GoG: 5-6 | Volume: 1.2x | TF: 15min-Daily
Notes: Real volume data provides cleanest signals. Watch for opening/closing auction distortions.
Futures (ES, NQ, CL)
Threshold: 2.0-2.3 | Gamma: 3 | GoG: 5 | Volume: 1.2x | TF: 5min-1H
Notes: Excellent volume data. Session boundaries may produce false signals — consider RTH only.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONCLUSION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gamma of Gamma represents a fundamental shift in signal philosophy: from reacting to momentum to anticipating momentum.
By operating at the third derivative of order flow, this system detects the mathematical signatures of regime transition — the moments when current pressure dynamics become unsustainable and reversal becomes probable.
This is not another oscillator telling you what already happened. This is an anticipation engine positioning you for what's about to happen.
Stop chasing. Start anticipating.
RSI tells you where momentum was. GoG tells you where it's going.
Taking you to school. - Dskyz , Trade with probability. Trade with anticipation. Trade with GoG
Gold Profit Target SystemGOLD PROFIT TARGET SYSTEM
Track Real Profits, Exit With Confidence
Best on Daily or Weekly - copy and mod as you see fit. Have fun!
WHAT THIS INDICATOR DOES:
This indicator tracks your gold position from entry and shows color-coded profit targets as the price rises. Instead of guessing when to exit, you see exact profit levels in real-time: 1%, 2%, 3%, 4%, 5%, 10%, 15%, 20%, 25%, and 25%+.
Simple concept: BUY on the signal, SELL at YOUR chosen profit level.
HOW IT WORKS - 3 SIMPLE STEPS:
STEP 1: Wait for BUY Signal
• Green triangle (▲) appears below the composite line
• Triggered when inverse assets (DXY, rates, etc.) show strong correlation and are falling
• Entry price is automatically recorded
• Position tracking begins
STEP 2: Watch Profit Targets Appear
• As gold rises, color-coded symbols appear above the composite line
• Each symbol represents a profit milestone
• The info table shows your current profit
• You decide when to exit based on YOUR target
STEP 3: Exit at Your Chosen Level
• Conservative? Exit at 5-10%
• Moderate? Exit at 10-15%
• Aggressive? Hold for 20%+
• The indicator just shows the levels - YOU make the call
THE COMPOSITE LINE - WHAT IT MEANS:
The main line is a weighted composite of inverse-correlated assets:
• DXY (US Dollar Index)
• Real Interest Rates (10Y TIPS)
• US 10-Year Treasury Yield
• US 2-Year Treasury Yield
• Bitcoin (optional)
• Copper (optional)
Line Position:
• Below -30 (Bright Green): Very strong inverse correlation - excellent BUY conditions
• Below 0 (Green): Inverse correlation present - moderate BUY conditions
• Above 0 (Red): Inverse assets rising - neutral to bearish
• Above 30 (Bright Red): Strong inverse rally - bearish for gold
What Causes BUY Signals:
When the composite line is negative (inverse assets falling) AND shows strong correlation (>0.3), this suggests gold is likely to rise. The indicator records your entry and begins tracking profits.
COLOR-CODED PROFIT TARGETS:
EARLY PROFITS (Green Circles):
• 1% - Very Light Green (#c8e6c9) - First confirmation
• 2% - Light Green (#a5d6a7) - Building profit
• 3% - Green (#81c784) - Good profit
• 4% - Medium Green (#66bb6a) - Strong profit
• 5% - Dark Green (#4caf50) - Solid profit!
EXCELLENT PROFIT (Yellow Diamond):
• 10% - Yellow (#ffd54f) - Double digits, excellent trade!
OUTSTANDING PROFIT (Orange Diamonds):
• 15% - Orange (#ffb74d) - Exceptional profit, consider partial exit
EXCEPTIONAL PROFIT (Red Diamonds):
• 20% - Light Red (#ff8a65) - Rare territory, strong exit consideration
• 25% - Red (#f44336) - Extraordinary profit, very rare!
PEAK PROFIT (Purple Star):
• 25%+ - Purple (#9c27b0) - Once in a blue moon! The home run trade!
STOP LOSS (Red X):
• Default -5% - Protection against losses
• Position auto-resets if stop is hit
THE PROFIT BAR (Histogram):
Below the composite line, you'll see a colored histogram when in position:
Bar Color = Your Current Profit Tier
• Light green bar = 1-2% profit
• Green bar = 3-5% profit
• Yellow bar = 10% profit
• Orange bar = 15% profit
• Red bar = 20-25% profit
• Purple bar = 25%+ profit
• Red negative bar = Currently at a loss
Bar Height = Current Profit %
The taller the bar, the larger your profit. Negative bars extend downward when you're at a loss.
THE INFORMATION TABLE:
The table (top-right by default) shows everything at a glance:
Position: ✓ IN (green) or ✗ OUT (gray)
Shows whether you're currently holding a position
Entry Price: Your recorded buy price
Example: 2,100.50
Current Price: Gold's current price
Example: 2,142.75
Current P/L: YOUR PROFIT %
This is the most important metric - shows exactly how much you're up (or down)
Color matches your current profit tier
Example: +2.01% in light green
Profit Tier: Current milestone reached
Shows which profit level you've hit: "1%", "2%", "5%", "10%", etc.
Next Target: The next profit level to watch
Tells you what milestone is coming up next
Bars Held: How long you've been in the trade
Helps track holding time
Composite: Current correlation strength
Shows the underlying composite correlation value
REFERENCE LINES:
Zero Line (Gray):
The center line. Above = bearish for gold, Below = bullish for gold
Strong Bull Line (Green dashed at -30):
When composite crosses below -30, very strong BUY conditions
Strong Bear Line (Red dashed at +30):
When composite crosses above +30, strong bearish conditions
BACKGROUND SHADING:
Very Light Green Background:
You're in profit (position open and above entry price)
Very Light Red Background:
You're at a loss (position open and below entry price)
No Background:
No position currently open
SYMBOLS ON CHART:
▲ Green Triangle Below Line: BUY SIGNAL
Enter long position here. Entry price recorded.
● Small Green Circles Above Line: 1-5% Profits
Early profit targets. Light green to dark green progression.
◆ Diamonds Above Line: 10-25% Profits
Major profit milestones. Yellow → Orange → Red progression.
★ Purple Star Above Line: 25%+ Profit
The holy grail! Peak profit achieved.
✖ Red X Below Line: STOP LOSS HIT
Trade went against you. Position resets (if auto-reset enabled).
PROFIT-TAKING STRATEGIES:
Strategy 1: Fixed Target (Simple)
Pick one target (e.g., 10%) and always exit there.
Best for: Beginners, disciplined traders
Strategy 2: Scaled Exit (Advanced)
Exit in portions:
• 5% profit → Sell 25%
• 10% profit → Sell 25% (50% total out)
• 15% profit → Sell 25% (75% total out)
• 20%+ profit → Let final 25% ride
Best for: Risk management, maximizing upside
Strategy 3: Trailing Stop
• Hit 10%? Set stop at 5%
• Hit 15%? Set stop at 10%
• Lock in profits while letting winners run
Best for: Trend followers, bull markets
Strategy 4: Adaptive
• Strong uptrend → wait for 15-20%
• Choppy market → exit at 5-10%
• Weakening trend → exit at any profit
Best for: Experienced traders
SETTINGS YOU CAN CUSTOMIZE:
Profit Target Levels:
Change any profit % to match your strategy
• Conservative: Lower targets (0.5%, 1%, 2%, 3%, 5%)
• Aggressive: Higher targets (2%, 5%, 10%, 20%, 30%)
Assets to Include:
• Enable/disable Bitcoin
• Enable/disable Copper
• Toggle which inverse assets to track
Display Options:
• Show all targets or just current tier
• Show/hide profit bar
• Show/hide composite line
• Move table position
Stop Loss:
• Set your risk tolerance (default 5%)
• Enable/disable auto-reset on stop loss
Correlation Periods:
• Adjust for your timeframe
• Hourly: 14/30/60
• Daily: 20/50/100
• Weekly: 10/20/50
ALERTS AVAILABLE:
Set alerts for any profit milestone:
Critical Alerts:
• "BUY Signal" - Entry notification
• "5% Profit Target" - First major milestone
• "10% Profit Target" - Decision point
• "Stop Loss Hit" - Risk protection
Optional Alerts:
• 1%, 2%, 3%, 4% - Early confirmations
• 15%, 20%, 25% - Major milestones
• Individual levels for your strategy
BEST TIMEFRAMES:
Daily Chart (Recommended):
Best for swing traders holding 3-10 days
Use default settings (20/50/100 periods)
Target 5-15% profits
4-Hour Chart:
Good for active swing traders
Adjust periods to 14/30/60
Target 3-10% profits
Hourly Chart:
For day traders and scalpers
Use shorter periods (14/30/60)
Target 1-5% profits
Adjust profit levels lower (0.5%, 1%, 2%, 3%)
WHY THIS INDICATOR IS DIFFERENT:
Most indicators tell you WHEN to enter.
This one tells you WHEN TO EXIT with profit.
Most indicators use vague signals.
This one shows EXACT profit percentages.
Most indicators leave exit decisions to you.
This one gives CLEAR, COLOR-CODED milestones.
Most indicators don't track your P/L.
This one shows your profit in text you can't miss.
QUICK START GUIDE:
1. Add indicator to gold chart (XAUUSD, GLD, GC1!)
2. Wait for green triangle (▲) BUY signal
3. Watch your profit grow in the table
4. Exit when you hit YOUR target (5%, 10%, 15%, etc.)
5. Repeat
That's it. Simple. Effective. Profitable.
IMPORTANT NOTES:
• This is for LONG positions only - not for shorting gold
• Position tracking begins only after a BUY signal
• The indicator shows levels - YOU decide when to exit
• Always use stop losses (default 5% is reasonable)
• Past performance doesn't guarantee future results
• Not financial advice - use for educational purposes
PRO TIPS:
Tip 1: Don't get greedy - 10-15% is an excellent profit for most trades
Tip 2: Purple stars (25%+) are RARE - don't wait for them on every trade
Tip 3: The profit bar color change is your visual cue - green→yellow→orange→red
Tip 4: Combine with resistance levels - "10% profit + resistance = exit"
Tip 5: Set alerts for YOUR target level so you never miss it
Tip 6: The giant P/L number in the table removes emotion from decisions
EXAMPLE TRADE:
Day 1: ▲ BUY signal at $2,100
Table shows: Position ✓ IN | Entry: 2,100
Day 2: Current P/L: +1.8%
First green circle appears (1% target hit)
Table tier: "1%"
Day 4: Current P/L: +5.2%
Dark green circle appears (5% target hit)
Profit bar is dark green
Decision point: Exit 50% here?
Day 7: Current P/L: +10.5%
Yellow diamond appears (10% target hit!)
Table shows: +10.5% in yellow text
Decision point: Exit remaining 50%?
Result: Average exit ~7.5% over 7 days. Excellent swing trade!
WORKS ON:
• Gold Spot (XAUUSD)
• Gold Futures (GC1!)
• Gold ETFs (GLD, IAU)
• Any gold instrument
Inverse Assets Tracked:
• DXY (US Dollar Index)
• Real Interest Rates (TIPS)
• US Treasury Yields (2Y, 10Y)
• Bitcoin (optional)
• Copper (optional)
THE BOTTOM LINE:
Stop guessing when to take profits.
Start SEEING your profit levels in real-time.
The indicator shows you the targets.
YOU choose when to cash out.
That's YOUR edge.
Developed for traders who want clear, actionable profit targets instead of vague signals.
Big Trend Catcher: Quad-Gate & VCP & ATR trailing Swing TradeThe Strategy Philosophy
This is designed for Daily Charts to capture the large chunks if not all of a primary trend. It focuses on the "VCP" (Volatility Contraction Pattern), combined with high-grade momentum filtering.
1. How VCP (The Quiet Zone) is Calculated
The script identifies "Volatility Contraction" by measuring the Bollinger Band Width (BBW).
* The Math: It calculates the standard BBW: $(Upper Band - Lower Band) / Mid Band$.
* The "Quiet" Threshold: It compares the current width to its own 50-period Simple Moving Average.
* The Signal: When the current width is narrower than the 50-period average, the stock is in a "Quiet Zone" (represented by the blue background). This indicates energy is coiling for a potential breakout.
2. How Rate of Change (ROC) is Calculated
Unlike a standard ROC, this "Wizard" version uses a smoothed momentum filter to reduce whipsaws:
* Raw ROC: First, it calculates the raw percentage change over 15 bars: $100 x (Close / Close(15) - 1).
* Smoothing: This raw value is then smoothed using a 10-period EMA.
* The Gate: The ROC Gate only turns green when this smoothed value is greater or equal to 0, ensuring the stock has genuine upward velocity before you enter.
3. What the Indicators on the Chart Show
* Yellow Line (20 EMA): Your "Tactical Line." It tracks short-term momentum and acts as a trigger for Phoenix re-entries.
* Blue/Gray Line (100 EMA): Your "Regime Filter." It turns Blue when the trend slope is positive and Gray when negative.
* Thin Gray Outer Bands: These are Bollinger Bands set at 3 Standard Deviations from the 100 EMA. They mark extreme "Climax Zones" where price is statistically overextended.
* Stepped Red/Green Line (ATR Stop): The "Iron Floor." It uses a 20-period ATR with a 3.0 multiplier and an HHV (Highest High Value) lookback to ensure the stop only moves up, never down.
* Yellow Crosses (Gate Wait): These small icons appear above the bars when a signal has been detected but one or more "Wizard Gates" (such as the ROC or 100 EMA Slope) are not yet satisfied, signifying the strategy is waiting for full confirmation.
4. How to Trade This Strategy
* Step 1: The Setup: Look for the Blue Background on the daily chart, signifying a Volatility Contraction.
* Step 2: The Entry: An Initial Entry (Lime Triangle) fires when the price breaks out of the Quiet Zone with a volume spike. This volume must be greater than 1.3 times the 20-period Simple Moving Average of volume to confirm significant buying interest. An entry only occurs when all Quad-Gates (ROC, EMA Slope, Price > ATR) are satisfied.
* Step 3: Pyramiding: If the trend gains "Velocity" (price > 10% from entry), the script will signal a second unit to maximize gains during runaway moves.
* Step 4: The Exit: Sell the entire position if the price closes below the ATR Trailing Stop (Trend Death) or if the 100 EMA trend turns down.
5. The Phoenix Re-entry
If you are stopped out but the stock immediately recovers above the 20 EMA within 10 bars, a Phoenix Entry (Orange Triangle) will fire. This allows you to catch "Power Resumptions" where the initial shakeout was a bear trap.
A Humbled Trader Strategy + ChecklistHumbled Trader Swing Strategy + Checklist
This indicator is a complete swing trading system based on the high-probability strategies popularized by Humbled Trader. It is designed to help traders identify trend breakouts and low-risk momentum pullbacks on the Daily Timeframe.
The script combines trend filtering, automated resistance lines, and specific entry triggers into a single chart overlay, complete with a real-time Strategy Checklist Dashboard to confirm your setups instantly.
🎯 Core Components
Trend Filter (Purple Line): The 200 Simple Moving Average (SMA). This acts as your long-term trend filter. We only look for long trades when the price is above this line.
Momentum Guide (Orange Line): The 8 Exponential Moving Average (EMA). This tracks short-term momentum. In a strong trend, price will "ride" this line. We look to enter when price pulls back to touch this area.
Multi-Month Resistance (Orange Horizontal Line): Automatically plots the highest price over the last X Months (adjustable). This helps you instantly visualize the key level the stock needs to break out from.
Checklist Dashboard: A real-time table that evaluates Trend, Resistance, and Momentum conditions to give you a clear "✅ ENTER", "🚀 GAP UP", or "⏳ WAIT" signal.
🛠 How It Works
This indicator scans for two specific setups:
1. The Daily Gap Up ("GAP" Label) This signal appears when a stock shows strong momentum by gapping up overnight.
Condition: The stock opens at least 3% higher (adjustable) than the previous day's Close AND opens above the previous day's High.
Trend: Must be above the 200 SMA.
Visual: Marked with a green "GAP" label on the chart.
2. The Trend Pullback ("ENTER" Signal) This is a trend-following entry that lets you join an existing move with lower risk.
Condition: The stock is in an uptrend but dips down to touch or test the 8 EMA.
Validation: The candle must show a "dip" (red candle or lower close) to ensure we are buying a pullback, not chasing a top.
Visual: The Dashboard "Action Signal" will turn orange and display "✅ ENTER".
📋 The Checklist Dashboard
Located in the corner of your chart, this table provides a live status report for the current bar:
Trend (> 200 SMA):
🟢 Bullish: Price is in an uptrend. Safe to look for entries.
🔴 Bearish: Price is below the 200 SMA. Stay away.
Above Resistance?:
🟢 Breakout: Price has cleared the multi-month resistance line.
⚪ ---: Price is currently below the key breakout level.
Near 8 EMA?:
🟢 Yes: Price is near the "value zone" (8 EMA) for a potential pullback entry.
Action Signal:
🚀 GAP UP: Strong momentum gap detected.
✅ ENTER: Valid pullback entry detected.
⏳ WAIT: No clear setup found.
⚙️ Settings
Momentum EMA Length: Default is 8. Controls the sensitivity of the pullback line.
Trend SMA Length: Default is 200. The standard for long-term trend filtering.
Gap Up % Threshold: Default is 3.0%. Minimum overnight gap size required to trigger a signal.
Resistance Lookback (Months): Default is 3. The script will look back this many months to find and draw the key resistance line.
Table Position: Move the checklist to any corner of your screen.
⚠️ Disclaimer
This tool is for educational purposes only and does not constitute financial advice. Always manage your risk and use a stop loss.
ORB (x2) by jaXn# ORB (x2) Professional Suite
## 🚀 Unleash the Power of Precision Range Trading
**ORB (x2)** isn't just another breakout indicator—it is a complete **Opening Range Breakout workspace** designed for professional traders who demand flexibility, precision, and chart cleanliness.
Whether you are trading Indices, Forex, or Commodities, the Opening Range is often the most critical level of the day. This suite allows you to master these levels by tracking **two independent ranges** simultaneously, giving you a distinctive edge.
## 🔥 Why choose ORB (x2)?
Most indicators force you to choose one specific time. **ORB (x2)** breaks these limits.
### 🌎 1. Multi-Session Mastery (London & New York)
Trade the world's biggest liquidity pools. Set **ORB 1** for the **London Open** (e.g., 03:00–03:05 EST) and **ORB 2** for the **New York Open** (09:30–09:35 EST). Watch how price reacts to London levels later in the New York session.
### ⏱️ 2. Multi-Strategy Stacking (The "Fractal" Approach)
This is a game-changer for intraday setups. Instead of two different times, track **two different durations** for the *same* open.
* **Setup:** Configure **ORB 1** as the classic **5-minute range** (09:30–09:35).
* **Setup:** Configure **ORB 2** as the statistically significant **15-minute or 30-minute range** (09:30–10:00).
* **Result:** You now see immediate scalping levels *and* major trend reversals levels on the same chart, automatically.
### 🎯 3. "Plot Until" Tech: Keep Your Chart Clean
Sick of lines extending infinitely into the void?
Our exclusive **"Plot Until"** feature separates the signal from the noise. You define exactly when the trade idea invalidates.
* *Example:* Plot the 09:30 levels only until 12:00 (Lunch).
* The script intelligently cuts the lines off at your exact minute, ensuring your chart is ready for the afternoon session without morning clutter.
### ⚡ Precision Engine
We use a dedicated "Precision Timeframe" input. Even if you are viewing a 1-hour or 4-hour chart to see the big picture, ORB (x2) can fetch data from the **1-minute** timeframe to calculate the *exact* high and low of the opening range. No more "repainting" or guessing where the wick was.
## 🛠 Feature Breakdown
* **Dual Independent Engines:** Fully separate Color, Style, Time, and Cutoff settings for both ORB 1 and ORB 2.
* **Absolute Time Cutoff:** Lines obey day boundaries perfectly. A cutoff at 16:00 means 16:00, not "whenever the next bar closes".
* **Style Control:** Visually distinguish between your "Scalp" ORB (e.g., Dotted Lines) and your "Trend" ORB (e.g., Solid Thick Lines).
* **Performance Mode:** Adjustable "Lookback Days" limits history to keep your chart lightning fast.
## 💡 Configuration Examples
**The "Double Barrel" (Standard Stock + Futures)**
* *ORB 1:* `0930-0935` (5 min) - The immediate reaction.
* *ORB 2:* `0930-1000` (30 min) - The institutional trend setter.
**The "Transatlantic" (Forex/Indices)**
* *ORB 1:* `0800-0805` (London Open) - European liquidity.
* *ORB 2:* `1330-1335` (NY Open) - US liquidity injection.
## ⚠️ Disclaimer
Trading involves substantial risk. This tool helps visualize critical price levels but does not guarantee profits. Always combine with proper risk management and your own analysis.
Smart Trader, Episode 02, by Ata Sabanci | Battle of Candles ⚠️ CRITICAL: READ BEFORE USING ⚠️
This indicator is 100% VOLUME-BASED and requires Lower Timeframe (LTF) intrabar data for accurate calculations. Please understand the following limitations before using:
📊 DATA ACCURACY LEVELS:
• 1T (Tick) — Most accurate, real volume distribution per tick
• 1S (1 Second) — Reasonably accurate approximation
• 15S (15 Seconds) — Good approximation, longer historical data available
• 1M (1 Minute) — Rough approximation, maximum historical data range
⚠️ BACKTEST & REPLAY LIMITATIONS:
• Replay mode results may differ from live trading due to data availability
• For longer back test periods, use higher LTF settings (15S or 1M)
• Not all symbols/exchanges support tick-level data
• Crypto and Forex typically have better LTF data availability than stocks
💡 A NOTE ON TOOLS:
Successful trading requires proper tools. Higher TradingView plans provide access to more historical intrabar data, which directly impacts the accuracy of volume-based calculations. More precise volume data leads to more reliable signals. Consider this when evaluating your trading infrastructure.
📌 OVERVIEW
Smart Trader Episode 02: Battle of Candles is an advanced educational indicator that combines multiple analysis engines to help traders identify market scenarios and understand market dynamics. This is NOT financial advice or a trading signal service — it's a learning tool designed to help you understand how institutional traders might interpret price action.
The indicator integrates 7 major analysis engines into a unified dashboard, providing real-time insights into volume flow, trend structure, market phases, and potential trade setups.
⚡ KEY FEATURES
🎯 16-Pattern Scenario Engine
Automatically detects and classifies market conditions into 16 distinct scenarios, from strong continuation moves to potential reversals and traps.
💰 Trade Advisor Panel
Aggregates all signals into actionable suggestions with confidence levels, suggested entry/SL/TP levels, and risk/reward calculations.
📊 Volume Engine
Splits volume into buy/sell components using either Geometry (candle shape) or Intrabar (LTF data) methods for precise delta analysis.
📈 CVD (Cumulative Volume Delta)
Tracks the running total of buying vs selling pressure to identify accumulation, distribution, and divergences.
🎯 Stop-Hunt Detection
Identifies potential stop-hunt patterns where price sweeps liquidity levels before reversing.
📐 Pure Structure Trend Engine
Zero-lag trend detection based on swing highs/lows (HH/HL/LH/LL) without any lagging indicators.
⚡ Effort vs Result Analysis
Measures energy spent (volume) versus ground taken (price movement) to detect stalls, breakthroughs, and exhaustion.
🎯 SCENARIO ENGINE — 16 Market Patterns
The Scenario Engine analyzes multiple factors (candle anatomy, volume, forces, CVD, wick analysis) to classify each candle into one of 16 scenarios:
Continuation Scenarios (1-3)
1. ⚔️ STRONG MOVE — Big body candle (>60%) with volume confirming direction. Indicates strong momentum continuation.
2. 🛡️ ABSORPTION — One side attacks but the other absorbs the pressure. Price holds despite volume. Continuation expected in the absorbing side's favor.
3. 📉 PULLBACK — Small move against the trend with low volume. Indicates a healthy retracement before trend continuation.
Reversal Scenarios (4-6, 13-16)
4. 💥 REJECTION — Big wick (>40%) with small body and high volume. Price was rejected
at a level, potential reversal.
5. 🪤 TRAP — Pin direction disagrees with delta. Extreme wick size. Looks bullish/bearish but the opposite may happen.
6. 😫 EXHAUSTION — High energy spent (volume) but low ground taken (price movement). Both sides active but momentum fading.
13. 🔄 CVD BULL DIV — Price falling but CVD rising. Hidden buying detected (accumulation). Potential bullish reversal.
14. 🔄 CVD BEAR DIV — Price rising but CVD falling. Hidden selling detected (distribution). Potential bearish reversal.
15. 🎯 STOP HUNT BULL — Shorts were liquidated below support. Price swept liquidity and reversed. Expect bullish move.
16. 🎯 STOP HUNT BEAR — Longs were liquidated above resistance. Price swept liquidity and reversed. Expect bearish move.
Range/Stalemate Scenarios (7-9)
7. ⚖️ DEADLOCK — Market in balance. Force ratio between 0.4-0.6. Low volume. No side winning.
8. 🔥 BATTLE — High volume fight in a range. Both sides attacking. Wicks on both ends of candle.
9. 🎯 WAITING — Building phase with quiet volume. Market is preparing but no trigger yet. Wait for breakout.
Pre-Breakout Scenarios (10-12)
10. 🚀 BULL SETUP — Buyers accumulating in a building phase. Positive delta building. Bullish pressure growing.
11. 💣 BEAR SETUP — Sellers distributing in a building phase. Negative delta building. Bearish pressure growing.
12. ⚡ BREAKOUT — Price at boundary with strong candle and volume supporting. Imminent breakout expected.
💰 TRADE ADVISOR ENGINE
The Trade Advisor aggregates all signals from the different engines into a single actionable output. It uses a weighted scoring system:
Scoring Weights:
• Scenario Signal: 30%
• Trend Alignment: 20%
• CVD Momentum: 15% + Divergence Bonus
• Pin Forces: 15%
• Liquidity Sweep: 12%
• Stop-Hunt Detection: 10%
• Effort vs Result: 10%
Possible Actions:
• ⏳ WAIT — Edge not strong enough (stay patient)
• 🟢 LONG ENTRY — Buyers have strong advantage + signals align
• 🔴 SHORT ENTRY — Sellers have strong advantage + signals align
• ⚠️ CLOSE LONG/SHORT — Position at risk (reversal/trend flip)
• 🛑 STOP LOSS — Price hit risk threshold
• 💰 TAKE PROFIT — Target threshold reached
📊 EXTENDED INFO PANEL (Detailed Explanations)
The Extended Info panel is hidden by default (toggle: Show Extended Info in settings). It provides detailed metrics that feed into the main engines:
CVD ANALYSIS
What is CVD?
Cumulative Volume Delta (CVD) is the running total of Buy Volume minus Sell Volume. It reveals the underlying buying/selling pressure that may not be visible in price alone.
CVD Value & Slope:
• ↗ Rising: CVD increasing = net buying pressure (bullish)
• ↘ Falling: CVD decreasing = net selling pressure (bearish)
• → Flat: No clear pressure direction
Accumulation vs Distribution:
• Accumulation %: Shows buying pressure strength (0-100). High accumulation with CVD rising = strong bullish bias.
• Distribution %: Shows selling pressure strength (0-100). High distribution with CVD falling = strong bearish bias.
Divergence Alerts:
• ⚠️ BULLISH DIVERGENCE: Price falling but CVD rising. Hidden buying = potential reversal UP.
• ⚠️ BEARISH DIVERGENCE: Price rising but CVD falling. Hidden selling = potential reversal DOWN.
WICK ANALYSIS
Wick Torque:
Torque measures the "rotational force" from wicks. It's calculated from wick length, volume, and body efficiency.
• Positive Torque (Bullish): Bottom wick power dominates. Buyers defended lower prices.
• Negative Torque (Bearish): Top wick power dominates. Sellers defended higher prices.
• ⚡ High Torque (>30): Strong signal, significant wick rejection occurred.
Stop-Hunt Detection:
The engine detects when price has likely swept stop-losses clustered at key levels:
• Stop Hunt Risk %: Likelihood score (0-100). Above 55% = confirmed hunt.
• "Shorts hunted": Price swept below support, liquidating shorts, expect bounce UP.
• "Longs hunted": Price swept above resistance, liquidating longs, expect drop DOWN.
LIQUIDITY SWEEPS
This section appears only when a liquidity sweep is detected. The engine monitors for price sweeping recent highs/lows and then reversing:
• 🎯 LIQUIDITY SWEPT ABOVE: Price broke recent highs but closed back below. Longs trapped, expect DOWN.
• 🎯 LIQUIDITY SWEPT BELOW: Price broke recent lows but closed back above. Shorts trapped, expect UP.
POWER BALANCE
The Power Balance meter shows the real-time strength comparison between buyers and sellers.
Force Ratio:
• 0% = Complete seller dominance
• 50% = Perfect balance
• 100% = Complete buyer dominance
Visual Bar:
• Left side (▓): Bear territory
• Right side (▓): Bull territory
• The bar is smoothed over recent history to reduce noise.
EFFORT vs RESULT
This section measures the efficiency of price movement relative to volume expended.
Energy:
How much volume was spent relative to the average. Energy > 1.0x means above-average volume activity.
Ground:
How much price movement occurred relative to average range. Ground > 1.0x means above-average price movement.
STALL Warning:
A STALL is detected when high energy is spent but low ground is taken (high effort, low result). This often indicates institutional battle, exhaustion, or imminent reversal.
MARKET PHASE
The Phase Engine classifies the current market regime:
RANGE : No clear trend. Price confined to middle of channel. Low ADX. Balanced forces. Trade breakouts with caution.
BUILDING : Compression/preparation phase. Channel tightening or boundary penetration without follow-through. Watch for breakout direction.
TRENDING : Active directional move. Clear slope, good efficiency, price on trending side of channel. Favor pullback entries.
Strength:
0-100% score combining slope, volume validity, and force/efficiency filters.
Bars: How many candles the current phase has persisted.
TRACK RECORD (Validation Panel)
Enable with Show Validation Panel in settings. This section tracks the historical accuracy of scenario predictions:
Accuracy: Percentage of validated predictions that were correct.
Best/Worst Scenario: Shows which scenarios have the highest and lowest accuracy on the current symbol.
Recent Signals: Last 5 predictions with their outcomes. ✓ = correct, ✗ = wrong, ⏳ = pending validation.
⚙️ SETTINGS GUIDE
📊 Volume Analysis
Volume Calculation: Choose Geometry (estimates from candle shape) or Intrabar (precise LTF data).
Intrabar Resolution: LTF for precise mode. Try 1S, 15S, or 1T. Must be lower than chart timeframe.
History Depth: Candles stored in memory (5-50). Higher = more context, slower.
Memory Lookback: Bars for moving averages and Z-scores (10-100).
🏷️ Market Phase
Range Zone Width: How much of channel center is considered "range" (0.1-0.8).
Trend Sensitivity: Minimum slope to detect trending. Lower = more sensitive.
Min Episode Length: Minimum bars before phase can change. Prevents flickering.
🎯 Scenarios
Min Confidence to Show: Only display scenarios above this confidence level (30-90).
Bars to Validate: How many bars to wait before checking if prediction was correct.
Success Move %: Minimum price movement to consider prediction successful.
💰 Trade Advisor
Min Confidence for Entry: Minimum confidence to suggest a trade entry (50-90).
Default Risk %: Stop loss distance as % of price (0.5-5.0).
Min Risk/Reward: Minimum acceptable R:R ratio (1.0-5.0).
🔔 ALERT CONDITIONS
The indicator provides the following alert conditions you can configure:
• 🟢 LONG Entry Signal
• 🔴 SHORT Entry Signal
• ⚠️ Close LONG Signal
• ⚠️ Close SHORT Signal
• 🛑 STOP LOSS Alert
• 💰 Take Profit Alert
• 🚨 High Urgency Signal
⚠️ IMPORTANT DISCLAIMER
EDUCATIONAL TOOL ONLY
This indicator is designed for educational purposes to help users identify different market scenarios and understand how various signals might be interpreted.
The Trade Advisor is NOT a recommendation to buy, sell, or invest.
• Past performance does not guarantee future results
• All trading involves risk of loss
• The creator is not a licensed financial advisor
• Always do your own research (DYOR)
• Consult a qualified financial advisor before making any investment decisions
By using this indicator, you acknowledge that you understand these risks and accept full responsibility for your trading decisions.
Supertrend Nova Cloud [Pineify]Supertrend Nova Cloud
Overview
The Supertrend Nova Cloud is a sophisticated trend-following system designed to filter market noise and provide clear, actionable insights into market direction and volatility. By combining two distinct Supertrend calculations—the fast-acting "Nova" and the slower, more robust "Nebula"—this indicator creates a dynamic "Cloud" that visualizes the strength and stability of the current trend. It is engineered to help traders identify strong trending periods, potential pullbacks, and major reversals with greater confidence than a single Supertrend indicator.
Key Features
Dual-Trend Architecture: Utilizes a two-layer approach with a Fast (Nova) and Slow (Nebula) Supertrend to define market structure.
Dynamic Nova Cloud: A visual gradient fill between the two trendlines that adjusts its intensity ("Glow") based on the spread between the trends, representing market volatility.
Smart Candle Coloring: Candles are colored based on the consensus between the two trends, clearly distinguishing between strong trends, pullbacks, and recovery phases.
High-Quality Signals: Buy and Sell signals are filtered and only generated when the major (Slow) trend reverses, reducing false signals during chop.
Real-time Dashboard: An on-chart dashboard displays the current state of both the Nova and Nebula trends for instant analysis.
How It Works
The Supertrend Nova Cloud operates on the principles of Average True Range (ATR) volatility to determine trend direction.
Nova (Fast Trend): Calculated using a shorter ATR length (default 10) and a lower multiplier (default 2.0). This line reacts quickly to price changes, serving as an early warning system or trailing stop for aggressive entries.
Nebula (Slow Trend): Calculated using a longer ATR length (default 20) and a higher multiplier (default 4.0). This line defines the overall market bias and acts as significant support/resistance.
Cloud Gradient Logic: The script calculates the absolute difference (delta) between the Nova and Nebula lines. It compares this delta to its recent historical maximum to determine the opacity of the fill color. A wider spread (higher volatility) results in a brighter, more opaque cloud, while a narrow spread (consolidation) results in a more transparent cloud.
How multiple indicators work together
In trading, a single trend indicator often faces a dilemma: if it's too fast, it gives false signals; if it's too slow, it lags significantly. The Supertrend Nova Cloud solves this by combining both:
The Fast Supertrend captures immediate momentum and provides potential re-entry points during strong trends.
The Slow Supertrend acts as a filter. The script logic enforces that major reversal signals ("NOVA BUY/SELL") are only triggered when this slower, dominant trend changes direction.
By requiring the Slow trend to confirm the reversal, the indicator filters out the "noise" that would typically whip-saw a standard Supertrend.
Trading Ideas and Insights
Trend Riding: When the Cloud is fully Green (Strong Bull) or Red (Strong Bear), and the candles match this color, the trend is established. These are ideal conditions for holding positions.
Pullback Opportunities: If the candles turn a lighter shade (e.g., light red during an uptrend), it indicates the price has broken the Fast trend but holds above the Slow trend. This "Mixed" state often represents a buying opportunity in an uptrend (or selling in a downtrend).
Volatility Expansion: A widening cloud (brighter glow) indicates expanding volatility and often accompanies a strong breakout or trend acceleration.
Unique Aspects
Visual Volatility Feedback: Unlike standard fills, the "Nova Cloud" uses a custom algorithm to adjust transparency based on the relative distance between the two trendlines. This gives traders an intuitive sense of market expansion and contraction.
Nuanced State Detection: The script doesn't just show Up or Down. It identifies four states: Strong Bull, Strong Bear, Fast Bull/Slow Bear (Recovery), and Fast Bear/Slow Bull (Pullback), coding the candles accordingly.
How to Use
Entry: Look for "NOVA BUY" or "NOVA SELL" labels. These appear when the major trend (Nebula) flips, confirming a significant shift in market structure.
Stop Loss: The Nebula (thick) line serves as a robust trailing stop loss. As long as price holds beyond this line, the macro trend remains intact.
Re-Entry/Pyramiding: During a strong trend, if price dips into the cloud (changing candle color to mixed/neutral) and then resumes the trend color, it can be a valid re-entry signal.
Customization
Users can fully customize the indicator via the settings menu:
Nova & Nebula Settings: Adjust the ATR Length and Factor for both the Fast and Slow trends to tune sensitivity for different timeframes or assets.
Visuals: Toggle the Dashboard, Candle Coloring, and customize the colors for Bullish, Bearish, and Neutral states.
Conclusion
The Supertrend Nova Cloud offers a comprehensive visual interface for trend traders. By harmonizing two time horizons of volatility analysis into a single, cohesive display, it simplifies decision-making and helps traders stay on the right side of the major trend while identifying granular opportunities within it.
Breaker Blocks Finder | Gold | ProjectSyndicateProjectSyndicate Breaker Blocks Finder
📊 Overview
The ProjectSyndicate Breaker Blocks Finder (PS BB Finder) is a professional-grade Pine Script indicator designed to detect and display Bullish and Bearish Breaker Blocks based on Smart Money Concepts (SMC) methodology. This indicator is specifically optimized for XAUUSD (Gold) trading but works reliably across all symbols and timeframes.
Key Features
✅ Non-Repainting: Breaker blocks never change position after formation
✅ Multi-Timeframe Support: Optimized for M5, M10, M15, M20, M30, and H1
✅ Highly Customizable: 10+ user-configurable settings
✅ Visual Clarity: Color-coded boxes and labels for easy identification
✅ Performance Optimized: Handles 1000+ candles without lag
✅ Cross-Symbol Compatible: Works on Forex, Crypto, Stocks, Indices, and Commodities
✅ Displacement Detection: Uses ATR-based displacement to filter false signals
🎯 What are Breaker Blocks?
A Breaker Block is a failed order block that becomes a new support or resistance zone after being invalidated by price. It represents a market structure shift where institutional traders (smart money) have flipped their position.
Bullish Breaker Block
A Bullish Breaker Block forms when:
1 A bearish order block (resistance zone) exists
2 Price breaks ABOVE this zone with strong displacement
3 The former resistance zone now becomes SUPPORT
4 Price may retest this zone before continuing higher
Visual: Green box with "BB ▲" label
Bearish Breaker Block
A Bearish Breaker Block forms when:
5 A bullish order block (support zone) exists
6 Price breaks BELOW this zone with strong displacement
7 The former support zone now becomes RESISTANCE
8 Price may retest this zone before continuing lower
Visual: Red box with "BB ▼" label
⚙️ Default Settings
Setting Default Range Description
Lookback Period 1000 100-5000 Number of historical candles to analyze
Max Breaker Blocks 5 1-50 Maximum number of breaker blocks to display
Swing Detection Length 10 2-20 Bars on each side to confirm swing high/low. Higher = more significant swings
Use Displacement Filter true true/false Enable to filter breaker blocks by displacement size
Displacement Multiplier 2.0 0.5-5.0 Minimum move size as multiple of ATR. Higher = stricter detection
Invalidation Method Close Close/Wick Close = Conservative (candle must close beyond zone)Wick = Aggressive (wick touch is enough)
📈 Recommended Timeframes & Settings
This indicator is optimized for the following timeframes. Use these settings as a starting point.
Lower Timeframes (M5, M10, M15, M20)
These settings are designed to capture faster price movements and are the default settings for the indicator.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 2.0
Invalidation Method Close
Higher Timeframes (M30, H1)
For these timeframes, a less strict displacement filter is recommended to capture more significant, but less frequent, breaker blocks.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 1.0
Invalidation Method Close
🎓 How to Use
Step 1: Identify Breaker Blocks
Once the indicator is loaded, breaker blocks will automatically appear on your chart:
• Green boxes = Bullish breaker blocks (former resistance, now support)
• Red boxes = Bearish breaker blocks (former support, now resistance)
Step 2: Wait for Retest
The most reliable trading opportunities occur when price retests the breaker block zone:
• For bullish breaker blocks, wait for price to come back down to the green zone
• For bearish breaker blocks, wait for price to come back up to the red zone
Step 3: Look for Confluence
Combine breaker blocks with other SMC concepts for higher probability setups:
• Fair Value Gaps (FVG) within the breaker block zone
• Liquidity grabs before the retest
• Break of Structure (BoS) or Change of Character (ChoCH) confirmation
Step 4: Enter the Trade
Bullish Setup:
• Entry: At or near the bullish breaker block zone
• Stop Loss: Below the breaker block
• Take Profit: Previous swing high or higher
Bearish Setup:
• Entry: At or near the bearish breaker block zone
• Stop Loss: Above the breaker block
• Take Profit: Previous swing low or lower
🛡️ Non-Repainting Guarantee
This indicator is 100% non-repainting, meaning:
✅ Breaker blocks never change position after formation
✅ Historical breaker blocks remain in the exact same location indefinitely
✅ Backtesting results are reliable and consistent
🐛 Troubleshooting
Issue: No Breaker Blocks Appearing
Solutions:
• Ensure "Use Displacement Filter" is enabled.
• On M30/H1, try lowering the "Displacement Multiplier" to 1.0.
• Scroll back in history; blocks may not be present on the most recent bars.
Issue: Too Many Breaker Blocks
Solutions:
• Increase "Displacement Multiplier" to 2.5 or 3.0.
• Increase "Swing Detection Length" to 12-15.
• Decrease "Max Breaker Blocks" to 3-4.
BUZARA// © Buzzara
// =================================
// PLEASE SUPPORT THE TEAM
// =================================
//
// Telegram: t.me
// =================================
//@version=5
VERSION = ' Buzzara2.0'
strategy('ALGOX V6_1_24', shorttitle = '🚀〄 Buzzara2.0 〄🚀'+ VERSION, overlay = true, explicit_plot_zorder = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 1, calc_on_every_tick = false, process_orders_on_close = true)
G_SCRIPT01 = '■ ' + 'SAIYAN OCC'
//#region ———— <↓↓↓ G_SCRIPT01 ↓↓↓> {
// === INPUTS ===
res = input.timeframe('15', 'TIMEFRAME', group ="NON REPAINT")
useRes = input(true, 'Use Alternate Signals')
intRes = input(10, 'Multiplier for Alernate Signals')
basisType = input.string('ALMA', 'MA Type: ', options= )
basisLen = input.int(50, 'MA Period', minval=1)
offsetSigma = input.int(5, 'Offset for LSMA / Sigma for ALMA', minval=0)
offsetALMA = input.float(2, 'Offset for ALMA', minval=0, step=0.01)
scolor = input(false, 'Show coloured Bars to indicate Trend?')
delayOffset = input.int(0, 'Delay Open/Close MA', minval=0, step=1,
tooltip = 'Forces Non-Repainting')
tradeType = input.string('BOTH', 'What trades should be taken : ',
options = )
//=== /INPUTS ===
h = input(false, 'Signals for Heikin Ashi Candles')
//INDICATOR SETTINGS
swing_length = input.int(10, 'Swing High/Low Length', group = 'Settings', minval = 1, maxval = 50)
history_of_demand_to_keep = input.int(20, 'History To Keep', minval = 5, maxval = 50)
box_width = input.float(2.5, 'Supply/Demand Box Width', group = 'Settings', minval = 1, maxval = 10, step = 0.5)
//INDICATOR VISUAL SETTINGS
show_zigzag = input.bool(false, 'Show Zig Zag', group = 'Visual Settings', inline = '1')
show_price_action_labels = input.bool(false, 'Show Price Action Labels', group = 'Visual Settings', inline = '2')
supply_color = input.color(#00000000, 'Supply', group = 'Visual Settings', inline = '3')
supply_outline_color = input.color(#00000000, 'Outline', group = 'Visual Settings', inline = '3')
demand_color = input.color(#00000000, 'Demand', group = 'Visual Settings', inline = '4')
demand_outline_color = input.color(#00000000, 'Outline', group = 'Visual Settings', inline = '4')
bos_label_color = input.color(#00000000, 'BOS Label', group = 'Visual Settings', inline = '5')
poi_label_color = input.color(#00000000, 'POI Label', group = 'Visual Settings', inline = '7')
poi_border_color = input.color(#00000000, 'POI border', group = 'Visual Settings', inline = '7')
swing_type_color = input.color(#00000000, 'Price Action Label', group = 'Visual Settings', inline = '8')
zigzag_color = input.color(#00000000, 'Zig Zag', group = 'Visual Settings', inline = '9')
//END SETTINGS
// FUNCTION TO ADD NEW AND REMOVE LAST IN ARRAY
f_array_add_pop(array, new_value_to_add) =>
array.unshift(array, new_value_to_add)
array.pop(array)
// FUNCTION SWING H & L LABELS
f_sh_sl_labels(array, swing_type) =>
var string label_text = na
if swing_type == 1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HH'
else
label_text := 'LH'
label.new(
bar_index - swing_length,
array.get(array,0),
text = label_text,
style = label.style_label_down,
textcolor = swing_type_color,
color = swing_type_color,
size = size.tiny)
else if swing_type == -1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HL'
else
label_text := 'LL'
label.new(
bar_index - swing_length,
array.get(array,0),
text = label_text,
style = label.style_label_up,
textcolor = swing_type_color,
color = swing_type_color,
size = size.tiny)
// FUNCTION MAKE SURE SUPPLY ISNT OVERLAPPING
f_check_overlapping(new_poi, box_array, atrValue) =>
atr_threshold = atrValue * 2
okay_to_draw = true
for i = 0 to array.size(box_array) - 1
top = box.get_top(array.get(box_array, i))
bottom = box.get_bottom(array.get(box_array, i))
poi = (top + bottom) / 2
upper_boundary = poi + atr_threshold
lower_boundary = poi - atr_threshold
if new_poi >= lower_boundary and new_poi <= upper_boundary
okay_to_draw := false
break
else
okay_to_draw := true
okay_to_draw
// FUNCTION TO DRAW SUPPLY OR DEMAND ZONE
f_supply_demand(value_array, bn_array, box_array, label_array, box_type, atrValue) =>
atr_buffer = atrValue * (box_width / 10)
box_left = array.get(bn_array, 0)
box_right = bar_index
var float box_top = 0.00
var float box_bottom = 0.00
var float poi = 0.00
if box_type == 1
box_top := array.get(value_array, 0)
box_bottom := box_top - atr_buffer
poi := (box_top + box_bottom) / 2
else if box_type == -1
box_bottom := array.get(value_array, 0)
box_top := box_bottom + atr_buffer
poi := (box_top + box_bottom) / 2
okay_to_draw = f_check_overlapping(poi, box_array, atrValue)
// okay_to_draw = true
//delete oldest box, and then create a new box and add it to the array
if box_type == 1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = supply_outline_color,
bgcolor = supply_color, extend = extend.right, text = 'SUPPLY', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = poi_border_color,
bgcolor = poi_border_color, extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
else if box_type == -1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = demand_outline_color,
bgcolor = demand_color, extend = extend.right, text = 'DEMAND', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = poi_border_color,
bgcolor = poi_border_color, extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
// FUNCTION TO CHANGE SUPPLY/DEMAND TO A BOS IF BROKEN
f_sd_to_bos(box_array, bos_array, label_array, zone_type) =>
if zone_type == 1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_top(array.get(box_array,i))
// if ta.crossover(close, level_to_break)
if close >= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
if zone_type == -1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_bottom(array.get(box_array,i))
// if ta.crossunder(close, level_to_break)
if close <= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
// FUNCTION MANAGE CURRENT BOXES BY CHANGING ENDPOINT
f_extend_box_endpoint(box_array) =>
for i = 0 to array.size(box_array) - 1
box.set_right(array.get(box_array, i), bar_index + 100)
//
stratRes = timeframe.ismonthly ? str.tostring(timeframe.multiplier * intRes, '###M') :
timeframe.isweekly ? str.tostring(timeframe.multiplier * intRes, '###W') :
timeframe.isdaily ? str.tostring(timeframe.multiplier * intRes, '###D') :
timeframe.isintraday ? str.tostring(timeframe.multiplier * intRes, '####') :
'60'
src = h ? request.security(ticker.heikinashi(syminfo.tickerid),
timeframe.period, close, lookahead = barmerge.lookahead_off) : close
// CALCULATE ATR
atrValue = ta.atr(50)
// CALCULATE SWING HIGHS & SWING LOWS
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
// ARRAYS FOR SWING H/L & BN
var swing_high_values = array.new_float(5,0.00)
var swing_low_values = array.new_float(5,0.00)
var swing_high_bns = array.new_int(5,0)
var swing_low_bns = array.new_int(5,0)
// ARRAYS FOR SUPPLY / DEMAND
var current_supply_box = array.new_box(history_of_demand_to_keep, na)
var current_demand_box = array.new_box(history_of_demand_to_keep, na)
// ARRAYS FOR SUPPLY / DEMAND POI LABELS
var current_supply_poi = array.new_box(history_of_demand_to_keep, na)
var current_demand_poi = array.new_box(history_of_demand_to_keep, na)
// ARRAYS FOR BOS
var supply_bos = array.new_box(5, na)
var demand_bos = array.new_box(5, na)
//END CALCULATIONS
// NEW SWING HIGH
if not na(swing_high)
//MANAGE SWING HIGH VALUES
f_array_add_pop(swing_high_values, swing_high)
f_array_add_pop(swing_high_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_high_values, 1)
f_supply_demand(swing_high_values, swing_high_bns, current_supply_box, current_supply_poi, 1, atrValue)
// NEW SWING LOW
else if not na(swing_low)
//MANAGE SWING LOW VALUES
f_array_add_pop(swing_low_values, swing_low)
f_array_add_pop(swing_low_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_low_values, -1)
f_supply_demand(swing_low_values, swing_low_bns, current_demand_box, current_demand_poi, -1, atrValue)
f_sd_to_bos(current_supply_box, supply_bos, current_supply_poi, 1)
f_sd_to_bos(current_demand_box, demand_bos, current_demand_poi, -1)
f_extend_box_endpoint(current_supply_box)
f_extend_box_endpoint(current_demand_box)
channelBal = input.bool(false, "Channel Balance", group = "CHART")
lr_slope(_src, _len) =>
x = 0.0, y = 0.0, x2 = 0.0, xy = 0.0
for i = 0 to _len - 1
val = _src
per = i + 1
x += per
y += val
x2 += per * per
xy += val * per
_slp = (_len * xy - x * y) / (_len * x2 - x * x)
_avg = y / _len
_int = _avg - _slp * x / _len + _slp
lr_dev(_src, _len, _slp, _avg, _int) =>
upDev = 0.0, dnDev = 0.0
val = _int
for j = 0 to _len - 1
price = high - val
if price > upDev
upDev := price
price := val - low
if price > dnDev
dnDev := price
price := _src
val += _slp
//
= ta.kc(close, 80, 10.5)
= ta.kc(close, 80, 9.5)
= ta.kc(close, 80, 8)
= ta.kc(close, 80, 3)
barsL = 10
barsR = 10
pivotHigh = fixnan(ta.pivothigh(barsL, barsR) )
pivotLow = fixnan(ta.pivotlow(barsL, barsR) )
source = close, period = 150
= lr_slope(source, period)
= lr_dev(source, period, s, a, i)
y1 = low - (ta.atr(30) * 2), y1B = low - ta.atr(30)
y2 = high + (ta.atr(30) * 2), y2B = high + ta.atr(30)
x1 = bar_index - period + 1, _y1 = i + s * (period - 1), x2 = bar_index, _y2 = i
//Functions
//Line Style function
get_line_style(style) =>
out = switch style
'???' => line.style_solid
'----' => line.style_dashed
' ' => line.style_dotted
//Function to get order block coordinates
get_coordinates(condition, top, btm, ob_val)=>
var ob_top = array.new_float(0)
var ob_btm = array.new_float(0)
var ob_avg = array.new_float(0)
var ob_left = array.new_int(0)
float ob = na
//Append coordinates to arrays
if condition
avg = math.avg(top, btm)
array.unshift(ob_top, top)
array.unshift(ob_btm, btm)
array.unshift(ob_avg, avg)
ob := ob_val
//Function to remove mitigated order blocks from coordinate arrays
remove_mitigated(ob_top, ob_btm, ob_left, ob_avg, target, bull)=>
mitigated = false
target_array = bull ? ob_btm : ob_top
for element in target_array
idx = array.indexof(target_array, element)
if (bull ? target < element : target > element)
mitigated := true
array.remove(ob_top, idx)
array.remove(ob_btm, idx)
array.remove(ob_avg, idx)
array.remove(ob_left, idx)
mitigated
//Function to set order blocks
set_order_blocks(ob_top, ob_btm, ob_left, ob_avg, ext_last, bg_css, border_css, lvl_css)=>
var ob_box = array.new_box(0)
var ob_lvl = array.new_line(0)
//Global elements
var os = 0
var target_bull = 0.
var target_bear = 0.
// Create non-repainting security function
rp_security(_symbol, _res, _src) =>
request.security(_symbol, _res, _src )
htfHigh = rp_security(syminfo.tickerid, res, high)
htfLow = rp_security(syminfo.tickerid, res, low)
// Main Indicator
// Functions
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, sensitivity) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(_src) => _src < _src and _src < _src and _src > _src and _src > _src
f_bot_fractal(_src) => _src > _src and _src > _src and _src < _src and _src < _src
top_fractal = f_top_fractal(src)
bot_fractal = f_bot_fractal(src)
f_fractalize (_src) => top_fractal ? 1 : bot_fractal ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Get user input
enableSR = input(false , "SR On/Off", group="SR")
colorSup = input(#00000000 , "Support Color", group="SR")
colorRes = input(#00000000 , "Resistance Color", group="SR")
strengthSR = input.int(2 , "S/R Strength", 1, group="SR")
lineStyle = input.string("Dotted", "Line Style", , group="SR")
lineWidth = input.int(2 , "S/R Line Width", 1, group="SR")
useZones = input(true , "Zones On/Off", group="SR")
useHLZones = input(true , "High Low Zones On/Off", group="SR")
zoneWidth = input.int(2 , "Zone Width %", 0,
tooltip = "it's calculated using % of the distance between highest/lowest in last 300 bars", group="SR")
expandSR = input(true , "Expand SR")
// Get components
rb = 10
prd = 284
ChannelW = 10
label_loc = 55
style = lineStyle == "Solid" ? line.style_solid :
lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
ph = ta.pivothigh(rb, rb)
pl = ta.pivotlow (rb, rb)
sr_levels = array.new_float(21, na)
prdhighest = ta.highest(prd)
prdlowest = ta.lowest(prd)
cwidth = percWidth(prd, ChannelW)
zonePerc = percWidth(300, zoneWidth)
aas = array.new_bool(41, true)
u1 = 0.0, u1 := nz(u1 )
d1 = 0.0, d1 := nz(d1 )
highestph = 0.0, highestph := highestph
lowestpl = 0.0, lowestpl := lowestpl
var sr_levs = array.new_float(21, na)
label hlabel = na, label.delete(hlabel )
label llabel = na, label.delete(llabel )
var sr_lines = array.new_line(21, na)
var sr_linesH = array.new_line(21, na)
var sr_linesL = array.new_line(21, na)
var sr_linesF = array.new_linefill(21, na)
var sr_labels = array.new_label(21, na)
if (not na(ph) or not na(pl))
for x = 0 to array.size(sr_levels) - 1
array.set(sr_levels, x, na)
highestph := prdlowest
lowestpl := prdhighest
countpp = 0
for x = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
highestph := math.max(highestph, nz(ph , prdlowest), nz(pl , prdlowest))
lowestpl := math.min(lowestpl, nz(ph , prdhighest), nz(pl , prdhighest))
countpp += 1
if countpp > 40
break
if array.get(aas, countpp)
upl = (not na(ph ) and (ph != 0) ? high : low ) + cwidth
dnl = (not na(ph ) and (ph != 0) ? high : low ) - cwidth
u1 := countpp == 1 ? upl : u1
d1 := countpp == 1 ? dnl : d1
tmp = array.new_bool(41, true)
cnt = 0
tpoint = 0
for xx = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
chg = false
cnt += 1
if cnt > 40
break
if array.get(aas, cnt)
if not na(ph )
if high <= upl and high >= dnl
tpoint += 1
chg := true
if not na(pl )
if low <= upl and low >= dnl
tpoint += 1
chg := true
if chg and cnt < 41
array.set(tmp, cnt, false)
if tpoint >= strengthSR
for g = 0 to 40 by 1
if not array.get(tmp, g)
array.set(aas, g, false)
if (not na(ph ) and countpp < 21)
array.set(sr_levels, countpp, high )
if (not na(pl ) and countpp < 21)
array.set(sr_levels, countpp, low )
// Plot
var line highest_ = na, line.delete(highest_)
var line lowest_ = na, line.delete(lowest_)
var line highest_fill1 = na, line.delete(highest_fill1)
var line highest_fill2 = na, line.delete(highest_fill2)
var line lowest_fill1 = na, line.delete(lowest_fill1)
var line lowest_fill2 = na, line.delete(lowest_fill2)
hi_col = close >= highestph ? colorSup : colorRes
lo_col = close >= lowestpl ? colorSup : colorRes
if enableSR
highest_ := line.new(bar_index - 311, highestph, bar_index, highestph, xloc.bar_index, expandSR ? extend.both : extend.right, hi_col, style, lineWidth)
lowest_ := line.new(bar_index - 311, lowestpl , bar_index, lowestpl , xloc.bar_index, expandSR ? extend.both : extend.right, lo_col, style, lineWidth)
if useHLZones
highest_fill1 := line.new(bar_index - 311, highestph + zonePerc, bar_index, highestph + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
highest_fill2 := line.new(bar_index - 311, highestph - zonePerc, bar_index, highestph - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill1 := line.new(bar_index - 311, lowestpl + zonePerc , bar_index, lowestpl + zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill2 := line.new(bar_index - 311, lowestpl - zonePerc , bar_index, lowestpl - zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
linefill.new(highest_fill1, highest_fill2, hi_col)
linefill.new(lowest_fill1 , lowest_fill2 , lo_col)
if (not na(ph) or not na(pl))
for x = 0 to array.size(sr_lines) - 1
array.set(sr_levs, x, array.get(sr_levels, x))
for x = 0 to array.size(sr_lines) - 1
line.delete(array.get(sr_lines, x))
line.delete(array.get(sr_linesH, x))
line.delete(array.get(sr_linesL, x))
linefill.delete(array.get(sr_linesF, x))
if (not na(array.get(sr_levs, x)) and enableSR)
line_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_lines, x, line.new(bar_index - 355, array.get(sr_levs, x), bar_index, array.get(sr_levs, x), xloc.bar_index, expandSR ? extend.both : extend.right, line_col, style, lineWidth))
if useZones
array.set(sr_linesH, x, line.new(bar_index - 355, array.get(sr_levs, x) + zonePerc, bar_index, array.get(sr_levs, x) + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesL, x, line.new(bar_index - 355, array.get(sr_levs, x) - zonePerc, bar_index, array.get(sr_levs, x) - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesF, x, linefill.new(array.get(sr_linesH, x), array.get(sr_linesL, x), line_col))
for x = 0 to array.size(sr_labels) - 1
label.delete(array.get(sr_labels, x))
if (not na(array.get(sr_levs, x)) and enableSR)
lab_loc = close >= array.get(sr_levs, x) ? label.style_label_up : label.style_label_down
lab_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_labels, x, label.new(bar_index + label_loc, array.get(sr_levs, x), str.tostring(math.round_to_mintick(array.get(sr_levs, x))), color=lab_col , textcolor=#000000, style=lab_loc))
hlabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, highestph, "High Level : " + str.tostring(highestph), color=hi_col, textcolor=#000000, style=label.style_label_down) : na
llabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, lowestpl , "Low Level : " + str.tostring(lowestpl) , color=lo_col, textcolor=#000000, style=label.style_label_up ) : na
// Get components
rsi = ta.rsi(close, 28)
//rsiOb = rsi > 78 and rsi > ta.ema(rsi, 10)
//rsiOs = rsi < 27 and rsi < ta.ema(rsi, 10)
rsiOb = rsi > 65 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 35 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
// === BASE FUNCTIONS ===
// Returns MA input selection variant, default to SMA if blank or typo.
variant(type, src, len, offSig, offALMA) =>
v1 = ta.sma(src, len) // Simple
v2 = ta.ema(src, len) // Exponential
v3 = 2 * v2 - ta.ema(v2, len) // Double Exponential
v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len) // Triple Exponential
v5 = ta.wma(src, len) // Weighted
v6 = ta.vwma(src, len) // Volume Weighted
v7 = 0.0
sma_1 = ta.sma(src, len) // Smoothed
v7 := na(v7 ) ? sma_1 : (v7 * (len - 1) + src) / len
v8 = ta.wma(2 * ta.wma(src, len / 2) - ta.wma(src, len), math.round(math.sqrt(len))) // Hull
v9 = ta.linreg(src, len, offSig) // Least Squares
v10 = ta.alma(src, len, offALMA, offSig) // Arnaud Legoux
v11 = ta.sma(v1, len) // Triangular (extreme smooth)
// SuperSmoother filter
// 2013 John F. Ehlers
a1 = math.exp(-1.414 * 3.14159 / len)
b1 = 2 * a1 * math.cos(1.414 * 3.14159 / len)
c2 = b1
c3 = -a1 * a1
c1 = 1 - c2 - c3
v12 = 0.0
v12 := c1 * (src + nz(src )) / 2 + c2 * nz(v12 ) + c3 * nz(v12 )
type == 'EMA' ? v2 : type == 'DEMA' ? v3 : type == 'TEMA' ? v4 : type == 'WMA' ? v5 : type == 'VWMA' ? v6 : type == 'SMMA' ? v7 : type == 'HullMA' ? v8 : type == 'LSMA' ? v9 : type == 'ALMA' ? v10 : type == 'TMA' ? v11 : type == 'SSMA' ? v12 : v1
// security wrapper for repeat calls
reso(exp, use, res) =>
security_1 = request.security(syminfo.tickerid, res, exp, gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_on)
use ? security_1 : exp
// === /BASE FUNCTIONS ===
// === SERIES SETUP ===
closeSeries = variant(basisType, close , basisLen, offsetSigma, offsetALMA)
openSeries = variant(basisType, open , basisLen, offsetSigma, offsetALMA)
// === /SERIES ===
// Get Alternate resolution Series if selected.
closeSeriesAlt = reso(closeSeries, useRes, stratRes)
openSeriesAlt = reso(openSeries, useRes, stratRes)
//
lxTrigger = false
sxTrigger = false
leTrigger = ta.crossover (closeSeriesAlt, openSeriesAlt)
seTrigger = ta.crossunder(closeSeriesAlt, openSeriesAlt)
G_RISK = '■ ' + 'Risk Management'
//#region ———— <↓↓↓ G_RISK ↓↓↓> {
// ———————————
//Tooltip
T_LVL = '(%) Exit Level'
T_QTY = '(%) Adjust trade exit volume'
T_MSG = 'Paste JSON message for your bot'
//Webhook Message
O_LEMSG = 'Long Entry'
O_LXMSGSL = 'Long SL'
O_LXMSGTP1 = 'Long TP1'
O_LXMSGTP2 = 'Long TP2'
O_LXMSGTP3 = 'Long TP3'
O_LXMSG = 'Long Exit'
O_SEMSG = 'Short Entry'
O_SXMSGSL = 'Short SL'
O_SXMSGA = 'Short TP1'
O_SXMSGB = 'Short TP2'
O_SXMSGC = 'Short TP3'
O_SXMSGX = 'Short Exit'
// ——————————— | | | Line length guide |
i_lxLvlTP1 = input.float (0.2, 'Level TP1' , group = G_RISK,
tooltip = T_LVL)
i_lxQtyTP1 = input.float (80.0, 'Qty TP1' , group = G_RISK,
tooltip = T_QTY)
i_lxLvlTP2 = input.float (0.5, 'Level TP2' , group = G_RISK,
tooltip = T_LVL)
i_lxQtyTP2 = input.float (10.0, 'Qty TP2' , group = G_RISK,
tooltip = T_QTY)
i_lxLvlTP3 = input.float (7.0, 'Level TP3' , group = G_RISK,
tooltip = T_LVL)
i_lxQtyTP3 = input.float (2, 'Qty TP3' , group = G_RISK,
tooltip = T_QTY)
i_lxLvlSL = input.float (0.5, 'Stop Loss' , group = G_RISK,
tooltip = T_LVL)
i_sxLvlTP1 = i_lxLvlTP1
i_sxQtyTP1 = i_lxQtyTP1
i_sxLvlTP2 = i_lxLvlTP2
i_sxQtyTP2 = i_lxQtyTP2
i_sxLvlTP3 = i_lxLvlTP3
i_sxQtyTP3 = i_lxQtyTP3
i_sxLvlSL = i_lxLvlSL
G_MSG = '■ ' + 'Webhook Message'
i_leMsg = input.string (O_LEMSG ,'Long Entry' , group = G_MSG, tooltip = T_MSG)
i_lxMsgSL = input.string (O_LXMSGSL ,'Long SL' , group = G_MSG, tooltip = T_MSG)
i_lxMsgTP1 = input.string (O_LXMSGTP1,'Long TP1' , group = G_MSG, tooltip = T_MSG)
i_lxMsgTP2 = input.string (O_LXMSGTP2,'Long TP2' , group = G_MSG, tooltip = T_MSG)
i_lxMsgTP3 = input.string (O_LXMSGTP3,'Long TP3' , group = G_MSG, tooltip = T_MSG)
i_lxMsg = input.string (O_LXMSG ,'Long Exit' , group = G_MSG, tooltip = T_MSG)
i_seMsg = input.string (O_SEMSG ,'Short Entry' , group = G_MSG, tooltip = T_MSG)
i_sxMsgSL = input.string (O_SXMSGSL ,'Short SL' , group = G_MSG, tooltip = T_MSG)
i_sxMsgTP1 = input.string (O_SXMSGA ,'Short TP1' , group = G_MSG, tooltip = T_MSG)
i_sxMsgTP2 = input.string (O_SXMSGB ,'Short TP2' , group = G_MSG, tooltip = T_MSG)
i_sxMsgTP3 = input.string (O_SXMSGC ,'Short TP3' , group = G_MSG, tooltip = T_MSG)
i_sxMsg = input.string (O_SXMSGX ,'Short Exit' , group = G_MSG, tooltip = T_MSG)
i_src = close
G_DISPLAY = 'Display'
//
i_alertOn = input.bool (true, 'Alert Labels On/Off' , group = G_DISPLAY)
i_barColOn = input.bool (true, 'Bar Color On/Off' , group = G_DISPLAY)
// ———————————
// @function Calculate the Take Profit line, and the crossover or crossunder
f_tp(_condition, _conditionValue, _leTrigger, _seTrigger, _src, _lxLvlTP, _sxLvlTP)=>
var float _tpLine = 0.0
_topLvl = _src + (_src * (_lxLvlTP / 100))
_botLvl = _src - (_src * (_sxLvlTP / 100))
_tpLine := _condition != _conditionValue and _leTrigger ? _topLvl :
_condition != -_conditionValue and _seTrigger ? _botLvl :
nz(_tpLine )
// @function Similar to "ta.crossover" or "ta.crossunder"
f_cross(_scr1, _scr2, _over)=>
_cross = _over ? _scr1 > _scr2 and _scr1 < _scr2 :
_scr1 < _scr2 and _scr1 > _scr2
// ———————————
//
var float condition = 0.0
var float slLine = 0.0
var float entryLine = 0.0
//
entryLine := leTrigger and condition <= 0.0 ? close :
seTrigger and condition >= 0.0 ? close : nz(entryLine )
//
slTopLvl = i_src + (i_src * (i_lxLvlSL / 100))
slBotLvl = i_src - (i_src * (i_sxLvlSL / 100))
slLine := condition <= 0.0 and leTrigger ? slBotLvl :
condition >= 0.0 and seTrigger ? slTopLvl : nz(slLine )
slLong = f_cross(low, slLine, false)
slShort = f_cross(high, slLine, true )
//
= f_tp(condition, 1.2,leTrigger, seTrigger, i_src, i_lxLvlTP3, i_sxLvlTP3)
= f_tp(condition, 1.1,leTrigger, seTrigger, i_src, i_lxLvlTP2, i_sxLvlTP2)
= f_tp(condition, 1.0,leTrigger, seTrigger, i_src, i_lxLvlTP1, i_sxLvlTP1)
tp3Long = f_cross(high, tp3Line, true )
tp3Short = f_cross(low, tp3Line, false)
tp2Long = f_cross(high, tp2Line, true )
tp2Short = f_cross(low, tp2Line, false)
tp1Long = f_cross(high, tp1Line, true )
tp1Short = f_cross(low, tp1Line, false)
switch
leTrigger and condition <= 0.0 => condition := 1.0
seTrigger and condition >= 0.0 => condition := -1.0
tp3Long and condition == 1.2 => condition := 1.3
tp3Short and condition == -1.2 => condition := -1.3
tp2Long and condition == 1.1 => condition := 1.2
tp2Short and condition == -1.1 => condition := -1.2
tp1Long and condition == 1.0 => condition := 1.1
tp1Short and condition == -1.0 => condition := -1.1
slLong and condition >= 1.0 => condition := 0.0
slShort and condition <= -1.0 => condition := 0.0
lxTrigger and condition >= 1.0 => condition := 0.0
sxTrigger and condition <= -1.0 => condition := 0.0
longE = leTrigger and condition <= 0.0 and condition == 1.0
shortE = seTrigger and condition >= 0.0 and condition == -1.0
longX = lxTrigger and condition >= 1.0 and condition == 0.0
shortX = sxTrigger and condition <= -1.0 and condition == 0.0
longSL = slLong and condition >= 1.0 and condition == 0.0
shortSL = slShort and condition <= -1.0 and condition == 0.0
longTP3 = tp3Long and condition == 1.2 and condition == 1.3
shortTP3 = tp3Short and condition == -1.2 and condition == -1.3
longTP2 = tp2Long and condition == 1.1 and condition == 1.2
shortTP2 = tp2Short and condition == -1.1 and condition == -1.2
longTP1 = tp1Long and condition == 1.0 and condition == 1.1
shortTP1 = tp1Short and condition == -1.0 and condition == -1.1
// ——————————— {
//
if strategy.position_size <= 0 and longE and barstate.isconfirmed
strategy.entry(
'Long',
strategy.long,
alert_message = i_leMsg,
comment = 'LE')
if strategy.position_size > 0 and condition == 1.0
strategy.exit(
id = 'LXTP1',
from_entry = 'Long',
qty_percent = i_lxQtyTP1,
limit = tp1Line,
stop = slLine,
comment_profit = 'LXTP1',
comment_loss = 'SL',
alert_profit = i_lxMsgTP1,
alert_loss = i_lxMsgSL)
if strategy.position_size > 0 and condition == 1.1
strategy.exit(
id = 'LXTP2',
from_entry = 'Long',
qty_percent = i_lxQtyTP2,
limit = tp2Line,
stop = slLine,
comment_profit = 'LXTP2',
comment_loss = 'SL',
alert_profit = i_lxMsgTP2,
alert_loss = i_lxMsgSL)
if strategy.position_size > 0 and condition == 1.2
strategy.exit(
id = 'LXTP3',
from_entry = 'Long',
qty_percent = i_lxQtyTP3,
limit = tp3Line,
stop = slLine,
comment_profit = 'LXTP3',
comment_loss = 'SL',
alert_profit = i_lxMsgTP3,
alert_loss = i_lxMsgSL)
if longX
strategy.close(
'Long',
alert_message = i_lxMsg,
comment = 'LX')
//
if strategy.position_size >= 0 and shortE and barstate.isconfirmed
strategy.entry(
'Short',
strategy.short,
alert_message = i_leMsg,
comment = 'SE')
if strategy.position_size < 0 and condition == -1.0
strategy.exit(
id = 'SXTP1',
from_entry = 'Short',
qty_percent = i_sxQtyTP1,
limit = tp1Line,
stop = slLine,
comment_profit = 'SXTP1',
comment_loss = 'SL',
alert_profit = i_sxMsgTP1,
alert_loss = i_sxMsgSL)
if strategy.position_size < 0 and condition == -1.1
strategy.exit(
id = 'SXTP2',
from_entry = 'Short',
qty_percent = i_sxQtyTP2,
limit = tp2Line,
stop = slLine,
comment_profit = 'SXTP2',
comment_loss = 'SL',
alert_profit = i_sxMsgTP2,
alert_loss = i_sxMsgSL)
if strategy.position_size < 0 and condition == -1.2
strategy.exit(
id = 'SXTP3',
from_entry = 'Short',
qty_percent = i_sxQtyTP3,
limit = tp3Line,
stop = slLine,
comment_profit = 'SXTP3',
comment_loss = 'SL',
alert_profit = i_sxMsgTP3,
alert_loss = i_sxMsgSL)
if shortX
strategy.close(
'Short',
alert_message = i_sxMsg,
comment = 'SX')
// ———————————
c_tp = leTrigger or seTrigger ? na :
condition == 0.0 ? na : color.green
c_entry = leTrigger or seTrigger ? na :
condition == 0.0 ? na : color.blue
c_sl = leTrigger or seTrigger ? na :
condition == 0.0 ? na : color.red
p_tp1Line = plot (
condition == 1.0 or
condition == -1.0 ? tp1Line : na,
title = "TP Line 1",
color = c_tp,
linewidth = 1,
style = plot.style_linebr)
p_tp2Line = plot (
condition == 1.0 or
condition == -1.0 or
condition == 1.1 or
condition == -1.1 ? tp2Line : na,
title = "TP Line 2",
color = c_tp,
linewidth = 1,
style = plot.style_linebr)
p_tp3Line = plot (
condition == 1.0 or
condition == -1.0 or
condition == 1.1 or
condition == -1.1 or
condition == 1.2 or
condition == -1.2 ? tp3Line : na,
title = "TP Line 3",
color = c_tp,
linewidth = 1,
style = plot.style_linebr)
p_entryLine = plot (
condition >= 1.0 or
condition <= -1.0 ? entryLine : na,
title = "Entry Line",
color = c_entry,
linewidth = 1,
style = plot.style_linebr)
p_slLine = plot (
condition == 1.0 or
condition == -1.0 or
condition == 1.1 or
condition == -1.1 or
condition == 1.2 or
condition == -1.2 ? slLine : na,
title = "SL Line",
color = c_sl,
linewidth = 1,
style = plot.style_linebr)
fill(
p_tp3Line, p_entryLine,
color = leTrigger or seTrigger ? na :color.new(color.green, 90))
fill(
p_entryLine, p_slLine,
color = leTrigger or seTrigger ? na :color.new(color.red, 90))
//
plotshape(
i_alertOn and longE,
title = 'Long',
text = 'Long',
textcolor = color.white,
color = color.green,
style = shape.labelup,
size = size.tiny,
location = location.belowbar)
plotshape(
i_alertOn and shortE,
title = 'Short',
text = 'Short',
textcolor = color.white,
color = color.red,
style = shape.labeldown,
size = size.tiny,
location = location.abovebar)
plotshape(
i_alertOn and (longX or shortX) ? close : na,
title = 'Close',
text = 'Close',
textcolor = color.white,
color = color.gray,
style = shape.labelup,
size = size.tiny,
location = location.absolute)
l_tp = i_alertOn and (longTP1 or shortTP1) ? close : na
plotshape(
l_tp,
title = "TP1 Cross",
text = "TP1",
textcolor = color.white,
color = color.olive,
style = shape.labelup,
size = size.tiny,
location = location.absolute)
plotshape(
i_alertOn and (longTP2 or shortTP2) ? close : na,
title = "TP2 Cross",
text = "TP2",
textcolor = color.white,
color = color.olive,
style = shape.labelup,
size = size.tiny,
location = location.absolute)
plotshape(
i_alertOn and (longTP3 or shortTP3) ? close : na,
title = "TP3 Cross",
text = "TP3",
textcolor = color.white,
color = color.olive,
style = shape.labelup,
size = size.tiny,
location = location.absolute)
plotshape(
i_alertOn and (longSL or shortSL) ? close : na,
title = "SL Cross",
text = "SL",
textcolor = color.white,
color = color.maroon,
style = shape.labelup,
size = size.tiny,
location = location.absolute)
//
plot(
na,
title = "─── ───",
editable = false,
display = display.data_window)
plot(
condition,
title = "condition",
editable = false,
display = display.data_window)
plot(
strategy.position_size * 100,
title = ".position_size",
editable = false,
display = display.data_window)
//#endregion }
// ——————————— <↑↑↑ G_RISK ↑↑↑>
//#region ———— <↓↓↓ G_SCRIPT02 ↓↓↓> {
// @function Queues a new element in an array and de-queues its first element.
f_qDq(_array, _val) =>
array.push(_array, _val)
_return = array.shift(_array)
_return
var line a_slLine = array.new_line(1)
var line a_entryLine = array.new_line(1)
var line a_tp3Line = array.new_line(1)
var line a_tp2Line = array.new_line(1)
var line a_tp1Line = array.new_line(1)
var label a_slLabel = array.new_label(1)
var label a_tp3label = array.new_label(1)
var label a_tp2label = array.new_label(1)
var label a_tp1label = array.new_label(1)
var label a_entryLabel = array.new_label(1)
newEntry = longE or shortE
entryIndex = 1
entryIndex := newEntry ? bar_index : nz(entryIndex )
lasTrade = bar_index >= entryIndex
l_right = 10
line.delete(
f_qDq(a_slLine,
line.new(
entryIndex,
slLine,
last_bar_index + l_right,
slLine,
style = line.style_solid,
color = c_sl)))
line.delete(
f_qDq(a_entryLine,
line.new(
entryIndex,
entryLine,
last_bar_index + l_right,
entryLine,
style = line.style_solid,
color = color.blue)))
line.delete(
f_qDq(a_tp3Line,
line.new(
entryIndex,
tp3Line,
last_bar_index + l_right,
tp3Line,
style = line.style_solid,
color = c_tp)))
line.delete(
f_qDq(a_tp2Line,
line.new(
entryIndex,
tp2Line,
last_bar_index + l_right,
tp2Line,
style = line.style_solid,
color = c_tp)))
line.delete(
f_qDq(a_tp1Line,
line.new(
entryIndex,
tp1Line,
last_bar_index + l_right,
tp1Line,
style = line.style_solid,
color = c_tp)))
label.delete(
f_qDq(a_slLabel,
label.new(
last_bar_index + l_right,
slLine,
'SL: ' + str.tostring(slLine, '##.###'),
style = label.style_label_left,
textcolor = color.white,
color = c_sl)))
label.delete(
f_qDq(a_entryLabel,
label.new(
last_bar_index + l_right,
entryLine,
'Entry: ' + str.tostring(entryLine, '##.###'),
style = label.style_label_left,
textcolor = color.white,
color = color.blue)))
label.delete(
f_qDq(a_tp3label,
label.new(
last_bar_index + l_right,
tp3Line,
'TP3: ' + str.tostring(tp3Line, '##.###'),
style = label.style_label_left,
textcolor = color.white,
color = c_tp)))
label.delete(
f_qDq(a_tp2label,
label.new(
last_bar_index + l_right,
tp2Line,
'TP2: ' + str.tostring(tp2Line, '##.###'),
style = label.style_label_left,
textcolor = color.white,
color = c_tp)))
label.delete(
f_qDq(a_tp1label,
label.new(
last_bar_index + l_right,
tp1Line,
'TP1: ' + str.tostring(tp1Line, '##.###'),
style = label.style_label_left,
textcolor = color.white,
color = c_tp)))
// ———————————
//
if longE or shortE or longX or shortX
alert(message = 'Any Alert', freq = alert.freq_once_per_bar_close)
if longE
alert(message = 'Long Entry', freq = alert.freq_once_per_bar_close)
if shortE
alert(message = 'Short Entry', freq = alert.freq_once_per_bar_close)
if longX
alert(message = 'Long Exit', freq = alert.freq_once_per_bar_close)
if shortX
alert(message = 'Short Exit', freq = alert.freq_once_per_bar_close)
//#endregion }
// ——————————— <↑↑↑ G_SCRIPT03 ↑↑↑>
Bull Engulf @ Rolling Support + HTF Confluence (2-8w) This indicator is designed to identify high-probability bullish reversal setups that occur at proven support levels, with confirmation from higher timeframes.
It is built for swing traders targeting 2–8 week moves, prioritizing win rate and trade quality over frequency.
The script focuses on institutional-style price behavior: pullbacks into support, seller exhaustion, and clear buyer confirmation before entry.
Core Logic
A signal is generated only when all of the following align:
Bullish Engulfing Candle
Current candle fully engulfs the prior candle’s body
Optional filters ensure strong momentum (close above prior high, meaningful candle size)
Rolling-Low Support
Price must be near a rolling support level based on recent swing lows
Support adapts dynamically to market structure
Higher Timeframe (HTF) Confluence
Daily setups can require alignment with weekly and monthly support
Weekly setups can require monthly support
This dramatically reduces low-quality signals
Strongest-Only Scoring System
Each setup is scored based on:
Proximity to support
HTF confluence
Candle strength
Volume and volatility filters
Only setups meeting a minimum score threshold are shown
Signals & Labels
SETUP / TOP label
Appears when a valid bullish engulfing forms at support with HTF confirmation.
ENTRY label
Appears when price breaks above the high of the engulfing candle (confirmation entry).
Support Lines
Local (rolling) support
Weekly and Monthly support (when applicable)
Each label includes:
Timeframe
Score
Support distance
Suggested risk level
A standardized options structure for 2–8 week trades
Intended Trading Style
Timeframe: Daily and Weekly charts
Trade Duration: ~2–8 weeks
Market Type: Stocks (best on liquid, mid/large-cap names)
Approach:
Wait for price to come to support
Wait for buyers to prove control
Enter only after confirmation
This indicator is not designed for:
Day trading
Chasing breakouts
High-frequency signals
Fewer signals is intentional.
How to Use
Apply the indicator to Daily or Weekly charts
Wait for a SETUP/TOP label at support
Enter only after the ENTRY confirmation (break above engulfing high)
Use the displayed risk level to define invalidation
Let the trade develop over multiple weeks
Alerts can be enabled for:
Pre-market watchlist signals (yesterday’s setups)
Confirmed signals at the close
Entry confirmation
Why This Works
Markets often reverse at support, not randomly.
By combining:
Structural support
Price-action confirmation
Higher timeframe alignment
this indicator filters out most noise and focuses on areas where larger participants are likely active.
Disclaimer
This indicator is for educational and analytical purposes only.
It does not constitute financial advice. Always manage risk appropriately.
ATH Dip Levels - Crypto Edition with Reactive TPHarika bir fikir! Bu indikatörü toplulukla paylaşırken (TradingView Public Library veya GitHub gibi), insanların stratejinin mantığını ve gücünü anlamaları için etkileyici bir İngilizce açıklama hazırladım.
İşte paylaşımın için kullanabileceğin başlık, özet ve özellikler listesi:
🚀 Indicator Title: ATH Dip Levels - Crypto Reactive Strategy
Overview
This indicator is a specialized "Buy the Dip" and "Reactive Take Profit" system designed specifically for the high volatility of the crypto market. Instead of following lagging indicators, it focuses on the most fundamental metric: Percentage drawdown from the rolling All-Time High (ATH).
It identifies historical discount zones and automatically calculates a "Reactive Take Profit" target for each entry, allowing you to scale out during market bounces.
Key Features
📉 1. Dynamic Buy Zones (DCA Levels)
The script tracks a rolling 220-day ATH and plots 7 distinct discount levels:
Minor Pullbacks: 10%, 20%
Major Corrections: 30%, 40%
Capitulation / Bear Market Bottoms: 55%, 70%, 85% (Highlighted in Neon for max opportunity).
💰 2. Reactive Take Profit (The "Half-Drop" Rule)
This is the core of the strategy. For every buy level triggered, the script automatically sets a "RE-SELL" target based on the severity of the drop:
Logic: The profit target is exactly half of the percentage drop.
Example: If you buy at a 30% dip, the target is a +15% recovery from that entry.
Example: If you buy at a 70% dip, the target is a +35% recovery from that entry. This captures the natural "Dead Cat Bounce" or "Mean Reversion" common in crypto.
🧠 3. Intelligent State Management
Single Trigger per Cycle: Each level triggers only once per ATH cycle to avoid "choppy" market noise.
Automatic Reset: All levels and status flags reset automatically when the price makes a New ATH, preparing you for the next market cycle.
📊 4. Live Status Dashboard
A clean, real-time table on the top-right shows you:
Current ATH price.
Which buy levels have been Hit (✅).
Which profit targets have been Sold (💰).
How to Use
Accumulate: When price hits a green "BUY" label, it's a historical discount zone.
Scale Out: When price hits the purple "RE-SELL" label, take profits on that specific position to reclaim liquidity.
HODL the Rest: Use this to lower your break-even price while keeping a "moon bag" for the next ATH.
Author's Note
Best used on 4H and 1D timeframes. This is a mathematical approach to volatility, removing emotions from your trading.
SEPA Sell Signal IndicatorSEPA Sell Signal Indicator - Documentation
Overview
A comprehensive exit signal indicator designed to work alongside the main SEPA (Stage, EMA, Price Action) indicator. It detects entry points via SEPA base breakouts and provides intelligent sell signals to protect profits and limit losses.
Core Features
Entry Detection
Automatically detects SEPA base breakout patterns
Tracks entry price and calculates swing low reference
Monitors position status (LONG/FLAT)
5 Sell Triggers
Price < EMA50 (Technical weakness)
Protected by EMA10 system (see below)
Trend Broken (Price < EMA150 AND EMA200)
Major trend reversal signal
Not protected - always fires
EMA Cross (EMA50 < EMA150)
Death cross indicating momentum shift
Not protected - always fires
Swing Low Broken (Price < Previous Swing Low)
Hard stop loss trigger
Lookback period: 10 bars (adjustable 5-50)
Not protected - always fires
Relative Strength Negative (RS vs NIFTY500 < 0)
Stock underperforming benchmark index
Based on 21-period EMA comparison
Not protected - always fires
EMA10 Protection System (Refinement Feature)
Purpose
Prevents premature exits during healthy pullbacks in strong uptrends.
Protection Criteria (All must be true)
✅ Stock in uptrend (EMA50 > EMA150 > EMA200)
✅ Price above EMA10
✅ Price above EMA50
✅ Only protects Condition 1 (Price < EMA50)
Two-Stage Warning System
Stage 1: Yellow "CAUTION" Signal
Appears when Condition 1 triggers but protection is active
Grace period begins (default: 5 bars)
Allows time for price to recover
Stage 2: Red "SELL" Signal
Fires when ANY of these occur:
Warning timer expires (5/5 bars)
Price drops below EMA10
Price drops below EMA50
Uptrend ends
Any other sell condition (2-5) triggers
Settings
Enable EMA10 Protection: ON/OFF toggle (default: ON)
Protection Time Limit: 1-20 bars (default: 5)
Visual Elements
Chart Signals
🔴 Red Triangle (SELL): Confirmed sell signal - exit position
🟡 Yellow Circle (CAUTION): Warning - monitor closely
🟢 Green Background Tint: Currently in position
Information Tables
Top Right - Sell Conditions Table
Shows real-time status of all 5 conditions
✓ (Green) = Condition NOT met (safe)
✓ (Red) = Condition met (danger)
⚠ (Yellow) = Warning active (monitoring)
Displays EMA10 protection status (ON/OFF)
Shows warning timer (e.g., "3/5")
Bottom Right - Position Details (when in position)
Entry price
Swing low level
Relative strength value (color-coded)
Current P&L percentage
Bottom Right - Status (when flat)
Shows "NO POSITION"
Indicates waiting for "BASE BREAKOUT"
Alert System
Entry Signal: SEPA base breakout detected
Warning Alert: Caution - price below EMA50 but protected
EMA50 Break: Sell confirmed after protection expires
Trend Break: Major reversal - exit immediately
EMA Cross: Death cross - exit immediately
Swing Low Break: Hard stop - exit immediately
RS Negative: Underperformance - exit immediately
Configuration Parameters
ParameterDefaultRangeDescriptionEMA 10101-50Fast moving average for protectionEMA 50501-200Primary trend indicatorEMA 1501501-300Medium-term trendEMA 2002001-500Long-term trendSwing Low Lookback105-50Bars to find previous swing lowRS EMA215-50Period for relative strength calcBenchmarkCNX500-Index for RS comparisonProtection Time Limit51-20Max bars for warning stateTable Text Size1 (Small)0-40=Tiny, 4=HugeEMA10 ProtectionONON/OFFEnable/disable protection
Trading Workflow
Entry: Indicator detects SEPA base breakout
Monitoring: Track 5 sell conditions in real-time
Warning: Yellow CAUTION if minor weakness (Condition 1 only)
Grace Period: 5 bars to recover or confirm breakdown
Exit: Red SELL signal when conditions confirm weakness
Reset: Returns to flat, waits for next base breakout
Key Advantages
✅ Selective Protection: Only protects shallow pullbacks, not real breakdowns
✅ Time-Limited: Won't delay exits indefinitely (5-bar max)
✅ Multi-Layered: 5 independent sell conditions
✅ Visual Clarity: Color-coded signals and comprehensive tables
✅ Customizable: All parameters adjustable for your style
✅ Alert System: Never miss a critical signal
Philosophy
The indicator balances two competing goals:
Stay in winning trades during healthy pullbacks
Exit quickly when trends genuinely reverse
The refined EMA10 protection system achieves this by giving breathing room for minor dips while ensuring swift exits on confirmed weakness.
Dow Theory Cockpit1. Evolution History
The system has reached its final form through five distinct development phases:
Phase 1: Logic Development (V1–V6)
Established four core logics: BREAK and DIP (Dow Theory), SNIPER (Reversal), and PUSH (Trend continuation).
Implemented the Multi-Timeframe (MTF) panel and Market Scanner.
Phase 2: Strategy Transition (V7–V9)
Integrated backtesting features, but found the Pine Script calculation load too heavy for real-time charting.
Phase 3: Optimization & Performance (V10–V11)
Prioritized smooth real-time execution by returning to a lightweight indicator format.
Introduced the on-chart stats panel for Win Rate and P&L tracking.
Phase 4: Visual Completion (V12–V13)
High-Vis Fib: Bold orange lines highlighting the Golden Zone (38.2%/61.8%).
Visual Zones: Introduced Green and Red bands for intuitive trade tracking.
Phase 5: Smart Adjust Implementation (V14 - Current)
Barrier Avoidance: Automatically detects nearby Support/Resistance boxes and shortens the TP to secure profits before a potential reversal.
Dynamic RR Optimization: Automatically adjusts the SL in tandem with the shortened TP to maintain a healthy Risk-Reward ratio.
2. Specifications
Name: Dow Theory Cockpit
Format: Indicator
Trading Style: Scalping to Day Trading
Timeframes: 5M, 15M (Recommended), 1H
Assets: All pairs (Gold, Crypto, Forex, Indices)
3. Features
① Quad-Logic Entry Signals
🎯 SNIPER: Reversal logic targeting "Tops and Bottoms" when the market is overextended.
🌊 DIP: Trend-following logic for "Deep Pullbacks" with clean Moving Average alignment.
⚡ PUSH: Scalping logic for "Shallow Pullbacks" during high-momentum trends.
🚀 BREAK: Classic Dow Theory momentum entry on recent High/Low breakouts.
② Visual Analysis Tools
S/R BOX: Displays key price levels as shaded zones to account for market noise and wick volatility.
High-Vis Auto Fib: Automatically plots Fibonacci levels, highlighting the Golden Zone with bold lines.
③ Bulletproof Money Management
Calculated Lot Size: Displays the precise lot size based on your account balance and Risk % directly on the signal label.
TP/SL Zones: Dynamic Green and Red bands show exactly where your profit and loss targets lie.
④ Smart Adjust Function (NEW)
Logic: Automatically scans for strong S/R walls near your entry.
Normal Condition: Displays TP/SL at your default Risk-Reward ratio.
Wall Detected: Automatically pulls the TP to the edge of the barrier and tightens the SL to maintain the ratio.
Alert: A "⚠️Adj" warning appears on the label when this adjustment is active.
⑤ Integrated Info Panel
Main Panel: Trends across all timeframes, real-time Win Rate, and Period Net P&L.
Scanner: Constant monitoring of Gold/JPY/BTC and major US/JP economic data.
4. How to Use
Configuration: In the settings under , input your balance and Risk %. Set your start date in .
Entry Decision: Wait for the "★ BUY" or "★ SELL" label.
"⚠️Adj" displayed: The system has detected a nearby barrier and narrowed the TP/SL for safety. This results in a higher win rate with smaller gains.
No warning: No barriers detected. Targets the default wide Risk-Reward ratio.
Execution: Enter using the exact Lot size on the label. Set your Limit/Stop orders at the provided TP/SL prices.
Exit: The trade concludes when the price reaches the Green or Red zone. Smart Adjust ensures you exit the market before a potential bounce.
1. 大幅なアップデート履歴 (Evolution History)
このシステムは、以下の5つのフェーズを経て完成しました。
フェーズ1:ロジック構築期 (V1〜V6)
ダウ理論に基づく「BREAK」「DIP」に加え、逆張り「SNIPER」、順張り追撃「PUSH」の4つのロジックを搭載。
マルチタイムフレーム(MTF)パネル、市場監視スキャナーの実装。
フェーズ2:ストラテジー化への挑戦 (V7〜V9)
バックテスト機能を搭載したが、Pine Scriptの計算負荷増大によりチャート動作が重くなる問題が発生。
フェーズ3:軽量化と原点回帰 (V10〜V11)
**「実戦での快適さ」**を最優先し、indicator 形式へ戻して超軽量化。
期間損益や勝率を、チャート上のパネルで簡易確認できる仕様に変更。
フェーズ4:視認性の完成 (V12〜V13)
High-Vis Fib: フィボナッチの重要ライン(38.2%/61.8%)を太いオレンジ実線で強調。
Visual Zone: トレード中、チャート上に「緑(利益)/赤(損失)」の帯を表示し、直感的な判断を可能に。
フェーズ5:スマート・アジャスト実装 (V14 - Current)
障害物回避機能: エントリー方向の直近に「逆側のレジサポBOX(壁)」がある場合、TPをその手前に自動短縮し、反発による含み益消滅リスクを回避。
RR自動最適化: TPの短縮に合わせて、最低限のリスクリワード(RR)を維持するようSLも自動調整する機能を搭載。
2. 全体の仕様 (Specifications)
名称: Dow Theory Cockpit
形式: インジケーター (Indicator)
※TradingViewの「ストラテジーテスター」タブは使用しません。
推奨スタイル: スキャルピング 〜 デイトレード
推奨時間足: 5分足、15分足(推奨)、1時間足
通貨ペア: 全通貨対応(Gold, Crypto, Forex, Index)
3. 特徴と機能 (Features)
① 4つの「高期待値」エントリーロジック
相場の状況に合わせて最適なサインが点灯します。
🎯 SNIPER: 行き過ぎた相場の反転(天底)を狙う逆張り。
🌊 DIP: 移動平均線の並びが良い状態での「深い押し目」を拾う順張り。
⚡ PUSH: 強いトレンド(ADX上昇中)の「浅い押し目」で飛び乗るスキャルピング用。
🚀 BREAK: ダウ理論の基本、直近高値・安値ブレイクでのエントリー。
② 視覚的環境認識ツール
レジサポ BOX: 重要価格帯を「面(ボックス)」で表示。ヒゲのダマシを許容します。
High-Vis Auto Fib: 直近の波を検知し、38.2%/61.8%(ゴールデンゾーン)を太線で強調表示。
③ 鉄壁の資金管理 (Money Management)
推奨ロット表示: 口座資金と許容リスク(%)に基づき、適正ロット数を自動計算して表示します。
TP/SL ゾーン: エントリー中、チャート上に「利確までの緑の帯」と「損切までの赤の帯」が表示され、価格の進行度合いが一目で分かります。
④ スマート・アジャスト機能 (Smart Adjust) ★NEW
機能: エントリー時、目標地点の手前に「強力なレジサポBOX」があるかを自動検知します。
動作:
通常時: 設定通りのRR(2.5倍など)でTP/SLを表示。
壁がある時: **「壁の手前」**にTPを引き下げ、それに合わせてSLも浅く調整します。
表示: 調整が行われた場合、ラベルに 「⚠️Adj(調整済み)」 と警告が出ます。
⑤ 情報集約パネル
Main Panel: 全時間足のトレンド方向、直近の勝率、期間内の純損益を表示。
Scanner: Gold / JPY / BTC の動向と、日米経済指標を常時監視。
4. 使い方 (How to Use)
STEP 1: 初期設定
インジケーター設定の 【F. 資金管理】 を開き、口座資金 と リスク(%) を入力します。
【T. バックテスト期間】 で損益計算を開始したい日付を設定します。
STEP 2: エントリー判断
チャートに 「★ BUY」 または 「★ SELL」 のラベルが出現するのを待ちます。
ラベルの確認:
「⚠️Adj」 と出ている場合 → 「近くに壁があるため、TP/SLを狭く調整しました」という意味です。勝率は上がりますが、値幅は小さくなります。
何も出ていない場合 → 「障害物なし。通常のRRで大きく狙います」という意味です。
STEP 3: 注文 (Execution)
ラベルの数値を信頼して注文を出します。
Lot: 表示された数量を入力。
TP/SL: 表示された価格に指値・逆指値を置く。
STEP 4: 決済 (Exit)
チャート上の 「緑の帯(TP)」 か 「赤の帯(SL)」 にローソク足が到達したら決済です。
**「スマートアジャスト」により、壁の手前で利確設定されているため、「反発して戻ってくる前に逃げ切る」**ことができます。
Dow Theory Cockpit [Final Fixed V15]1. Evolution History
The system has reached its final form through five distinct development phases:
Phase 1: Logic Development (V1–V6)
Established four core logics: BREAK and DIP (Dow Theory), SNIPER (Reversal), and PUSH (Trend continuation).
Implemented the Multi-Timeframe (MTF) panel and Market Scanner.
Phase 2: Strategy Transition (V7–V9)
Integrated backtesting features, but found the Pine Script calculation load too heavy for real-time charting.
Phase 3: Optimization & Performance (V10–V11)
Prioritized smooth real-time execution by returning to a lightweight indicator format.
Introduced the on-chart stats panel for Win Rate and P&L tracking.
Phase 4: Visual Completion (V12–V13)
High-Vis Fib: Bold orange lines highlighting the Golden Zone (38.2%/61.8%).
Visual Zones: Introduced Green and Red bands for intuitive trade tracking.
Phase 5: Smart Adjust Implementation (V14 - Current)
Barrier Avoidance: Automatically detects nearby Support/Resistance boxes and shortens the TP to secure profits before a potential reversal.
Dynamic RR Optimization: Automatically adjusts the SL in tandem with the shortened TP to maintain a healthy Risk-Reward ratio.
2. Specifications
Name: Dow Theory Cockpit
Format: Indicator
Trading Style: Scalping to Day Trading
Timeframes: 5M, 15M (Recommended), 1H
Assets: All pairs (Gold, Crypto, Forex, Indices)
3. Features
① Quad-Logic Entry Signals
🎯 SNIPER: Reversal logic targeting "Tops and Bottoms" when the market is overextended.
🌊 DIP: Trend-following logic for "Deep Pullbacks" with clean Moving Average alignment.
⚡ PUSH: Scalping logic for "Shallow Pullbacks" during high-momentum trends.
🚀 BREAK: Classic Dow Theory momentum entry on recent High/Low breakouts.
② Visual Analysis Tools
S/R BOX: Displays key price levels as shaded zones to account for market noise and wick volatility.
High-Vis Auto Fib: Automatically plots Fibonacci levels, highlighting the Golden Zone with bold lines.
③ Bulletproof Money Management
Calculated Lot Size: Displays the precise lot size based on your account balance and Risk % directly on the signal label.
TP/SL Zones: Dynamic Green and Red bands show exactly where your profit and loss targets lie.
④ Smart Adjust Function (NEW)
Logic: Automatically scans for strong S/R walls near your entry.
Normal Condition: Displays TP/SL at your default Risk-Reward ratio.
Wall Detected: Automatically pulls the TP to the edge of the barrier and tightens the SL to maintain the ratio.
Alert: A "⚠️Adj" warning appears on the label when this adjustment is active.
⑤ Integrated Info Panel
Main Panel: Trends across all timeframes, real-time Win Rate, and Period Net P&L.
Scanner: Constant monitoring of Gold/JPY/BTC and major US/JP economic data.
4. How to Use
Configuration: In the settings under , input your balance and Risk %. Set your start date in .
Entry Decision: Wait for the "★ BUY" or "★ SELL" label.
"⚠️Adj" displayed: The system has detected a nearby barrier and narrowed the TP/SL for safety. This results in a higher win rate with smaller gains.
No warning: No barriers detected. Targets the default wide Risk-Reward ratio.
Execution: Enter using the exact Lot size on the label. Set your Limit/Stop orders at the provided TP/SL prices.
Exit: The trade concludes when the price reaches the Green or Red zone. Smart Adjust ensures you exit the market before a potential bounce.
1. 大幅なアップデート履歴 (Evolution History)
このシステムは、以下の5つのフェーズを経て完成しました。
フェーズ1:ロジック構築期 (V1〜V6)
ダウ理論に基づく「BREAK」「DIP」に加え、逆張り「SNIPER」、順張り追撃「PUSH」の4つのロジックを搭載。
マルチタイムフレーム(MTF)パネル、市場監視スキャナーの実装。
フェーズ2:ストラテジー化への挑戦 (V7〜V9)
バックテスト機能を搭載したが、Pine Scriptの計算負荷増大によりチャート動作が重くなる問題が発生。
フェーズ3:軽量化と原点回帰 (V10〜V11)
**「実戦での快適さ」**を最優先し、indicator 形式へ戻して超軽量化。
期間損益や勝率を、チャート上のパネルで簡易確認できる仕様に変更。
フェーズ4:視認性の完成 (V12〜V13)
High-Vis Fib: フィボナッチの重要ライン(38.2%/61.8%)を太いオレンジ実線で強調。
Visual Zone: トレード中、チャート上に「緑(利益)/赤(損失)」の帯を表示し、直感的な判断を可能に。
フェーズ5:スマート・アジャスト実装 (V14 - Current)
障害物回避機能: エントリー方向の直近に「逆側のレジサポBOX(壁)」がある場合、TPをその手前に自動短縮し、反発による含み益消滅リスクを回避。
RR自動最適化: TPの短縮に合わせて、最低限のリスクリワード(RR)を維持するようSLも自動調整する機能を搭載。
2. 全体の仕様 (Specifications)
名称: Dow Theory Cockpit
形式: インジケーター (Indicator)
※TradingViewの「ストラテジーテスター」タブは使用しません。
推奨スタイル: スキャルピング 〜 デイトレード
推奨時間足: 5分足、15分足(推奨)、1時間足
通貨ペア: 全通貨対応(Gold, Crypto, Forex, Index)
3. 特徴と機能 (Features)
① 4つの「高期待値」エントリーロジック
相場の状況に合わせて最適なサインが点灯します。
🎯 SNIPER: 行き過ぎた相場の反転(天底)を狙う逆張り。
🌊 DIP: 移動平均線の並びが良い状態での「深い押し目」を拾う順張り。
⚡ PUSH: 強いトレンド(ADX上昇中)の「浅い押し目」で飛び乗るスキャルピング用。
🚀 BREAK: ダウ理論の基本、直近高値・安値ブレイクでのエントリー。
② 視覚的環境認識ツール
レジサポ BOX: 重要価格帯を「面(ボックス)」で表示。ヒゲのダマシを許容します。
High-Vis Auto Fib: 直近の波を検知し、38.2%/61.8%(ゴールデンゾーン)を太線で強調表示。
③ 鉄壁の資金管理 (Money Management)
推奨ロット表示: 口座資金と許容リスク(%)に基づき、適正ロット数を自動計算して表示します。
TP/SL ゾーン: エントリー中、チャート上に「利確までの緑の帯」と「損切までの赤の帯」が表示され、価格の進行度合いが一目で分かります。
④ スマート・アジャスト機能 (Smart Adjust) ★NEW
機能: エントリー時、目標地点の手前に「強力なレジサポBOX」があるかを自動検知します。
動作:
通常時: 設定通りのRR(2.5倍など)でTP/SLを表示。
壁がある時: **「壁の手前」**にTPを引き下げ、それに合わせてSLも浅く調整します。
表示: 調整が行われた場合、ラベルに 「⚠️Adj(調整済み)」 と警告が出ます。
⑤ 情報集約パネル
Main Panel: 全時間足のトレンド方向、直近の勝率、期間内の純損益を表示。
Scanner: Gold / JPY / BTC の動向と、日米経済指標を常時監視。
4. 使い方 (How to Use)
STEP 1: 初期設定
インジケーター設定の 【F. 資金管理】 を開き、口座資金 と リスク(%) を入力します。
【T. バックテスト期間】 で損益計算を開始したい日付を設定します。
STEP 2: エントリー判断
チャートに 「★ BUY」 または 「★ SELL」 のラベルが出現するのを待ちます。
ラベルの確認:
「⚠️Adj」 と出ている場合 → 「近くに壁があるため、TP/SLを狭く調整しました」という意味です。勝率は上がりますが、値幅は小さくなります。
何も出ていない場合 → 「障害物なし。通常のRRで大きく狙います」という意味です。
STEP 3: 注文 (Execution)
ラベルの数値を信頼して注文を出します。
Lot: 表示された数量を入力。
TP/SL: 表示された価格に指値・逆指値を置く。
STEP 4: 決済 (Exit)
チャート上の 「緑の帯(TP)」 か 「赤の帯(SL)」 にローソク足が到達したら決済です。
**「スマートアジャスト」により、壁の手前で利確設定されているため、「反発して戻ってくる前に逃げ切る」**ことができます。
MDZ Strategy v4.2 - Multi-factor trend strategyWhat This Strategy Does
MDZ (Momentum Divergence Zones) v4.2 is a trend-following strategy that enters long positions when multiple momentum and trend indicators align. It's designed for swing trading on higher timeframes (2H-4H) and uses ATR-based position management.
The strategy waits for strong trend confirmation before entry, requiring agreement across five different filters. This reduces trade frequency but aims to improve signal quality.
Entry Logic
A long entry triggers when ALL of the following conditions are true:
1. EMA Stack (Trend Structure)
Price > EMA 20 > EMA 50 > EMA 200
This "stacked" alignment indicates a strong established uptrend
2. RSI Filter (Momentum Window)
RSI between 45-75 (default)
Confirms momentum without entering overbought territory
3. ADX Filter (Trend Strength)
ADX > 20 (default)
Ensures the trend has sufficient strength, not a ranging market
4. MACD Confirmation
MACD line above signal line
Histogram increasing (momentum accelerating)
5. Directional Movement
+DI > -DI
Confirms bullish directional pressure
Exit Logic
Positions are managed with ATR-based levels:
ParameterDefaultDescriptionStop Loss2.5 × ATRBelow entry priceTake Profit6.0 × ATRAbove entry priceTrailing Stop2.0 × ATROptional, activates after entry
The default configuration produces a 1:2.4 risk-reward ratio.
Presets
The strategy includes optimized presets based on historical testing:
PresetTimeframeNotes1H Standard1 HourMore frequent signals2H Low DD2 HourConservative settings3H Optimized3 HourBalanced approach4H Swing4 HourWider stops for swing tradesCustomAnyFull manual control
Select "Custom" to adjust all parameters manually.
Inputs Explained
EMAs
Fast EMA (20): Short-term trend
Slow EMA (50): Medium-term trend
Trend EMA (200): Long-term trend filter
RSI
Length: Lookback period (default 14)
Min/Max: Entry window to avoid extremes
ADX
Min ADX: Minimum trend strength threshold
Risk
Stop Loss ATR: Multiplier for stop distance
Take Profit ATR: Multiplier for target distance
Trail ATR: Trailing stop distance (if enabled)
Session (Optional)
Filter entries by time of day
Recommended OFF for 3H+ timeframes
What's Displayed
Info Panel (Top Right)
Current preset
Trend status (Strong/Wait)
ADX, RSI, MACD readings
Position status
Risk-reward ratio
Stats Panel (Top Left)
Net P&L %
Total trades
Win rate
Profit factor
Maximum drawdown
Chart
EMA lines (20 blue, 50 orange, 200 purple)
Green background during strong uptrend
Triangle markers on entry signals
Important Notes
⚠️ This is a long-only strategy. It does not take short positions.
⚠️ Historical results do not guarantee future performance. Backtests show what would have happened in the past under specific conditions. Markets change, and any strategy can experience drawdowns or extended losing periods.
⚠️ Risk management is your responsibility. The default settings risk 100% of equity per trade for backtesting purposes. In live trading, appropriate position sizing based on your risk tolerance is essential.
⚠️ Slippage and commissions matter. The backtest includes 0.02% commission and 1 tick slippage, but actual execution costs vary by broker and market conditions.
Best Practices
Test on your specific market — Results vary significantly across different instruments
Use appropriate position sizing — Never risk more than you can afford to lose
Combine with your own analysis — No indicator replaces understanding market context
Paper trade first — Validate the strategy matches your trading style before risking capital
Alerts
Two alerts are available:
MDZ Long Entry: Fires when all entry conditions are met
Uptrend Started: Fires when EMA stack first aligns bullish
Methodology
This strategy is based on the principle that trend continuation has better odds than reversal when multiple timeframe momentum indicators agree. By requiring five independent confirmations, it filters out weak setups at the cost of fewer total signals.
The ATR-based exits adapt to current volatility rather than using fixed pip/point targets, which helps the strategy adjust to different market conditions.
Questions? Leave a comment below.
TA Confluence Scanner v2.9 | Mint_Algo📘 TA Confluence Scanner
Introduction
The TA Confluence Scanner is a multi-factor trend system designed to filter market noise and identify high-probability trade setups. By combining adaptive algorithms (KAMA) with Price Action methodologies (SMC, Breakouts, Fractals), this indicator operates on the principle of Confluence : a signal is only valid when multiple independent tools agree on the direction.
Instead of relying on a single lagging indicator (like just MA fast and slow crossover), this script acts as a "Scanner," evaluating the market state through Volatility, Trend Structure, and Equilibrium.
───────────────────────────────────────────────────
Important Note
To make this "Plug & Play," I have included optimized presets in the settings for different timeframes (1m/15m-1h/4h-1D) and trading styles (Scalper, Intraday, Swing, Investor) tested on symbols:
FX:EURUSD
IG:NASDAQ
BITSTAMP:BTCUSD
BINANCE:ETHUSD
CAPITALCOM:US500
OANDA:XAUUSD
NASDAQ:AAPL
NASDAQ:TSLA
BUT default settings already include a good preset which excludes most of the noise and grabs the trend better (fewer entries, but quality is higher).
Check the presets at the bottom 👇
───────────────────────────────────────────────────
Core Features
Adaptive Trend Filter (KAMA): Adjusts to market volatility to distinguish between chop and true trends.
SMC Equilibrium (EQ) Fans: A three-tiered dynamic structure (Fast, Medium, Slow) for trailing stops and targets.
Confluence Counter: Visually displays the strength of a signal (e.g., "Strong 4/6") based on how many factors align.
Re-Entry Logic: Identifies low-risk entry points within an existing trend.
Automated S/R & Breakouts: Detects key pivot levels and structural breaks.
───────────────────────────────────────────────────
Settings & Components Breakdown
1. KAMA (Primary Trend Filter)
The backbone of the system. It calculates the Efficiency Ratio (ER) of price movement.
How it works: If the ER is high (strong trend), KAMA follows price closely. If ER is low (ranging), KAMA flattens out to prevent false signals.
Tuning:
Fast (ER ~100/5/60): For Scalping.
Smooth: Default settings are optimized for a balance between lag and noise reduction.
2. SMC Equilibrium (EQ Structure)
Based on the HL2 formula (High+Low / 2), this creates a "fan" of three lines:
EQ1 (Fast): The aggressive line. Used for early exits or scalping stops.
EQ2 (Medium): The baseline trend structure.
EQ3 (Slow): The major trend container. Used for position trading.
Usage: Use these lines to gauge how far price has deviated from its "fair value."
3. Breakout & Internal Trend
Lookback Period: Defines the range for a valid breakout. A lower lookback (e.g., 10) gives earlier signals but more noise; a higher lookback (e.g., 20-30) confirms significant structural breaks.
Internal Trend: A simplified SMA check to ensure immediate momentum aligns with the macro trend.
4. Signal Strength (The Confluence Meter)
The indicator counts active signals from: KAMA, Internal Trend, S/R, FVG, Breakout, and EQ.
Strong Signal: When the count hits your threshold (e.g., 4/6 ). This suggests a high-probability reversal or breakout.
Medium Signal (Triangles): These appear when the trend is active but not all filters align. These are excellent continuation/re-entry points.
───────────────────────────────────────────────────
How to Trade (Strategy Guide)
🎯 The Entry
Wait for a Strong Signal (Large Label). This confirms that volatility, structure, and momentum have aligned.
Conservative: Wait for the candle to close.
Aggressive: Enter on the breakout of the KAMA line.
🔄 Re-Entry & Continuation
Markets rarely move in a straight line.
Scenario: You missed the initial "Strong" entry, or you took profit and want to re-enter.
The Signal: Look for the small Triangles (Medium signals). These often appear after a pullback when price resumes the main trend.
Logic: If the main KAMA trend is still green/red, but the "Strong" signal isn't firing, a Triangle indicates a safe place to add to a position.
⚠️ Pyramiding & Risk Management (Advanced)
The EQ Lines (Fast/Medium/Slow) are designed for a tiered position management strategy:
Entry: Open position (e.g., 0.03 lots).
First Take Profit: When price extends far beyond EQ1 (Fast) , lock in partial profits.
Trailing Stop: Move your Stop Loss to trace the EQ2 (Medium) line.
Trend Riding: Hold the "Runner" portion of your position until price closes back under EQ3 (Slow) or the KAMA line.
Tip: Use William Fractals (Period 2) to pinpoint exact swing highs/lows for tightening stops.
───────────────────────────────────────────────────
Presets & Optimized Settings
To make this "Plug & Play," I have included optimized presets in the settings for different trading styles.
(If you don't see some parameters, that means they are turned off in trading mode)
⚡ SCALPER (1m - 5m)
KAMA:
ER: 100
Fast Length: 15
Slow Length: 30
FVG:
Size %: 0.01
Trend Detection:
Length: 20
Breakout:
Lookback Period: 10
S/R Detection:
Pivot Length: 10
Tolerance: 0.3
SMC EQ:
Default: 10
EQ1: 10
EQ2 (Main): 30
EQ3: 120
Signal Strength:
Strong: 4
Medium: 3
📊 INTRADAY (15m - 1H)
KAMA:
ER: 100
Fast Length: 5
Slow Length: 30
Trend Detection:
Length: 100
Breakout:
Lookback Period: 30
S/R Detection:
Pivot Length: 20
Tolerance: 0.5
SMC EQ:
Default: 10
EQ1: 10
EQ2 (Main): 40
EQ3: 80
Signal Strength:
Strong: 4
Medium: 3
📈 SWING (4H - 1D)
KAMA:
ER: 30
Fast Length: 4
Slow Length: 30
Trend Detection:
Length: 50
Breakout:
Lookback Period: 20
S/R Detection:
Pivot Length: 30
Tolerance: 0.7
SMC EQ:
Default: 10
EQ1: 10
EQ2: 50
EQ3 (Main): 60
Signal Strength:
Strong: 4
Medium: 3
💼 INVESTOR (4H - 1D+)
KAMA:
ER: 30
Fast Length: 5
Slow Length: 10
Trend Detection:
Length: 100
Breakout:
Lookback Period: 50
S/R Detection:
Pivot Length: 30
Tolerance: 0.7
SMC EQ:
Default: 10
EQ1: 10
EQ2: 50
EQ3 (Main): 100
Signal Strength:
Strong: 4
Medium: 3
───────────────────────────────────────────────────
Notes
FVG (Fair Value Gaps): Optional. Enable if you trade volatile assets like Crypto/Gold where imbalances are common.
Support/Resistance: The built-in Pivot system is optional. Disable it if you prefer drawing your own levels to keep the chart clean.
Recommended Pairing:
For best results, pair this with a momentum oscillator like RSI to detect the range regime of a trend. Or DI+ and DI- (when it crosses over each other, that means the "range of possible" regime change of a trend).
───────────────────────────────────────────────────
Disclaimer:
This tool is for informational purposes only. "Confluence" increases probability but does not guarantee results. Always manage your risk.
W/D/4HR OTE Aligner (V6) - Alerts This indicator is a multi-timeframe (MTF) alignment and Optimal Trade Entry (OTE) alert tool designed for discretionary manual trading on the 15-minute timeframe.
Here is a description of its core functionality:
W/D/4HR OTE Aligner (V6) - Alerts
This custom TradingView indicator assists manual traders by identifying high-probability trading setups that meet specific structural and momentum criteria across multiple timeframes. It does not place trades automatically but generates a "Trade Signal" used for setting up reliable alerts.
Key Features:
Multi-Timeframe Bias Confirmation: The indicator uses a 50-period Exponential Moving Average (EMA) to confirm that the Weekly, Daily, and 4-Hour timeframes are all aligned in the same direction (all above for bullish, all below for bearish). This provides a strong directional bias.
OTE Zone Identification: It dynamically calculates recent swing highs and lows on the 4-hour chart (using reliable pivot detection) and highlights the Optimal Trade Entry (OTE) zone, typically centered around the 0.618 Fibonacci Retracement level.
15-Minute Entry Signal: Once price enters the OTE zone within the aligned trend direction, the indicator looks for a confirmation entry signal on the 15-minute chart, specifically a 9-period EMA crossing the 20-period EMA.
Manual Alert System: A transparent "Trade Signal" plot provides the trigger source for a manual TradingView alert, notifying the user exactly when all criteria are met for a potential long or short trade entry.
This indicator is a tool for finding precise entry points within dominant, confirmed trends.
for clarity i built this using Google AI to help with being away from the charts it reflects how i wish to progress on my journey so any tips or feed back with me much appreciated
King Trade 4 and 3 hour buy-sell strategy V2This strategy is a Trend-Following Breakout System specifically designed for high-volatility environments like the 4-hour and 3 hour (3h) (4H) timeframe. It focuses on identifying "Smart Money" movements by combining price action with significant volume surges.
Here is the breakdown of the strategy logic:
1. The Core Signal (Breakout)
The strategy identifies a level using the previous candle's High and Low.
Long Entry: Occurs when the current price crosses above the previous candle's high.
Short Entry: Occurs when the current price crosses below the previous candle's low.
2. The Smart Money Filter (Volume)
A price breakout without volume is often a "Bull Trap" or "Bear Trap." To minimize fake signals, this strategy calculates a Volume Moving Average (SMA 20).
It only enters a trade if the breakout candle's volume is at least 1.5x (or your chosen multiplier) higher than the average. This ensures that the move is backed by institutional or high-intensity trading.
3. The Trend Filter (EMA 200)
To stay on the right side of the market, the strategy uses the 200-period Exponential Moving Average (EMA) as a "Trend Guard":
Only Longs are allowed if the price is above the EMA 200 (Uptrend).
Only Shorts are allowed if the price is below the EMA 200 (Downtrend). This prevents you from buying into a crashing market or selling during a strong bull run.






















