Support and Resistancelookback: This input allows you to specify the number of bars to look back to calculate the support and resistance levels.
support: This is calculated as the lowest low over the specified lookback period.
resistance: This is calculated as the highest high over the specified lookback period.
plot: The support and resistance levels are plotted on the chart with different colors.
bgcolor: This optional feature highlights the support and resistance zones with a semi-transparent background color.
Chart patterns
Binary Price Action ProBinary Price Action Pro is a powerful TradingView indicator designed for Binary Option Trading.
// It helps traders identify key market structure points, supply & demand zones, candlestick patterns,
Liquidity grabs, and institutional order blocks. With built-in alerts, this tool enhances decision-making.
and improves accuracy in trading strategies.
Features:
✅ Market Structure Breaks (BOS & CHOCH)
✅ Support & Resistance Zones
✅ Supply & Demand Zones
✅ Candlestick Patterns (Engulfing, Pin Bar)
✅ Liquidity Grab & Stop Hunt Detection
✅ Institutional Order Blocks & Fair Value Gaps
✅ Entry & Exit Alerts for Binary Trading
RoGr75 - EMA Cross Signal with Buffer and Variable Distance**Overview**:
This script is designed to identify potential buy and sell signals based on the crossover of two Exponential Moving Averages (EMAs) – a short-term EMA (default: 8 periods) and a long-term EMA (default: 50 periods). To reduce noise and false signals, the script incorporates a customizable buffer percentage, ensuring that signals are only generated when the short-term EMA moves significantly above or below the long-term EMA. Additionally, the script allows users to adjust the distance of the signals from the candles using the Average True Range (ATR) for better visualization.
---
Improvements: Added Buffer Percentage for reduced noise in Signals
### **Key Features**:
1. **EMA Crossover Signals**:
Buy Signal: Generated when the short-term EMA crosses above the long-term EMA.
Sell Signal: Generated when the short-term EMA crosses below the long-term EMA.
2. **Buffer Percentage**:
A user-defined buffer percentage ensures that signals are only triggered when the short-term EMA moves a specified percentage above or below the long-term EMA, reducing false signals.
3. **Customizable Signal Distance**:
Signals are plotted at a user-defined distance from the candles, calculated using the ATR (Average True Range) for dynamic positioning.
4. **Visual Enhancements**:
Buy and sell signals are displayed as labels above or below the candles, with optional background highlighting for better visibility.
5. **Flexible Inputs**:
Users can customize the lengths of the short-term and long-term EMAs, the ATR period, the signal distance multiplier, and the buffer percentage.
6. **Alerts**:
Built-in alert conditions allow users to receive real-time notifications for buy and sell signals.
### **Input Parameters**:
**Short EMA Length**: Period for the short-term EMA (default: 8).
**Long EMA Length**: Period for the long-term EMA (default: 50).
**Signal Distance**: Multiplier for ATR to determine the distance of signals from the candles (default: 2.0).
**ATR Length**: Period for the ATR calculation (default: 14).
**Buffer Percentage**: Percentage buffer for reversal signals to reduce noise (default: 1.0%).
### **Ideal For**:
Traders who use EMA crossovers as part of their strategy.
Those looking to reduce false signals with a buffer mechanism.
Users who prefer dynamic signal positioning based on market volatility (ATR).
### **Notes**:
The buffer percentage ensures that signals are only generated when the price moves significantly, making it suitable for trend-following strategies.
The script is highly customizable, allowing traders to adapt it to different timeframes and instruments.
High Volume Time (HVT) Auto-DisplayThis Indicator displays the upcoming HVT for the NasDaq on a table. The HVT is also displayed on the chart in real-time in order to help accentuate the best times to trade and a clear picture for the daily directional move. This times were found manually and bear as much significance as I bring it to have. These are not guaranteed times for the market to move, but rather High Probability Times based on my own backtesting on NQ.
Order Block, FVG, Breaker Block Detector//@version=5
indicator("Order Block, FVG, Breaker Block Detector", overlay=true)
// Input parametreleri
lookback = input.int(5, title="Order Block Lookback Period")
fvg_lookback = input.int(3, title="FVG Lookback Period")
// Order Block Tespiti
var float order_block_high = na
var float order_block_low = na
if barstate.isconfirmed
// Yükseliş Order Block
if close > ta.highest(high, lookback)
order_block_high := ta.lowest(low, lookback)
order_block_low := na
// Düşüş Order Block
else if close < ta.lowest(low, lookback)
order_block_low := ta.highest(high, lookback)
order_block_high := na
// Order Block Çizimi
plotshape(series=not na(order_block_high), location=location.belowbar, color=color.green, style=shape.labelup, text="OB-H")
plotshape(series=not na(order_block_low), location=location.abovebar, color=color.red, style=shape.labeldown, text="OB-L")
// Fair Value Gap (FVG) Tespiti
var float fvg_high = na
var float fvg_low = na
if barstate.isconfirmed and bar_index >= fvg_lookback
// FVG için üç mumluk yapı kontrolü
if low > high and high < low
fvg_high := high
fvg_low := low
else
fvg_high := na
fvg_low := na
// FVG Çizimi
plotshape(series=not na(fvg_high), location=location.abovebar, color=color.blue, style=shape.labeldown, text="FVG")
plotshape(series=not na(fvg_low), location=location.belowbar, color=color.blue, style=shape.labelup, text="FVG")
// Breaker Block Tespiti
var float breaker_high = na
var float breaker_low = na
if barstate.isconfirmed
// Yükseliş Breaker Block
if close > order_block_high and not na(order_block_high)
breaker_high := order_block_high
breaker_low := na
// Düşüş Breaker Block
else if close < order_block_low and not na(order_block_low)
breaker_low := order_block_low
breaker_high := na
// Breaker Block Çizimi
plotshape(series=not na(breaker_high), location=location.belowbar, color=color.orange, style=shape.labelup, text="BB-H")
plotshape(series=not na(breaker_low), location=location.abovebar, color=color.orange, style=shape.labeldown, text="BB-L")
200-Day SMA Slope Oscillator SmoothA smooth oscillator that oscillates between positive and negative values.
The oscillator tracks the change in the 200-day SMA and smooths the transitions to give you a cleaner, more gradual movement.
We use the slope to determine the value of the oscillator. If the slope is positive, the oscillator will show a positive value;If the slope is negative, it'll be a negative value.
200-Day MA Slope Oscillator Explanation:
ma200: The 200-day simple moving average of the closing price.
slope: The difference between the current value of the 200-day MA and its value 1 bar ago.
oscillator: We use the slope to determine the value of the oscillator. If the slope is positive, the oscillator will show a positive value;If the slope is negative, it'll be a negative value.
plot(): This plots the oscillator on a separate pane.
Multi-Tool Trading Indicator (MTTI) von Zaimon🚀 Alles, was du für eine fundierte Marktanalyse brauchst – in einem einzigen Indikator!
Dieses Indikator-Set kombiniert Gleitende Durchschnitte (MA20 & MA50), RSI, Stochastik, Bollinger Bänder und ATR in einer klar strukturierten Darstellung, um dir präzise Kauf- und Verkaufssignale zu liefern.
🔍 Funktionen:
✅ Trendbestimmung: MA20 (Blau) und MA50 (Orange) helfen, Markttrends zu erkennen (Golden/Death Cross).
✅ Momentum & Stärke: Der RSI zeigt überkaufte und überverkaufte Zonen, während die Stochastik Kreuzungen für mögliche Einstiege signalisiert.
✅ Volatilität im Blick: Bollinger Bänder markieren starke Preisbewegungen, und die ATR-Linien helfen bei Stop-Loss-Setups.
✅ Echtzeit-Übersicht: Eine kompakte Tabelle zeigt alle relevanten Werte direkt auf dem Chart.
✅ Alerts für wichtige Signale: Lass dich automatisch benachrichtigen, wenn entscheidende Marktsituationen eintreten.
📊 Perfekt für schnelle Marktanalysen und strategisches Trading – egal ob Einsteiger oder Profi!
Pro Scalper Indicator (30-Min TF)//@version=5
indicator("Pro Scalper Indicator (30-Min TF)", overlay=true)
// Timeframe filter (Only works for 30-minute or higher)
minTimeFrame = "30"
isValidTimeFrame = timeframe.in_seconds(timeframe.period) >= timeframe.in_seconds(minTimeFrame)
// Parameters
fastEMA = input(9, title="Fast EMA")
slowEMA = input(21, title="Slow EMA")
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought")
rsiOversold = input(30, title="RSI Oversold")
volFilter = input(false, title="Enable Volume Filter")
// Calculations
emaFast = ta.ema(close, fastEMA)
emaSlow = ta.ema(close, slowEMA)
rsi = ta.rsi(close, rsiLength)
volumeAvg = ta.sma(volume, 20)
// Buy & Sell Conditions (Only valid for 30-min or higher)
buySignal = isValidTimeFrame and ta.crossover(emaFast, emaSlow) and rsi < rsiOverbought
sellSignal = isValidTimeFrame and ta.crossunder(emaFast, emaSlow) and rsi > rsiOversold
// Apply volume filter if enabled
buySignal := volFilter ? buySignal and volume > volumeAvg : buySignal
sellSignal := volFilter ? sellSignal and volume > volumeAvg : sellSignal
// Plot Buy & Sell Signals
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY")
plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL")
// Plot EMAs
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaSlow, color=color.orange, title="Slow EMA")
// Alerts
alertcondition(buySignal, title="Buy Signal", message="Pro Scalper: Buy Signal!")
alertcondition(sellSignal, title="Sell Signal", message="Pro Scalper: Sell Signal!")
// Display warning if not on 30-min or higher
if not isValidTimeFrame
label = label.new(bar_index, high, "⚠️ Switch to 30min or higher!", color=color.red, textcolor=color.white, size=size.small)
Smart Money Concepts [Nitin]//@version=5
indicator("Smart Money Concepts ", "Smart Money Concepts "
, overlay = true
, max_labels_count = 500
, max_lines_count = 500
, max_boxes_count = 500
, max_bars_back = 500)
//-----------------------------------------------------------------------------{
//Constants
//-----------------------------------------------------------------------------{
color TRANSP_CSS = #ffffff00
//Tooltips
string MODE_TOOLTIP = 'Allows to display historical Structure or only the recent ones'
string STYLE_TOOLTIP = 'Indicator color theme'
string COLOR_CANDLES_TOOLTIP = 'Display additional candles with a color reflecting the current trend detected by structure'
string SHOW_INTERNAL = 'Display internal market structure'
string CONFLUENCE_FILTER = 'Filter non significant internal structure breakouts'
string SHOW_SWING = 'Display swing market Structure'
string SHOW_SWING_POINTS = 'Display swing point as labels on the chart'
string SHOW_SWHL_POINTS = 'Highlight most recent strong and weak high/low points on the chart'
string INTERNAL_OB = 'Display internal order blocks on the chart Number of internal order blocks to display on the chart'
string SWING_OB = 'Display swing order blocks on the chart Number of internal swing blocks to display on the chart'
string FILTER_OB = 'Method used to filter out volatile order blocks It is recommended to use the cumulative mean range method when a low amount of data is available'
string SHOW_EQHL = 'Display equal highs and equal lows on the chart'
string EQHL_BARS = 'Number of bars used to confirm equal highs and equal lows'
string EQHL_THRESHOLD = 'Sensitivity threshold in a range (0, 1) used for the detection of equal highs & lows Lower values will return fewer but more pertinent results'
string SHOW_FVG = 'Display fair values gaps on the chart'
string AUTO_FVG = 'Filter out non significant fair value gaps'
string FVG_TF = 'Fair value gaps timeframe'
string EXTEND_FVG = 'Determine how many bars to extend the Fair Value Gap boxes on chart'
string PED_ZONES = 'Display premium, discount, and equilibrium zones on chart'
//-----------------------------------------------------------------------------{
//Settings
//-----------------------------------------------------------------------------{
//General
//----------------------------------------{
mode = input.string('Historical'
, options =
, group = 'Smart Money Concepts'
, tooltip = MODE_TOOLTIP)
style = input.string('Colored'
, options =
, group = 'Smart Money Concepts'
, tooltip = STYLE_TOOLTIP)
show_trend = input(false, 'Color Candles'
, group = 'Smart Money Concepts'
, tooltip = COLOR_CANDLES_TOOLTIP)
//----------------------------------------}
//Internal Structure
//----------------------------------------{
show_internals = input(true, 'Show Internal Structure'
, group = 'Real Time Internal Structure'
, tooltip = SHOW_INTERNAL)
show_ibull = input.string('All', 'Bullish Structure'
, options =
, inline = 'ibull'
, group = 'Real Time Internal Structure')
swing_ibull_css = input(#089981, ''
, inline = 'ibull'
, group = 'Real Time Internal Structure')
//Bear Structure
show_ibear = input.string('All', 'Bearish Structure'
, options =
, inline = 'ibear'
, group = 'Real Time Internal Structure')
swing_ibear_css = input(#f23645, ''
, inline = 'ibear'
, group = 'Real Time Internal Structure')
ifilter_confluence = input(false, 'Confluence Filter'
, group = 'Real Time Internal Structure'
, tooltip = CONFLUENCE_FILTER)
//----------------------------------------}
//Swing Structure
//----------------------------------------{
show_Structure = input(true, 'Show Swing Structure'
, group = 'Real Time Swing Structure'
, tooltip = SHOW_SWING)
//Bull Structure
show_bull = input.string('All', 'Bullish Structure'
, options =
, inline = 'bull'
, group = 'Real Time Swing Structure')
swing_bull_css = input(#089981, ''
, inline = 'bull'
, group = 'Real Time Swing Structure')
//Bear Structure
show_bear = input.string('All', 'Bearish Structure'
, options =
, inline = 'bear'
, group = 'Real Time Swing Structure')
swing_bear_css = input(#f23645, ''
, inline = 'bear'
, group = 'Real Time Swing Structure')
//Swings
show_swings = input(false, 'Show Swings Points'
, inline = 'swings'
, group = 'Real Time Swing Structure'
, tooltip = SHOW_SWING_POINTS)
length = input.int(50, ''
, minval = 10
, inline = 'swings'
, group = 'Real Time Swing Structure')
show_hl_swings = input(true, 'Show Strong/Weak High/Low'
, group = 'Real Time Swing Structure'
, tooltip = SHOW_SWHL_POINTS)
//----------------------------------------}
//Order Blocks
//----------------------------------------{
show_iob = input(true, 'Internal Order Blocks'
, inline = 'iob'
, group = 'Order Blocks'
, tooltip = INTERNAL_OB)
iob_showlast = input.int(5, ''
, minval = 1
, inline = 'iob'
, group = 'Order Blocks')
show_ob = input(false, 'Swing Order Blocks'
, inline = 'ob'
, group = 'Order Blocks'
, tooltip = SWING_OB)
ob_showlast = input.int(5, ''
, minval = 1
, inline = 'ob'
, group = 'Order Blocks')
ob_filter = input.string('Atr', 'Order Block Filter'
, options =
, group = 'Order Blocks'
, tooltip = FILTER_OB)
ibull_ob_css = input.color(color.new(#3179f5, 80), 'Internal Bullish OB'
, group = 'Order Blocks')
ibear_ob_css = input.color(color.new(#f77c80, 80), 'Internal Bearish OB'
, group = 'Order Blocks')
bull_ob_css = input.color(color.new(#1848cc, 80), 'Bullish OB'
, group = 'Order Blocks')
bear_ob_css = input.color(color.new(#b22833, 80), 'Bearish OB'
, group = 'Order Blocks')
//----------------------------------------}
//EQH/EQL
//----------------------------------------{
show_eq = input(true, 'Equal High/Low'
, group = 'EQH/EQL'
, tooltip = SHOW_EQHL)
eq_len = input.int(3, 'Bars Confirmation'
, minval = 1
, group = 'EQH/EQL'
, tooltip = EQHL_BARS)
eq_threshold = input.float(0.1, 'Threshold'
, minval = 0
, maxval = 0.5
, step = 0.1
, group = 'EQH/EQL'
, tooltip = EQHL_THRESHOLD)
//----------------------------------------}
//Fair Value Gaps
//----------------------------------------{
show_fvg = input(false, 'Fair Value Gaps'
, group = 'Fair Value Gaps'
, tooltip = SHOW_FVG)
fvg_auto = input(true, "Auto Threshold"
, group = 'Fair Value Gaps'
, tooltip = AUTO_FVG)
fvg_tf = input.timeframe('', "Timeframe"
, group = 'Fair Value Gaps'
, tooltip = FVG_TF)
bull_fvg_css = input.color(color.new(#00ff68, 70), 'Bullish FVG'
, group = 'Fair Value Gaps')
bear_fvg_css = input.color(color.new(#ff0008, 70), 'Bearish FVG'
, group = 'Fair Value Gaps')
fvg_extend = input.int(1, "Extend FVG"
, minval = 0
, group = 'Fair Value Gaps'
, tooltip = EXTEND_FVG)
//----------------------------------------}
//Previous day/week high/low
//----------------------------------------{
//Daily
show_pdhl = input(false, 'Daily'
, inline = 'daily'
, group = 'Highs & Lows MTF')
pdhl_style = input.string('⎯⎯⎯', ''
, options =
, inline = 'daily'
, group = 'Highs & Lows MTF')
pdhl_css = input(#2157f3, ''
, inline = 'daily'
, group = 'Highs & Lows MTF')
//Weekly
show_pwhl = input(false, 'Weekly'
, inline = 'weekly'
, group = 'Highs & Lows MTF')
pwhl_style = input.string('⎯⎯⎯', ''
, options =
, inline = 'weekly'
, group = 'Highs & Lows MTF')
pwhl_css = input(#2157f3, ''
, inline = 'weekly'
, group = 'Highs & Lows MTF')
//Monthly
show_pmhl = input(false, 'Monthly'
, inline = 'monthly'
, group = 'Highs & Lows MTF')
pmhl_style = input.string('⎯⎯⎯', ''
, options =
, inline = 'monthly'
, group = 'Highs & Lows MTF')
pmhl_css = input(#2157f3, ''
, inline = 'monthly'
, group = 'Highs & Lows MTF')
//----------------------------------------}
//Premium/Discount zones
//----------------------------------------{
show_sd = input(false, 'Premium/Discount Zones'
, group = 'Premium & Discount Zones'
, tooltip = PED_ZONES)
premium_css = input.color(#f23645, 'Premium Zone'
, group = 'Premium & Discount Zones')
eq_css = input.color(#b2b5be, 'Equilibrium Zone'
, group = 'Premium & Discount Zones')
discount_css = input.color(#089981, 'Discount Zone'
, group = 'Premium & Discount Zones')
//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
n = bar_index
atr = ta.atr(200)
cmean_range = ta.cum(high - low) / n
//HL Output function
hl() =>
//Get ohlc values function
get_ohlc()=> [close , open , high, low, high , low ]
//Display Structure function
display_Structure(x, y, txt, css, dashed, down, lbl_size)=>
structure_line = line.new(x, y, n, y
, color = css
, style = dashed ? line.style_dashed : line.style_solid)
structure_lbl = label.new(int(math.avg(x, n)), y, txt
, color = TRANSP_CSS
, textcolor = css
, style = down ? label.style_label_down : label.style_label_up
, size = lbl_size)
if mode == 'Present'
line.delete(structure_line )
label.delete(structure_lbl )
//Swings detection/measurements
swings(len)=>
var os = 0
upper = ta.highest(len)
lower = ta.lowest(len)
os := high > upper ? 0 : low < lower ? 1 : os
top = os == 0 and os != 0 ? high : 0
btm = os == 1 and os != 1 ? low : 0
//Order block coordinates function
ob_coord(use_max, loc, target_top, target_btm, target_left, target_type)=>
min = 99999999.
max = 0.
idx = 1
ob_threshold = ob_filter == 'Atr' ? atr : cmean_range
//Search for highest/lowest high within the structure interval and get range
if use_max
for i = 1 to (n - loc)-1
if (high - low ) < ob_threshold * 2
max := math.max(high , max)
min := max == high ? low : min
idx := max == high ? i : idx
else
for i = 1 to (n - loc)-1
if (high - low ) < ob_threshold * 2
min := math.min(low , min)
max := min == low ? high : max
idx := min == low ? i : idx
array.unshift(target_top, max)
array.unshift(target_btm, min)
array.unshift(target_left, time )
array.unshift(target_type, use_max ? -1 : 1)
//Set order blocks
display_ob(boxes, target_top, target_btm, target_left, target_type, show_last, swing, size)=>
for i = 0 to math.min(show_last-1, size-1)
get_box = array.get(boxes, i)
box.set_lefttop(get_box, array.get(target_left, i), array.get(target_top, i))
box.set_rightbottom(get_box, array.get(target_left, i), array.get(target_btm, i))
box.set_extend(get_box, extend.right)
color css = na
if swing
if style == 'Monochrome'
css := array.get(target_type, i) == 1 ? color.new(#b2b5be, 80) : color.new(#5d606b, 80)
border_css = array.get(target_type, i) == 1 ? #b2b5be : #5d606b
box.set_border_color(get_box, border_css)
else
css := array.get(target_type, i) == 1 ? bull_ob_css : bear_ob_css
box.set_border_color(get_box, css)
box.set_bgcolor(get_box, css)
else
if style == 'Monochrome'
css := array.get(target_type, i) == 1 ? color.new(#b2b5be, 80) : color.new(#5d606b, 80)
else
css := array.get(target_type, i) == 1 ? ibull_ob_css : ibear_ob_css
box.set_border_color(get_box, css)
box.set_bgcolor(get_box, css)
//Line Style function
get_line_style(style) =>
out = switch style
'⎯⎯⎯' => line.style_solid
'----' => line.style_dashed
'····' => line.style_dotted
//Set line/labels function for previous high/lows
phl(h, l, tf, css)=>
var line high_line = line.new(na,na,na,na
, xloc = xloc.bar_time
, color = css
, style = get_line_style(pdhl_style))
var label high_lbl = label.new(na,na
, xloc = xloc.bar_time
, text = str.format('P{0}H', tf)
, color = TRANSP_CSS
, textcolor = css
, size = size.small
, style = label.style_label_left)
var line low_line = line.new(na,na,na,na
, xloc = xloc.bar_time
, color = css
, style = get_line_style(pdhl_style))
var label low_lbl = label.new(na,na
, xloc = xloc.bar_time
, text = str.format('P{0}L', tf)
, color = TRANSP_CSS
, textcolor = css
, size = size.small
, style = label.style_label_left)
hy = ta.valuewhen(h != h , h, 1)
hx = ta.valuewhen(h == high, time, 1)
ly = ta.valuewhen(l != l , l, 1)
lx = ta.valuewhen(l == low, time, 1)
if barstate.islast
ext = time + (time - time )*20
//High
line.set_xy1(high_line, hx, hy)
line.set_xy2(high_line, ext, hy)
label.set_xy(high_lbl, ext, hy)
//Low
line.set_xy1(low_line, lx, ly)
line.set_xy2(low_line, ext, ly)
label.set_xy(low_lbl, ext, ly)
//-----------------------------------------------------------------------------}
//Global variables
//-----------------------------------------------------------------------------{
var trend = 0, var itrend = 0
var top_y = 0., var top_x = 0
var btm_y = 0., var btm_x = 0
var itop_y = 0., var itop_x = 0
var ibtm_y = 0., var ibtm_x = 0
var trail_up = high, var trail_dn = low
var trail_up_x = 0, var trail_dn_x = 0
var top_cross = true, var btm_cross = true
var itop_cross = true, var ibtm_cross = true
var txt_top = '', var txt_btm = ''
//Alerts
bull_choch_alert = false
bull_bos_alert = false
bear_choch_alert = false
bear_bos_alert = false
bull_ichoch_alert = false
bull_ibos_alert = false
bear_ichoch_alert = false
bear_ibos_alert = false
bull_iob_break = false
bear_iob_break = false
bull_ob_break = false
bear_ob_break = false
eqh_alert = false
eql_alert = false
//Structure colors
var bull_css = style == 'Monochrome' ? #b2b5be
: swing_bull_css
var bear_css = style == 'Monochrome' ? #b2b5be
: swing_bear_css
var ibull_css = style == 'Monochrome' ? #b2b5be
: swing_ibull_css
var ibear_css = style == 'Monochrome' ? #b2b5be
: swing_ibear_css
//Swings
= swings(length)
= swings(5)
//-----------------------------------------------------------------------------}
//Pivot High
//-----------------------------------------------------------------------------{
var line extend_top = na
var label extend_top_lbl = label.new(na, na
, color = TRANSP_CSS
, textcolor = bear_css
, style = label.style_label_down
, size = size.tiny)
if top
top_cross := true
txt_top := top > top_y ? 'HH' : 'LH'
if show_swings
top_lbl = label.new(n-length, top, txt_top
, color = TRANSP_CSS
, textcolor = bear_css
, style = label.style_label_down
, size = size.small)
if mode == 'Present'
label.delete(top_lbl )
//Extend recent top to last bar
line.delete(extend_top )
extend_top := line.new(n-length, top, n, top
, color = bear_css)
top_y := top
top_x := n - length
trail_up := top
trail_up_x := n - length
if itop
itop_cross := true
itop_y := itop
itop_x := n - 5
//Trailing maximum
trail_up := math.max(high, trail_up)
trail_up_x := trail_up == high ? n : trail_up_x
//Set top extension label/line
if barstate.islast and show_hl_swings
line.set_xy1(extend_top, trail_up_x, trail_up)
line.set_xy2(extend_top, n + 20, trail_up)
label.set_x(extend_top_lbl, n + 20)
label.set_y(extend_top_lbl, trail_up)
label.set_text(extend_top_lbl, trend < 0 ? 'Strong High' : 'Weak High')
//-----------------------------------------------------------------------------}
//Pivot Low
//-----------------------------------------------------------------------------{
var line extend_btm = na
var label extend_btm_lbl = label.new(na, na
, color = TRANSP_CSS
, textcolor = bull_css
, style = label.style_label_up
, size = size.tiny)
if btm
btm_cross := true
txt_btm := btm < btm_y ? 'LL' : 'HL'
if show_swings
btm_lbl = label.new(n - length, btm, txt_btm
, color = TRANSP_CSS
, textcolor = bull_css
, style = label.style_label_up
, size = size.small)
if mode == 'Present'
label.delete(btm_lbl )
//Extend recent btm to last bar
line.delete(extend_btm )
extend_btm := line.new(n - length, btm, n, btm
, color = bull_css)
btm_y := btm
btm_x := n-length
trail_dn := btm
trail_dn_x := n-length
if ibtm
ibtm_cross := true
ibtm_y := ibtm
ibtm_x := n - 5
//Trailing minimum
trail_dn := math.min(low, trail_dn)
trail_dn_x := trail_dn == low ? n : trail_dn_x
//Set btm extension label/line
if barstate.islast and show_hl_swings
line.set_xy1(extend_btm, trail_dn_x, trail_dn)
line.set_xy2(extend_btm, n + 20, trail_dn)
label.set_x(extend_btm_lbl, n + 20)
label.set_y(extend_btm_lbl, trail_dn)
label.set_text(extend_btm_lbl, trend > 0 ? 'Strong Low' : 'Weak Low')
//-----------------------------------------------------------------------------}
//Order Blocks Arrays
//-----------------------------------------------------------------------------{
var iob_top = array.new_float(0)
var iob_btm = array.new_float(0)
var iob_left = array.new_int(0)
var iob_type = array.new_int(0)
var ob_top = array.new_float(0)
var ob_btm = array.new_float(0)
var ob_left = array.new_int(0)
var ob_type = array.new_int(0)
//-----------------------------------------------------------------------------}
//Pivot High BOS/CHoCH
//-----------------------------------------------------------------------------{
//Filtering
var bull_concordant = true
if ifilter_confluence
bull_concordant := high - math.max(close, open) > math.min(close, open - low)
//Detect internal bullish Structure
if ta.crossover(close, itop_y) and itop_cross and top_y != itop_y and bull_concordant
bool choch = na
if itrend < 0
choch := true
bull_ichoch_alert := true
else
bull_ibos_alert := true
txt = choch ? 'CHoCH' : 'BOS'
if show_internals
if show_ibull == 'All' or (show_ibull == 'BOS' and not choch) or (show_ibull == 'CHoCH' and choch)
display_Structure(itop_x, itop_y, txt, ibull_css, true, true, size.tiny)
itop_cross := false
itrend := 1
//Internal Order Block
if show_iob
ob_coord(false, itop_x, iob_top, iob_btm, iob_left, iob_type)
//Detect bullish Structure
if ta.crossover(close, top_y) and top_cross
bool choch = na
if trend < 0
choch := true
bull_choch_alert := true
else
bull_bos_alert := true
txt = choch ? 'CHoCH' : 'BOS'
if show_Structure
if show_bull == 'All' or (show_bull == 'BOS' and not choch) or (show_bull == 'CHoCH' and choch)
display_Structure(top_x, top_y, txt, bull_css, false, true, size.small)
//Order Block
if show_ob
ob_coord(false, top_x, ob_top, ob_btm, ob_left, ob_type)
top_cross := false
trend := 1
//-----------------------------------------------------------------------------}
//Pivot Low BOS/CHoCH
//-----------------------------------------------------------------------------{
var bear_concordant = true
if ifilter_confluence
bear_concordant := high - math.max(close, open) < math.min(close, open - low)
//Detect internal bearish Structure
if ta.crossunder(close, ibtm_y) and ibtm_cross and btm_y != ibtm_y and bear_concordant
bool choch = false
if itrend > 0
choch := true
bear_ichoch_alert := true
else
bear_ibos_alert := true
txt = choch ? 'CHoCH' : 'BOS'
if show_internals
if show_ibear == 'All' or (show_ibear == 'BOS' and not choch) or (show_ibear == 'CHoCH' and choch)
display_Structure(ibtm_x, ibtm_y, txt, ibear_css, true, false, size.tiny)
ibtm_cross := false
itrend := -1
//Internal Order Block
if show_iob
ob_coord(true, ibtm_x, iob_top, iob_btm, iob_left, iob_type)
//Detect bearish Structure
if ta.crossunder(close, btm_y) and btm_cross
bool choch = na
if trend > 0
choch := true
bear_choch_alert := true
else
bear_bos_alert := true
txt = choch ? 'CHoCH' : 'BOS'
if show_Structure
if show_bear == 'All' or (show_bear == 'BOS' and not choch) or (show_bear == 'CHoCH' and choch)
display_Structure(btm_x, btm_y, txt, bear_css, false, false, size.small)
//Order Block
if show_ob
ob_coord(true, btm_x, ob_top, ob_btm, ob_left, ob_type)
btm_cross := false
trend := -1
//-----------------------------------------------------------------------------}
//Order Blocks
//-----------------------------------------------------------------------------{
//Set order blocks
var iob_boxes = array.new_box(0)
var ob_boxes = array.new_box(0)
//Delete internal order blocks box coordinates if top/bottom is broken
for element in iob_type
index = array.indexof(iob_type, element)
if close < array.get(iob_btm, index) and element == 1
array.remove(iob_top, index)
array.remove(iob_btm, index)
array.remove(iob_left, index)
array.remove(iob_type, index)
bull_iob_break := true
else if close > array.get(iob_top, index) and element == -1
array.remove(iob_top, index)
array.remove(iob_btm, index)
array.remove(iob_left, index)
array.remove(iob_type, index)
bear_iob_break := true
//Delete internal order blocks box coordinates if top/bottom is broken
for element in ob_type
index = array.indexof(ob_type, element)
if close < array.get(ob_btm, index) and element == 1
array.remove(ob_top, index)
array.remove(ob_btm, index)
array.remove(ob_left, index)
array.remove(ob_type, index)
bull_ob_break := true
else if close > array.get(ob_top, index) and element == -1
array.remove(ob_top, index)
array.remove(ob_btm, index)
array.remove(ob_left, index)
array.remove(ob_type, index)
bear_ob_break := true
iob_size = array.size(iob_type)
ob_size = array.size(ob_type)
if barstate.isfirst
if show_iob
for i = 0 to iob_showlast-1
array.push(iob_boxes, box.new(na,na,na,na, xloc = xloc.bar_time))
if show_ob
for i = 0 to ob_showlast-1
array.push(ob_boxes, box.new(na,na,na,na, xloc = xloc.bar_time))
if iob_size > 0
if barstate.islast
display_ob(iob_boxes, iob_top, iob_btm, iob_left, iob_type, iob_showlast, false, iob_size)
if ob_size > 0
if barstate.islast
display_ob(ob_boxes, ob_top, ob_btm, ob_left, ob_type, ob_showlast, true, ob_size)
//-----------------------------------------------------------------------------}
//EQH/EQL
//-----------------------------------------------------------------------------{
var eq_prev_top = 0.
var eq_top_x = 0
var eq_prev_btm = 0.
var eq_btm_x = 0
if show_eq
eq_top = ta.pivothigh(eq_len, eq_len)
eq_btm = ta.pivotlow(eq_len, eq_len)
if eq_top
max = math.max(eq_top, eq_prev_top)
min = math.min(eq_top, eq_prev_top)
if max < min + atr * eq_threshold
eqh_line = line.new(eq_top_x, eq_prev_top, n-eq_len, eq_top
, color = bear_css
, style = line.style_dotted)
eqh_lbl = label.new(int(math.avg(n-eq_len, eq_top_x)), eq_top, 'EQH'
, color = #00000000
, textcolor = bear_css
, style = label.style_label_down
, size = size.tiny)
if mode == 'Present'
line.delete(eqh_line )
label.delete(eqh_lbl )
eqh_alert := true
eq_prev_top := eq_top
eq_top_x := n-eq_len
if eq_btm
max = math.max(eq_btm, eq_prev_btm)
min = math.min(eq_btm, eq_prev_btm)
if min > max - atr * eq_threshold
eql_line = line.new(eq_btm_x, eq_prev_btm, n-eq_len, eq_btm
, color = bull_css
, style = line.style_dotted)
eql_lbl = label.new(int(math.avg(n-eq_len, eq_btm_x)), eq_btm, 'EQL'
, color = #00000000
, textcolor = bull_css
, style = label.style_label_up
, size = size.tiny)
eql_alert := true
if mode == 'Present'
line.delete(eql_line )
label.delete(eql_lbl )
eq_prev_btm := eq_btm
eq_btm_x := n-eq_len
//-----------------------------------------------------------------------------}
//Fair Value Gaps
//-----------------------------------------------------------------------------{
var bullish_fvg_max = array.new_box(0)
var bullish_fvg_min = array.new_box(0)
var bearish_fvg_max = array.new_box(0)
var bearish_fvg_min = array.new_box(0)
float bullish_fvg_avg = na
float bearish_fvg_avg = na
bullish_fvg_cnd = false
bearish_fvg_cnd = false
=
request.security(syminfo.tickerid, fvg_tf, get_ohlc())
if show_fvg
delta_per = (src_c1 - src_o1) / src_o1 * 100
change_tf = timeframe.change(fvg_tf)
threshold = fvg_auto ? ta.cum(math.abs(change_tf ? delta_per : 0)) / n * 2
: 0
//FVG conditions
bullish_fvg_cnd := src_l > src_h2
and src_c1 > src_h2
and delta_per > threshold
and change_tf
bearish_fvg_cnd := src_h < src_l2
and src_c1 < src_l2
and -delta_per > threshold
and change_tf
//FVG Areas
if bullish_fvg_cnd
array.unshift(bullish_fvg_max, box.new(n-1, src_l, n + fvg_extend, math.avg(src_l, src_h2)
, border_color = bull_fvg_css
, bgcolor = bull_fvg_css))
array.unshift(bullish_fvg_min, box.new(n-1, math.avg(src_l, src_h2), n + fvg_extend, src_h2
, border_color = bull_fvg_css
, bgcolor = bull_fvg_css))
if bearish_fvg_cnd
array.unshift(bearish_fvg_max, box.new(n-1, src_h, n + fvg_extend, math.avg(src_h, src_l2)
, border_color = bear_fvg_css
, bgcolor = bear_fvg_css))
array.unshift(bearish_fvg_min, box.new(n-1, math.avg(src_h, src_l2), n + fvg_extend, src_l2
, border_color = bear_fvg_css
, bgcolor = bear_fvg_css))
for bx in bullish_fvg_min
if low < box.get_bottom(bx)
box.delete(bx)
box.delete(array.get(bullish_fvg_max, array.indexof(bullish_fvg_min, bx)))
for bx in bearish_fvg_max
if high > box.get_top(bx)
box.delete(bx)
box.delete(array.get(bearish_fvg_min, array.indexof(bearish_fvg_max, bx)))
//-----------------------------------------------------------------------------}
//Previous day/week high/lows
//-----------------------------------------------------------------------------{
//Daily high/low
= request.security(syminfo.tickerid, 'D', hl()
, lookahead = barmerge.lookahead_on)
//Weekly high/low
= request.security(syminfo.tickerid, 'W', hl()
, lookahead = barmerge.lookahead_on)
//Monthly high/low
= request.security(syminfo.tickerid, 'M', hl()
, lookahead = barmerge.lookahead_on)
//Display Daily
if show_pdhl
phl(pdh, pdl, 'D', pdhl_css)
//Display Weekly
if show_pwhl
phl(pwh, pwl, 'W', pwhl_css)
//Display Monthly
if show_pmhl
phl(pmh, pml, 'M', pmhl_css)
//-----------------------------------------------------------------------------}
//Premium/Discount/Equilibrium zones
//-----------------------------------------------------------------------------{
var premium = box.new(na, na, na, na
, bgcolor = color.new(premium_css, 80)
, border_color = na)
var premium_lbl = label.new(na, na
, text = 'Premium'
, color = TRANSP_CSS
, textcolor = premium_css
, style = label.style_label_down
, size = size.small)
var eq = box.new(na, na, na, na
, bgcolor = color.rgb(120, 123, 134, 80)
, border_color = na)
var eq_lbl = label.new(na, na
, text = 'Equilibrium'
, color = TRANSP_CSS
, textcolor = eq_css
, style = label.style_label_left
, size = size.small)
var discount = box.new(na, na, na, na
, bgcolor = color.new(discount_css, 80)
, border_color = na)
var discount_lbl = label.new(na, na
, text = 'Discount'
, color = TRANSP_CSS
, textcolor = discount_css
, style = label.style_label_up
, size = size.small)
//Show Premium/Discount Areas
if barstate.islast and show_sd
avg = math.avg(trail_up, trail_dn)
box.set_lefttop(premium, math.max(top_x, btm_x), trail_up)
box.set_rightbottom(premium, n, .95 * trail_up + .05 * trail_dn)
label.set_xy(premium_lbl, int(math.avg(math.max(top_x, btm_x), n)), trail_up)
box.set_lefttop(eq, math.max(top_x, btm_x), .525 * trail_up + .475*trail_dn)
box.set_rightbottom(eq, n, .525 * trail_dn + .475 * trail_up)
label.set_xy(eq_lbl, n, avg)
box.set_lefttop(discount, math.max(top_x, btm_x), .95 * trail_dn + .05 * trail_up)
box.set_rightbottom(discount, n, trail_dn)
label.set_xy(discount_lbl, int(math.avg(math.max(top_x, btm_x), n)), trail_dn)
//-----------------------------------------------------------------------------}
//Trend
//-----------------------------------------------------------------------------{
var color trend_css = na
if show_trend
if style == 'Colored'
trend_css := itrend == 1 ? bull_css : bear_css
else if style == 'Monochrome'
trend_css := itrend == 1 ? #b2b5be : #5d606b
plotcandle(open, high, low, close
, color = trend_css
, wickcolor = trend_css
, bordercolor = trend_css
, editable = false)
//-----------------------------------------------------------------------------}
//Alerts
//-----------------------------------------------------------------------------{
//Internal Structure
alertcondition(bull_ibos_alert, 'Internal Bullish BOS', 'Internal Bullish BOS formed')
alertcondition(bull_ichoch_alert, 'Internal Bullish CHoCH', 'Internal Bullish CHoCH formed')
alertcondition(bear_ibos_alert, 'Internal Bearish BOS', 'Internal Bearish BOS formed')
alertcondition(bear_ichoch_alert, 'Internal Bearish CHoCH', 'Internal Bearish CHoCH formed')
//Swing Structure
alertcondition(bull_bos_alert, 'Bullish BOS', 'Internal Bullish BOS formed')
alertcondition(bull_choch_alert, 'Bullish CHoCH', 'Internal Bullish CHoCH formed')
alertcondition(bear_bos_alert, 'Bearish BOS', 'Bearish BOS formed')
alertcondition(bear_choch_alert, 'Bearish CHoCH', 'Bearish CHoCH formed')
//order Blocks
alertcondition(bull_iob_break, 'Bullish Internal OB Breakout', 'Price broke bullish iternal OB')
alertcondition(bear_iob_break, 'Bearish Internal OB Breakout', 'Price broke bearish iternal OB')
alertcondition(bull_ob_break, 'Bullish OB Breakout', 'Price broke bullish iternal OB')
alertcondition(bear_ob_break, 'bearish OB Breakout', 'Price broke bearish iternal OB')
//EQH/EQL
alertcondition(eqh_alert, 'Equal Highs', 'Equal highs detected')
alertcondition(eql_alert, 'Equal Lows', 'Equal lows detected')
//FVG
alertcondition(bullish_fvg_cnd, 'Bullish FVG', 'Bullish FVG formed')
alertcondition(bearish_fvg_cnd, 'Bearish FVG', 'Bearish FVG formed')
//-----------------------------------
RSI Crossover dipali parikhThis script generates buy and sell signals based on the crossover of the Relative Strength Index (RSI) and the RSI-based Exponential Moving Average (EMA). It also includes an additional condition for both buy and sell signals that the RSI-based EMA must be either above or below 50.
Key Features:
Buy Signal: Triggered when:
The RSI crosses above the RSI-based EMA.
The RSI-based EMA is above 50.
A green "BUY" label will appear below the bar when the buy condition is met.
Sell Signal: Triggered when:
The RSI crosses below the RSI-based EMA.
The RSI-based EMA is below 50.
A red "SELL" label will appear above the bar when the sell condition is met.
Customizable Inputs:
RSI Length: Adjust the period for calculating the RSI (default is 14).
RSI-based EMA Length: Adjust the period for calculating the RSI-based EMA (default is 9).
RSI Threshold: Adjust the threshold (default is 50) for when the RSI-based EMA must be above or below.
Visuals:
The RSI is plotted as a blue line.
The RSI-based EMA is plotted as an orange line.
Buy and sell signals are indicated by green "BUY" and red "SELL" labels.
Alerts:
Alerts can be set for both buy and sell conditions to notify you when either condition is met.
How to Use:
Use this script to identify potential buy and sell opportunities based on the behavior of the RSI relative to its EMA.
The buy condition indicates when the RSI is strengthening above its EMA, and the sell condition signals when the RSI is weakening below its EMA.
Strategy Use:
Ideal for traders looking to leverage RSI momentum for entering and exiting positions.
The RSI-based EMA filter helps smooth out price fluctuations, focusing on stronger signals.
This script is designed for both discretionary and algorithmic traders, offering a simple yet effective method for spotting trend reversals and continuation opportunities using RSI.
BLAKFX Trading SystemYour indicator is an advanced Smart Money Concepts (SMC) trading system that combines multiple technical analysis approaches. Here's a detailed breakdown:
1. Core Components:
Market Structure Analysis:
- Break of Structure (BOS) detection
- Change of Character (CHOCH) identification
- Smart Money movement patterns
- Elliott Wave pattern tracking
Liquidity Analysis:
- Identifies buy and sell liquidity zones
- Marks liquidity points with circles (green for buy, red for sell)
- Tracks historical liquidity levels
Order Blocks:
- Detects bullish and bearish order blocks
- Shows them as colored boxes on the chart
- Uses volume confirmation for validation
Fair Value Gaps (FVG):
- Identifies both bullish and bearish FVGs
- Displays them as colored boxes
- Tracks historical FVG levels
2. Technical Elements:
Smart Money Technique (SMT):
- Uses EMA crossovers (50 and 200)
- Volume confirmation
- Shown as diamond shapes on the chart
Central Risk Transfer (CRT):
- Calculates equilibrium levels
- Shows as a yellow line on the chart
- Helps identify potential reversal zones
Elliott Wave Integration:
- Tracks wave counts
- Labels waves on the chart
- Helps with trend structure analysis
3. Trade Signals:
Entry Conditions:
- Long entries shown with green up arrows
- Short entries shown with red down arrows
- Combines multiple confirmations (SMT, liquidity, order blocks)
Visual Indicators:
- Color-coded for easy interpretation
- Historical signals maintained
- Clear entry and exit points
4. Risk Management:
- Built-in risk-reward ratio calculations
- ATR-based volatility consideration
- Clear trade information display
5. Customization Options:
Colors:
- Bullish/Bearish colors
- FVG colors
- Order block colors
Parameters:
- Lookback period
- Risk-reward ratio
- Various technical settings
6. Additional Features:
- Memory management (periodic array clearing)
- Alert conditions for entries
- Detailed trade information labels
- Historical pattern tracking
This indicator is particularly useful for traders who:
- Follow Smart Money Concepts
- Use institutional trading methods
- Need multiple confirmation layers
- Want clear visual signals
- Trade based on order flow and liquidity
Would you like me to elaborate on any particular aspect or explain how specific components work together?
Specta2 Bull SupportOverview
The Specta2 Strategy is a comprehensive trading system designed to generate buy and sell signals based on a combination of technical indicators: Bollinger Bands, Moving Average Convergence Divergence (MACD), Relative Strength Index (RSI), and Average True Range (ATR). It incorporates advanced risk management techniques, including ATR-based stop loss and take profit levels, as well as a cooldown mechanism to prevent rapid re-entries after exiting a position.
Target markets
The Specta2 Strategy is best suited for bullish market instruments that exhibit strong upward trends and consistent momentum. Ideal tickers typically include:
Large-Cap Stocks: Companies with substantial market capitalization and liquidity, such as those in the S&P 500.
High-Volume ETFs: Exchange-Traded Funds that track major indices or sectors.
Forex Pairs: Major currency pairs like EUR/USD, GBP/USD, which generally exhibit strong trends.
Commodities: Trending commodities like Gold, Oil, which can experience sustained movements.
Market Behaviors
This strategy thrives under the following market conditions:
Bullish Trends: Clearly defined upward trends where prices consistently make higher highs and higher lows.
High Volatility Periods: Times when ATR indicates increased volatility, allowing ATR-based stop loss and take profit levels to adapt effectively.
Strong Momentum: Situations where indicators like MACD and RSI confirm robust upward momentum, reducing the likelihood of false signals.
Low to Moderate Sideways Movement: While not optimal, the strategy can handle some consolidation as long as overarching bullish momentum is present.
Final Note
The Specta2 Strategy is a robust system that leverages multiple technical indicators to generate trading signals while incorporating essential risk management tools. By understanding its components and carefully configuring its parameters, users can adapt the strategy to various market conditions and trading styles. Continuous monitoring, backtesting, and optimization are recommended to ensure sustained performance and alignment with individual trading goals.
Price Difference CheckThis code calculates the difference between the highest and lowest values of the current candle, and if this difference is equal to or greater than the percentage value set in the settings, it displays a marker on the chart. Additionally, it shows the difference as a line on the chart.
MA Crossover Forex Bot by BomoloThis a simple trading strategy. MA cross overs. When the 21 Moving average cross over 50 moving average "GOLDEN CROSS" the bot take long trade. and when 50 moving average crosses over 21 moving average "DEATH" cross. The bot takesshort trade
trading setupmoving averages, volume and candle warnings, this is to show what is going on and decide on it. the script, not for trade it is for the analysis.
Ayebale - Trading - Bot (5min Tune)This Pine Script v5 strategy is designed to trade on a 5‑minute timeframe using a combination of technical indicators and session filtering, with enhanced visual feedback through on‐chart tables. Here’s an overview of its main components and functionality:
Input Settings and Visuals:
The script defines color inputs for bullish and bearish signals as well as for fair value gap (FVG) markings.
Parameters such as the ATR period, ATR multiplier for stop-loss, and a series of take-profit (TP) multipliers are adjustable to fine-tune the strategy for short-term (5‑minute) trading.
ATR and Price Levels:
A shorter ATR period is used to calculate volatility, which then determines the stop-loss distance and take-profit levels.
The highest high and lowest low over the last 20 bars are computed to help generate entry signals.
Fair Value Gap (FVG) Detection:
The script checks for conditions where a “gap” exists between previous bars (a bullish or bearish fair value gap).
If a fair value gap is detected, it can trigger entry signals. FVG zones are drawn on the chart with high transparency for subtle visual reference.
Session Timing Based on Nairobi Time (UTC+3):
Session start and end times for London, New York, and Tokyo are defined using the "Africa/Nairobi" timezone.
A helper function determines whether each session is “Ongoing,” “Not Started,” or “Ended” based on the current time, and calculates the remaining time until the next session start.
Trading is enabled only when at least one of these sessions is “Ongoing,” and the strategy is further restricted to weekdays (Monday to Friday).
Entry and Exit Logic:
The strategy generates buy signals when the close crosses over the recent low or when a bullish FVG is identified; conversely, it generates sell signals when the close crosses under the recent high or a bearish FVG is detected.
For each trade signal, the code enters 5 orders (each with varying TP levels calculated using the ATR and TP multipliers) and sets the stop-loss based on the ATR multiplied by the user-defined multiplier.
Trade Information Table (Bottom Right):
A trade information table is created with 2 columns by 9 rows.
Each row is dedicated to a specific trade metric:
Row 0: Trade side (e.g., “BUY NOW” or “SELL NOW”)
Row 1: Entry price
Rows 2–6: Five TP levels (TP1 to TP5)
Row 7: Stop-loss level
Row 8: Timer showing the elapsed time since the trade entry
The table updates dynamically based on trade executions and includes conditional cell background colors (for example, highlighting TP levels when certain conditions are met).
Session Information Table (Top Right):
A separate table displays session information, including the session name, its current status (with dynamic background colors: red for “Ended,” orange for “Not Started,” and dark green for “Ongoing”), and the time remaining in the session.
Overall Strategy Behavior:
The strategy only executes trades when the market is active during one or more of the specified sessions and only on trading days (Monday to Friday).
It is tuned for a 5‑minute chart, with more reactive ATR and TP levels suitable for short-term trading.
This comprehensive script not only defines a technical trading strategy but also provides real-time visual feedback and session-based filtering, making it a robust tool for traders who operate on short timeframes and need clear, dynamic information on trade performance and market sessions.
Velas Pequeñas con Volumen Altocon este script puedes encontrar donde estan comprando las instituciones atravez de velas siempre y cuando veas divergencias y ciclos antes
EMA Crossover + RSI StrategyCheck trend of 20 EMA, 50 EMA and 100 EMA and if price crosses above all 3 and trend is up, buy. If RSI goes above 70 or price crosses below any of the 3 EMAs, sell.
ATR Predictive Order Flow ProI've removed the buy/sell labels and ensured the levels where price will likely reject are accurately plotted. Let me know if you need any further refinements! 🚀
ATR Predictive Ranges PRO🔥 The Upgraded "ATR Predictive Order Flow Pro" 🔥
✅ Smart ATR-Based Zones – Dynamic, predictive support/resistance.
✅ EMA Trend Confirmation – Colors candles based on a 21-EMA trend.
✅ Trend Table – Real-time trend updates based on EMA crossovers.
✅ Previous Daily VWAP – Institutional-level fair value zones.
✅ Smooth & Clean Visuals – No messy shit, just pro-level trading.
John Bob-Trading-BotDeveloped by Ayebale John Bob with the help of his bestie, this innovative strategy combines advanced Smart Money Concepts with practical risk management tools to help traders identify and capitalize on key market moves.
Key Features:
Smart Money Concepts & Fair Value Gaps (FVG):
The strategy monitors price action for fair value gaps, which are visualized as extremely faint horizontal lines on the chart. These FVGs signal potential areas where institutional traders might have entered or exited positions.
Dynamic Entry Signals:
Buy signals are triggered when the price crosses above the 50-bar lowest low or when a bullish FVG is detected. Conversely, sell signals are generated when the price falls below the 50-bar highest high or a bearish FVG is identified. Each signal is visually marked on the chart with clear buy (green) and sell (red) labels.
Multi-Level Order Execution:
Once an entry signal occurs, the strategy places five separate orders, each with its own take-profit (TP) level. The TP levels are calculated dynamically using the Average True Range (ATR) and a set of predefined multipliers. This allows traders to scale out of positions as the market moves favorably.
Dynamic Risk Management:
A stop-loss is automatically set at a distance determined by the ATR, ensuring that risk is managed in accordance with current market volatility.
Real-Time Trade Information Table:
In the bottom-right corner of the chart, a trade information table displays essential details about the current trade:
Side: Displays "BUY NOW" (with a dark green background) for long entries or "SELL NOW" (with a dark red background) for short entries.
Entry Price & Stop-Loss: Shows the entry price (highlighted in green) and the corresponding stop-loss level (highlighted in red).
Take-Profit Levels: Lists the five TP levels, each of which turns green once the market price reaches that target.
Timer: A live timer in minutes counts from the moment the current trade trigger started, helping traders track the duration of their active trades.
Visual Progress Bar:
A histogram-style progress bar is plotted on the chart, visually representing the percentage gain (or loss) relative to the entry price.
This strategy was meticulously designed to incorporate both technical analysis and smart risk management, offering a robust trading solution that adapts to changing market conditions. Whether you're a seasoned trader or just starting out, the AyebaleJohnBob Trading Bot equips you with the tools and visual cues needed to make well-informed trading decisions. Enjoy a seamless blend of strategy and style—crafted with passion by Ayebale John Bob and his bestie!
Candlestick Pattern DetectorThis script is a **candlestick pattern detector** for **TradingView**, written in **Pine Script v5**.
### **Functionality:**
- Identifies key **candlestick patterns**:
- **Bullish Engulfing**
- **Bearish Engulfing**
- **Hammer**
- **Shooting Star**
- **Morning Star**
- **Evening Star**
- **Enhances signal strength** using:
- **Gap Up / Gap Down** confirmation
- **High Volume Detection**
- **Support & Resistance Levels**
- **Marks patterns on the chart** with visual labels in English and Hebrew.
- Uses **green, red, blue, and orange markers** for different signals.
- **Includes alert conditions** to notify users when patterns appear.
This indicator helps traders **spot strong reversal and continuation signals** quickly based on **price action and volume dynamics**. 🚀