ORB Asia London NYORB – Asia London NY in UTC time
Can adjust time settings to your own ORB strategy.
Pattern grafici
ORB Asia London NYThis script plots the highs & lows of all three market sessions Asia, London, and NY. in UTC The time frames can be adjusted to you're own ORB strategy.
The time period of opening range & the max timeframe to display it on can be adjusted from the settings.
So for eg. if want to use 15m NY ORB to trade, then set "NY time " as 14:30-14:45
XAU PDH-PDL REV (Buy the Dip)Indicator Description – Buy the Dip first, then Continuation
This indicator is designed for trading Gold (XAUUSD) with an institutional, pullback-focused mindset. It prioritises **REV (Reversal) signals** to *buy the dip* or *sell the rip* after a **significant ATR-based pullback**, without relying on EMA reclaim (so strong trends aren’t missed). Only when no valid reversal is present will it allow **CONT (Continuation) signals**, aligned with trend and EMA pullbacks. Key targets are based on **Daily, Weekly, or Rolling liquidity levels**, and all prices are shown as **whole numbers** for clarity. Session awareness (NZ time) helps contextualise signals, while cooldown logic reduces noise and over-trading.
NQ Order Blocks with Buy/Sell & QtyA function call is split across multiple lines
Or arguments are broken after a comma
Or indentation is inconsisten
NQ Order Blocks (Smart Money)Shows the order blocks for different time frames
Detects Bullish Order Blocks (last down candle before impulsive up move)
Detects Bearish Order Blocks (last up candle before impulsive down move)
Plots rectangles (zones) on the chart
Works well on NQ 1m–15m and HTF confirmation
Lightweight & free
MA RespectRatio RespectRatio
A Structural Moving Average Quality Indicator
What is RespectRatio
RespectRatio is a statistical indicator designed to evaluate *how reliably a stock respects a specific moving average over time.
Instead of asking “Did price touch the MA?”, it answers a more meaningful question:
Does this moving average actually function as support for this stock consistently and structurally?
The indicator focuses on *historical behavior, not short-term signals, and is intended to support buy / hold / reduce decisions rather than precise trade timing.
Why RespectRatio Exists
Many stocks frequently touch moving averages, but only some of them:
Rebound cleanly
Hold above the average
Do so repeatedly over long periods
RespectRatio was built to separate real support from visual noise.
Core Concept
RespectRatio treats every interaction between price and the moving average as a measurable event.
Each event ends in one of two outcomes:
• Bounce — price respects the moving average
• Break — price fails and breaks below it
Over time, these outcomes form a probability profile of how the stock behaves around that average.
How an Event Starts
An event begins when price meaningfully interacts with the moving average, either by:
• Entering a volatility-adjusted proximity zone around the MA, or
• Crossing below the MA (including gap-downs)
The proximity zone is adaptive and defined as:
k = ATR% × kMultiplier
This keeps the definition of “close enough” consistent across assets and volatility regimes.
Event Outcomes
Bounce (Respect)
An event is classified as a Bounce when price:
• Moves back above the moving average
• Clears a minimal buffer above it
• *Maintains that position for a defined number of sessions.
This confirms that the moving average acted as real support not a temporary pause.
Break (Failure)
An event becomes a Break when price:
• Remains below the moving average for too long, or
• Falls significantly below it and fails to reclaim it within a short window
A Break signals structural weakness at that average.
Noise Control
To avoid statistical distortion:
• Only one outcome per event is recorded
• A cooldown period prevents immediate re-counting of the same struggle
• Each event is counted once, regardless of intraday noise
This ensures clean, independent data points.
The Final Metric
The indicator produces a single core metric:
RespectRatio = Bounces / (Bounces + Breaks)
Calculated over a rolling historical window.
How to Interpret RespectRatio
• High RespectRatio
The moving average has historically acted as reliable support
→ suitable for accumulation or holding strategies
• Low RespectRatio
The moving average is frequently violated
→ caution when relying on it as support
RespectRatio does not predict future price, but measures structural trustworthiness.
What RespectRatio Is Not
• Not a buy/sell signal generator
• Not a trend-following indicator
• Not a momentum oscillator
It is a contextual filter* that improves decision quality.
Typical Use Cases
• Evaluating whether a stock deserves to be bought near a long-term MA
• Comparing multiple stocks using the same moving average
• Filtering candidates before applying other strategies
• Long-term portfolio decision support
One-Sentence Summary
RespectRatio quantifies how often the market actually respects a moving average — turning a visual assumption into measurable probability.*
Session High/Low (Last 7 Days, Auto Delete) CGNew York, London and aces session, highs and lows for seven days once price revisits The zones disappear.
M.T.C. Gold Pocket Break of Structure (BOS)
Swing → impuls
Fib over impuls
Gold Pocket = entry
SL onder OB
TP1 = RR 1:1
TP2 = RR 1:2
Ping-Pong Fade (BB + Absorption Proxy)Ping-Pong Fade is a mean-reversion fade indicator designed to capture short-term reversals at statistically extreme price levels only when real participation and absorption behavior are present.
This script intentionally mashes up Bollinger Bands, volume expansion, and candle structure to filter out weak band touches and isolate defended extremes.
Why This Mashup Exists
Bollinger Band fades fail most often when:
Price is expanding with conviction
Breakouts are supported by strong directional bodies
There is no opposing liquidity at the extremes
This indicator solves that by requiring three independent confirmations before signaling a fade:
Statistical Extremity (Bollinger Bands)
Participation (Volume Expansion)
Absorption / Rejection (Candle Structure)
Only when all three align does the script trigger a signal.
Component Breakdown & How They Work Together
1. Bollinger Bands – Where price should react
Uses a standard SMA + standard deviation envelope
Defines upper and lower statistical extremes
Provides the location for potential fades, not the signal by itself
Bands answer where, not whether.
2. Volume Spike Filter – Who is involved
Compares current volume to a moving average
Requires volume to exceed a configurable multiple
Ensures the interaction at the band is meaningful, not illiquid noise
No volume = no real defense = no trade.
3. Candle Body % (Absorption Proxy) – How price is behaving
Measures candle body relative to full range
Small bodies at the band imply:
Heavy two-sided trading
Aggression being absorbed
Failure to close through the extreme
This acts as a practical proxy for order-flow absorption without requiring Level II or footprint data.
Big range + small body + high volume = pressure met with resistance.
Signal Logic (The “Ping-Pong” Effect)
🔽 Short Fade
Triggered when:
Price probes above the upper Bollinger Band
Volume spikes above normal
Candle shows a small body and fails to close strong at highs
Interpretation:
Buyers pushed price to an extreme, but were absorbed. Expect rotation back toward the mean.
🔼 Long Fade
Triggered when:
Price probes below the lower Bollinger Band
Volume spikes above normal
Candle shows a small body and fails to close strong at lows
Interpretation:
Sellers forced price down, but were absorbed. Expect a bounce toward the mean.
What This Indicator Is Best Used For
Intraday mean-reversion setups
Range-bound or rotational markets
Scalping and short-term fades near extremes
Confirmation layer alongside VWAP, structure, or HTF bias
What It Is Not
A breakout tool
A trend-following indicator
A standalone system without context
Core Philosophy
Extreme + Volume + Failure = Opportunity
Ping-Pong Fade is designed to show you when price tries to escape its range — and fails — allowing you to fade the move with structure and intent.
[ST] Killzones - Minimal Killzones — Minimal
User Manual
1. Purpose of the Indicator
Killzones — Minimal is a session-based market structure tool designed to highlight the highest-liquidity time windows of the trading day.
Instead of generating signals, this indicator provides context by visually marking the ICT Killzones, allowing the trader to:
Identify where liquidity is built
See which session created the range
Anticipate where liquidity is likely to be taken
Align SMC / Wyckoff / Order Flow analysis with time-based institutional behavior
This tool is especially effective for Crypto, Forex, and Indices, where markets run continuously and liquidity cycles matter more than exchange open times.
2. Killzones Covered (São Paulo Time – UTC-3)
The indicator draws one minimal, dotted box per session:
Session Time (SP) Role in Market Structure
ASIA 21:00 – 03:00 Range formation & liquidity buildup
LONDON 04:00 – 07:00 First liquidity raid & manipulation
NEW YORK (Killzone) 10:00 – 13:00 True displacement & delivery
These are ICT Killzones, not official stock exchange open times.
3. Visual Design Philosophy
The indicator is intentionally minimalist:
Dotted borders → no visual clutter
Optional fill → focus on structure, not noise
No signals or arrows → forces contextual reading
One box per session → clean session boundaries
The goal is to let price action and liquidity tell the story, not indicators.
4. How the Boxes Behave
Each session box:
Starts on the first candle of the session
Expands dynamically to include the session High and Low
Stops updating once the session ends
Remains fixed on the chart as historical context
This allows you to instantly see:
Which session created the current range
Where stop-loss clusters are likely resting
Which session was manipulated or delivered price
5. How to Use the Indicator (Practical Workflow)
Step 1 — Identify the Current Session
Ask:
Are we inside Asia, London, or New York?
Your expectations should change depending on the session.
Step 2 — Read Session Intent
ASIA
Expect compression and balance
Focus on identifying Asia High / Asia Low
Avoid aggressive trades inside the range
LONDON
Look for liquidity raids on Asia High/Low
Many London moves are manipulative
A failed raid is often a setup for NY
NEW YORK
Look for true displacement
High probability of:
Continuation
Reversal after a sweep
Best session to execute trades
Step 3 — Trade Liquidity, Not Candles
Use the boxes as liquidity maps, not entries.
High-probability ideas come from:
Asia range being swept during London
London manipulation being reversed during NY
NY taking remaining liquidity and delivering direction
6. Example Use Cases
Setup 1 — Asia Range Sweep
Asia forms a tight range
London sweeps Asia High or Low
Price fails to continue
Market shifts structure
Entry on OB / FVG toward the opposite side
Setup 2 — London Manipulation → NY Delivery
London sweeps liquidity but stalls
New York opens
NY takes the opposite side liquidity
Strong displacement occurs
Entry on NY pullback
Setup 3 — Session Breakout
No sweep
Immediate strong displacement
Clean continuation
Trade only after confirmation
7. What NOT to Do
Do not trade inside the middle of session boxes
Do not assume every sweep means reversal
Do not force trades without structure shift
Do not treat sessions as signals
The indicator shows where to pay attention, not when to click Buy or Sell.
8. Best Confluence Tools
This indicator works best when combined with:
Market Structure (BOS / CHoCH)
Order Blocks
Fair Value Gaps
Liquidity pools
Volume-based candle analysis (e.g. CandleFlow)
9. Final Notes
Killzones — Minimal is a contextual framework, not a strategy.
If you wait for:
Liquidity to be taken
Structure to shift
Price to confirm intent
You will trade with the market narrative, not against it.
Time reveals intent. Liquidity confirms it.
Sentinel Market Structure [JOAT]
Sentinel Market Structure - Smart Money Structure Analysis
Introduction and Purpose
Sentinel Market Structure is an open-source overlay indicator that identifies swing highs/lows, tracks market structure (HH/HL/LH/LL), detects Break of Structure (BOS) and Change of Character (CHoCH) signals, and marks order blocks. The core problem this indicator solves is that retail traders often miss structural shifts that smart money traders use to identify trend changes.
This indicator addresses that by automatically tracking market structure and alerting traders to key structural breaks that often precede significant moves.
Why These Components Work Together
Each component provides different structural information:
1. Swing Detection - Identifies significant pivot highs and lows. These are the building blocks of market structure.
2. Structure Labels (HH/HL/LH/LL) - Classifies each swing relative to the previous swing. Higher Highs + Higher Lows = uptrend. Lower Highs + Lower Lows = downtrend.
3. Break of Structure (BOS) - Identifies when price breaks a swing level in the direction of the trend. This is a continuation signal.
4. Change of Character (CHoCH) - Identifies when price breaks a swing level against the trend. This is a potential reversal signal.
5. Order Blocks - Marks the last opposing candle before an impulse move. These zones often act as future support/resistance.
How the Detection Works
Swing Detection:
bool swingHighDetected = high == ta.highest(high, swingLength * 2 + 1)
bool swingLowDetected = low == ta.lowest(low, swingLength * 2 + 1)
BOS vs CHoCH Logic:
// BOS: Break in direction of trend (continuation)
bool bullishBOS = close > lastSwingHigh and marketTrend >= 0
// CHoCH: Break against trend (reversal signal)
bool bullishCHOCH = close > lastSwingHigh and marketTrend < 0
Order Block Detection:
bool bullOB = close < open and // Previous candle bearish
close > open and // Current candle bullish
close > high and // Breaking above
(high - low) > ta.atr(14) * 1.5 // Strong impulse
Signal Types
HH (Higher High) - Swing high above previous swing high (bullish structure)
HL (Higher Low) - Swing low above previous swing low (bullish structure)
LH (Lower High) - Swing high below previous swing high (bearish structure)
LL (Lower Low) - Swing low below previous swing low (bearish structure)
BOS↑/BOS↓ - Break of structure in trend direction (continuation)
CHoCH↑/CHoCH↓ - Change of character against trend (potential reversal)
Dashboard Information
Trend - Current market bias (BULLISH/BEARISH/NEUTRAL)
Swing High - Last swing high price with HH/LH label
Swing Low - Last swing low price with HL/LL label
Structure - Current structure state (HH+HL, LH+LL, etc.)
Price - Price position relative to structure
How to Use This Indicator
For Trend Following:
1. Identify trend using structure (HH+HL = uptrend, LH+LL = downtrend)
2. Enter on BOS signals in trend direction
3. Use swing levels for stop placement
For Reversal Trading:
1. Watch for CHoCH signals (break against trend)
2. Confirm with order block formation
3. Enter on retest of order block zone
For Risk Management:
1. Place stops beyond swing highs/lows
2. Use structure lines as trailing stop references
3. Exit when CHoCH signals against your position
Input Parameters
Swing Detection Length (5) - Bars on each side for pivot detection
Show Swing High/Low Points (true) - Toggle swing markers
Show BOS/CHoCH (true) - Toggle structural break signals
Show Structure Lines (true) - Toggle horizontal swing lines
Show Order Blocks (true) - Toggle order block zones
Zone Extension (50) - How far order block boxes extend
Timeframe Recommendations
15m-1H: Good for intraday structure analysis
4H-Daily: Best for swing trading structure
Lower timeframes require smaller swing detection length
Limitations
Swing detection has inherent lag (needs confirmation bars)
Not all BOS/CHoCH signals lead to continuation/reversal
Order block zones are simplified (not full ICT methodology)
Structure analysis is subjective - different traders see different swings
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes.
This indicator does not constitute financial advice. Market structure analysis does not guarantee trade outcomes. Always use proper risk management.
- Made with passion by officialjackofalltrades
MA Momentum Score by WizkaThis is my explorative study script which I have named as MA Momentum Score. It calculates one score number (-10,+10) to describe the price and MA structure. It gives points on the order and direction of price and three moving averages so that bullish order (Price>MA20>MA50>MA200) gives +1 point to each pair, and bearish order gives -1 point. There are 6 comparisons (price and 3 MAs against each other). Addition to this +1 point is given if the direction of each is upwards, and -1 if downwards. So, altogether score can be from -10p (fully bearish structure) to +10p (fully bullish structure). This is shown as blue line in the indicator. It uses classic SMAs of 20,50,200 and it is called Slow score. Next, the similar score is calculated for faster MAs (5,12,26) and it is called Fast score (orange line). Finally, the differential Fast-Slow is calculated and visualized as histogram. Green, when Fast>Slow (bullish), and Red, when Fast
Expansion Setup: Entries & structure + AlertsThis is a specific market condition often called a Broadening Formation or an Expansion Move, where volatility increases enough to break both the previous structural low and then immediately break the previous structural high (or vice versa).
1. LL to HH: A New Lower Low is formed, followed immediately by a New Higher High.
2. HH to LL: A New Higher High is formed, followed immediately by a New Lower Low.
3. Entry Levels: When a setup is detected (LL ➔ HH or HH ➔ LL), the script now draws two specific entry lines extending forward:
The "Breaker" Level: The previous structure point that was broken. (Often a safe retest entry).
The 50% Retracement: The midpoint of the expansion move (The "Equilibrium" or "Discount" entry).
Bitcoin Logarithmic Model with Ranges and ForecastsThis chart is based on the following post x.com and projects the price if bitcoin out into 2039
ronismc333 דור בן שימול: //+------------------------------------------------------------------+
//| SMC GBP PRO EA – FTMO Ready 30M עם חצים |
//+------------------------------------------------------------------+
#property strict
input double RiskPercent = 1.0;
input int RSIPeriod = 14;
input int StopLossPoints = 200;
input int TakeProfitPoints = 400;
input int MagicNumber = 202630;
input bool EnableAlerts = true;
int rsiHandle;
//+------------------------------------------------------------------+
int OnInit()
{
rsiHandle = iRSI(_Symbol, PERIOD_M30, RSIPeriod, PRICE_CLOSE);
Comment("SMC GBP PRO EA Status: CONNECTED Account: ", AccountNumber());
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
if(PositionsTotal() > 0)
{
UpdateStatus();
return;
}
double rsi ;
CopyBuffer(rsiHandle,0,0,1,rsi);
double high1 = iHigh(_Symbol, PERIOD_M30,1);
double low1 = iLow(_Symbol, PERIOD_M30,1);
double close1= iClose(_Symbol, PERIOD_M30,1);
double high2 = iHigh(_Symbol, PERIOD_M30,2);
double low2 = iLow(_Symbol, PERIOD_M30,2);
//==== HTF TREND (1H EMA50) ====
double emaHTF = iMA(_Symbol, PERIOD_H1, 50, 0, MODE_EMA, PRICE_CLOSE, 0);
double closeHTF = iClose(_Symbol, PERIOD_H1, 0);
bool htfBull = closeHTF > emaHTF;
bool htfBear = closeHTF < emaHTF;
//==== LIQUIDITY SWEEP ====
bool sweepBuy = low1 < low2 && close1 > low2;
bool sweepSell = high1 > high2 && close1 < high2;
//==== BOS ====
bool bosBuy = sweepBuy && close1 > high2;
bool bosSell = sweepSell && close1 < low2;
//==== BUY/SELL CONDITIONS ====
bool buy = bosBuy && rsi > 50 && htfBull;
bool sell = bosSell && rsi < 50 && htfBear;
double lot = CalculateLot(StopLossPoints, RiskPercent);
if(buy)
{
OpenTrade(ORDER_TYPE_BUY, lot, StopLossPoints, TakeProfitPoints, "BUY GBP");
DrawArrow("BUY", 0, low1 - 10*_Point, clrLime, "BUY GBP");
}
if(sell)
{
OpenTrade(ORDER_TYPE_SELL, lot, StopLossPoints, TakeProfitPoints, "SELL GBP");
DrawArrow("SELL", 0, high1 + 10*_Point, clrRed, "SELL GBP");
}
UpdateStatus();
}
//+------------------------------------------------------------------+
double CalculateLot(int slPoints, double riskPercent)
{
double riskMoney = AccountBalance() * riskPercent / 100.0;
double lot = riskMoney / (slPoints * _Point * 10);
lot = MathMax(lot,0.01);
return(NormalizeDouble(lot,2));
}
//+------------------------------------------------------------------+
void OpenTrade(ENUM_ORDER_TYPE type,double lot,int sl,int tp,string comment)
{
double price = (type==ORDER_TYPE_BUY) ? SymbolInfoDouble(_Symbol,SYMBOL_ASK)
: SymbolInfoDouble(_Symbol,SYMBOL_BID);
double slPrice = (type==ORDER_TYPE_BUY) ? price - sl*_Point
: price + sl*_Point;
double tpPrice = (type==ORDER_TYPE_BUY) ? price + tp*_Point
: price - tp*_Point;
MqlTradeRequest req;
MqlTradeResult res;
ZeroMemory(req);
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.volume = lot;
req.type = type;
req.price = price;
req.sl = slPrice;
req.tp = tpPrice;
req.deviation= 20;
req.magic = MagicNumber;
req.comment = comment;
if(!OrderSend(req,res))
{
Print("Trade failed: ",res.retcode);
if(EnableAlerts) Alert("Trade failed: ",res.retcode);
}
else
{
if(EnableAlerts) Alert(comment," opened at ",price);
Print(comment," opened at ",price);
}
}
//+------------------------------------------------------------------+
void UpdateStatus()
{
string text = "SMC GBP PRO EA Status: CONNECTED Account: "+IntegerToString(AccountNumber());
if(PositionsTotal()>0) text += " Trade Open!";
Comment(text);
}
//+------------------------------------------------------------------+
void DrawArrow(string name, int shift, double price, color clr, string text)
{
string objName = name + IntegerToString(TimeCurrent());
if(ObjectFind(0,objName) >=0) ObjectDelete(0,objName);
ObjectCreate(0,objName,OBJ_ARROW,0,Time ,price);
ObjectSetInteger(0,objName,OBJPROP_COLOR,clr);
ObjectSetInteger(0,objName,OBJPROP_WIDTH,2);
ObjectSetInteger(0,objName,OBJPROP_ARROWCODE,233); // חץ
ObjectSetString(0,objName,OBJPROP_TEXT,text);
}
------------------------------------------------------------------+
//| SMC GBP PRO EA – FTMO 30M + TP/SL + Trailing Stop |
//+------------------------------------------------------------------+
#property strict
input double RiskPercent = 1.0;
input int RSIPeriod = 14;
input int StopLossPoints = 200;
input int TakeProfitPoints = 400;
input int MagicNumber = 202630;
input bool EnableAlerts = true;
int rsiHandle;
//+------------------------------------------------------------------+
int OnInit()
{
rsiHandle = iRSI(_Symbol, PERIOD_M30, RSIPeriod, PRICE_CLOSE);
Comment("SMC GBP PRO EA Status: CONNECTED Account: ", AccountNumber());
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
//
UpdateStatus();
// Trailing Stop
ManageTrailing();
if(PositionsTotal() > 0) return;
double rsi ;
CopyBuffer(rsiHandle,0,0,1,rsi);
double high1 = iHigh(_Symbol, PERIOD_M30,1);
double low1 = iLow(_Symbol, PERIOD_M30,1);
double close1= iClose(_Symbol, PERIOD_M30,1);
double high2 = iHigh(_Symbol, PERIOD_M30,2);
double low2 = iLow(_Symbol, PERIOD_M30,2);
//==== HTF TREND (1H EMA50) ====
double emaHTF = iMA(_Symbol, PERIOD_H1, 50, 0, MODE_EMA, PRICE_CLOSE, 0);
double closeHTF = iClose(_Symbol, PERIOD_H1, 0);
bool htfBull = closeHTF > emaHTF;
bool htfBear = closeHTF < emaHTF;
//==== LIQUIDITY SWEEP ====
bool sweepBuy = low1 < low2 && close1 > low2;
bool sweepSell = high1 > high2 && close1 < high2;
//==== BOS ====
bool bosBuy = sweepBuy && close1 > high2;
bool bosSell = sweepSell && close1 < low2;
//==== BUY/SELL CONDITIONS ====
bool buy = bosBuy && rsi > 50 && htfBull;
bool sell = bosSell && rsi < 50 && htfBear;
double lot = CalculateLot(StopLossPoints, RiskPercent);
if(buy)
{
OpenTrade(ORDER_TYPE_BUY, lot, StopLossPoints, TakeProfitPoints, "BUY GBP");
DrawArrow("BUY", 0, low1 - 10*_Point, clrLime, "BUY GBP");
}
if(sell)
{
OpenTrade(ORDER_TYPE_SELL, lot, StopLossPoints, TakeProfitPoints, "SELL GBP");
DrawArrow("SELL", 0, high1 + 10*_Point, clrRed, "SELL GBP");
}
}
//+------------------------------------------------------------------+
double CalculateLot(int slPoints, double riskPercent)
{
double riskMoney = AccountBalance() * riskPercent / 100.0;
double lot = riskMoney / (slPoints * _Point * 10);
lot = MathMax(lot,0.01);
return(NormalizeDouble(lot,2));
}
//+------------------------------------------------------------------+
void OpenTrade(ENUM_ORDER_TYPE type,double lot,int sl,int tp,string comment)
{
double price = (type==ORDER_TYPE_BUY) ? SymbolInfoDouble(_Symbol,SYMBOL_ASK)
: SymbolInfoDouble(_Symbol,SYMBOL_BID);
double slPrice = (type==ORDER_TYPE_BUY) ? price - sl*_Point
: price + sl*_Point;
double tpPrice = (type==ORDER_TYPE_BUY) ? price + tp*_Point
: price - tp*_Point;
MqlTradeRequest req;
MqlTradeResult res;
ZeroMemory(req);
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.volume = lot;
req.type = type;
req.price = price;
req.sl = slPrice;
req.tp = tpPrice;
req.deviation= 20;
req.magic = MagicNumber;
req.comment = comment;
if(!OrderSend(req,res))
{
Print("Trade failed: ",res.retcode);
if(EnableAlerts) Alert("Trade failed: ",res.retcode);
}
else
{
if(EnableAlerts) Alert(comment," opened at ",price);
Print(comment," opened at ",price);
}
}
//+------------------------------------------------------------------+
void UpdateStatus()
{
string text = "SMC GBP PRO EA Status: CONNECTED Account: "+IntegerToString(AccountNumber());
if(PositionsTotal()>0) text += " Trade Open!";
Comment(text);
}
//+------------------------------------------------------------------+
void DrawArrow(string name, int shift, double price, color clr, string text)
{
string objName = name + IntegerToString(TimeCurrent());
if(ObjectFind(0,objName) >=0) ObjectDelete(0,objName);
ObjectCreate(0,objName,OBJ_ARROW,0,Time ,price);
ObjectSetInteger(0,objName,OBJPROP_COLOR,clr);
ObjectSetInteger(0,objName,OBJPROP_WIDTH,2);
ObjectSetInteger(0,objName,OBJPROP_ARROWCODE,233); // חץ
ObjectSetString(0,objName,OBJPROP_TEXT,text);
}
//+------------------------------------------------------------------+
void ManageTrailing()
{
for(int i=PositionsTotal()-1;i>=0;i--)
{
ulong ticket = PositionGetTicket(i);
if(PositionSelectByTicket(ticket))
{
double price = PositionGetDouble(POSITION_PRICE_OPEN);
double sl = PositionGetDouble(POSITION_SL);
double tp = PositionGetDouble(POSITION_TP);
ENUM_POSITION_TYPE type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
double newSL = 0;
if(type == POSITION_TYPE_BUY)
{
double trail = SymbolInfoDouble(_Symbol,SYMBOL_BID) - StopLossPoints*_Point;
if(trail > sl) newSL = trail;
}
else if(type == POSITION_TYPE_SELL)
{
double trail = SymbolInfoDouble(_Symbol,SYMBOL_ASK) + StopLossPoints*_Point;
if(trail < sl) newSL = trail;
}
if(newSL != 0)
{
MqlTradeRequest req;
MqlTradeResult res;
ZeroMemory(req);
req.action = TRADE_ACTION_SLTP;
req.symbol = _Symbol;
req.position = ticket;
req.sl = newSL;
req.tp = tp;
OrderSend(req,res);
}
}
}
}
PREMIUM TRADE ZONES - [EntryLab]PREMIUM Trade Zones was created to help both beginner and advanced traders avoid one of the most common causes of losses: trading during sideways, choppy market conditions.
Sideways price action often occurs around the RSI 50 level, where market indecision is high. This indicator visually highlights a No Trade Zone around that area, encouraging traders to stay patient and avoid low-probability setups. Above and below this zone, clearly defined Short Trade Zones and Long Trade Zones provide additional confluence for potential entries when momentum is more favorable.
Trade Zones is especially useful for traders who may occasionally struggle with discipline — something we all experience — by offering a constant visual reminder of where trading conditions are optimal versus where caution is warranted.
The indicator is fully customizable through the settings panel, allowing users to adjust zone levels, colors, text visibility, and signal elements to suit their individual trading style and strategy. We personally use Trade Zones as an added layer of confluence when market conditions feel uncertain, consistently steering clear of the No Trade Zone where indecision and chop are most likely to occur.
This free indicator was built to support our community in developing better trading habits, improving decision-making, and progressing toward long-term consistency and profitability.
Regards,
ENTRYLAB
Simple PDH / PDL Clean Entries (NZ Time)Simple PDH / PDL Liquidity Entry Indicator
This indicator is designed for clean, stress-free intraday trading on Gold. It identifies high-probability buy and sell opportunities based on a liquidity sweep and reclaim of the previous day’s high or low (PDH / PDL). Signals are limited to one trade per session using New Zealand time, helping prevent overtrading. Each signal prints a clear BUY or SELL icon directly on the candle, along with a concise label showing entry price, stop loss, and take profit. No indicators, no clutter — just key levels, disciplined execution, and institutional-style simplicity.
ICT Fair Value Gaps [Zero-Noise Edition]ICT Fair Value Gaps
Overview
In the Smart Money Concepts (SMC) framework, clarity is the ultimate edge. Most FVG indicators clutter your screen with "ghost boxes" that remain long after they have been filled. This professional-grade tool identifies high-displacement institutional imbalances and automatically dissolves them the moment they are mitigated.
Key Features
Precision Detection : Uses the classic 3-candle displacement logic to identify institutional gaps.
Auto-Mitigation : Boxes are removed the moment price retraces and "fills" the imbalance, keeping your chart 100% clean.
High Performance : Optimized with array-based logic for zero-lag performance on all timeframes.
Built-in Alerts : Stay informed with real-time notifications when new institutional displacement occurs.
How to Trade This Tool
The Trigger : A new FVG box appears, confirming institutional "intent."
The Draw : Treat the open boxes as magnets for price (Draw on Liquidity).
The Entry : Wait for price to retrace and tap the edge of the "open" FVG.
The Exit : Use opposing mitigated zones or swing points for targets.
Customizable Settings
Visuals : Custom color palettes for Bullish and Bearish imbalances.
Labels : Toggle "FVG" text on or off for a minimalist HUD experience.
Logic : Option to hide filled gaps completely for the ultimate zero-noise experience.
Global Compatibility
Tested and optimized for:
Forex : EURUSD, GBPUSD, AUDUSD.
Indices : US30, NAS100, DAX40.
Commodities : Gold (XAUUSD), Silver, Oil.
Crypto : BTCUSD, ETHUSD.
Authors Note
This script is written in Pine Script v6 . It is designed for traders who prioritize accuracy over "noisy" indicators. If you find value in this tool, please leave a Boost and follow for more SMC tool releases!
VE tekninen analyysi (osakkeet)Stock analysis script based on the VE strategy.
This script identifies the most recent peak and then highlights a −15% decline in yellow and a −20% decline in red.
This visualization illustrates price drawdowns according to our strategy.
Cody Order Block Finder with RegressionThe Cody Order Block Finder with Regression Channel is a comprehensive trading tool that combines order block identification with linear regression analysis. This dual-approach indicator is designed to help traders identify potential institutional order flow zones within the context of established market trends, providing a structured methodology for trade entry and exit decisions.
Free Telegram Trading Community t.me
Order Block Detection System
Identifies potential institutional buying and selling zones based on specific candle patterns
Configurable detection parameters including required subsequent candles and minimum percentage moves
Three visual color schemes (Dark, Bright, Neon) for different chart backgrounds
Options to display order blocks using wick ranges or body ranges
Advanced filtering capabilities including size-based and ATR-based filters
Historical display controls with options to show all order blocks or only the most recent instances
Linear Regression Channel
Customizable regression length from 1 to 5000 periods
Upper and lower deviation channels with adjustable multipliers
Pearson's R correlation coefficient display for trend strength assessment
Flexible extension options for channel lines (left, right, both, or none)
Visual channel fills between regression lines for clear trend identification
Technical Specifications
Detection Logic
Bullish order blocks: Identified by a bearish candle followed by a specified number of consecutive bullish candles with minimum percentage movement
Bearish order blocks: Identified by a bullish candle followed by a specified number of consecutive bearish candles with minimum percentage movement
Size validation through configurable percentage thresholds
Optional ATR filtering for volatility-adjusted order block identification
Visual Elements
Triangle markers indicating order block locations above or below relevant candles
Extended lines marking order block boundaries with configurable right-side extension
Informative labels displaying order block size percentages
Dynamic trend labels based on regression slope analysis
Adjustable transparency and coloring for all visual elements
Alert System
Context-aware alerts that only trigger in confirmed trends
Buy alerts: Bullish order blocks detected during uptrends (positive regression slope)
Sell alerts: Bearish order blocks detected during downtrends (negative regression slope)
Customizable alert messages with trend context information
Performance Optimization
Maximum 500 lines and 500 labels for system resource management
Efficient array-based line management for historical display controls
Conditional calculations to reduce processing overhead
Application for Traders
This indicator serves multiple trading methodologies:
Trend-following traders can use regression channels for trend identification
Institutional flow traders can identify potential order block zones
Swing traders can locate high-probability reversal areas
Risk management through size and volatility filtering
The combination of order block detection with regression trend analysis provides traders with a comprehensive tool for identifying potential trade setups that align with both institutional activity and broader market trends. The extensive customization options allow adaptation to various trading styles and market conditions.
VMDivergencesTH Volume Momentum Divergences - How It Works
🎯 Overview
This indicator detects divergences between price action and a custom momentum oscillator. Divergences occur when price moves one direction while momentum moves the opposite direction — often signaling potential reversals or trend continuations.
⚙️ The Hidden Oscillator Engine
The oscillator runs in the background (not plotted on chart) and combines two components:
Component 1: Momentum (MACD-style)
Momentum = Fast EMA(12) - Slow EMA(26)
Measures the difference between a fast and slow exponential moving average. Positive = bullish momentum, Negative = bearish momentum.
Component 2: Bollinger Band Distance
Distance = (Price - BB Middle) / Standard Deviation
Measures how far price has strayed from its "normal" range. Values > 2 = overbought territory, Values < -2 = oversold territory.
Hybrid Blend
Final Oscillator = (Normalized Momentum × Blend) + (Band Distance × (1 - Blend))
The Momentum Blend setting (default 1.0) controls the mix:
1.0 = Pure momentum (like MACD)
0.0 = Pure band distance (like Bollinger %B)
0.5 = Equal blend of both
🔍 Pivot Detection
The indicator identifies swing highs and swing lows on both:
Price (using high and low)
Oscillator (using the hybrid oscillator value)
How Pivots Are Found
text
Swing High = A bar where the high is higher than X bars on BOTH sides
Swing Low = A bar where the low is lower than X bars on BOTH sides
The Swing Strength setting (default 5) controls how many bars on each side are required:
Lower values (2-3) = More pivots, more signals, more noise
Higher values (7-10) = Fewer pivots, fewer signals, higher quality
🔀 Divergence Types Explained
1. 🟢 Regular Bullish Divergence (Reversal Signal)
Price: Lower Low ↘ (making new lows)
Oscillator: Higher Low ↗ (momentum improving)
Meaning: Price is falling but momentum is building. The selling pressure is weakening — potential bottom forming.
Visual: Green triangle below bar + solid line connecting lows
2. 🔴 Regular Bearish Divergence (Reversal Signal)
text
Price: Higher High ↗ (making new highs)
Oscillator: Lower High ↘ (momentum fading)
Meaning: Price is rising but momentum is declining. The buying pressure is weakening — potential top forming.
Visual: Red triangle above bar + solid line connecting highs
3. 🟡 Hidden Bullish Divergence (Continuation Signal)
text
Price: Higher Low ↗ (holding above previous low)
Oscillator: Lower Low ↘ (momentum dipped)
Meaning: In an uptrend, price made a higher low but oscillator made a lower low. The oscillator "reset" while price held strong — trend likely to continue UP.
Visual: Green diamond below bar + dashed line
4. 🟠 Hidden Bearish Divergence (Continuation Signal)
text
Price: Lower High ↘ (staying below previous high)
Oscillator: Higher High ↗ (momentum bounced)
Meaning: In a downtrend, price made a lower high but oscillator made a higher high. The oscillator bounced but price couldn't — trend likely to continue DOWN.
Visual: Red diamond above bar + dashed line
5. 🔵 Double Bottom with Divergence (Strong Support)
text
Price: Two lows at SIMILAR levels (within ATR tolerance)
Oscillator: Second low HIGHER than first
Meaning: Price tested the same support twice, but momentum was stronger on the second test — buyers defending that level aggressively.
Visual: Cyan circle below bar + dotted line
6. 🟣 Double Top with Divergence (Strong Resistance)
text
Price: Two highs at SIMILAR levels (within ATR tolerance)
Oscillator: Second high LOWER than first
Meaning: Price tested the same resistance twice, but momentum was weaker on the second test — sellers defending that level.
Visual: Purple circle above bar + dotted line
✅ Validation Filters
Not every pivot pair creates a signal. The indicator applies filters:
Filter Purpose
Min Pivot Distance (default 5) Pivots must be at least 5 bars apart — prevents micro-divergences
Max Pivot Distance (default 50) Pivots must be within 50 bars — prevents stale/irrelevant divergences
DTB Tolerance (default 0.3 × ATR) For double top/bottom, price levels must be within 30% of ATR
📊 Visual Elements
Element Description
Markers Shapes above/below candles when divergence triggers
Lines Connect the two pivot points involved in the divergence
Labels Text tags showing divergence type (REG, HID, DBL)
Glow Effect Thicker semi-transparent line behind main line
Background Flash Brief color flash on signal bar
Status Panel Real-time table showing oscillator value and active signals
🧠 Trading Logic Summary
┌──────────────────────────────────────────────────────────┐
│ DIVERGENCE CHEAT SHEET │
├──────────────────────────────────────────────────────────┤
│ REGULAR BULLISH │ Price ↘ Osc ↗ │ Look for LONGS │
│ REGULAR BEARISH │ Price ↗ Osc ↘ │ Look for SHORTS │
│ HIDDEN BULLISH │ Price ↗ Osc ↘ │ Add to LONGS │
│ HIDDEN BEARISH │ Price ↘ Osc ↗ │ Add to SHORTS │
│ DOUBLE BOTTOM │ Same low, Osc ↗ │ Strong SUPPORT │
│ DOUBLE TOP │ Same high, Osc ↘ │ Strong RESISTANCE │
└──────────────────────────────────────────────────────────┘
[codapro] Confirmed Supertrend Flags
Confirmed Supertrend Flags — Delayed Flip Confirmation
Description:
This script enhances the classic Supertrend by adding a confirmation delay after trend flips, helping traders filter noise and avoid premature entries in volatile environments.
Key Features:
ATR-based Supertrend stop level calculation
Confirmation logic: buy/sell flags appear only after N full bars confirm the new direction
Optional Supertrend stop line for visual tracking
Fully adjustable flag size, color, label, and placement
This is ideal for swing traders, trend followers, or anyone building a system that prefers confirmation over early guessing.
How It Works:
A trend flip is detected when price closes beyond the Supertrend stop level.
The indicator waits for a set number of bars to close in the new direction.
After confirmation, a visual flag is plotted: buy below bar, short above bar.
How to Extend with Risk Management:
While this script focuses on trend confirmation visualization, you can enhance your decision-making by combining it with risk rules:
Stop Loss: Set SL just beyond the last Supertrend level before confirmation
ATR-Based Sizing: Use the same ATR value to dynamically size your position based on volatility
Fixed % Rule: Risk a fixed % of capital per confirmed flip (e.g., 1–2%)
Time-Based Exit: Exit trades that don’t follow through within N bars post confirmation
Stack with Strategy: Use this confirmation logic to trigger entries in a separate strategy script where strategy.entry() and strategy.exit() can be defined with precise risk parameters
Want a full example of how to integrate that? Let me know and I’ll turn this into a plug-and-play strategy version.
Disclaimer:
This tool was developed as part of the codapro AI engine — a modular signal and automation layer for trading systems.
It is for educational and informational purposes only and is not financial advice. Always backtest and verify before live deployment.






















