Estrategia

Liquidity Suite # Liquidity Suite
## Description
Liquidity Suite is an all-in-one market structure and liquidity mapping indicator designed for traders who focus on liquidity, session behavior, and higher-timeframe execution.
Instead of plotting dozens of unrelated levels, the indicator combines the most important liquidity references into a single workspace while automatically reducing chart clutter.
The indicator includes:
* Asian, London and New York Sessions
* Session Highs & Lows
* True Day Open (TDO)
* Previous Day High/Low (PDH/PDL)
* Previous Week High/Low (PWH/PWL)
* Previous Month High/Low (PMH/PML)
* Multi-Timeframe BSL/SSL liquidity levels (up to 3 HTFs)
* Relevant Swing Highs/Lows
* Universal Purged Level tracking
* Automatic relevance filtering using ATR proximity
Unlike many liquidity indicators that continuously accumulate objects, Liquidity Suite intelligently manages overlapping levels by keeping only the most relevant information visible while preserving every level internally for proper sweep detection.
---
## Features
### Session Engine
* Asia, London and New York sessions
* Session boxes and/or high-low lines
* Custom session times
* Session labels
* Alerts when session highs or lows are taken
* Configurable number of historical sessions
### True Day Open
Displays the New York midnight opening price with optional labeling.
### Previous High/Low Levels
Plots:
* Previous Day High / Low
* Previous Week High / Low
* Previous Month High / Low
These levels automatically mark themselves as purged once liquidity has been taken.
### HTF BSL / SSL Engine
Detects Higher Timeframe Buy-Side Liquidity (BSL) and Sell-Side Liquidity (SSL).
Supports:
* Automatic timeframe mapping
* Manual timeframe selection
* Up to three independent HTF layers
* Configurable styling
* Automatic purge detection
### Relevant Swings
Creates a clean liquidity map using fractal swing detection.
Features:
* ATR-based clustering
* Higher-timeframe fractal window
* Automatic filtering of minor pivots
* Maximum levels per side
* Sweep detection
### Universal Purged Levels
Whenever liquidity is swept:
* Optional ✕ marker
* Optional deletion
* Or keep as grey dotted historical liquidity
Applies consistently across:
* PDH/PDL
* PWH/PWL
* PMH/PML
* HTF BSL/SSL
(Session highs/lows remain on the chart but are marked as taken.)
### Smart Relevance Filter
The built-in decluttering engine compares nearby liquidity levels using ATR distance.
When enabled:
* Fresh levels always beat purged levels.
* Higher timeframe liquidity beats local swing levels.
* Older confirmed levels are preferred over newer overlapping ones.
* Active sessions remain untouched until they close.
This dramatically reduces chart noise while preserving important liquidity references.
---
# User Settings
## General
**Timezone**
* Timezone used for sessions and True Day Open.
---
## Relevance Filter
**Show Only Relevant Levels**
* Hides overlapping liquidity levels based on ATR proximity while keeping all logic active internally.
**ATR Length**
* ATR period used for proximity calculations.
**Proximity Threshold**
* Distance (ATR multiple) used to determine when two levels are considered overlapping.
---
## Sessions
**Show Sessions**
* Enable or disable session display.
**Hide Sessions Above TF**
* Prevent session drawing on higher timeframes.
**Alert on Session High/Low Break**
* Generates alerts when session liquidity is taken.
**Style**
* Box
* Lines
* Both
Additional options include:
* Transparency
* Line style
* Line width
* Label size
* Maximum historical sessions
Each session can be individually configured:
* Asia
* London
* New York
Including:
* Session times
* Colors
* High/Low labels
---
## True Day Open
**Show True Day Open**
* Displays the daily opening price based on the selected timezone.
Options:
* Color
* Line style
* Width
* Show label
---
## Previous Highs & Lows
Individually enable:
* PDH/PDL
* PWH/PWL
* PMH/PML
Each group supports:
* Color
* Style
* Width
---
## HTF BSL / SSL
Supports up to three Higher Timeframe liquidity layers.
Each layer includes:
* Enable/Disable
* Automatic or Manual timeframe (HTF1)
* Manual timeframe selection
* Color
* Style
* Width
Global option:
**Max Lines Per Level**
* Limits the number of active BSL/SSL levels retained.
---
## Purged Levels
**Delete Purged Levels**
* Remove swept liquidity from the chart, or keep it as historical reference.
Additional settings:
* Purged color
* Purged style
* Show ✕ marker
* Maximum stored purged levels
---
## Relevant Swings
Enable ATR-filtered swing mapping.
Options include:
* Window size
* Pivot length
* Swing ATR length
* Maximum levels per side
* Line color
* Style
* Width
* Label text
---
# Recommended Usage
Liquidity Suite works best when combined with price action and market structure analysis.
Typical workflow:
1. Identify higher-timeframe liquidity (PDH/PDL, HTF BSL/SSL).
2. Observe session range development.
3. Wait for liquidity sweeps into key levels.
4. Look for confirmation before entering trades.
5. Use the relevance filter to maintain a clean, readable chart.
---
## Notes
* The indicator is non-repainting.
* Active session levels are intentionally excluded from the relevance filter until the session closes.
* Purged levels remain internally tracked to ensure accurate filtering and historical context.
* Designed for discretionary liquidity-based trading across forex, indices, crypto, and futures markets.
Indicador

Indicador

Rift Volume Profile Engine
The Rift Volume Profile Engine is a high-performance technical analysis indicator built for Pine Script v6. It combines dynamic intrabar volume profiling, cumulative volume delta (CVD), price rejection sweeps, and institutional order execution models to plot real-time trade signals with actionable Risk/Reward setups.
Key Features
1. Dynamic Volume Profile and Delta Engine
Lower Timeframe Intrabar Data: Fetches second-level or minute-level intrabar volume data for accurate Point of Control (POC), Value Area High (VAH), Value Area Low (VAL), and Point of Void (POV).
Flexible Anchor Modes: Anchor profiles based on time periods (Daily, Weekly) or local market swing pivots.
Auto Granularity Adjustment: Uses ATR-driven row sizing to automatically normalize volume bins across all assets (Crypto, Forex, Stocks, Gold).
2. Multi-Model Trade Signal Engine
Triggers actionable Buy/Sell entries based on three core institutional volume setups:
Sweep and Reclaim: Detects liquidity sweeps beyond Value Area extremes (VAH/VAL) with rapid price reclaims.
POC Bounce: Identifies high-volume structural retests around the Point of Control.
POV Void Invalidation: Triggers momentum breakouts through low-volume orderbook gaps.
3. Integrated Risk Management
Visual Trade Boxes: Automatically draws entry levels, dynamic Stop-Loss (SL), and Take-Profit (TP) target boxes directly on the chart.
Dynamic Stop-Loss Modes: Choose between ATR-based stops or structural protection beyond origin volume nodes.
Risk/Reward Scaling: Configurable R:R ratios (Default: 1:2).
4. Direct Webhook and Trading Bot Automation
Execution Ready: Emits clean, standardized webhook alerts designed for immediate execution on automated trading bridges (such as 3Commas, PineConnector, or MetaTrader bridges).
Opposite Signal Management: Built-in logic to auto-close opposite trades before placing new order entries.
5. On-Chart HUD Dashboard
Displays real-time engine health, active CVD bias (Bullish/Bearish), current POC targets, and the latest directional signal state.
How to Use
Add to Chart: Apply the script to any timeframe (Works best on 1m to 15m execution charts with 1m intrabar feed).
Configure Signal Rules: In the settings panel, select your preferred strategy mode (Sweep and Reclaim, POC Bounce, POV Void, or All).
Set Filters: Optionally toggle Trend Alignment (EMA), Volume Divergence (CVD), or Session Time Windows to filter out low-quality noise.
Set Up Alerts:
Click Alerts on TradingView.
Select Rift Volume Profile Engine.
Set Condition to Any alert() function call.
Paste your Webhook URL for automated trading.
Disclaimer: Financial trading carries high risk. This script is designed for technical analysis, execution assistance, and algorithmic decision-making. Always perform risk management before trading real capital. Indicador

Indicador

Shadow Refinery CompoundShadow Refinery Compound (SRC)
OVERVIEW
The Shadow Refinery Compound (SRC) is a multi-faceted trend analysis suite designed to give traders a deep, statistical view of market structure. Rather than relying on standard closing prices, this indicator builds its foundation on median price action, combining Fibonacci-sequenced moving averages, volatility bands, and dynamic linear regression into a single, cohesive visual environment.
Whether you are mapping out intra-day swings or plotting macro trends, the SRC adjusts to your chart's scale and provides strict mathematical context to the current price action.
⚙️ CORE FEATURES & METHODOLOGY
• Median-Based Fibonacci Moving Averages:
Instead of basic closing prices, SRC calculates its moving averages using the median of the SMA of the Highs and the SMA of the Lows. This filters out extreme wicks and noise. The indicator plots a full suite of MAs utilizing Fibonacci lookback periods (ranging from 5 up to 610), deliberately replacing the traditional 8 with a 5 and 6 pairing at the start of the sequence—a custom structural adjustment designed to catch ultra-sensitive micro-crossovers right at the foundation.
• 💡 User Tip:
If the chart feels too cluttered, you can toggle "Show Fewer Moving Averages" in the settings to display only the most critical macro and micro levels (MA 1, 2, 5, and 11). You can also change the calculation method (SMA, EMA, RMA, VWMA, etc.) to suit your exact trading style.
• Macro Volatility Bands (Bollinger):
Built exclusively around the macro 610-period median MA, these standard deviation bands provide ultimate macro support and resistance parameters to contain major price distribution.
• Dynamic Linear Regression Channel (LRC) & HUD:
The script dynamically draws a Linear Regression Channel based on either your current Visible Range or a Fixed Length.
• Fibonacci Default:
The Fixed Length setting defaults to 377 bars, a deliberate Fibonacci sequence choice chosen to effectively capture structural market cycles.
• Forward Extension Length:
Want to see where the structure is heading? The indicator includes a forward projection feature that extends the regression channel's trajectories (up to 200 bars) into the future, helping you anticipate upcoming structural boundaries and potential confluence zones.
• Trend Strength HUD:
A Heads-Up Display tracks the statistical viability of the current channel. It displays R² (Trend Power) to show how tightly price correlates to the regression line, the P-Value to confirm statistical significance, and the Channel Width as a percentage.
⚠️ Statistical Caveat:
Traders should note that on very high timeframes or extremely long regression channels, R² and P-Values can sometimes become negligible or mathematically skewed due to the non-stationary nature of long-term financial data. Use these metrics to gauge current structural alignment rather than absolute future certainty.
• Visible High/Low Tracking:
Automatically draws dynamic horizontal dashed lines at the absolute highest high and lowest low within your selected regression range, giving you instant structural boundaries.
🚨 CRITICAL USAGE NOTE: LINEAR VS. LOGARITHMIC MATH
This indicator defaults to Linear (Standard) Math for both the Bollinger Bands and the Linear Regression Channel, as standard charts are what most traders use. However, it includes a built-in toggle for Logarithmic Math for those plotting massive macro trends.
• ✅ The Standard Default (Log Math = OFF):
If your chart's Y-axis is set to standard "Regular/Auto" (Linear), leave the "Enable Logarithmic Math" setting turned OFF (which is the default). The math will perfectly match your screen.
• ❌ The Logarithmic Trap (Log Math = ON):
If your TradingView price scale is explicitly set to "Log", you must check the "Enable Logarithmic Math" box in the indicator settings to sync the math. If you mix a Linear indicator setting with a Log chart (or vice versa), the bands and channels will heavily distort and detach from reality. Always match your settings to your chart!
🎨 CUSTOMIZATION & AESTHETICS
• Unified Color Themes:
Visual clarity is vital for trading psychology. The SRC comes packed with seven color themes (TV Default, Neon, Azure Trade, Sage & Clay, Slate Pro, Twilight Modern, Monochrome Pro) that instantly sync the colors of all MAs, bands, and channels. The indicator dynamically shifts colors to indicate bullish or bearish states based on where the open price sits relative to the median averages.
• Line Thickness Control:
A dedicated global line thickness setting allows you to scale the visual weight of the primary indicator lines, ensuring maximum readability whether you are on a laptop or an ultrawide monitor. Indicador

Indicador

Indicador

Adaptive Trend TrackerHere is the professional Functional Description for your indicator completely in English and without any emojis:
Adaptive Trend Tracker — Functional Description
Overview
The Adaptive Trend Tracker is an advanced, volatility-based trend-following indicator designed to identify market trends and reversals on trading charts. This indicator utilizes the Average True Range (ATR) to dynamically generate support and resistance bands that adapt to shifting market volatility. Built on Pine Script v6, the visual design and color palette have been fully optimized to maintain high contrast and clear readability on white or light-themed charting backgrounds.
Key Features
Dynamic Volatility Tracking: It automatically adjusts support and resistance levels based on real-time market momentum and volatility, significantly reducing false signals during flat or consolidating markets.
Light Theme Optimization: Standard bright colors tend to look faded on white backgrounds; therefore, this script uses high-contrast Deep Teal Green for bullish conditions and Crimson Red for bearish conditions to maximize clarity.
Dual ATR Modes: Users can seamlessly toggle between the standard TradingView ATR (RMA-based) and a Simple Moving Average (SMA) based ATR calculation.
Visual Cloud and Labels: Immediate trend shifts are confirmed visually on the chart via highly visible BUY/SELL labels alongside a supporting background cloud fill.
How It Works
Bullish Trend (Buy): When the price crosses above the dynamic resistance line (Lower Band), the market trend flips to Bullish. The tracking line turns teal green, and a clear BUY signal label is plotted on the chart.
Bearish Trend (Sell): When the price breaks below the dynamic support line (Upper Band), the market trend flips to Bearish. The tracking line turns crimson red, and a clear SELL signal label is plotted on the chart.
Trailing Stop Loss: The continuous plotting line that shadows the price action can also be effectively utilized by traders as a dynamic trailing stop-loss level.
Settings and Inputs
ATR Length (Default: 10): Specifies the historical bar count used to calculate the market's current volatility.
ATR Multiplier (Default: 3.0): Controls the distance between the price and the dynamic bands. Increasing this value (e.g., 4.0) filters out noise for stronger signals, while decreasing it (e.g., 2.0) creates tighter, more frequent signals with increased risk.
Use Standard ATR?: When checked, the script uses the standard TradingView mathematical formula (RMA). When unchecked, it switches to an SMA-based calculation.
Enable Cloud Highlight: Allows users to toggle the background gradient cloud on or off for clean chart visualization.
Alerts Setup
This indicator comes equipped with ready-to-use alert configurations:
Bullish Trend Alert: Triggers immediately upon the confirmation of a new BUY signal.
Bearish Trend Alert: Triggers immediately upon the confirmation of a new SELL signal.
Trend Direction Change: Dispatches an automated notification whenever the overall market bias flips between bullish and bearish states. Indicador

Estrategia

Harmonic Pattern Trainer [verticetrading]Learn to spot harmonic patterns by finding them yourself.
Most harmonic tools hand you the answer — they scan the chart and draw the pattern for you, so you never build the eye. This one is the opposite: you place the five points (X-A-B-C-D) on a swing you think is a pattern, and it checks your work, leg by leg, in plain language.
◆ WHAT IT DOES
You place five points on the chart. The tool measures every leg and tells you whether it is a valid Gartley, Bat, Butterfly, Crab, Deep Crab or Cypher — and, if not, which leg is off.
Shows each leg's real proportion (AB of XA, BC of AB, CD of BC, and where D lands) with a ✓ or ✗ against the textbook range.
Draws the PRZ — the zone where D should land for the chosen pattern — as a place to watch.
An on-chart cheat-sheet lists each pattern's "fingerprint": where its D lands.
◆ HOW IT WORKS
Nothing is auto-detected. From your five points the script computes the classic Fibonacci proportions of harmonic theory and compares them to the published ranges of each pattern, within a tolerance you control. The verdict is written in natural language so a beginner can read it. Only the points you set are used — nothing repaints.
◆ TWO WAYS TO PRACTICE
Beginner — every proportion is shown, with hints.
Advanced — the numbers are hidden until you tick "Reveal answer", so you estimate by eye first, then check.
The "I'm looking for" selector lets you either ask "what is this?" (Auto) or drill one specific pattern.
◆ WHAT MAKES IT DIFFERENT
It is a trainer, not a scanner. The goal is that you stop needing it — that you learn to see the proportions yourself. The feedback ("You were after a Bat, but this is a Gartley — for a Bat, D must reach 0.886") is where the learning happens.
◆ HOW TO USE
When you add the indicator, click on the chart to place X, then A, B, C, D (left to right). Drag any point to adjust. To work a different symbol, re-add the indicator to place fresh points.
◆ SETTINGS
Beginner/Advanced level, target pattern, ratio tolerance, cheat-sheet on/off, English/Spanish, and full style control: independent text sizes for the points and the info boxes, line width, pattern fill and colors.
◆ CREDITS & LIMITATIONS
Harmonic patterns are concepts developed by H.M. Gartley and formalized by Scott M. Carney; this is an original, independent implementation from public ratio definitions. Harmonic analysis is a discretionary framework, not a rule of the market: the PRZ is a zone to watch, never a buy/sell signal, and a valid pattern is not a prediction. Trading involves risk; this is not financial advice.
────────────────────────
ESPAÑOL — Aprende a encontrar patrones armónicos tú mismo
La mayoría de herramientas te dan la respuesta hecha: escanean y dibujan el patrón por ti, y nunca entrenas el ojo. Esta es lo contrario: tú colocas los cinco puntos (X-A-B-C-D) sobre un swing y la herramienta corrige tu trabajo, pata por pata, en lenguaje llano. Mide cada proporción (AB de XA, BC de AB, CD de BC y dónde cae la D), te dice si es un Gartley, Bat, Butterfly, Crab, Deep Crab o Cypher válido — y si no, qué pata falla. Modo Principiante (muestra los números) o Avanzado (los oculta hasta que revelas). Incluye chuleta en pantalla con la "huella" de cada patrón, zona PRZ "a vigilar", tolerancia ajustable y control total de estilo (tamaños independientes de puntos y cajas, grosor, relleno y colores). Nada se detecta solo ni repinta: los puntos los pones tú. Para colocar: al añadirlo, haz clic en el gráfico para poner X, A, B, C, D; arrastra para ajustar; al cambiar de símbolo, vuelve a añadir el indicador. Los patrones armónicos son conceptos de H.M. Gartley y Scott M. Carney; implementación propia desde definiciones públicas. El análisis armónico es un marco discrecional, no una regla del mercado: la PRZ es una zona a vigilar, nunca una señal, y un patrón válido no es una predicción. Operar implica riesgo; esto no es asesoramiento financiero. Indicador

Indicador

Gold Session Map & Sweep Signals# Gold Session Map & Sweep Signals — Setup Guide
*Pine Script v6 indicator for TradingView. Companion to the session breakdown.*
---
## What it does
Four things, in order of how much you should trust them:
1. **Shades the four session blocks** on your chart — Asian, London, the London–NY overlap (deliberately the boldest shade), and the New York afternoon. This is just fact; it's a map.
2. **Draws the Asian range** as a box that extends through the rest of the day. This is the reference level everything else keys off.
3. **Tracks ADR(20) and how much of it today has already spent.** A gauge of remaining fuel.
4. **Fires sweep-reclaim signals** with a stop and target. This is a hypothesis, not a fact — treat it accordingly.
---
## Installing it
1. Open TradingView, load an **XAUUSD** chart on a **5-minute or 15-minute** timeframe.
2. Open the **Pine Editor** (bottom panel).
3. Delete the template code, paste in the whole `.pine` file.
4. Click **Save**, give it a name, then **Add to chart**.
**Timeframe matters.** The logic needs intraday bars to resolve sessions. 5m or 15m is the sweet spot — 1m is noisy and generates false sweeps, and anything from 4h up will not work at all because a single bar spans multiple sessions.
---
## The signal, in plain English
The setup this codes is the pattern that shows up repeatedly in gold session behaviour: **London opens, runs the stops sitting just outside the Asian range, and then reverses.**
The script waits for all of the following:
| # | Condition | Why |
|---|---|---|
| 1 | Asian session has **closed** | The range must be finished before it can be swept |
| 2 | We are in an **allowed session** (London + overlap by default) | Asian-hours breaks are noise |
| 3 | Price traded **beyond** the Asian high or low by at least 5% of the range | Filters out one-tick brushes that aren't real sweeps |
| 4 | The bar **closed back inside** the range | This is the reclaim — the actual signal |
| 5 | **ADR used is under 90%** | Gold that has already run its daily range has no fuel left |
| 6 | Not inside the **news blackout** (±15 min around 12:30 UTC) | Don't get run over by CPI |
| 7 | No position already open, and this direction hasn't fired today | One clean shot per side |
**Entry** is the close of the reclaim bar. **Stop** goes beyond the sweep extreme plus a 0.25×ATR buffer. **Target** is 2R by default.
A long fires when the Asian *low* is swept and reclaimed. A short fires when the Asian *high* is swept and reclaimed. This is deliberately counter-intuitive — you are buying the failed breakdown, not the breakout.
---
## Settings worth changing
**`Take signals during`** — defaults to *London + Overlap*. If you can only watch your evening (16:00–20:00 EAT), switch to **Overlap only**. Fewer signals, better ones.
**`Minimum sweep depth`** — 0.05 (5% of the Asian range). Raise it to 0.10–0.15 if you're getting signals on trivial pokes; lower it if you're getting none.
**`Target (R multiple)`** — 2.0. At 2R you need above ~33% strike rate to break even. If your tally shows a high hit rate but you keep giving profits back, try 1.5R.
**`Require trend agreement (EMA filter)`** — off by default, because this is a mean-reversion setup and a trend filter fights it. Turn it on if you only want sweeps that resolve *with* the prevailing direction; expect roughly half as many signals.
**`Blackout centre`** — set to 12:30 UTC, which is 08:30 ET, which is when US CPI, PPI and payrolls land. If you're on a chart whose exchange timezone differs, this is defined in your chosen **session timezone**, so leave that on UTC.
**`Dashboard clock`** — set to `Africa/Nairobi`, which is your time. Display only; it changes nothing in the logic.
---
## Why sessions are defined in UTC
Because London and New York observe daylight saving and you don't. If you define sessions in local time, every window silently shifts by an hour twice a year and your signals drift with them. Defining them in UTC pins them to a fixed reference, and the dashboard handles the conversion for your eyes.
If you do change the session timezone, you must also change all four session strings to match. That's why the input is grouped with a warning.
---
## Reading the dashboard
| Row | What it tells you |
|---|---|
| **Session** | Which block you're in right now, colour-coded |
| **Signals allowed** | Green "yes" or the specific reason it's blocked |
| **Asian high / low** | The levels being watched |
| **ADR(20)** | Average daily range over 20 days, in dollars |
| **ADR used** | Green under your ceiling, amber over it, red past 130% (exhausted) |
| **Position** | Whether a signal is currently live |
| **Signal record** | Running W / L / flat tally with hit rate |
---
## Alerts
Right-click the chart → **Add alert** → set Condition to the indicator, then pick one of:
- *Gold — long sweep reclaim*
- *Gold — short sweep reclaim*
- *Gold — target reached*
- *Gold — stop reached*
The script also fires `alert()` calls carrying the actual entry, stop and target prices, so if you create an **"Any alert() function call"** alert you'll get a message like:
```
XAUUSD LONG entry 4412.35 stop 4398.10 target 4440.85
```
Set the trigger to **Once per bar close**, not on every tick. Signals are defined on the close of the reclaim bar; intrabar alerts will fire and un-fire as the bar moves.
---
## What this is not — read this bit
**The W/L tally is not a backtest.** It is a rough count of how the plotted signals resolved on whatever history your chart happens to have loaded. It ignores spread, commission and slippage — all three of which matter enormously on gold, where retail spreads run 12–40¢ depending on session. It assumes you got filled exactly at the bar close and exactly at your stop or target. And when a single bar touches both levels, it assumes the stop hit first — pessimistic, but not necessarily right.
**Signals are close-of-bar.** On a 15m chart you may be entering 15 minutes after the actual sweep low. That is a real cost the tally doesn't capture.
**Sample size will be small.** One or two signals a day at most, and the "one per direction per day" rule caps it further. Fifty signals is not evidence of an edge.
**The setup can fail structurally.** Sweep-and-reclaim is a mean-reversion pattern. On genuine trend days — an FOMC surprise, a CPI shock — the "sweep" isn't a sweep, it's the start of a move that keeps going. That is precisely what the ADR filter and news blackout are trying to avoid, and they will not always succeed.
**Forward-test before risking anything.** Run it on a demo account through at least a month of sessions, including at least one FOMC and one CPI, before you let it inform a real position.
---
## If you want to backtest it properly
Convert it to a strategy. Change the header:
```pinescript
//@version=6
strategy("Gold Sweep Strategy", "Gold Sweep", overlay = true,
initial_capital = 10000,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 2,
commission_type = strategy.commission.cash_per_contract,
commission_value = 0.30,
slippage = 2,
calc_on_every_tick = false)
```
Then delete the whole trade-state-machine block and replace the entry section with:
```pinescript
if longSig
stopL = math.min(low, nz(low , low)) - atr * slBufAtr
tgtL = close + (close - stopL) * rr
strategy.entry("L", strategy.long)
strategy.exit("L x", "L", stop = stopL, limit = tgtL)
if shortSig
stopS = math.max(high, nz(high , high)) + atr * slBufAtr
tgtS = close - (stopS - close) * rr
strategy.entry("S", strategy.short)
strategy.exit("S x", "S", stop = stopS, limit = tgtS)
if inFlat and strategy.position_size != 0
strategy.close_all("flatten")
```
Set `slippage` and `commission_value` to match your actual broker — with defaults left at zero, a strategy tester will flatter almost anything. The Strategy Tester tab then gives you real drawdown, profit factor and trade-by-trade detail, which the indicator's tally cannot.
---
## Files
- `gold-session-sweep.pine` — the indicator, paste-ready
---
*This is a charting tool and a research exercise, not financial advice, and I'm not a financial adviser. Gold at $4,400 with 20:1 leverage moves roughly $440 of notional per contract per 1% — position size accordingly, and assume any pattern can stop working the day you start relying on it.*
**Sources for the underlying logic:** the session structure and behaviour patterns come from the research in the earlier session briefing — chiefly ( www.mql5.com ) for the sweep pattern and ADR framework, (tiomarkets.com) for the overlap concentration, and the (www.tradingview.com) for session handling. Indicador

Indicador

KOOB Pre-Trade Checklist🔥 KOOB PRE-TRADE CHECKLIST — DEEP BREAKDOWN
1. CLEAR BIAS + LIQUIDITY DRAW
Before you even think about entering, you need to know where price is likely trying to go.
You’re asking:
Is the market bullish or bearish?
What is the current higher-timeframe structure?
Where is the obvious liquidity?
Is price likely drawing toward buy-side or sell-side liquidity?
Am I trading with the current market direction?
Is there a clear target for price to reach?
The goal is to eliminate random entries.
You don't want:
“Price is going up, so I'm buying.”
You want:
“My bias is bullish, sell-side liquidity has been taken, and price is drawing toward buy-side liquidity.”
2. HIGHER-TIMEFRAME FVG
Once you establish your bias and liquidity draw, you look for a higher-timeframe Fair Value Gap.
This gives you a potential area where price could react.
For example:
1H / 15M FVG → 5M → 1M entry
You're essentially asking:
“Is there a meaningful higher-timeframe imbalance sitting in the path of my trade?”
The HTF FVG gives your setup location.
Instead of entering in the middle of nowhere, you're waiting for price to reach an area that matters.
3. DROP TO LOWER TIMEFRAME → LIQUIDITY SWEEP / SMT
Once price reaches your higher-timeframe area, you drop down to the execution timeframe.
This is where you look for confirmation.
You want to see something such as:
Liquidity Sweep
Price runs a previous high/low, takes liquidity, and then potentially reverses.
OR
SMT
You compare correlated markets and look for divergence that suggests the move isn't being confirmed.
For example, if you're trading NQ/MNQ, you could compare it against ES/MES.
The idea is:
HTF gives you the location.
LTF gives you the confirmation.
This step is extremely important because simply touching an FVG isn't enough.
4. WAIT FOR AN INVERSE FVG
This is your actual entry confirmation.
After the liquidity sweep or SMT occurs, you don't immediately enter.
You wait for the market to show displacement and create an FVG that can become an inverse FVG.
Your sequence becomes:
Liquidity → HTF FVG → LTF confirmation → displacement → IFVG → entry
This gives you a much more specific trigger.
Instead of:
“Price swept the low, I'm buying.”
You're waiting for:
“Price swept liquidity inside my HTF area, gave me confirmation, displaced, created an FVG, and that FVG became my inverse FVG entry.”
That is a much more disciplined setup.
🧠 THE ENTIRE KOOB MODEL
Your checklist can basically be thought of as a 5-layer filter:
🟦 LOCATION
Where am I?
→ HTF FVG
🟨 DIRECTION
Where is price trying to go?
→ Bias + Liquidity Draw
🟥 LIQUIDITY
Has the market grabbed liquidity?
→ LTF Sweep / SMT
🟩 CONFIRMATION
Has the market actually shown me a reaction?
→ Displacement + Inverse FVG
🟪 EXECUTION
Is my actual entry model present?
→ Entry confirmation
🚨 WHY THE CHECKLIST IS IMPORTANT
The biggest purpose isn't actually the table.
It's preventing you from skipping steps.
A lot of traders see:
FVG → ENTER
or:
Liquidity sweep → ENTER
But your model requires multiple pieces of information to line up.
You want to train yourself to think:
No bias = no trade.
No liquidity draw = no trade.
No HTF location = no trade.
No sweep/SMT = no trade.
No IFVG = no trade.
Only when the entire story makes sense do you execute.
🔥 WHAT I WOULD MAKE THE FINAL INDICATOR DO
Instead of the basic version I gave you, I'd build KOOB ENTRY MODEL v2 around this exact sequence:
BIAS
↓
LIQUIDITY DRAW
↓
HTF FVG
↓
LTF LIQUIDITY SWEEP / SMT
↓
DISPLACEMENT
↓
INVERSE FVG
↓
ENTRY
And the top-right dashboard could look something like: Indicador

Indicador

Liquidity Sweep & Reversal Map//@version=6
indicator("Liquidity Sweep & Reversal Map", "LSRM", overlay = true, max_labels_count = 300, max_lines_count = 60)
//------------------------------------------------------------------------------
// PRESET INPUTS
//------------------------------------------------------------------------------
preset = input.string("NIFTY", "Instrument Preset", options = )
sweepBuffer = input.float(1.0, "Sweep Buffer (points)", minval = 0)
minBodyPerc = input.float(50.0, "Min Body % for Reversal Candle", minval = 0, maxval = 100)
useVolFilter = input.bool(true, "Use Volume Spike Filter")
volLen = input.int(20, "Volume Lookback", minval = 1)
volMult = input.float(1.5, "Volume Spike Multiplier", minval = 1.0)
showTodayHighLow = input.bool(true, "Show Today's High/Low + Labels")
showPrevHighLow = input.bool(true, "Show Previous Day High/Low + Labels")
showLabels = input.bool(true, "Show BS/SS Labels")
showZones = input.bool(true, "Show Sweep Zones")
showLevelLines = input.bool(true, "Show All Level Lines + Labels")
//------------------------------------------------------------------------------
// APPLY PRESETS (override at start)
//------------------------------------------------------------------------------
if barstate.isfirst
if preset == "NIFTY"
sweepBuffer := 1.0
minBodyPerc := 60.0
volLen := 20
volMult := 1.5
if preset == "BANKNIFTY"
sweepBuffer := 3.0
minBodyPerc := 50.0
volLen := 15
volMult := 1.8
//------------------------------------------------------------------------------
// DAILY + PREVIOUS DAY LEVELS
//------------------------------------------------------------------------------
var float dayHigh = na
var float dayLow = na
var float prevDayHigh = na
var float prevDayLow = na
newDay = ta.change(time("D")) != 0
if newDay
prevDayHigh := dayHigh
prevDayLow := dayLow
dayHigh := high
dayLow := low
else
dayHigh := na(dayHigh) ? high : math.max(dayHigh, high)
dayLow := na(dayLow) ? low : math.min(dayLow, low)
//------------------------------------------------------------------------------
// VOLUME FILTER
//------------------------------------------------------------------------------
avgVol = ta.sma(volume, volLen)
volSpike = useVolFilter ? (volume > avgVol * volMult) : true
//------------------------------------------------------------------------------
// STRONG REVERSAL CANDLES
//------------------------------------------------------------------------------
f_strongBull(level) =>
rng = high - low
body = math.abs(close - open)
bp = rng > 0 ? body / rng * 100 : 0
close > open and close > level and bp >= minBodyPerc
f_strongBear(level) =>
rng = high - low
body = math.abs(close - open)
bp = rng > 0 ? body / rng * 100 : 0
close < open and close < level and bp >= minBodyPerc
//------------------------------------------------------------------------------
// SWEEP DETECTION (previous candle sweeps, current confirms)
//------------------------------------------------------------------------------
f_processLowSweep(level, enabled, code) =>
bool out = false
string tag = ""
float price = na
float wick = na
if enabled and not na(level)
sweepCond = low < level - sweepBuffer and close >= level
if sweepCond and f_strongBull(level) and volSpike
out := true
tag := code
price := level
wick := low
f_processHighSweep(level, enabled, code) =>
bool out = false
string tag = ""
float price = na
float wick = na
if enabled and not na(level)
sweepCond = high > level + sweepBuffer and close <= level
if sweepCond and f_strongBear(level) and volSpike
out := true
tag := code
price := level
wick := high
//------------------------------------------------------------------------------
// FINAL SIGNALS (RESET EVERY BAR)
//------------------------------------------------------------------------------
bool buySignal = false
bool sellSignal = false
string sigLevel = ""
float sigPrice = na
float wickLow = na
float wickHigh = na
// Priority TL → TH → PDL → PDH
= f_processLowSweep(dayLow, showTodayHighLow, "TL")
if b1 and not(buySignal or sellSignal)
buySignal := true
sigLevel := n1
sigPrice := p1
wickLow := l1
= f_processHighSweep(dayHigh, showTodayHighLow, "TH")
if s1 and not(buySignal or sellSignal)
sellSignal := true
sigLevel := n2
sigPrice := p2
wickHigh := h1
= f_processLowSweep(prevDayLow, showPrevHighLow, "PDL")
if b2 and not(buySignal or sellSignal)
buySignal := true
sigLevel := n3
sigPrice := p3
wickLow := l2
= f_processHighSweep(prevDayHigh, showPrevHighLow, "PDH")
if s2 and not(buySignal or sellSignal)
sellSignal := true
sigLevel := n4
sigPrice := p4
wickHigh := h2
//------------------------------------------------------------------------------
// SAFE LABEL CREATOR (Pine v6 compliant)
//------------------------------------------------------------------------------
f_makeLabel(existing, x, y, txt) =>
if na(existing)
label.new(
x, y, txt,
style = label.style_label_center,
textcolor = color.white,
color = color.new(color.black, 40),
size = size.small
)
else
label.set_x(existing, x)
label.set_y(existing, y)
label.set_text(existing, txt)
existing
//------------------------------------------------------------------------------
// LEVEL LINES + LABELS (SYNC-SAFE VERSION)
//------------------------------------------------------------------------------
var line lTH = na
var line lTL = na
var line lPDH = na
var line lPDL = na
var label labTH = na
var label labTL = na
var label labPDH = na
var label labPDL = na
f_updLine(ln, y) =>
if not na(ln)
line.set_xy1(ln, bar_index - 50, y)
line.set_xy2(ln, bar_index, y)
line.set_extend(ln, extend.right)
if showLevelLines
//------------------------- TH
if showTodayHighLow and not na(dayHigh)
if na(lTH)
lTH := line.new(bar_index, dayHigh, bar_index+1, dayHigh,
extend=extend.right, color=color.rgb(255,180,80), width=4, style=line.style_dotted)
f_updLine(lTH, dayHigh)
labTH := f_makeLabel(labTH, bar_index, dayHigh, "TH")
else
if not na(lTH)
line.delete(lTH)
lTH := na
if not na(labTH)
label.delete(labTH)
labTH := na
//------------------------- TL
if showTodayHighLow and not na(dayLow)
if na(lTL)
lTL := line.new(bar_index, dayLow, bar_index+1, dayLow,
extend=extend.right, color=color.rgb(80,150,255), width=4, style=line.style_dotted)
f_updLine(lTL, dayLow)
labTL := f_makeLabel(labTL, bar_index, dayLow, "TL")
else
if not na(lTL)
line.delete(lTL)
lTL := na
if not na(labTL)
label.delete(labTL)
labTL := na
//------------------------- PDH
if showPrevHighLow and not na(prevDayHigh)
if na(lPDH)
lPDH := line.new(bar_index, prevDayHigh, bar_index+1, prevDayHigh,
extend=extend.right, color=color.rgb(255,210,60), width=4, style=line.style_solid)
f_updLine(lPDH, prevDayHigh)
labPDH := f_makeLabel(labPDH, bar_index, prevDayHigh, "PDH")
else
if not na(lPDH)
line.delete(lPDH)
lPDH := na
if not na(labPDH)
label.delete(labPDH)
labPDH := na
//------------------------- PDL
if showPrevHighLow and not na(prevDayLow)
if na(lPDL)
lPDL := line.new(bar_index, prevDayLow, bar_index+1, prevDayLow,
extend=extend.right, color=color.rgb(60,220,255), width=4, style=line.style_solid)
f_updLine(lPDL, prevDayLow)
labPDL := f_makeLabel(labPDL, bar_index, prevDayLow, "PDL")
else
if not na(lPDL)
line.delete(lPDL)
lPDL := na
if not na(labPDL)
label.delete(labPDL)
labPDL := na
//------------------------------------------------------------------------------
// BS / SS LABELS (ONLY ON TRUE SWEEP)
//------------------------------------------------------------------------------
if showLabels and barstate.isconfirmed
if buySignal
label.new(
bar_index, low, "BS",
style=label.style_label_up,
color=color.new(color.rgb(0,180,110), 0),
textcolor=color.white,
size=size.tiny
)
if sellSignal
label.new(
bar_index, high, "SS",
style=label.style_label_down,
color=color.new(color.rgb(210,40,40), 0),
textcolor=color.white,
size=size.tiny
)
//------------------------------------------------------------------------------
// SWEEP ZONES
//------------------------------------------------------------------------------
var box lastZone = na
if showZones and barstate.isconfirmed
if not na(lastZone)
box.delete(lastZone)
if buySignal and not na(wickLow)
lastZone := box.new(
bar_index-1, sigPrice,
bar_index, wickLow,
bgcolor=color.new(color.rgb(0,200,120), 82),
border_color=color.rgb(0,180,110),
border_width=1)
if sellSignal and not na(wickHigh)
lastZone := box.new(
bar_index-1, wickHigh,
bar_index, sigPrice,
bgcolor=color.new(color.rgb(230,80,80), 82),
border_color=color.rgb(210,40,40),
border_width=1)
if not showZones and not na(lastZone)
box.delete(lastZone)
lastZone := na
//------------------------------------------------------------------------------
// ALERTS
//------------------------------------------------------------------------------
alertcondition(buySignal and barstate.isconfirmed, "Buy Sweep Reversal", "Buy sweep reversal confirmed.")
alertcondition(sellSignal and barstate.isconfirmed, "Sell Sweep Reversal", "Sell sweep reversal confirmed.") Indicador

Indicador

Indicador

FCPO KDJ Tower HA EMA StrategyFCPO 5-Min Strategy Backtest v1 — A day-trading strategy for FCPO (Malaysia Crude Palm Oil Futures, BMD:FCPO1!) built on a 5-layer confluence system: KDJ + Tower (Baota) + Heikin Ashi + EMA20 + MACD. It uses the exact same entry logic as the companion "FCPO 5min Signal System v2" indicator, converted to the Strategy Tester to validate signal quality.
Entry Conditions (all 5 layers must align) :
- Layer 1 — Trend filter: price above EMA20 = long only; below EMA20 = short only
- Layer 2 — Momentum: MACD histogram direction (5,20,5)
- Layer 3 — Extreme signal: KDJ J value < 20 (oversold) or > 80 (overbought)
- Layer 4 — Candle confirmation: Heikin Ashi direction matches raw candle close direction
- Layer 5 — Final filter: Tower (Baota) line flips red (bullish) / green (bearish)
- Entries only when flat; each signal fires once, on the first bar all conditions align
Exit Rules (intraday discipline) :
- Fixed stop-loss / take-profit: 8 points each by default (1 lot = RM25 per point, i.e. RM200 / RM200)
- Max holding time: 60 bars by default (can be disabled)
- End-of-day liquidation at 17:45 — no overnight positions
- No new entries after 17:15 (MYT)
Backtest Settings : commission RM12.5/lot and 1-tick slippage included; initial capital 10,000, fixed 1 lot.
How to Use : Open FCPO1! (or BMD:FCPO1!) on a 5-minute chart — keep regular candlesticks (do NOT enable Heikin Ashi candles, as fill prices would be distorted) — add the strategy, then open the Strategy Tester. All parameters (EMA / KDJ / MACD / stop-take points / time windows) are adjustable in the settings panel.
Disclaimer: This script is a technical-analysis tool for validation only. Backtest results do not guarantee future performance, and this is not financial advice. Futures trading involves high risk; always use proper risk management and stop-loss discipline.
FCPO 5分钟 策略回测 v1 —— 基于 KDJ + 宝塔线 + Heikin Ashi + EMA20 + MACD 五层共振入场系统的 FCPO(马来西亚棕榈油期货,BMD:FCPO1!)日内交易策略,与「FCPO 系统警报 v2」指标使用同一套入场逻辑,用于在策略回测器中验证信号质量。
入场条件(五层全部满足才开仓) :
- 第1层 大方向:价格在 EMA20 上方只做多,下方只做空
- 第2层 动量背景:MACD 柱状线方向(5,20,5)
- 第3层 极端信号:KDJ J 值 < 20(KDJL)或 > 80(KDJH)
- 第4层 K线确认:Heikin Ashi 同向 + 普通K线收盘同向
- 第5层 最终过滤:宝塔线翻红 / 翻绿
- 只在空仓时进场,信号首次满足时只触发一次
出场规则(按日内交易纪律) :
- 固定止损 / 止盈:默认各 8 点(1手合约每点 = RM25,即 RM200 / RM200)
- 最长持仓超时:默认 60 根K线(可关闭)
- 日内强平:17:45 触发清仓,不留隔夜仓
- 17:15 后不开新仓
回测设置 :已含手续费(RM12.5/手)与滑点(1 tick);初始资金 10,000,固定 1 手。
使用方法 :FCPO1!(或 BMD:FCPO1!)5 分钟图 → 保持普通K线蜡烛模式(不要开 Heikin Ashi 蜡烛,否则成交价失真)→ 添加策略 → 打开策略回测器查看结果。EMA / KDJ / MACD / 止损止盈点数 / 时间窗口等参数均可在设置面板调整。
提醒:本策略仅为技术分析验证工具,回测结果不代表未来表现,不构成任何投资建议。期货交易风险高,请务必配合资金管理与止损纪律。 Estrategia

Indicador

Indicador

Indicador
