Reentry BUY SELL OnlyReentry BBMA tapi per 4 jam sekali,,
Entri di time frame m15 folow buy dan sellnya
Concept
Box Theory StrategyHere is an explanation of the Box Theory trading strategy.
The Core Philosophy
This strategy is based on the idea that the market is a battle between buyers and sellers, and that these groups often defend the same price levels they used previously. Instead of trying to predict every move, this method focuses on trading only at the "extremes" where the probabilities are highest, while avoiding the middle of the chart where price action is random.
1. The Setup: Drawing the Box
To use this strategy, you must define the "playing field" for the day before you take any trades.
Top of the Box: Draw a line at the Previous Day’s High.
Bottom of the Box: Draw a line at the Previous Day’s Low.
Center Line: Draw a line roughly in the middle of these two points.
This box represents the established range where the market recently found value.
2. The Three Zones & Rules
Once the box is drawn, the chart is divided into three zones. Each zone dictates a specific action.
Zone 1: The Top (Resistance / Sell Zone)
What it represents: This is where sellers previously stepped in and pushed the price down. It is a known area of supply.
The Rule: NO BUYING.
If the price rallies to this level, you should look for Short/Sell opportunities.
Why? Buying here means purchasing at a price that was previously rejected. The probability of a reversal (price going down) is high.
Zone 2: The Bottom (Support / Buy Zone)
What it represents: This is where buyers previously stepped in and pushed the price up. It is a known area of demand.
The Rule: NO SELLING.
If the price drops to this level, you should look for Long/Buy opportunities.
Why? Selling here means shorting into support. The probability of a bounce (price going up) is high.
Zone 3: The Middle (Indecision Zone)
What it represents: This is the area of noise and confusion. Neither buyers nor sellers have clear control here.
The Rule: DO NOT TRADE.
Why? In the middle of the range, the odds of the price going up or down are roughly 50/50. Trading here is considered gambling because you do not have a statistical edge.
3. Execution: How to Trade
The Entry
Short Setup: Wait for the price to touch or slightly pierce the Top of the Box. Enter a short position when you see the price failing to break out (e.g., leaving a wick and closing back inside the box).
Long Setup: Wait for the price to touch or slightly pierce the Bottom of the Box. Enter a long position when you see the price failing to break down (e.g., bouncing off the level).
Stop Loss (Risk Management)
This strategy offers a very clear invalidation point.
For Shorts: Place your Stop Loss just above the box.
For Longs: Place your Stop Loss just below the box.
Logic: If the price clearly breaks out of the box, the range is broken, and you want to exit the trade immediately with a small loss.
Take Profit (Targets)
First Target: The Center Line. This is a safe place to take some profit or move your stop loss to breakeven.
Main Target: The opposite side of the box (e.g., if you sold at the top, target the bottom).
4. Handling Gaps (The "Cheater Box")
If the market opens significantly higher or lower than the previous day's range (a large gap), the original box may be too far away to be useful.
Adjustment: In this scenario, you can draw a new box using the highest and lowest price points of the current trading session so far.
Once this new range is established, apply the same rules: Sell the high, Buy the low, and avoid the middle.
Wavelet Candle Constructor (Inc. Morlet) 2Here is the detailed description of the **Wavelet Candle** construction principles based on the code provided.
This indicator is not a simple smoothing mechanism (like a Moving Average). It utilizes the **Discrete Wavelet Transform (DWT)**, specifically the Stationary variant (SWT / à Trous Algorithm), to separate "noise" (high frequencies) from the "trend" (low frequencies).
Here is how it works step-by-step:
###1. The Wavelet Kernel (Coefficients)The heart of the algorithm lies in the coefficients (the `h` array in the `get_coeffs` function). Each wavelet type represents a different set of mathematical weights that define how price data is analyzed:
* **Haar:** The simplest wavelet. It acts like a simple average of neighboring candles. It reacts quickly but produces a "boxy" or "jagged" output.
* **Daubechies 4:** An asymmetric wavelet. It is better at detecting sudden trend changes and the fractal structure of the market, though it introduces a slight phase shift.
* **Symlet / Coiflet:** More symmetric than Daubechies. They attempt to minimize lag (phase shift) while maintaining smoothness.
* **Morlet (Gaussian):** Implemented in this code as a Gaussian approximation (bell curve). It provides the smoothest, most "organic" effect, ideal for filtering noise without jagged edges.
###2. The Convolution EngineInstead of a simple average, the code performs a mathematical operation called **convolution**:
For every candle on the chart, the algorithm takes past prices, multiplies them by the Wavelet Kernel weights, and sums them up. This acts as a **digital low-pass filter**—it allows the main price movements to pass through while cutting out the noise.
###3. The "à Trous" Algorithm (Stationary Wavelet Transform)This is the key difference between this indicator and standard data compression.
In a classic wavelet transform, every second data point is usually discarded (downsampling). Here, the **Stationary** approach is used:
* **Level 1:** Convolution every **1** candle.
* **Level 2:** Convolution every **2** candles (skipping one in between).
* **Level 3:** Convolution every **4** candles.
* **Level 4:** Convolution every **8** candles.
Because of this, **we do not lose time resolution**. The Wavelet Candle is drawn exactly where the original candle is, but it represents the trend structure from a broader perspective. The higher the `Decomposition Level`, the deeper the denoising (looking at a wider context).
###4. Independent OHLC ProcessingThe algorithm processes each component of the candle separately:
1. Filters the **Open** series.
2. Filters the **High** series.
3. Filters the **Low** series.
4. Filters the **Close** series.
This results in four smoothed curves: `w_open`, `w_high`, `w_low`, `w_close`.
###5. Geometric Reconstruction (Logic Repair)Since each price series is filtered independently, the mathematics can sometimes lead to physically impossible situations (e.g., the smoothed `Low` being higher than the smoothed `High`).
The code includes a repair section:
```pinescript
real_high = math.max(w_high, w_low)
real_high := math.max(real_high, math.max(w_open, w_close))
// Same logic for Low (math.min)
```
This guarantees that the final Wavelet Candle always has a valid construction: wicks encapsulate the body, and the `High` is strictly the highest point.
---
###Summary of ApplicationThis construction makes the Wavelet Candle an **excellent trend-following tool**.
* If the candle is **green**, it means that after filtering the noise (according to the selected wavelet), the market energy is bullish.
* If it is **red**, the energy is bearish.
* The wicks show volatility that exists within the bounds of the selected decomposition level.
Here is a descriptive comparison of **Wavelet Candles** against other popular chart types. As requested, this is a narrative explanation focusing on the differences in mechanics, interpretation philosophy, and the specific pros and cons of each approach.
---
###1. Wavelet Candles vs. Standard (Japanese) CandlesThis is a clash between "the raw truth" and "mathematical interpretation." Standard Japanese candles display raw market data—exactly what happened on the exchange. Wavelet Candles are a synthetic image created by a signal processor.
**Differences and Philosophy:**
A standard candle is full of emotion and noise. Every single price tick impacts its shape. The Wavelet Candle treats this noise as interference that must be removed to reveal the true energy of the trend. Wavelets decompose the price, reject high frequencies (noise), and reconstruct the candle using only low frequencies (the trend).
* **Wavelet Advantages:** The main advantage is clarity. Where a standard chart shows a series of confusing candles (e.g., a long green one, followed by a short red one, then a doji), the Wavelet Candle often draws a smooth, uniform wave in a single color. This makes it psychologically easier to hold a position and ignore temporary pullbacks.
* **Wavelet Disadvantages:** The biggest drawback is the loss of price precision. The Open, Close, High, and Low values on a Wavelet candle are calculated, not real. You **cannot** place Stop Loss orders or enter trades based on these levels, as the actual market price might be in a completely different place than the smoothed candle suggests. They also introduce lag, which depends on the chosen wavelet—whereas a standard candle reacts instantly.
###2. Wavelet Candles vs. Heikin AshiThese are close cousins, but they share very different "DNA." Both methods aim to smooth the trend, but they achieve it differently.
**Differences and Philosophy:**
Heikin Ashi (HA) is based on a simple recursive arithmetic average. The current HA candle depends on the previous one, making it react linearly.
The Wavelet Candle uses **convolution**. This means the shape of the current candle depends on a "window" (group) of past candles multiplied by weights (Gaussian curve, Daubechies, etc.). This results in a more "organic" and elastic reaction.
* **Wavelet Advantages:** Wavelets are highly customizable. With Heikin Ashi, you are stuck with one algorithm. With Wavelet Candles, you can change the kernel to "Haar" for a fast (boxy) reaction or "Morlet" for an ultra-smooth, wave-like effect. Wavelets handle the separation of market cycles better than simple HA averaging, which can generate many false color flips during consolidation.
* **Wavelet Disadvantages:** They are computationally much more complex and harder to understand intuitively ("Why is this candle red if the price is going up?"). In strong, vertical breakouts (pumps), Heikin Ashi often "chases" the price faster, whereas deep wavelet decomposition (High Level) may show more inertia and change color more slowly.
###3. Wavelet Candles vs. RenkoThis compares two different dimensions: Time vs. Price.
**Differences and Philosophy:**
Renko completely ignores time. A new brick is formed only when the price moves by a specific amount. If the market stands still for 5 hours, nothing happens on a Renko chart.
The Wavelet Candle is **time-synchronous**. If the market stands still for 5 hours, the Wavelet algorithm will draw a series of flat, small candles (the "wavelet decays").
* **Wavelet Advantages:** They preserve the context of time, which is crucial for traders who consider trading sessions (London/New York) or macroeconomic data releases. On a wavelet chart, you can see when volatility drops (candles become small), whereas Renko hides periods of stagnation, which can be misleading for options traders or intraday strategies.
* **Wavelet Disadvantages:** In sideways trends (chop), Wavelet Candles—despite the smoothing—will still draw a "snake" that flips colors (unless you set a very high decomposition level). Renko can remain perfectly clean and static during the same period, not drawing any new bricks, which for many traders is the ultimate filter against overtrading in a flat market.
###Summary**Wavelet Candles** are a tool for the analyst who wants to visualize the **structure of the wave and market cycle**, accepting some lag in exchange for noise reduction, but without giving up the time axis (like in Renko) or relying on simple averaging (like in Heikin Ashi). It serves best as a "roadmap" for the trend rather than a "sniper scope" for precise entries.
Kinetic RSI [Vel + Accel] + AlertsThe Problem with Standard RSI
Most traders use the Relative Strength Index (RSI) to see if a market is "Overbought" (above 70) or "Oversold" (below 30). The problem? A strong trend can stay overbought for days, burning short sellers, or an asset can stay oversold while price continues to crash. Standard RSI tells you where the price is, but it doesn't tell you how hard it is moving.
The Solution: Kinetic RSI
This script reimagines RSI by applying basic physics concepts: Velocity and Acceleration.
Instead of asking "Is RSI below 30?", this indicator asks: "Is RSI below 35 AND did it just make a violent, high-speed turn upwards?"
It filters out lazy, drifting price action and only signals when momentum is accelerating in a new direction.
How It Works (The Math)
Velocity: We calculate the speed of the RSI change (Current RSI - Previous RSI).
Acceleration: We calculate if that speed is increasing (Current Velocity - Previous Velocity).
The Trigger: A signal is only generated if the RSI is in an extreme zone (<35 or >65) AND it has high Velocity AND positive Acceleration.
How to Trade It
1. The "Kick" Signals (Background Highlights)
🟢 Green Background (Bullish Kick): The RSI was low, but buyers stepped in aggressively. The momentum is not just positive; it is accelerating upward. This is often a "V-Bottom" catch.
🔴 Red Background (Bearish Kick): The RSI was high, but sellers slammed the price down. Momentum is accelerating downward.
2. The Line Color
Lime Line: Velocity is positive (Momentum is rising).
Fuchsia Line: Velocity is negative (Momentum is falling).
Usage: If the background flashes Green (Buy Signal), but the line turns back to Fuchsia (Red) a few bars later, the move has failed—exit the trade.
Settings & Alerts
RSI Length: Standard 14 (Adjustable).
Velocity Threshold: Controls sensitivity.
Lower (e.g., 2-3): More signals, catches smaller reversals.
Higher (e.g., 5+): Fewer signals, catches only massive "shocks" to the price.
Alerts Included: You can set alerts for "Bullish Kick," "Bearish Kick," or "Any Kick" to get notified of volatility spikes.
Best Practices
Wait for the Close: This indicator measures the closing velocity. Always wait for the bar to close to confirm the background color signal.
Trend Filtering: This works best as a "Reversal" indicator. If the market is in a super-strong uptrend, ignore the Bearish (Red) signals and only take the Bullish (Green) dips.
Hybrid Trend-Following Inside Bar BreakoutHybrid Trend-Following Inside Bar Breakout Strategy
The Hybrid Trend-Following Inside Bar Breakout Strategy is a rule-based trading system designed to capture strong directional moves while controlling risk during uncertain market conditions. It combines trend-following, price action, and volatility-based risk management into a single robust framework.
Core Concept
The strategy trades inside bar breakouts only in the direction of the dominant market trend. Inside bars represent periods of consolidation, and when price breaks out of this consolidation in a trending market, it often leads to impulsive moves with favorable risk–reward characteristics.
Key Components
1. Trend Filter
Uses 50 EMA and 200 EMA to define the market trend.
Bullish bias: 50 EMA above 200 EMA
Bearish bias: 50 EMA below 200 EMA
This filter prevents counter-trend trades and improves trade quality.
2. Volatility Filter
Compares fast ATR (14) with slow ATR (50).
Trades are taken only when volatility is expanding or above a minimum threshold.
This avoids low-volatility, choppy market conditions.
3. Inside Bar Breakout
An inside bar forms when the current candle’s high is lower than the previous candle’s high and the low is higher than the previous candle’s low.
A trade is triggered only when price breaks above or below the inside bar range in the direction of the trend.
4. Candle Quality Filter
Requires a minimum body-to-range ratio, ensuring that the breakout candle has strong momentum and is not driven by weak wicks.
Risk Management & Trade Management
Stop Loss (SL)
Placed using ATR-based dynamic stops, adapting to current market volatility.
Prevents tight stops in volatile conditions and wide stops in calm markets.
Partial Profit Taking
50% of the position is exited at 1.5R, locking in profits early.
This reduces psychological pressure and improves equity stability.
Trailing Stop
After partial profit is taken, the remaining position is managed with an ATR-based trailing stop.
Allows the strategy to capture large trend moves while protecting gains.
Cooldown Mechanism
After a losing trade, the system enters a cooldown period and skips a fixed number of bars.
This helps avoid revenge trading and overtrading during unfavorable market phases.
Why This Strategy Works
Trades only high-probability breakouts in trending markets
Adapts automatically to changing volatility
Combines price action precision with systematic risk control
Designed for consistent performance over long historical periods
Daily Open Shift The "Daily Open Shift" System (V2.0)
1. The Setup (Indicators & Timeframe)
• Timeframe: 15-Minute Chart (Execution).
• Key Levels: Daily Open (DO) or New York Open (NYO).
• Trend Indicators:
o 24 & 42 EMA Ribbon (Exponential Moving Averages).
o 30-Minute Supertrend.
________________________________________
2. Phase 1: Establish The Bias (The Filter)
This is the V2 upgrade. We do not trade against the day's opening momentum.
1. Mark the Open: Draw a horizontal line at the Daily Open (00:00) or Session Open.
2. The "First 2H" Rule: Observe the price action for the first 2 hours after the open.
o First 2H are Green/Bullish? → You are LONG BIAS only for the rest of the session. (Ignore all sell signals).
o First 2H are Red/Bearish? → You are SHORT BIAS only for the rest of the session. (Ignore all buy signals).
________________________________________
3. Phase 2: The Signal (The Switch)
Wait for the chart to confirm your bias technically.
1. The Switch: Price must cross and close a 15M candle on the correct side of the Daily Open.
o Longs: Price switches from below to above DO.
o Shorts: Price switches from above to below DO.
2. Indicator Confluence:
o EMAs: Must be crossed in your direction (Green for Long, Red for Short).
o 30M Supertrend: Must match your direction.
________________________________________
4. Phase 3: The Entry (The Trigger)
We never chase the breakdown. We wait for the price to come to us.
1. The Pullback: Wait for the price to retrace and touch/wick into the 24/42 EMA Ribbon.
2. The Confirmation: Watch the candle that touches the EMA.
o It must reject the EMA (wick off it) and close respecting the trend.
o Do not enter if the candle closes forcefully through the EMA, breaking structure.
3. Execution: Enter Market Order immediately on that candle close.
________________________________________
5. Phase 4: Risk Management (The Math)
This is the V2 upgrade. We aim for higher profitability.
1. Stop Loss (SL):
o Longs: Placed strictly below the lowest EMA band.
o Shorts: Placed strictly above the highest EMA band.
o Logic: If price crosses the EMA band completely, the trend is dead. Get out.
2. Take Profit (TP):
o FIXED 3R (Reward = 3x Risk).
o Example: If Risk is $100, TP is set to make $300.
o Rule: Do not move the TP. Do not close early. Let the math play out.
________________________________________
Summary Checklist (Print This)
Time: Is the First 2H bias clear? (Green=Buy / Red=Sell)
Switch: Did price close above/below the Daily Open?
Trend: Are EMAs crossed and Supertrend agreeing?
Patience: Did I wait for the price to pull back to the EMA band?
Trigger: Did the candle close respecting the EMA?
Execution: Market Entry + Stop Loss behind EMA + Fixed 3R Target.
Mindset: Am I at "2/10" emotion? Set the trade and walk away.
Crypto ATR Position Sizer + LeverageThis indicator is a "heads-up display" for crypto traders who need real time risk management without manually calculating position sizes. It uses Average True Range (ATR) to dynamically place Stop Losses based on current market volatility and automatically calculates the exact position size needed to respect your risk percentage.
Key Features:
Dynamic Risk Management: Stop Loss and Take Profit levels adjust automatically based on market volatility (ATR).
Auto-Position Sizing: Calculates the exact Quantity (in coins) and Position Value (in $) to ensure you never risk more than your defined percentage (e.g., 1% or 2%).
Leverage Calculator: Instantly sees the "Required Leverage" needed to execute the trade size relative to your account balance.
Crypto Precision: Displays up to 8 decimal places, making it compatible with both Bitcoin and low-sat altcoins.
Toggable Direction: Switch between Long and Short biases instantly via the settings menu.
How to Use:
Add the indicator to your chart.
Open Settings and input your Account Balance and Risk %.
Choose your direction (Long or Short) using the checkboxes.
The label will display your Entry, SL, TP, Coin Quantity, and Required Leverage in real-time.
Impulse %Impulse % — Liquidation Cascade Detector (BTC · 1H)
Impulse % identifies sharp impulsive price moves and liquidation cascades by measuring how much a candle’s range deviates from its historical average in percent.
How it works
Calculates the candle range (in %) relative to price and compares it to the average over N periods.
When the range exceeds the upper band, an Impulse is detected.
Inside each 1H candle, the indicator checks lower timeframes (1m / 5m) to classify the impulse phases:
PANIC — the first minutes of a violent move (forced liquidations, stop hunts).
CAUTION (Cascade) — continuation and “cleanup” phase with elevated risk.
Determines whether the impulse is against the trend using EMA 50 / EMA 200 — the most dangerous scenario.
Highlights risk zones to protect positions and filter new entries.
What it’s for
Avoid entering during liquidation cascades.
Exit at break-even or partially take profit during risky phases.
Recommended Settings — BTC (1H)
Calculation
Calculation TF: (empty = current)
Average Mode: By N bars
N (bars): 100
Range Type: High–Low
Bands
Upper Band (% of average): 130
Lower Band: Auto (same %)
Cascade (First Minutes)
Enable Cascade Filter: ON
When to trigger safety: Only against trend
PANIC (minutes): 3
CAUTION (minutes after PANIC): 15
Trend (EMA)
Use EMA Trend: ON
Fast EMA: 50
Slow EMA: 200
Lower TF Detection
Lower TF: 1m (or 5m if you prefer smoother signals)
Visualization
Style: Columns
Show Bands: ON
Show Band Lines & Mean: ON
How to read it (BTC · 1H)
Purple (PANIC): first minutes of liquidation — do not enter.
Yellow (CAUTION): cascade phase — high risk, manage/exit.
Normal color: no active cascade — strategy allowed.
Best practice:
1m/5m → real-time cascade detection
1H → decision level
4H → market context
Neosha Concept V4 (NY Time)
Imagine the financial market as a huge ocean. Millions of traders throw orders into it every second. But beneath all the noise, there is a powerful current that quietly controls where the waves move. That current is not a person, not a trader, and not random—it is an algorithm.
This algorithm is called the Interbank Price Delivery Algorithm (IPDA).
Think of it as the “navigation system” that guides price through the market.
IPDA has one job:
to move prices in a way that keeps the market efficient and liquid.
To do this, it constantly looks for two things:
1. Where liquidity is hiding
Liquidity is usually found above highs and below lows—where traders place stop losses. The algorithm moves price there first to collect that liquidity.
2. Where price became unbalanced
Sometimes price moves too fast and creates gaps or imbalances. IPDA returns to those areas later to “fix” the missing orders.
Once you start looking at the charts with this idea in mind, everything makes more sense:
Why price suddenly spikes above a high and crashes down
Why big moves leave gaps that price later fills
Why the market reverses right after taking stops
Why trends begin only after certain levels are hit
These are not accidents.
They are the algorithm doing its job.
Price moves in a repeating cycle:
Gather liquidity
Make a strong move (displacement)
Return to fix inefficiency
Deliver to the next target
Most beginners only see the candles.
But once you understand IPDA, you see the intention behind the candles.
Instead of guessing where price might go, you begin to understand why it moves there.
And once you understand the “why,” your trading becomes clearer, calmer, and far more accurate.
MTF Alignment & Key Levelsso this one is specifically for the 1hr and 4hr time frame. but what it does is alert you once the monthly weekly and daily timeframes align with a trend in a certain direction wether its bearish or bullish but then it will mark out key levels on the 1hr and 4hr time frame to indicate when price breaks through that level to enter a trade in the direction of the higher timeframes alignment.
XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)//@version=6
strategy("XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)",
overlay = true,
initial_capital = 10000,
pyramiding = 10,
process_orders_on_close = true)
//━━━━━━━━━━━━━━━━━━━
// 1. INPUTS
//━━━━━━━━━━━━━━━━━━━
// TP / SL
tp1Pips = input.int(10, "TP1 (pips)", minval = 1)
fixedSLpips = input.int(50, "Fixed SL (pips)", minval = 5)
runnerRR = input.float(3.0, "Runner RR (TP2 = SL * RR)", step = 0.1, minval = 1.0)
// Daily risk
maxDailyLossPct = input.float(5.0, "Max daily loss % (stop trading)", step = 0.5)
maxDailyProfitPct = input.float(20.0, "Max daily profit % (stop trading)", step = 1.0)
// HTF S/R (1H)
htfTF = input.string("60", "HTF timeframe (minutes) for S/R block")
// Profit strategy (Option C)
profitStrategy = input.string("Minimal Risk | Full BE after TP1", "Profit Strategy", options = )
// Runner stop mode (your option 4)
runnerStopMode = input.string( "BE only", "Runner Stop Mode", options = )
// ATR trail settings (only used if ATR mode selected)
atrTrailLen = input.int(14, "ATR Length (trail)", minval = 1)
atrTrailMult = input.float(1.0, "ATR Multiplier (trail)", step = 0.1, minval = 0.1)
// Pip size (for XAUUSD: 1 pip = 0.10 if tick = 0.01)
pipSize = syminfo.mintick * 10.0
tp1Points = tp1Pips * pipSize
slPoints = fixedSLpips * pipSize
baseQty = input.float (1.0, "Base order size" , step = 0.01, minval = 0.01)
//━━━━━━━━━━━━━━━━━━━
// 2. DAILY RISK MANAGEMENT
//━━━━━━━━━━━━━━━━━━━
isNewDay = ta.change(time("D")) != 0
var float dayStartEquity = na
var bool dailyStopped = false
equityNow = strategy.initial_capital + strategy.netprofit
if isNewDay or na(dayStartEquity)
dayStartEquity := equityNow
dailyStopped := false
dailyPnL = equityNow - dayStartEquity
dailyPnLPct = dayStartEquity != 0 ? (dailyPnL / dayStartEquity) * 100.0 : 0.0
if not dailyStopped
if dailyPnLPct <= -maxDailyLossPct
dailyStopped := true
if dailyPnLPct >= maxDailyProfitPct
dailyStopped := true
canTradeToday = not dailyStopped
//━━━━━━━━━━━━━━━━━━━
// 3. 1H S/R ZONES (for direction block)
//━━━━━━━━━━━━━━━━━━━
htOpen = request.security(syminfo.tickerid, htfTF, open)
htHigh = request.security(syminfo.tickerid, htfTF, high)
htLow = request.security(syminfo.tickerid, htfTF, low)
htClose = request.security(syminfo.tickerid, htfTF, close)
// Engulf logic on HTF
htBullPrev = htClose > htOpen
htBearPrev = htClose < htOpen
htBearEngulf = htClose < htOpen and htBullPrev and htOpen >= htClose and htClose <= htOpen
htBullEngulf = htClose > htOpen and htBearPrev and htOpen <= htClose and htClose >= htOpen
// Liquidity sweep on HTF previous candle
htSweepHigh = htHigh > ta.highest(htHigh, 5)
htSweepLow = htLow < ta.lowest(htLow, 5)
// Store last HTF zones
var float htResHigh = na
var float htResLow = na
var float htSupHigh = na
var float htSupLow = na
if htBearEngulf and htSweepHigh
htResHigh := htHigh
htResLow := htLow
if htBullEngulf and htSweepLow
htSupHigh := htHigh
htSupLow := htLow
// Are we inside HTF zones?
inHtfRes = not na(htResHigh) and close <= htResHigh and close >= htResLow
inHtfSup = not na(htSupLow) and close >= htSupLow and close <= htSupHigh
// Block direction against HTF zones
longBlockedByZone = inHtfRes // no buys in HTF resistance
shortBlockedByZone = inHtfSup // no sells in HTF support
//━━━━━━━━━━━━━━━━━━━
// 4. 1m LOCAL ZONES (LIQUIDITY SWEEP + ENGULF + QUALITY SCORE)
//━━━━━━━━━━━━━━━━━━━
// 1m engulf patterns
bullPrev1 = close > open
bearPrev1 = close < open
bearEngulfNow = close < open and bullPrev1 and open >= close and close <= open
bullEngulfNow = close > open and bearPrev1 and open <= close and close >= open
// Liquidity sweep by previous candle on 1m
sweepHighPrev = high > ta.highest(high, 5)
sweepLowPrev = low < ta.lowest(low, 5)
// Local zone storage (one active support + one active resistance)
// Quality score: 1 = engulf only, 2 = engulf + sweep (we only trade ≥2)
var float supLow = na
var float supHigh = na
var int supQ = 0
var bool supUsed = false
var float resLow = na
var float resHigh = na
var int resQ = 0
var bool resUsed = false
// New resistance zone: previous bullish candle -> bear engulf
if bearEngulfNow
resLow := low
resHigh := high
resQ := sweepHighPrev ? 2 : 1
resUsed := false
// New support zone: previous bearish candle -> bull engulf
if bullEngulfNow
supLow := low
supHigh := high
supQ := sweepLowPrev ? 2 : 1
supUsed := false
// Raw "inside zone" detection
inSupRaw = not na(supLow) and close >= supLow and close <= supHigh
inResRaw = not na(resHigh) and close <= resHigh and close >= resLow
// QUALITY FILTER: only trade zones with quality ≥ 2 (engulf + sweep)
highQualitySup = supQ >= 2
highQualityRes = resQ >= 2
inSupZone = inSupRaw and highQualitySup and not supUsed
inResZone = inResRaw and highQualityRes and not resUsed
// Plot zones
plot(supLow, "Sup Low", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(supHigh, "Sup High", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(resLow, "Res Low", color = color.new(color.red, 60), style = plot.style_linebr)
plot(resHigh, "Res High", color = color.new(color.red, 60), style = plot.style_linebr)
//━━━━━━━━━━━━━━━━━━━
// 5. MODERATE BOS (3-BAR FRACTAL STRUCTURE)
//━━━━━━━━━━━━━━━━━━━
// 3-bar swing highs/lows
swHigh = high > high and high > high
swLow = low < low and low < low
var float lastSwingHigh = na
var float lastSwingLow = na
if swHigh
lastSwingHigh := high
if swLow
lastSwingLow := low
// BOS conditions
bosUp = not na(lastSwingHigh) and close > lastSwingHigh
bosDown = not na(lastSwingLow) and close < lastSwingLow
// Zone “arming” and BOS validation
var bool supArmed = false
var bool resArmed = false
var bool supBosOK = false
var bool resBosOK = false
// Arm zones when first touched
if inSupZone
supArmed := true
if inResZone
resArmed := true
// BOS after arming → zone becomes valid for entries
if supArmed and bosUp
supBosOK := true
if resArmed and bosDown
resBosOK := true
// Reset BOS flags when new zones are created
if bullEngulfNow
supArmed := false
supBosOK := false
if bearEngulfNow
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 6. ENTRY CONDITIONS (ZONE + BOS + RISK STATE)
//━━━━━━━━━━━━━━━━━━━
flatOrShort = strategy.position_size <= 0
flatOrLong = strategy.position_size >= 0
longSignal = canTradeToday and not longBlockedByZone and inSupZone and supBosOK and flatOrShort
shortSignal = canTradeToday and not shortBlockedByZone and inResZone and resBosOK and flatOrLong
//━━━━━━━━━━━━━━━━━━━
// 7. ORDER LOGIC – TWO PROFIT STRATEGIES
//━━━━━━━━━━━━━━━━━━━
// Common metrics
atrTrail = ta.atr(atrTrailLen)
// MINIMAL MODE: single trade, BE after TP1, optional trailing
// HYBRID MODE: two trades (Scalp @ TP1, Runner @ TP2)
// Persistent tracking
var float longEntry = na
var float longTP1 = na
var float longTP2 = na
var float longSL = na
var bool longBE = false
var float longRunEntry = na
var float longRunTP1 = na
var float longRunTP2 = na
var float longRunSL = na
var bool longRunBE = false
var float shortEntry = na
var float shortTP1 = na
var float shortTP2 = na
var float shortSL = na
var bool shortBE = false
var float shortRunEntry = na
var float shortRunTP1 = na
var float shortRunTP2 = na
var float shortRunSL = na
var bool shortRunBE = false
isMinimal = profitStrategy == "Minimal Risk | Full BE after TP1"
isHybrid = profitStrategy == "Hybrid | Scalp TP + Runner TP"
//━━━━━━━━━━ LONG ENTRIES ━━━━━━━━━━
if longSignal
if isMinimal
longEntry := close
longSL := longEntry - slPoints
longTP1 := longEntry + tp1Points
longTP2 := longEntry + slPoints * runnerRR
longBE := false
strategy.entry("Long", strategy.long)
supUsed := true
supArmed := false
supBosOK := false
else if isHybrid
longRunEntry := close
longRunSL := longRunEntry - slPoints
longRunTP1 := longRunEntry + tp1Points
longRunTP2 := longRunEntry + slPoints * runnerRR
longRunBE := false
// Two separate entries, each 50% of baseQty (for backtest)
strategy.entry("LongScalp", strategy.long, qty = baseQty * 0.5)
strategy.entry("LongRun", strategy.long, qty = baseQty * 0.5)
supUsed := true
supArmed := false
supBosOK := false
//━━━━━━━━━━ SHORT ENTRIES ━━━━━━━━━━
if shortSignal
if isMinimal
shortEntry := close
shortSL := shortEntry + slPoints
shortTP1 := shortEntry - tp1Points
shortTP2 := shortEntry - slPoints * runnerRR
shortBE := false
strategy.entry("Short", strategy.short)
resUsed := true
resArmed := false
resBosOK := false
else if isHybrid
shortRunEntry := close
shortRunSL := shortRunEntry + slPoints
shortRunTP1 := shortRunEntry - tp1Points
shortRunTP2 := shortRunEntry - slPoints * runnerRR
shortRunBE := false
strategy.entry("ShortScalp", strategy.short, qty = baseQty * 50)
strategy.entry("ShortRun", strategy.short, qty = baseQty * 50)
resUsed := true
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 8. EXIT LOGIC – MINIMAL MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size > 0 and not na(longEntry)
// Move to BE once TP1 is touched
if not longBE and high >= longTP1
longBE := true
// Base SL: BE or initial SL
float dynLongSL = longBE ? longEntry : longSL
// Optional trailing after BE
if longBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longEntry
dynLongSL := math.max(dynLongSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailSL = close - atrTrailMult * atrTrail
dynLongSL := math.max(dynLongSL, trailSL)
strategy.exit("Long Exit", "Long", stop = dynLongSL, limit = longTP2)
// SHORT – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size < 0 and not na(shortEntry)
if not shortBE and low <= shortTP1
shortBE := true
float dynShortSL = shortBE ? shortEntry : shortSL
if shortBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortEntry
dynShortSL := math.min(dynShortSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailSLs = close + atrTrailMult * atrTrail
dynShortSL := math.min(dynShortSL, trailSLs)
strategy.exit("Short Exit", "Short", stop = dynShortSL, limit = shortTP2)
//━━━━━━━━━━━━━━━━━━━
// 9. EXIT LOGIC – HYBRID MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Hybrid: Scalp + Runner
if isHybrid
// Scalp leg: full TP at TP1
if strategy.opentrades > 0
strategy.exit("LScalp TP", "LongScalp", stop = longRunSL, limit = longRunTP1)
// Runner leg
if strategy.position_size > 0 and not na(longRunEntry)
if not longRunBE and high >= longRunTP1
longRunBE := true
float dynLongRunSL = longRunBE ? longRunEntry : longRunSL
if longRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longRunEntry
dynLongRunSL := math.max(dynLongRunSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailRunSL = close - atrTrailMult * atrTrail
dynLongRunSL := math.max(dynLongRunSL, trailRunSL)
strategy.exit("LRun TP", "LongRun", stop = dynLongRunSL, limit = longRunTP2)
// SHORT – Hybrid: Scalp + Runner
if isHybrid
if strategy.opentrades > 0
strategy.exit("SScalp TP", "ShortScalp", stop = shortRunSL, limit = shortRunTP1)
if strategy.position_size < 0 and not na(shortRunEntry)
if not shortRunBE and low <= shortRunTP1
shortRunBE := true
float dynShortRunSL = shortRunBE ? shortRunEntry : shortRunSL
if shortRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortRunEntry
dynShortRunSL := math.min(dynShortRunSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailRunSLs = close + atrTrailMult * atrTrail
dynShortRunSL := math.min(dynShortRunSL, trailRunSLs)
strategy.exit("SRun TP", "ShortRun", stop = dynShortRunSL, limit = shortRunTP2)
//━━━━━━━━━━━━━━━━━━━
// 10. RESET STATE WHEN FLAT
//━━━━━━━━━━━━━━━━━━━
if strategy.position_size == 0
longEntry := na
shortEntry := na
longBE := false
shortBE := false
longRunEntry := na
shortRunEntry := na
longRunBE := false
shortRunBE := false
//━━━━━━━━━━━━━━━━━━━
// 11. VISUAL ENTRY MARKERS
//━━━━━━━━━━━━━━━━━━━
plotshape(longSignal, title = "Long Signal", style = shape.triangleup,
location = location.belowbar, color = color.lime, size = size.tiny, text = "L")
plotshape(shortSignal, title = "Short Signal", style = shape.triangledown,
location = location.abovebar, color = color.red, size = size.tiny, text = "S")
Ashok 07 Dec 25 updated scriptTried to fix the bugs in previous script. Even now improvements are needed, but for now it looks reasonably profiting.
Adaptive Alligator - Asymmetric MH (Entry Only)
Adaptive Alligator – Asymmetric Mexican Hat (Entry Only)
This strategy combines adaptive cycle detection (wavelet + autocorrelation), directional entropy, and a Mexican Hat filter to generate highly selective LONG entry signals. Exits are based solely on the Alligator structure. The system is designed to detect asymmetric, strong, and accelerating bullish phases while filtering out market noise.
1. Adaptive Cycle Detection: The strategy analyzes the median price using wavelet decomposition (Haar, Daubechies D4/D6, Symlet 4), wavelet detail energy, and autocorrelation. It also incorporates the ratio of short-term to long-term ATR volatility. Based on these components, it computes a dominant_cycle value, which dynamically controls the lengths of the Alligator lines (Jaw, Teeth, Lips). This adaptive behavior allows the Alligator to speed up during trending phases and slow down during noise or consolidation.
2. Directional Entropy: Entropy is measured separately for upward and downward movements within the selected lookback window. The entropy difference: e_diff = entropy_down - entropy_up represents the directional bias of the market. When e_diff > 0, the market shows an organized bullish pressure; when < 0, bearish dominance.
3. Mexican Hat Filter: The Mexican Hat (Ricker Wavelet) acts as a second-derivative filter, detecting local maxima in the acceleration of directional entropy. The filtered output (mh_out) is compared against an adaptive noise level computed as SMA(|mh_out|). A signal is considered strong only when: – mh_out exceeds the adaptive noise level, – mh_out is rising relative to the previous bar. This step is critical for eliminating false signals produced by random fluctuations.
4. Entry Logic: A LONG entry requires all three layers: (1) Alligator structure: Lips > Teeth > Jaw. (2) Directional entropy bias: e_diff > 0. (3) A strong, accelerating Mexican Hat signal confirmed by a user-defined number of bars. Once all conditions are satisfied, a buy_final entry is triggered.
5. Exit Logic: Exits are intentionally simple and rely solely on the Alligator: crossunder(lips, teeth) This clean separation ensures precise, adaptive entries and stable, consistent exits.
6. Visual Components: – Alligator lines: Jaw (blue), Teeth (red), Lips (green), plotted with their characteristic offsets. – Background coloring reflects signal strength: dark green (STRONG BUY), lime (acceleration), yellow (weak bias), transparent otherwise. – A dedicated panel displays e_diff (entropy difference), mh_out (Mexican Hat output), and the adaptive noise band.
7. Diagnostic Table: A compact diagnostic dashboard shows: – MH Value, – Noise Level, – MH Acceleration (YES/NO), – Signal Status (STRONG BUY / ACCELERATING / WEAK / BEARISH). It updates on the last bar, making it suitable for live monitoring.
8. Use Case: This strategy is highly selective and ideal as an entry module within trend-following systems. By combining wavelets, entropy, and adaptive noise modeling, it effectively filters out consolidation periods and focuses only on statistically significant bullish transitions. It can be integrated with various exit frameworks such as ATR stops, channel-based exits, range boxes, or trailing logic.
Minho Index | SETUP (Safe Filter 90%)//@version=5
indicator("Minho Index | SETUP (Safe Filter 90%)", shorttitle="Minho Index | SETUP+", overlay=false)
//--------------------------------------------------------
// ⚙️ INPUTS
//--------------------------------------------------------
bullColor = input.color(color.new(color.lime, 0), "Bull Color (Minho Green)")
bearColor = input.color(color.new(color.red, 0), "Bear Color (Red)")
neutralColor = input.color(color.new(color.white, 0), "Neutral Color (White)")
lineWidth = input.int(2, "Line Width")
period = input.int(14, "RSI Period")
centerLine = input.float(50.0, "Central Line (Fixed at 50)")
//--------------------------------------------------------
// 🧠 BASE RSI + INTERNAL SMOOTHING
//--------------------------------------------------------
rsiBase = ta.rsi(close, period)
rsiSmooth = ta.sma(rsiBase, 3) // light smoothing
//--------------------------------------------------------
// 🔍 TREND DETECTION AND NEUTRAL ZONE
//--------------------------------------------------------
trendUp = (rsiSmooth > rsiSmooth ) and (rsiSmooth > rsiSmooth )
trendDown = (rsiSmooth < rsiSmooth ) and (rsiSmooth < rsiSmooth )
slopeUp = (rsiSmooth > rsiSmooth )
slopeDown = (rsiSmooth < rsiSmooth )
lineColor = neutralColor
if trendUp
lineColor := bullColor
else if trendDown
lineColor := bearColor
else if slopeUp or slopeDown
lineColor := neutralColor
//--------------------------------------------------------
// 📈 MAIN INDEX LINE
//--------------------------------------------------------
plot(rsiSmooth, title="Dynamic RSI Line (Safe Filter)", color=lineColor, linewidth=lineWidth)
//--------------------------------------------------------
// ⚪ FIXED CENTRAL LINE
//--------------------------------------------------------
plot(centerLine, title="Central Line (Highlight)", color=neutralColor, linewidth=1)
//--------------------------------------------------------
// 📊 NORMALIZED MOVING AVERAGES (SMA20 and EMA20)
//--------------------------------------------------------
SMA20 = ta.sma(close, 20)
EMA20 = ta.ema(close, 20)
// Normalization 0–100
minPrice = ta.lowest(low, 100)
maxPrice = ta.highest(high, 100)
rangeCalc = maxPrice - minPrice
rangeCalc := rangeCalc == 0 ? 1 : rangeCalc
normSMA = ((SMA20 - minPrice) / rangeCalc) * 100
normEMA = ((EMA20 - minPrice) / rangeCalc) * 100
//--------------------------------------------------------
// 🩶 MOVING AVERAGES PLOTS (GHOST-GREY STYLE)
//--------------------------------------------------------
ghostColor = color.new(color.rgb(200,200,200), 65)
plot(normSMA, title="SMA 20 (Ghost Grey)", color=ghostColor, linewidth=2)
plot(normEMA, title="EMA 20 (Ghost Grey)", color=ghostColor, linewidth=2)
//--------------------------------------------------------
// 🌈 FILL BETWEEN MOVING AVERAGES
//--------------------------------------------------------
bullCond = normSMA < normEMA
bearCond = normSMA > normEMA
fill(
plot(normSMA, display=display.none),
plot(normEMA, display=display.none),
color = bearCond ? color.new(color.red, 55) :
bullCond ? color.new(color.lime, 55) : na
)
//--------------------------------------------------------
// ✅ END OF INDICATOR
//--------------------------------------------------------
Obsidian Flux Matrix# Obsidian Flux Matrix | JackOfAllTrades
Made with my Senior Level AI Pine Script v6 coding bot for the community!
Narrative Overview
Obsidian Flux Matrix (OFM) is an open-source Pine Script v6 study that fuses social sentiment, higher timeframe trend bias, fair-value-gap detection, liquidity raids, VWAP gravitation, session profiling, and a diagnostic HUD. The layout keeps the obsidian palette so critical overlays stay readable without overwhelming a price chart.
Purpose & Scope
OFM focuses on actionable structure rather than marketing claims. It documents every driver that powers its confluence engine so reviewers understand what triggers each visual.
Core Analytical Pillars
1. Social Pulse Engine
Sentiment Webhook Feed: Accepts normalized scores (-1 to +1). Signals only arm when the EMA-smoothed value exceeds the `sentimentMin` input (0.35 by default).
Volume Confirmation: Requires local volume > 30-bar average × `volSpikeMult` (default 2.0) before sentiment flags.
EMA Cross Validation: Fast EMA 8 crossing above/below slow EMA 21 keeps momentum aligned with flow.
Momentum Alignment: Multi-timeframe momentum composite must agree (positive for longs, negative for shorts).
2. Peer Momentum Heatmap
Multi-Timeframe Blend: RSI + Stoch RSI fetched via request.security() on 1H/4H/1D by default.
Composite Scoring: Each timeframe votes +1/-1/0; totals are clamped between -3 and +3.
Intraday Readability: Configurable band thickness (1-5) so scalpers see context without losing space.
Dynamic Opacity: Stronger agreement boosts column opacity for quick bias checks.
3. Trend & Displacement Framework
Dual EMA Ribbon: Cyan/magenta ribbon highlights immediate posture.
HTF Bias: A higher-timeframe EMA (default 55 on 4H) sets macro direction.
Displacement Score: Body-to-ATR ratio (>1.4 default) detects impulses that seed FVGs or VWAP raids.
ATR Normalization: All thresholds float with volatility so the study adapts to assets and regimes.
4. Intelligent Fair Value Gap (FVG) System
Gap Detection: Three-candle logic (bullish: low > high ; bearish: high < low ) with ATR-sized minimums (0.15 × ATR default).
Overlap Prevention: Price-range checks stop redundant boxes.
Spacing Control: `fvgMinSpacing` (default 5) avoids stacking from the same impulse.
Storage Caps: Max three FVGs per side unless the user widens the limit.
Session Awareness: Kill zone filters keep taps focused on London/NY if desired.
Auto Cleanup: Boxes delete when price closes beyond their invalidation level.
5. VWAP Magnet + Liquidity Raid Engine
Session or Rolling VWAP: Toggle resets to match intraday or rolling preferences.
Equal High/Low Scanner: Looks back 20 bars by default for liquidity pools.
Displacement Filter: ATR multiplier ensures raids represent genuine liquidity sweeps.
Mean Reversion Focus: Signals fire when price displaces back toward VWAP following a raid.
6. Session Range Breakout System
Initial Balance Tracking: First N bars (15 default) define the session box.
Breakout Logic: Requires simultaneous liquidity spikes, nearby FVG activity, and supportive momentum.
Z-Score Volume Filter: >1.5σ by default to filter noisy moves.
7. Lifestyle Liquidity Scanner
Volume Z-Scores: 50-bar baseline highlights statistically significant spikes.
Smart Money Footprints: Bottom-of-chart squares color-code buy vs sell participation.
Panel Memory: HUD logs the last five raid timestamps, direction, and normalized size.
8. Risk Matrix & Diagnostic HUD
HUD Structure: Table in the top-right summarizes HTF bias, sentiment, momentum, range state, liquidity memory, and current risk references.
Signal Tags: Aggregates SPS, FVG, VWAP, Range, and Liquidity states into a compact string.
Risk Metrics: Swing-based stops (5-bar lookback) + ATR targets (1.5× default) keep risk transparent.
Signal Families & Alerts
Social Pulse (SPS): Volume-confirmed sentiment alignment; triangle markers with “SPS”.
Kill-Zone FVG: Session + HTF alignment + FVG tap; arrow markers plus SL/TP labels.
Local FVG: Captures local reversals when HTF bias has not flipped yet.
VWAP Raid: Equal-high/low raids that snap toward VWAP; “VWAP” label markers.
Range Breakout: Initial balance violations with liquidity and imbalance confirmation; circle markers.
Liquidity Spike: Z-score spikes ≥ threshold; square markers along the baseline.
Visual Design & Customization
Theme Palette: Primary background RGB (12,6,24). Accent shading RGB (26,10,48). Long accents RGB (88,174,255). Short accents RGB (219,109,255).
Stylized Candles: Optional overlay using theme colors.
Signal Toggles: Independently enable markers, heatmap, and diagnostics.
Label Spacing: Auto-spacing enforces ≥4-bar gaps to prevent text overlap.
Customization & Workflow Notes
Adjust ATR/FVG thresholds when volatility shifts.
Re-anchor sentiment to your webhook cadence; EMA smoothing (default 5) dampens noise.
Reposition the HUD by editing the `table.new` coordinates.
Use multiples of the chart timeframe for HTF requests to minimize load.
Session inputs accept exchange-local time; align them to your market.
Performance & Compliance
Pure Pine v6: Single-line statements, no `lookahead_on`.
Resource Safe: Arrays trimmed, boxes limited, `request.security` cached.
Repaint Awareness: Signals confirm on close; alerts mirror on-chart logic.
Runtime Safety: Arrays/loops guard against `na`.
Use Cases
Measure when social sentiment aligns with structure.
Plan ICT-style intraday rebalances around session-specific FVG taps.
Fade VWAP raids when displacement shows exhaustion.
Watch initial balance breaks backed by statistical volume.
Keep risk/target references anchored in ATR logic.
Signal Logic Snapshot
Social Pulse Long/Short: `sentimentEMA` gated by `sentimentMin`, `volSpike`, EMA 8/21 cross, and `momoComposite` sign agreement. Keeps hype tied to structural follow-through.
Kill-Zone FVG Long/Short: Requires session filter, HTF EMA bias alignment, and an active FVG tap (`bullFvgTap` / `bearFvgTap`). Labels include swing stops + ATR targets pulled from `swingLookback` and `liqTargetMultiple`.
Local FVG Long/Short: Uses `localBullish` / `localBearish` heuristics (EMA slope, displacement, sequential closes) to surface intraday reversals even when HTF bias has not flipped.
VWAP Raids: Detect equal-high/equal-low sweeps (`raidHigh`, `raidLow`) that revert toward `sessionVwap` or rolling VWAP when displacement exceeds `vwapAlertDisplace`.
Range Breakouts: Combine `rangeComplete`, breakout confirmation, liquidity spikes, and nearby FVG activity for statistically backed initial balance breaks.
Liquidity Spikes: Volume Z-score > `zScoreThreshold` logs direction, size, and timestamp for the HUD and optional review workflows.
Session Logic & VWAP Handling
Kill zone + NY session inputs use TradingView’s session strings; `f_inSession()` drives both visual shading and whether FVG taps are tradeable when `killZoneOnly` is true.
Session VWAP resets using cumulative price × volume sums that restart when the daily timestamp changes; rolling VWAP falls back to `ta.vwap(hlc3)` for instruments where daily resets are less relevant.
Initial balance box (`rangeBars` input) locks once complete, extends forward, and stays on chart to contextualize later liquidity raids or breakouts.
Parameter Reference
Trend: `emaFastLen`, `emaSlowLen`, `htfResolution`, `htfEmaLen`, `showEmaRibbon`, `showHtfBiasLine`.
Momentum: `tf1`, `tf2`, `tf3`, `rsiLen`, `stochLen`, `stochSmooth`, `heatmapHeight`.
Volume/Liquidity: `volLookback`, `volSpikeMult`, `zScoreLen`, `zScoreThreshold`, `equalLookback`.
VWAP & Sessions: `vwapMode`, `showVwapLine`, `vwapAlertDisplace`, `killSession`, `nySession`, `showSessionShade`, `rangeBars`.
FVG/Risk: `fvgMinTicks`, `fvgLookback`, `fvgMinSpacing`, `killZoneOnly`, `liqTargetMultiple`, `swingLookback`.
Visualization Toggles: `showSignalMarkers`, `showHeatmapBand`, `showInfoPanel`, `showStylizedCandles`.
Workflow Recipes
Kill-Zone Continuation: During the defined kill session, look for `killFvgLong` or `killFvgShort` arrows that line up with `sentimentValid` and positive `momoComposite`. Use the HUD’s risk readout to confirm SL/TP distances before entering.
VWAP Raid Fade: Outside kill zone, track `raidToVwapLong/Short`. Confirm the candle body exceeds the displacement multiplier, and price crosses back toward VWAP before considering reversions.
Range Break Monitor: After the initial balance locks, mark `rangeBreakLong/Short` circles only when the momentum band is >0 or <0 respectively and a fresh FVG box sits near price.
Liquidity Spike Review: When the HUD shows “Liquidity” timestamps, hover the plotted squares at chart bottom to see whether spikes were buy/sell oriented and if local FVGs formed immediately after.
Metadata
Author: officialjackofalltrades
Platform: TradingView (Pine Script v6)
Category: Sentiment + Liquidity Intelligence
Hope you Enjoy!
Linda Raschke 5 SMA Reversal [LuciTech]How This Indicator Works:
-5 SMA Tracking: Calculates a 5-period simple moving average and plots it on the chart.
-Extension Counter: Counts consecutive bars where price closes above or below the 5 SMA.
-BUY Signals (Green Up Arrow): Triggers when price closes BELOW the 5 SMA after 7+ consecutive closes ABOVE it—indicates a reversal opportunity into dynamic support.
-SELL Signals (Red Down Arrow): Triggers when price closes ABOVE the 5 SMA after 7+ consecutive closes BELOW it—indicates a reversal bounce setup.
-No Repainting: Signals only plot on confirmed bar closes; no repainting issues.
Linda Raschke's Core Principles:
-Extended Run = Imbalance: When price stays above/below the 5 SMA for 7+ bars, it's a one-sided market; mean reversion is likely.
-First Cross = Trigger: The first close back across the SMA after an extension is the reversal signal, not every touch.
-No Setup? No Trade: Without a prior extension or "three-bar balance" filter, a 5 SMA tag is noise. The model requires the prior momentum condition.
-Uptrend Buys: In uptrends, buy dips to the SMA (dynamic support) as long as the weekly/monthly trend is intact.
-Downtrend Fades: In downtrends, treat first rallies above the SMA as bounce fades into lower lows (especially after 14+ bars below).
LJ Parsons Harmonic Time StampsPurpose of the Script
This script is designed to divide a specific time period on a market chart (from startDate to endDate) into fractional segments based on mathematically significant ratios. It then plots vertical lines at the first candle that occurs at or after each of these fractional timestamps. Each line is labeled according to an interval scheme, as outlined by LJ Parsons
"Structured Multiplicative, Recursive Systems in Financial Markets"
papers.ssrn.com
Providing a symbolic mapping of time fractions
zenodo.org
Start (00) and End (00): Marks the beginning and end of the period.
Intermediate labels (m2, M2, m3, M3, …): Represent divisions of the time period that correspond to specific fractions of the whole.
This creates a visual “resonance map” along the price chart, where the timing of price movements can be compared to mathematically significant points.
Parsons Market Resonance Theory proposes that markets move in patterns that are not random but resonate with underlying mathematical structures, analogous to logarithmic relationships. The key ideas reflected in this script are:
Temporal Fractional Resonance
By marking fractional points of a defined time period, the script highlights potential moments when market activity might “resonate” due to cyclical patterns. These points are analogous to overtones in music—certain times may have stronger market reactions.
Mapping Market Movements to "Just Intonation" Intervals
Assigning Interval labels to fractional timestamps provides a symbolic framework for understanding market behaviour. For example, the midpoint (P5) may correspond to strong market turning points, while minor or major intervals (m3, M6) might correspond to subtler movements.
Identifying Potentially Significant Points in Time
The plotted lines do not predict price direction but rather identify temporal markers where price movements may be more likely to display structured behaviour. Traders or researchers can then study price reactions around these lines for correlations with market resonance patterns.
In essence, the script turns a period of time into a harmonic structure, with each line and label acting like a “note” in the market’s temporal symphony. It’s a tool to visualize and test whether price behaviour aligns with the resonant fractions hypothesized in MRT.
Focus On Work time (Tehran)If you only want to analyze the market during specific working hours and ignore the rest, this indicator is for you. It lets you hide or highlight non-working times on your chart, so you can focus only on the sessions that matter to you.
Just set your start time and end time for the work session.
By default, the time is set to UTC+3:30 (Tehran time), but you can change it to any timezone you like.
XAUUSD 9/1 and 6/4 zone lane chart (BUY zone and SELL zone)XAUUSD 9/1 and 6/4 zone lane chart (BUY zone and SELL zone)






















