Intraday BUY/SELL & AUTO SL (5-min timeframe only) by chaitu50c)Intraday BUY/SELL & AUTO SL (5-min timeframe only) by chaitu50c
This indicator provides intraday traders with BUY/SELL reversal signals and automated SL (Stoploss) tracking, based on a 3-candle reversal block logic — designed to work exclusively on the 5-min timeframe.
Key Features:
• 3-Candle Reversal Logic — Signals are generated when a defined 3-candle reversal pattern is detected (body-close breakout).
• Current Session Only — All signals and SL lines are valid only for the current session and automatically reset at session start.
• BUY/SELL Signal Labels — Visual ▲ and ▼ labels mark valid reversal signals on the chart.
• Dynamic Auto SL Lines — Plots dashed SL lines based on the reversal block's low/high.
• SL HIT Tracking — If SL is broken, the line stops extending and a ‘SL HIT’ label is displayed at the midpoint of the SL line.
• Adjustable Visual Settings — Customize signal label size, SL line width, colors, and more.
• Clean & Lightweight — Optimized for intraday use without cluttering the chart.
How to Use:
You can trade this indicator in two ways:
1. Direct Signal Entry — Take a BUY or SELL trade when a valid ▲/▼ reversal signal forms.
2. SL HIT Re-entry — If an existing SL line is broken and ‘SL HIT’ appears, you can optionally take an opposite side trade in the direction of the SL HIT.
Example:
A BUY signal is generated and an SL line is plotted below.
If price breaks the SL (SL HIT appears), you may consider entering a SELL trade at that point — as it indicates weakness.
Important Notes:
• Works only on 5-min timeframe — Set your chart to 5-min for correct behavior.
• Designed for intraday trading — all signals and SL levels reset at session start.
• Does not carry signals between sessions.
• SL lines and HIT labels provide a clear and simple visual aid for trade management.
---
Cari dalam skrip untuk "break"
Mahnam BTC with breake outThis strategy is designed and coded specifically for trading Bitcoin in the 15-minute timeframe.
Of course, those who are skilled in coding can use it in other timeframes and currencies by changing its codes and personalizing it.
Of course, it is strongly recommended that people who want to use it first perform the necessary backtests or test this strategy on demo sites and then trade on the Tetri platform.
In this strategy, it only checks the entry and exit conditions and connects to the exchange using the API code and trades completely automatically.
This strategy determines the stop loss and take profit points on the exchange at the same time as entering the transaction and sets them.
///////////////////////// Code ////////////////////////////////
//@version=5
// Copyright (c) 2021-present, Alex Orekhov (everget)
//indicator('HalfTrend and TMA', overlay=true , max_lines_count = 500, max_labels_count = 500)
strategy(title='Mahnam BTC with breake out', overlay=true , max_bars_back=5000 , max_labels_count= 500 , max_boxes_count = 500,max_lines_count = 500, initial_capital=1000, currency = currency.USDT, default_qty_type=strategy.cash )
import PineCoders/Time/4
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
newyork = '0000-2400' // input.session(title='Session', defval='0000-2400')
time_newyork = time(timeframe.period, newyork)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// تعیین تاریخ شروع و پایان (بر حسب timestamp یونیکس)
// تنظیمات Input برای تاریخ شروع و پایان
startDate = input.time(timestamp('01 Jan 2025 00:00 UTC'), "📅 تاریخ شروع معاملات", inline="dateRange")
endDate = input.time(timestamp('31 Dec 2025 23:59 UTC'), "📅 تاریخ پایان معاملات", inline="dateRange")
// بررسی اینکه آیا زمان فعلی در بازه مجاز است یا خیر
isTradeEnabled = (time >= startDate) //and (time <= endDate)
///////////////////////////////////////////////////////////////////////////////////////////
// currentTime = time("15", "GMT+0")
// hourOfDay = hour(currentTime)
// notrade_hours1 = input.(12 , minval = 0 , maxval = 24 , title = "Hours Friday")
// notrade_hours2 = input.int(12 , minval = 0 , maxval = 24 , title = "Hours Monday")
////////////////////////////////////////////////////////////Holidays/////////////////////
// تعریف روزهای هفته
isSaturday = dayofweek == dayofweek.saturday //and hourOfDay > 12
isSunday = dayofweek == dayofweek.sunday
// isMonday = dayofweek == dayofweek.monday and hourOfDay < notrade_hours1
// isFriday = dayofweek == dayofweek.friday and hourOfDay > notrade_hours2
// رنگآمیزی پسزمینه برای شنبه (آبی کمرنگ) و یکشنبه (نارنجی کمرنگ)
bgcolor(isSaturday ? color.new(color.blue, 90) : isSunday ? color.new(color.orange, 90) : na)
//bgcolor(isMonday ? color.new(color.white, 90) : isFriday ? color.new(color.green, 90) : na)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات پوزیشن
leverage = input.int(defval = 10 , title = "leverage" , minval = 1 , maxval = 20,step = 5 , group="Posistion Settings==========================================")
quantity = input.float(defval = 500 , title = "quantity" , minval = 1, group="Posistion Settings==========================================")
sl_manager = input.float(defval = 0.5 , step = 0.1 , title = "Risk Percent Of Capital", group="Posistion Settings==========================================")
persent_fee = input.float(defval = 0.05 , title = "Persent Fee Eexchange" , minval = 0 , maxval = 1,step = 0.01 , group="Posistion Settings==========================================")
position_type = input.string(defval = "Buy_And_Sell" , title = "Position_type" , options = , group="Posistion Settings==========================================" )
r_r_long = input.float(defval = 2 , step = 0.1 , title = "R - R =>", group="Posistion Settings==========================================")
r_r_short = r_r_long // input.float(defval = 1.8 , step = 0.1 , title = "r_r Short =>")
//////////////////////////////////////////////////////// END ROC /////////////////////////////////////
day_of_week = input.bool(false , title = "Trade in 7 days", group="Posistion Settings==========================================")
show_tp_sl_ent = true // input.bool(defval=true, title= "Show Tp Sl Ent Box", group="Posistion Settings==========================================")
show_qty = true // input.bool(defval = true , title = "Show Qty Label", group="Posistion Settings==========================================")
//////////////////////////////////////////////////////// Information Position ////////////////////////////////////////////////////
var short_is_open = false
var long_is_open = false
//variant for sell position
var sl1 = 0.0
var tp1 = 0.0
var ent1 = 0.0
var equity1 = 0.0
var qty1 = ""
//variant for buy position
var sl3 = 0.0
var qty2 = ""
var tp3 = 0.0
var ent2 = 0.0
var equity2 = 0.0
symbol = str.tostring(syminfo.basecurrency + "-" + syminfo.currency )
////////////////////////////////////////////////////////////////////////////////////////////////////////
var long_condition = false
var short_condition = false
persent_candel = 0.7 // input.float(defval = 0.7 , step = 0.1 , title = "درصد حرکت آخرین کندل", group="CANDEL Settings==========================================")
////////////////////////////////////////////////////////////////////////////////////////////////////////
amplitude = 2 // input.int(title='Amplitude', defval=2)
channelDeviation =2 //input.int(title='Channel Deviation', defval=2)
showChannels =true // input.bool(title='Show Channels', defval=true)
var int trend = 0
var int nextTrend = 0
var float maxLowPrice = nz(low , low)
var float minHighPrice = nz(high , high)
var float up = 0.0
var float down = 0.0
float atrHigh = 0.0
float atrLow = 0.0
float arrowUp = na
float arrowDown = na
len_atr = 130 // input.int(130 , title = "Len Half Trend")
atr2 = ta.atr(len_atr) / 2
dev = channelDeviation * atr2
highPrice = high
lowPrice = low
highma = ta.sma(high, amplitude)
lowma = ta.sma(low, amplitude)
if nextTrend == 1
maxLowPrice := math.max(lowPrice, maxLowPrice)
if highma < maxLowPrice and close < nz(low , low)
trend := 1
nextTrend := 0
minHighPrice := highPrice
minHighPrice
else
minHighPrice := math.min(highPrice, minHighPrice)
if lowma > minHighPrice and close > nz(high , high)
trend := 0
nextTrend := 1
maxLowPrice := lowPrice
maxLowPrice
if trend == 0
if not na(trend ) and trend != 0
up := na(down ) ? down : down
arrowUp := up - atr2
arrowUp
else
up := na(up ) ? maxLowPrice : math.max(maxLowPrice, up )
up
atrHigh := up + dev
atrLow := up - dev
atrLow
else
if not na(trend ) and trend != 1
down := na(up ) ? up : up
arrowDown := down + atr2
arrowDown
else
down := na(down ) ? minHighPrice : math.min(minHighPrice, down )
down
atrHigh := down + dev
atrLow := down - dev
atrLow
//////////////////////////////////////////////////////////////////////////////////////////////////////////
len_rsi = 14 // input.int(14, group = "RSI Setting=================================")
rsi = ta.rsi(close , len_rsi)
//////////////////////////////////////////////////////////////////////////////////
// محاسبات مربوط به تعیین خطوط حمایت و مقاومت و شکست آنها
show_ATR = input.bool(false)
lookback_15 = 4 // input.int(4, title = "====>Look Back 1H=====>", inline = "2", group = "Setting Pivot======================", tooltip = "Drawing support and resistance in time frame 15 min in selected look back")
pl60 = fixnan(ta.pivotlow( low , lookback_15 , lookback_15 ))
ph60 = fixnan(ta.pivothigh( high , lookback_15 , lookback_15 ))
plot(show_ATR ? pl60 : na , color = color.red)
plot(show_ATR ? ph60 : na , color = color.green)
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
len_ema_fast_long = 2 // input.int(2)
sorce_tma_long = low // input.source(low)
ema_fast_long = ta.ema(sorce_tma_long , len_ema_fast_long)
len_ema_slow_long = 25 // input.int(25)
ema_slow_long = ta.ema(sorce_tma_long , len_ema_slow_long)
//**********************************
len_ema_fast_short = 2 // input.int(2)
sorce_tma_short = high // input.source(close)
ema_fast_short = ta.ema(sorce_tma_short , len_ema_fast_short)
len_ema_slow_short = 25 // input.int(25)
ema_slow_short = ta.ema(sorce_tma_short , len_ema_slow_short)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
bars = 2 // input.int(9,title="Volume Previous bars to check")
//one_side = input.bool(false, title="Positive values only")
float volume_up = 0
float volume_down = 0
for i = 0 to bars
if (close >open )
volume_up:=volume_up+volume
else
volume_down:=volume_down+volume
total_up_down_vol= volume_up-volume_down
vol_bb = 8 // input.int(8)
vol_aa = 2 // input.int(2)
pivot_high_vol = fixnan(ta.pivothigh(total_up_down_vol , vol_bb , vol_aa ))
pivot_low_vol = fixnan(ta.pivotlow(total_up_down_vol , vol_bb , vol_aa ))
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
CLOSE = close
LOW = low
HIGH = high
//////////////////////////////////////////////////////////////////////////////////
//
//reg_trend_on = input(true, 'Activate Reg Trend Line')
length_bull_bear = 4 // input.int(defval= 4, title='🔹 Length Reg Trend line=', minval=1)
//
BullTrend_hist = 0.0
BearTrend_hist = 0.0
BullTrend = (CLOSE - ta.lowest(LOW, length_bull_bear)) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend = (ta.highest(HIGH, length_bull_bear) - CLOSE) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend2 = -1 * BearTrend
Trend = BullTrend - BearTrend
// plot columun
if BullTrend < 2
BullTrend_hist := BullTrend - 2
BullTrend_hist
if BearTrend2 > -2
BearTrend_hist := BearTrend2 + 2
BearTrend_hist
//alexgrover-Regression Line Formula
x = bar_index
y = Trend
x_ = ta.sma(x, length_bull_bear)
y_ = ta.sma(y, length_bull_bear)
mx = ta.stdev(x, length_bull_bear)
my = ta.stdev(y, length_bull_bear)
c = ta.correlation(x, y, length_bull_bear)
slope = c * (my / mx)
inter = y_ - slope * x_
reg_trend = x * slope + inter
/////////////////////////////////////////////////
long2 = true
short2 = true
close_H = request.security("" , "" , close )
open_H = request.security("" , "" , open )
if close_H > open_H and close_H > open_H
short2 := false
if close_H < open_H and close_H < open_H
long2 := false
nnn = 1.4 // input.float(1.4 , step = 0.1)
long_1 = BullTrend > nnn and ta.sma(reg_trend , 4 ) > ta.sma(reg_trend , 8 )
short_1 = BearTrend2 < -nnn and ta.sma(reg_trend , 4 ) < ta.sma(reg_trend , 8 )
///////////////////////////////////////////////////
lensig_mdi = 8 // input.int(8, title="ADX Smoothing", minval=1)
len_mdi = 2 // input.int(2, minval=1, title="DI Length")
up_mdi = ta.change(high)
down_mdi = -ta.change(low)
plusDM = na(up_mdi) ? na : (up_mdi > down_mdi and up_mdi > 0 ? up_mdi : 0)
minusDM = na(down_mdi) ? na : (down_mdi > up_mdi and down_mdi > 0 ? down_mdi : 0)
trur_mdi = ta.rma(ta.tr, len_mdi)
plus_mdi = fixnan(100 * ta.rma(plusDM, len_mdi) / trur_mdi)
minus_mdi = fixnan(100 * ta.rma(minusDM, len_mdi) / trur_mdi)
sum = plus_mdi + minus_mdi
adx = 100 * ta.rma(math.abs(plus_mdi - minus_mdi) / (sum == 0 ? 1 : sum), lensig_mdi)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات SuperTrend
atrPeriod = 28 // input(28, title="ATR Period Super Trend")
factor = 3 // input(3.0, title="Multiplier")
= ta.supertrend(factor, atrPeriod)
// تعریف تایمفریمهای بالاتر
htf0 = "30" // input.timeframe("30", title="تایمفریم تأیید اول (1H)")
htf1 = "60" // input.timeframe("60", title=" ایمفریم تأیید دوم (1H)")
htf2 = "240" // input.timeframe("240", title="تایمفریم تأیید سوم (4H)")
// محاسبه SuperTrend در تایمفریمهای بالاتر
supertrend1 = request.security(syminfo.tickerid, htf0, supertrend)
direction1 = request.security(syminfo.tickerid, htf0, direction)
supertrend1H = request.security(syminfo.tickerid, htf1, supertrend )
direction1H = request.security(syminfo.tickerid, htf1, direction)
supertrend4H = request.security(syminfo.tickerid, htf2, supertrend )
direction4H = request.security(syminfo.tickerid, htf2, direction)
// شرایط ورود
Condition_supertrend_long = (direction1H > 0 or direction4H > 0 or direction1 > 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
Condition_supertrend_short = (direction1H < 0 or direction4H < 0 or direction1 < 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
//////////////////////////////////////////////////////////////////////////////////////////////////////////
open_4h = request.security("" , "240" , open )
close_4h = request.security("" , "240" , close )
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
if day_of_week == false
if isTradeEnabled == true and time == time_newyork and not isSaturday and not isSunday //and not isFriday and not isMonday
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
if day_of_week == true
if isTradeEnabled == true and time == time_newyork
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات استاپ سل پوزیشن شورت و لانگ بر اساس ATR
length_atr = 2 // input.int(title='Length', defval=2, minval=1, group = "StopLoss Setting=================================")
m = 0.9 // input.float(0.9,step = 0.1,title = 'Multiplier', group = "StopLoss Setting=================================")
show_atr = false // input.bool(false, group = "StopLoss Setting=================================")
src1_atr = high //input(high , title = "Stoploss Short")
src2_atr = low //input(low ,title = "Stoploss Long")
collong_atr = color.rgb(0,255,0,0)
colshort_atr = color.rgb(255,0,0,0)
a1 = (ta.sma(ta.tr(true), length_atr) * m) / 2 + (ta.wma(ta.tr(true), length_atr) * m) / 2
stop_loss_short = src1_atr + a1
stop_loss_long = src2_atr - a1
p1_atr1 = plot(show_atr ? stop_loss_long : na, title='ATR Short Stop Loss', color=colshort_atr, style=plot.style_circles)
p2_atr1 = plot(show_atr ? stop_loss_short : na, title='ATR Long Stop Loss', color=collong_atr, style=plot.style_circles)
/////////////////////////////////////////////////////////////////Start Stop Loss///////////////////////////////////////////////
/////////////////////////////////////////////////////////////////END Stop Loss///////////////////////////////////////////////
var total_long_trade = 0
var loss_long = 0
var profit_long = 0
var sood_pos_long = 0.00
var zarar_pos_long = 0.00
var kol_sood_long = 0.00
var total_short_trade = 0
var loss_short = 0
var profit_short = 0
var sood_pos_short = 0.00
var zarar_pos_short = 0.00
var kol_sood_short = 0.00
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ━━━━━━━━━━━━━━━━━━ تنظیمات ورودی ━━━━━━━━━━━━━━━━━━
var int candlesToWait = 12 // input.int(1, "تعداد کندلهای انتظار پس از معامله", minval=1)
// ━━━━━━━━━━━━━━━━━━ شناسایی آخرین معامله ━━━━━━━━━━━━━━━━━━
var int lastTradeCloseBar = na
var bool isCoolDownOver = true
// اگر معاملهای بسته شد، شماره کندل آن را ذخیره کن
if strategy.closedtrades > 0 and (na(lastTradeCloseBar) or strategy.closedtrades != strategy.closedtrades )
lastTradeCloseBar := bar_index
isCoolDownOver := false
// بررسی آیا تعداد کندلهای موردنظر گذشته است؟
if not na(lastTradeCloseBar) and (bar_index - lastTradeCloseBar) >= candlesToWait
isCoolDownOver := true
bgcolor(isCoolDownOver ? na : color.new(color.red, 90), title="Cooldown Status")
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن لانگ
//ADD_quantity = 1.5 // input.float(2 , title = "در صورت واگرایی ماجین رو چند بابر کنم؟")
if position_type == "Buy" or position_type == "Buy_And_Sell"
if long_condition and isCoolDownOver
ent2 := close
sl3 :=stop_loss_long - (stop_loss_long * (0.5 / leverage) / 100 )
tp3 := ent2 + ((ent2 - sl3) * r_r_long)
number_coin = ((quantity * leverage * sl_manager) / ((ent2 - sl3) *100))
equity2 := math.round ((number_coin * close ) , 3)
if equity2 > quantity * leverage
equity2 := quantity * leverage
//////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , low , str.tostring(equity2) + "$" , color = color.rgb(0, 255, 0,0) , size = size.normal , style = label.style_label_up)
strategy.entry(id="buy", direction = strategy.long , qty=(equity2/close) )
if close >= 10 and close < 500
qty2 := str.tostring(math.round(equity2/close , 2))
else
qty2 := str.tostring(math.round(equity2/close , 0))
if close > 500
qty2 := str.tostring(math.round(equity2/close , 3 ))
if symbol == "AAVEUSDT"
qty2 := str.tostring(math.round(equity2/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"BUY", "positionSide": "LONG", "quantity":"'+qty2+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"SELL", "positionSide": "LONG","delay": 5 ,"quantity":"'+qty2+'","price": "'+str.tostring(tp3)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"SELL","positionSide": "LONG","delay": 10 ,"quantity":"'+qty2+'","price": "'+str.tostring(sl3)+'", "stopPrice": "'+str.tostring(sl3)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
long_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp3, bar_index + 15, tp3, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp3 - ((tp3 - ent2) /2)), bar_index + 15, (tp3 - ((tp3 - ent2) /2)), xloc= xloc.bar_index, color= color.rgb(0, 17, 255), width = 2 , style = line.style_dashed)
line.new(bar_index, sl3, bar_index + 15, sl3, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,0), width = 1)
box.new(bar_index , sl3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent2 , bar_index + 15 , ent2 , color = color.rgb(255, 255, 0, 0))
/////////////////////////////////////////////////////////
total_long_trade := total_long_trade + 1
if low <= sl3 and long_is_open == true
loss_long := loss_long + 1
zarar_pos_long := zarar_pos_long + (((ent2 - sl3) / ent2) * equity2)
if high >= tp3 and long_is_open == true
profit_long := profit_long + 1
sood_pos_long := sood_pos_long +(((tp3 - ent2) / ent2) * equity2)
kol_sood_long := sood_pos_long - zarar_pos_long
/////////////////////////////////////////////////////////////
if (low <= sl3 or high >= tp3) and long_is_open == true
long_is_open := false
strategy.exit( id = "buy" , from_entry = "buy" , limit = tp3 , stop = sl3 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_long = kol_sood_long >0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
// //////////////////////LONG___ENNNDD//////////////////////////////////////////////////////////
// تظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن شورت
if position_type == "Sell" or position_type == "Buy_And_Sell"
if short_condition and isCoolDownOver
ent1 := close
sl1 :=stop_loss_short + (stop_loss_short * (0.5 / leverage) / 100 )
tp1 := ent1 - ((sl1 - ent1 ) * r_r_short)
number_coin = ((quantity * leverage * sl_manager) / ((sl1 - ent1) *100))
equity1 := math.round ((number_coin * close ) , 3)
if equity1 > quantity * leverage
equity1 := quantity * leverage
/////////////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , high , str.tostring(equity1) + "$" , color = color.rgb(255, 0, 0,0) , size = size.normal , style = label.style_label_down)
strategy.entry(id="sell", direction = strategy.short, qty=(equity1/close) )
if close >= 10 and close < 500
qty1 := str.tostring(math.round(equity1/close , 2))
else
qty1 := str.tostring(math.round(equity1/close , 0))
if close > 500
qty1 := str.tostring(math.round(equity1/close , 3))
if symbol == "AAVEUSDT"
qty1 := str.tostring(math.round(equity1/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"SELL", "positionSide": "SHORT", "quantity":"'+qty1+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"BUY", "positionSide": "SHORT","delay": 5 ,"quantity":"'+qty1+'","price": "'+str.tostring(tp1)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"BUY","positionSide": "SHORT","delay": 10 ,"quantity":"'+qty1+'","price": "'+str.tostring(sl1)+'", "stopPrice": "'+str.tostring(sl1)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
short_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp1, bar_index + 15, tp1, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp1+((ent1 - tp1)/2)), bar_index + 15, (tp1+((ent1 - tp1)/2)), xloc= xloc.bar_index, color= color.rgb(4, 0, 255), width = 2 , style= line.style_dashed)
line.new(bar_index, sl1, bar_index + 15, sl1, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,50), width = 1)
box.new(bar_index , sl1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent1 , bar_index + 15 , ent1 , color = color.rgb(255, 255, 0,0))
////////////////////////////////////////////////////////////////////////////////////
total_short_trade := total_short_trade + 1
if high >= sl1 and short_is_open == true
loss_short := loss_long + 1
zarar_pos_short := zarar_pos_short + (((sl1 - ent1) / ent1) * equity1)
if low <= tp1 and short_is_open == true
profit_short := profit_short + 1
sood_pos_short := sood_pos_short +(((ent1 - tp1) / ent1) * equity1)
kol_sood_short := sood_pos_short - zarar_pos_short
///////////////////////////////////////////////////////////////////////////////////
if (high >= sl1 or low <= tp1 ) and short_is_open == true
short_is_open := false
strategy.exit( id = "sellext1" , from_entry = "sell" , limit = tp1 , stop = sl1 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_short = kol_sood_short > 0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
////////////////////////////////////////////////////////////////////////////////////////////
kol_trade = loss_short + loss_long + profit_long + profit_short
/////////////////////SHORT___ENNNDD//////////////////////////////////////////////////////
closed_trades = (loss_short + loss_long + profit_long + profit_short) // strategy.closedtrades
kolfee = (closed_trades * quantity * leverage * persent_fee) / 100
net_profit = math.round((kol_sood_short + kol_sood_long) , 2 ) - kolfee
net_percent = math.round((net_profit / quantity) * 100 , 2)
win_rate = math.round(((profit_long + profit_short) / kol_trade) * 100 , 2) //math.round((strategy.wintrades / strategy.closedtrades) * 100 , 2)
ending = math.round((quantity + net_profit) , 2)
profit_factor = math.round((sood_pos_long + sood_pos_short) / math.abs(zarar_pos_long + zarar_pos_short) , 2)
drow_down = math.round((strategy.max_drawdown / quantity) * 100, 2 )
show_reportTabel = input.bool(true)
if show_reportTabel
table_color = color.rgb(0, 0, 0)
var table result_table = table.new(position.top_right, 30, 40, bgcolor=color.rgb(255,255,255,0), frame_color=color.rgb(0, 0, 0,0), frame_width=1, border_width=2)
table.cell(result_table , column = 0 , row = 0 , text = "TEST BTC with breake out:\n" + str.tostring(kol_trade) , bgcolor = table_color , text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 0 , text = "starting:\n" + str.tostring(quantity) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 0 , text = "Net Profit:\n" + str.tostring(net_profit) + "$:\n" + " fee = " + str.tostring(kolfee) , bgcolor = table_color, text_color = net_profit > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 0 , row = 1 , text = "Win Rate:\n" + str.tostring(win_rate) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 1 , text = "Ending:\n" + str.tostring(ending) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 1 , text = "Profit Factor:\n" + str.tostring(profit_factor) , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 3 , row = 0 , text = "Net Percent:\n" + str.tostring(net_percent) + "%" , bgcolor = table_color, text_color = net_percent > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 3 , row = 1 , text = "Draw Down:\n" + str.tostring(drow_down) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 4 , row = 0 , text = "Stop:\n" + "Short =" + str.tostring(loss_short)+ "\n" +"Long =" + str.tostring(loss_long) , bgcolor = table_color, text_color = color.rgb(255,0,0,0))
table.cell(result_table , column = 4 , row = 1 , text = "TP:\n" + "Short =" + str.tostring(profit_short)+ "\n" +"Long =" + str.tostring(profit_long) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 0 , text = "Short:\n" + "sood =" + str.tostring(math.round(sood_pos_short,2)) + "\n" + "Zarar =" + str.tostring(math.round(zarar_pos_short,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 1 , text = "Long:\n" + "sood =" + str.tostring(math.round(sood_pos_long,2)) + "\n" + "Zarar =" + str.tostring(math.round(zarar_pos_long,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 6 , row = 0 , text = "Kol Sood Short:\n" + "Short =" + str.tostring(math.round(kol_sood_short,2)) , bgcolor = table_color, text_color = color_kol_pos_short)
table.cell(result_table , column = 6 , row = 1 , text = "Kol Sood Long:\n" + "LONG =" + str.tostring(math.round(kol_sood_long,2)) , bgcolor = table_color, text_color = color_kol_pos_long)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////////////////////////////
// // ********** تنظیمات **********
// show_monthly_Report = input.bool(false, "نمایش گزارش ماهیانه")
// exchange_fee_percent = 0.05 / 100 // input.float(0.05, "کارمزد صرافی (%)", step=0.01) / 100
// indicator_name = 'BTC with breake out' // input.string("تحلیلگر حرفه ای - گزارش ماهیانه", "عنوان اندیکاتور")
// show_total_row = true // input.bool(true, "نمایش سطر جمع کل")
// // ********** ایجاد جدول **********
// var table monthlyReport = table.new(position = position.top_right, columns = 6,rows = 21,bgcolor = color.rgb(33, 33, 33),
// border_width = 2,border_color = color.rgb(80, 80, 80),frame_width = 1,frame_color = color.rgb(50, 50, 50))
// // ********** متغیرهای ماهیانه **********
// var int currentMonth = na
// var int monthTrades = 0
// var int monthWinningTrades = 0
// var float totalFees = 0.0
// var float monthNetProfit = 0.0
// // ********** متغیرهای جمع کل **********
// var float totalAllTrades = 0.0
// var float totalAllFees = 0.0
// var float totalAllNetProfit = 0.0
// var int totalAllWinningTrades = 0
// var int totalAllMonths = 0
// // ********** تشخیص تغییر ماه **********
// isNewMonth = ta.change(month) or ta.change(year)
// // ********** محاسبات معاملات **********
// tradeClosed = strategy.closedtrades > strategy.closedtrades
// if tradeClosed
// lastTradeIndex = strategy.closedtrades - 1
// tradeSize = math.abs(strategy.closedtrades.size(lastTradeIndex) * strategy.closedtrades.exit_price(lastTradeIndex))
// tradeFee = tradeSize * exchange_fee_percent
// totalFees := totalFees + tradeFee
// tradeProfit = strategy.closedtrades.profit(lastTradeIndex)
// monthNetProfit := monthNetProfit + tradeProfit
// monthTrades := monthTrades + 1
// if tradeProfit > 0
// monthWinningTrades := monthWinningTrades + 1
// // ********** مدیریت گزارش ماهیانه **********
// if isNewMonth and show_monthly_Report and not na(currentMonth)
// // محاسبات ماهانه
// grossProfit = monthNetProfit
// netProfit = grossProfit - totalFees
// winRate = monthTrades > 0 ? (monthWinningTrades/monthTrades)*100 : 0
// // به روزرسانی جمع کل
// totalAllTrades := totalAllTrades + monthTrades
// totalAllFees := totalAllFees + totalFees
// totalAllNetProfit := totalAllNetProfit + netProfit
// totalAllWinningTrades := totalAllWinningTrades + monthWinningTrades
// totalAllMonths := totalAllMonths + 1
// // نمایش در جدول
// row = (month % 12 == 0 ? 12 : month % 12) + 2 // +2 برای جا دادن سطرهای عنوان
// monthName = str.tostring(year ) + "-" + str.tostring(month , "00")
// table.cell(monthlyReport, 0, row, monthName, text_color=color.white)
// table.cell(monthlyReport, 1, row, str.tostring(monthTrades), text_color=color.white)
// table.cell(monthlyReport, 2, row, str.tostring(grossProfit, "0.00") + " $")
// table.cell(monthlyReport, 3, row, str.tostring(totalFees, "0.00") + " $")
// table.cell(monthlyReport, 4, row, str.tostring(netProfit, "0.00") + " $")
// table.cell(monthlyReport, 5, row, str.tostring(winRate, "1.0") + "%")
// // رنگ آمیزی سود/زیان
// textColor = netProfit >= 0 ? color.rgb(0, 200, 0) : color.rgb(200, 0, 0)
// for i = 2 to 5
// table.cell_set_text_color(monthlyReport, i, row, textColor)
// // ********** سطر جمع کل **********
// if show_monthly_Report and show_total_row and totalAllMonths > 0
// totalWinRate = totalAllTrades > 0 ? (totalAllWinningTrades/totalAllTrades)*100 : 0
// table.cell(monthlyReport, 0, 15, "جمع کل (" + str.tostring(totalAllMonths) + " ماه)",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50),
// width=6)
// table.cell(monthlyReport, 1, 15, str.tostring(totalAllTrades),
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 2, 15, str.tostring(totalAllNetProfit + totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 3, 15, str.tostring(totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 4, 15, str.tostring(totalAllNetProfit, "0.00") + " $",
// text_color = totalAllNetProfit >= 0 ? color.green : color.red,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 5, 15, str.tostring(totalWinRate, "1.0") + "%",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// // ********** ریست ماهیانه **********
// if isNewMonth
// currentMonth := month
// monthTrades := 0
// monthWinningTrades := 0
// totalFees := 0.0
// monthNetProfit := 0.0
// // ********** عنوانهای جدول **********
// if barstate.isfirst and show_monthly_Report
// // عنوان اصلی (یکپارچه در سطر اول)
// table.cell(
// monthlyReport,
// column = 4, // ستون شروع (0 = اولین ستون)
// row = 0, // ردیف 0 (اولین ردیف)
// text = indicator_name,
// bgcolor = color.rgb(0, 0, 0),
// text_size = size.small,
// text_color = color.rgb(255,255,0),
// width = 12, // گسترش روی تمام 6 ستون
// height = 4 // ارتفاع بیشتر برای وضوح بهتر
// )
// // عنوان ستونها (در ردیف دوم)
// headers = array.from("ماه", "تعداد", "سود ناخالص", "کارمزد", "سود خالص", "نرخ برد")
// for i = 0 to 5
// table.cell(
// monthlyReport,
// column = i,
// row = 1, // ردیف بعد از عنوان اصلی
// text = array.get(headers, i),
// text_color = color.white,
// bgcolor = color.rgb(60, 60, 60),
// width = 1 // عرض معمولی برای هر ستون
// )
ORB Breakout Indicator - NQ1!The purpose of this indicator is to assist traders in rapidly identifying high-probability Opening Range Breakout (ORB) setups on the NQ1! 1-minute time frame (Nasdaq Futures)
Key Features:
Opening Range: Automatically plots the high and low of the 1st 15min of the (NYSE session) (09:30–09:45 EST)
Breakout Signals : Illustrates the first candle that breaks upward or downward and:
Green arrow for a bullish breakout
Red arrow for a bearish breakout
Clean Visuals: Dynamic lines show the high and low of the ORB window for easy reference.
(DON'T USE THIS ONLY FOR ENTRY SIGNALS, PAIR THIS WITH OTHER INFLUENCES TO GET HIGH PROBABILITY BREAKOUTS)
BOS mark-out (by Lumiere)Advanced BOS Detection with Strict Swing Confirmation
This indicator implements BOS detection with several unique features:
🔹 Dual-Candle Swing Validation - Unlike most BOS indicators that use single candle swings, this uses a two-candle confirmation for swing highs/lows, analyzing both the candle wicks and body transitions.
🔹 Directional Lock System - Implements a state machine that prevents duplicate signals until an opposite-direction BOS occurs, reducing noise.
🔹 Precision Wick Analysis - Compares wicks between the reversal candle and confirmation candle to identify the true swing point.
🔹 Real-Time Update & Live Market Adaptation – The indicator continuously monitors price action and instantly updates BOS signals as new candles form, ensuring you never miss a BOS.
How It Differs From Other BOS Indicators:
Most public BOS indicators use simple HH/HL or LH/LL detection.
Many don't implement the directional locking mechanism.
Few use the two-candle wick comparison approach.
Wick-Based Precision uses the extreme wicks of two candles (not just the body).
Strict Confirmation requires a close beyond the swing point (no "wick breaks" counted).
Usage Examples:
🟦 Bullish BOS:
A green candle closes, followed by a red candle. This will be the new high, and if the next candle closes above the highest wick of those two, it will be a BOS (only if we had a bearish BOS before)
🟥 Bearish BOS:
A red candle closes, followed by a green candle. This will be the new low, and if the next candle closes below the lowest wick of those two, it will be a BOS (only if we had a Bullish BOS before)
Intra_Candle_Welding by Chaitu50cIntra Candle Welding by Chaitu50c
This is a professional price action–based indicator designed to automatically detect and visualize *intra-candle reversal zones* using simple yet powerful logic. It highlights price levels where two consecutive opposite candles meet with a high probability of short-term market reaction.
Concept
The indicator identifies potential intraday support and resistance levels based on the "Intra Candle Welding" concept: when the close of one candle is very close to the open of the next candle, and the two candles have opposite directions (bullish followed by bearish, or bearish followed by bullish). These levels often attract market attention due to order flow imbalance created during such transitions.
How It Works
1. The indicator continuously monitors each new candle and checks if the current open is approximately equal to the previous close, within a configurable buffer.
2. It further ensures that the two candles form an opposite pair (green→red or red→green).
3. When a valid pair is detected, the indicator checks for existing active lines near this level. If no active line exists within the defined tolerance, it draws a new horizontal line at the detected level.
4. Each line is classified as either a potential resistance (from green→red pair) or support (from red→green pair).
5. Lines automatically extend rightward and update with each bar. If price breaks through the line beyond a configurable break buffer, the line stops extending and is visually marked as "broken."
6. The indicator intelligently manages the maximum number of lines on the chart by deleting the oldest ones when the limit is exceeded.
Use Case
Traders can use this tool to identify short-term reaction zones and potential intraday turning points. The highlighted levels act as temporary support and resistance areas where price frequently reacts. It is especially useful in fast-moving or volatile markets such as index futures or liquid stocks.
Features
* Automatically detects intra-candle reversal zones.
* Classifies zones as support (bottom) or resistance (top).
* Automatically updates and breaks lines when invalidated by price action.
* Adjustable parameters for flexibility:
* Equality Buffer
* Max Lines to Keep
* Line Suppression Tolerance
* Initial Extend Bars
* Break Buffer
* Line colors, widths, and styles (active and broken states)
* Efficient memory handling with capped line count.
* Minimalist and clean visual representation, suitable for overlay on any chart.
Recommended Settings
* Works best on intraday timeframes (1 min to 15 min).
* Tune the Equality Buffer and Tolerance parameters based on instrument volatility.
* Use conservative Break Buffer to avoid premature line invalidation.
Disclaimer
This is a tool to support discretionary trading decisions. It is not a standalone buy/sell signal generator. Users are advised to combine it with their own market context and risk management framework.
This indicator is released for the TradingView community for educational and practical trading use.
---
MTF Candle Direction Forecast + Breakdown🧭 MTF Candle Direction Forecast + Breakdown 🔥📈🔼
This script is a multi-timeframe (MTF) price action dashboard that helps traders assess real-time directional bias across five customizable timeframes — with a focus on candle behavior, trend alignment, and confidence strength.
📌 What It Does
For each timeframe, this dashboard summarizes:
Current direction → Bullish, Bearish, or Neutral
Confidence score (0–100) → How strongly price is likely to continue in that direction
Candle strength → 🔥 icon appears if the current candle has a large body relative to its range
Trend alignment:
📈 = EMA9 is above EMA20
🔼 = Price is above VWAP
Color-coded background to visually reinforce directional state
Each row gives you a visual “at-a-glance” readout of what price is doing right now — not in the past.
💡 Why It’s Useful
✅ Direction forecasting based on price action
Instead of lagging indicators, this script prioritizes:
Candle body-to-range ratio (momentum)
Real-time VWAP/EMA structure
Immediate price positioning
✅ Confidence is quantified
The score (0–100) helps you judge how reliable each directional signal is:
90+ → Strong conviction
50–70 → Mixed but potentially valid
<40 → Weak move or early signal
✅ Timeframe confluence at a glance
See whether multiple timeframes are aligning directionally — helpful for scalping, day trading, or waiting for multi-timeframe breakout setups.
✅ Visual & intuitive
Icons, colors, and layout make it easy to scan your dashboard instead of deciphering charts or code.
🛠️ Adjustable Settings
Setting Description
Timeframe 1–5 Choose any timeframes to monitor (e.g., 5m, 15m, 1h, 4h)
Candle Display Mode Show trend color via emoji (🟢/🔴) or background shading
Strong Candle Threshold Adjust the body-to-range % needed to trigger 🔥 strength
Bullish/Bearish Background Customize label color coding
Neutral Background (opacity) Set transparency or styling for flat/consolidating zones
Table Location Place the dashboard anywhere on the chart
🎯 Use Cases
Scalpers: Confirm trend across 1m/5m/15m before entering
Day Traders: Use confidence score to avoid low-momentum setups
Swing Traders: Monitor higher timeframes for trend shifts while tracking intraday noise
VWAP/EMA traders: Quickly see when price is reclaiming or losing critical trend levels
🧠 What Makes It Unique?
Unlike generic trend meters or mashups of standard indicators, this script:
Uses live candle dynamics (not just closes or lagging values)
Computes directional bias and confidence together
Visualizes strength and structure in a compact, readable interface
Let’s you filter by price action, not just indicator alignment
💥 Why Traders Love Will Love It
✅ Instant clarity on which timeframes agree
✅ No more guessing candle strength or trend health
✅ Confidence score keeps you out of weak trades
✅ Works with any strategy — trend following, VWAP reclaim, EMA scalps, even breakouts
✅ Keeps your chart clean — all the context, none of the clutter
⚠️ Transparency🧬 Under the Hood
Powered by live candle body analysis, trend structure (EMA9 vs EMA20), and VWAP placement.
All scores are generated in real-time — No repainting or lookahead bias: all values are computed with lookahead=barmerge.lookahead_on
Confidence scores reflect the current candle only — they do not predict future moves but measure momentum and alignment in real-time
Labels update per bar and respond to subtle shifts in candle structure and trend indicators
✅ MTF Trend Snapshot (Live Output Example Shown in Chart Above)
This dashboard gives you a fast, visual summary of market trend and momentum across 5 timeframes. Here's what it's telling you right now:
🕔 5 Minute (5m)
📉 EMA Trend: Down
🔼 Price: Above VWAP
Direction: Bearish (42)
🟥 Weak bearish bias. Short-term pullback against a stronger trend. Use caution — lower confidence and mixed structure.
⏱️ 15 Minute (15m)
📈 EMA Trend: Up
🔼 Price: Above VWAP
Direction: Bullish (73)
🟩 Clean bullish structure with growing momentum. Solid for intraday confirmation.
🕧 30 Minute (30m)
📈 EMA Trend: Up
🔼 Price: Above VWAP
Direction: Bullish (77)
🟩 Stronger trend forming. Above VWAP and EMAs — building conviction.
🕐 1 Hour (1h)
📈 EMA Trend: Up
🔼 Price: Above VWAP
Direction: Bullish (70)
🟩 Confident, clean trend. Good alignment across indicators. Ideal timeframe for swing entries.
🕓 4 Hour (4h)
🔥 Strong Candle
📈 EMA Trend: Up
🔼 Price: Above VWAP
Direction: Bullish (100)
🟩 Full trend alignment with max momentum. Strong body candle + structure — high confidence continuation.
🧠 Quick Takeaway
🔻 5m is pulling back short term
✅ 15m through 4h are fully aligned Bullish
🔥 4h has max confidence — big-picture trend is intact
📈 Ideal setup for momentum traders looking to ride trend with multi-timeframe confirmation
Try pinning this dashboard to your chart during live trading to read price like a story across timeframes, and filter out weak setups with low-confidence noise.
1M Scalp Setup – 2ndHi/2ndLo Breakout1M Scalp Setup – 2ndHi/2ndLo Breakout
This script is designed for 1-minute chart scalpers seeking high-probability intraday breakout setups based on early session price action. The strategy revolves around identifying the first high and low of the day, and then detecting the second breach (2nd high or 2nd low) to anticipate breakout entries.
🔍 Core Logic:
EMA Filter : A configurable EMA (default 8-period) is plotted for trend context.
1st High/Low Detection : Captures the very first high and low of each trading day.
2nd High/Low Markers : Identifies the second time price breaks the initial high or low, acting as a potential signal zone.
Breakout Signals :
A Buy Signal is triggered when price closes above the 2nd high.
A Sell Signal is triggered when price closes below the 2nd low.
Each signal is only triggered once per day to reduce noise and avoid overtrading.
🖌️ Visual Markers:
1stHi and 1stLo : Early session levels (red and green).
2ndHi and 2ndLo : Key breakout reference points (purple and blue).
B and S Labels : Buy and Sell triggers marked in real-time once breakouts occur.
⚙️ Inputs:
EMA Length (default: 8)
Customizable Colors for Buy/Sell signals and key markers
This tool is best used in fast-moving markets or during high-volume sessions. Combine with volume or higher-timeframe confirmation for improved accuracy.
BTC Breakout Alert📈 BTC Breakout & Fakeout Detector with Volume, RSI & MACD Filters
This script helps identify high-confidence breakout setups by combining price action, volume spikes, and optional momentum filters (RSI & MACD). It’s designed to alert you when Bitcoin (or any asset) breaks above a defined resistance level with strong conviction — and warns you if that move turns out to be a fakeout.
🔍 Features:
✅ Confirmed Breakout Alerts: Triggers when price closes above your set resistance level with volume ≥ 1.5× the 20-period average.
⚠️ Fakeout Detection: Highlights when price closes back below resistance within a few candles after breakout.
📊 Momentum Filters:
RSI > 50 for bullish confirmation
MACD line > signal line to support breakout momentum
🔔 Custom Alerts: Built-in alert conditions for both breakout and fakeout events.
🔼🔽 Visual Markers: Arrows plotted directly on the chart for clear entry and caution zones.
🕒 Works on all timeframes and any asset that includes volume data.
Ideal for breakout traders who want more than just a price spike — this tool ensures volume and momentum alignment, helping you reduce false signals and react with more confidence.
Daily Breakout + Daily Shadow By RouroThis script is a Pine v5 strategy designed to detect daily candle body breakouts and execute them on any intraday timeframe, while also providing:
Daily Data Retrieval
Using request.security(..., "D", ...) it fetches the OHLC and timestamp of the daily candle, regardless of the chart’s current timeframe.
Calculation of Yesterday’s and Day-Before-Yesterday’s Bodies
b1High and b1Low → the high/low of yesterday’s daily candle body
b2High and b2Low → the high/low of the previous day’s body
Detection of the First Intraday Bar After a New Day
By using ta.change(time("D")), it marks the start of each new trading day.
Drawing the Previous Day’s “Shadow” on the Chart
It overlays a box (box.new) and two wick lines (line.new) with configurable colors and transparency, so you can clearly see the full range of yesterday’s candle on any intraday chart.
Automatic End-of-Day Position Closure
It will automatically close any open position at the start of the next day to avoid unintended rollovers.
Entry Signals
On the very first intraday bar after the daily close:
Long if yesterday’s close broke above the body of the day before yesterday
Short if yesterday’s close broke below the body of the day before yesterday
…which triggers a strategy.entry at the intraday open.
Fully Customizable Stop-Loss and Take-Profit
SL options:
Opposite end of yesterday’s body
Fixed pips from entry
A risk-reward ratio on yesterday’s wick
Optional “safety SL” in fixed pips that overrides the above
TP options:
Fixed pips
Yesterday’s wick extreme (high/low)
Partial exit on the wick (TP1), then second exit (TP2) either:
At a multiplied RR
Or at the daily close (“Close of Day”)
You can also choose to move SL to breakeven after TP1 is hit.
Live Metrics Table
In the upper-right corner it displays in real time:
Start of backtest (date of first trade)
Number of ✅ Winning trades and ❌ Losing trades
Total number of trades
Win rate (%)
Profit Factor
All within a fixed table layout so it never runs out of rows or columns.
Circuit Breaker LevelsThis indicator will show the Previous Day's Close and +/- 4.5% (Warning Level for Prop Firms), 5% (Prop Firm Trading Halted), 7% (First CME Circuit Breaker), 13% (Second CME Circuit Breaker), and 20% (Final CME Circuit Breaker All Trading Halted for the Day).
TQ's Support & Resistance(My goal creating this indicator): Provide a way to categorize and label key structures on multiple different levels so I can create a plan based on those observable facts.
The Underlying Concept / What is Momentum?
Momentum indicates transaction pressure. If the algorithm detects price is going up, that would be considered positive momentum. If the algorithm detects price is going down negative momentum would be detected.
The Momentum shown is derived from a price action pattern. Unlike my previous Support & Resistance indicator that used Super Trend, this indicator uses a unique pattern I created. On the first bar bearish momentum is detected a resistance Level is made at the highest point of the previous bullish condition. On the first bar bullish momentum is detected a support Level is made at the lowest point of the previous bearish condition. This happens on 5 different Momentum Levels, (short-term to long-term). I currently use this pattern to trade so the source code is protected.
What is Severity?
Severity is How we differentiate the importance of different Highs and Lows. If Momentum is detected on a higher level the Supply or Demand Level is updated. The Color and Size representing that Level will be shown. Demand and Supply Levels made by higher levels are more SEVERE than a demand level made by a lower level.
Technical Inputs
- to ensure the correct calculation of Support and Resistance levels change BAR_INDEX. BAR_INDEX creates a buffer at the start of the chart. For example: If you set BAR_INDEX to 300. The script will wait for 300 bars to elapse on the current chart before running. This allows the script more time to gather data. Which is needed in order for our dynamic lookback length to never return an error (Dynamic lookback length can't be negative or zero). The lower the timeframe the greater the number of bars need. For Example, if I open up a 1min chart I would enter 5000 as my BAR_INDEX since that will provide enough data to ensure the correct calculation of Support and Resistance levels. If I was on a daily chart, I would enter a lower number such as 800. Don't be afraid to play around with this.
- Toggle options (Close) or (High & Low) creates Support and Resistance Levels using the Lowest close and Highest close or using the Lowest low and Highest high.
Level Inputs
- The indicator has 5 Different Levels indicating SEVEREITY of a Supply and Demand Levels. The higher the Level the more SEVERE the Level.
Display Inputs
- You have the option to customize the Length, Width, Line Style, and Colors of all 5 different
- This indicator includes a Trend Chart. To Easily verify the current trend of any displayed by this indicator toggle on Chart On/Off. You also get the option to change the Chart Position and the size of the Trend Chart
How Trend Is being Determined?
(Close > Current Supply Level) if this statement is true technically price made a HH, so the trend is bullish.
(Close < Current Demand Level) if this statement is true technically price made a LL, so the trend is bearish.
- Fully customize how you display Market Structure on different levels. Line Length, Line Width, Line Style, and Line color can all be customized.
How it can be used?
(Examples of Different ways you can use this indicator): Easily categorize the severity of each and every Supply or Demand Level in the market (The higher Level the stronger the level)
: Quickly Determine the trend of any Level.
: Get a consistent view of a market and how different Levels are behaving but just use one chart.
: Take the discretion from hand drawing support and resistance lines out of your trading.
: Find and categorize strong levels for potential breakouts.
: Trend Analysis, use Levels to create a narrative based on observable facts from these Levels.
: Different Targets to take money off the table.
: Use Severity to differentiate between different trend line setups.
: Find Great places to move your stop loss too.
PumpC Opening Range Breakout (ORB) Stretch RangePumpC ORB Stretch
The PumpC ORB Stretch is a volatility-based indicator that helps traders identify potential breakout zones by analyzing how price typically behaves around the open. This tool is inspired by concepts introduced by Toby Crabel in his well-known book “Day Trading with Short-Term Price Patterns and Opening Range Breakout.”
Rather than predicting market direction, this indicator highlights areas where price is likely to expand based on recent volatility. It is designed for traders who prefer dynamic, data-driven breakout levels over static support and resistance zones.
What Is the "Stretch"?
In Toby Crabel’s framework, the Stretch is the average of the smaller of two price moves:
The distance from the open to the high of the bar
The distance from the open to the low of the bar
This smaller value captures the “quiet side” of the candle and reflects recent price compression. Averaged over multiple periods (commonly 10 daily bars), it creates a baseline to assess how far price may move away from the open under typical market conditions.
How the Indicator Works
The PumpC ORB Stretch follows this process:
Uses a higher timeframe (such as daily) to calculate the open, high, and low.
For each bar, measures the smaller of the two distances: open to high or open to low.
Applies a moving average to the result over a user-defined number of bars (default is 10).
Multiplies the average stretch by customizable levels (e.g., 0.382, 1.0, 2.0).
Plots breakout levels above and below the open of the selected timeframe.
The result is a set of adaptive levels that expand or contract with market volatility.
Customization Options
Stretch Timeframe: Choose the timeframe used for stretch calculation (default: Daily).
Stretch Length: Set the number of bars to include in the moving average.
Breakout Levels: Enable or disable individual levels and define multipliers.
Color Settings: Customize colors for each range level for easy visual distinction.
Plot Style: Circular markers are used to reduce chart clutter and improve readability.
How to Use It
Use plotted levels to anticipate possible breakouts from the open.
Adjust stretch length to reflect short-term or longer-term volatility trends.
Combine this tool with momentum indicators, volume, or price action for confirmation.
Use levels to help guide stop placement or profit targets in breakout strategies.
Important Notes
This script is based on an interpretation of Crabel’s concepts and is not affiliated with Crabel Capital or the original author.
The indicator does not predict direction; it is a tool for context and structure.
It is recommended that users test and validate this tool in a simulated environment before applying it to live trading.
This indicator is intended for educational purposes only.
Licensing and Attribution
This script is built entirely in Pine Script v5 and follows TradingView’s open-source standards. It does not include any third-party or proprietary code. If you modify or share it, please credit the original idea and follow all TradingView script publishing rules.
Opening Range BreakoutThis is an Opening Range Breakout script. It will plot the opening range high and low (green and red lines, respectively) as determined by the user input (default is a 15 min window from market open, 9:30 - 9:45 am). The time period for the breakout is also configured by a user input (default is from 9:45 am - 2:30 pm).
Alerts are sent for breakouts either above (bullish) or below (bearish) the opening range high and low. An EMA is also used for trend confirmation before sending alerts for breakouts (to avoid false signals).
A bullish breakout is determined by all of the following being true:
- The current price being above the opening range high (green line)
- The EMA trending up (ie the current value of the EMA > prior EMA value)
- The current price is > the EMA
- The EMA is > the opening range high
A bearish breakout is determined by all of the following being true:
- The current price being below the opening range low (red line)
- The EMA trending down (ie the current value of the EMA < prior EMA value)
- The current price is < the EMA
- the EMA is < the opening range low
Enjoy this simple indicator!
Enhanced Interval Candle with Breakout Detection and Detailed InThis indicator visualizes the last candle of a user-defined time interval (e.g., 1 hour, 4 hours, 1 day) on the current chart, providing enhanced details and breakout detection. It fetches the open, high, low, and close prices of the interval candle and draws a stylized representation of it, offset to the right of the current bar. The candle body and wicks are colored according to whether the interval candle closed bullishly (green) or bearishly (red). In addition to the candle itself, the indicator displays horizontal dotted lines representing the high, low, and midpoint of the interval candle, along with labels showing their exact values. These labels are dynamically updated as the interval candle changes. Furthermore, the script detects and visualizes breakouts of the interval candle's high or low. When the current price closes above the interval high, a green dashed line and a "Bullish Breakout" label are displayed. Conversely, when the current price closes below the interval low, a red dashed line and a "Bearish Breakout" label are shown. The breakout lines and labels are also dynamically updated. This indicator helps traders easily track the price action of a higher timeframe candle and spot potential breakouts based on that candle's range. The user can configure the time interval to suit their trading needs.
AI Volume Breakout for scalpingPurpose of the Indicator
This script is designed for trading, specifically for scalping, which involves making numerous trades within a very short time frame to take advantage of small price movements. The indicator looks for volume breakouts, which are moments when trading volume significantly increases, potentially signaling the start of a new price movement.
Key Components:
Parameters:
Volume Threshold (volumeThreshold): Determines how much volume must increase from one bar to the next for it to be considered significant. Set at 4.0, meaning volume must quadruplicate for a breakout signal.
Price Change Threshold (priceChangeThreshold): Defines the minimum price change required for a breakout signal. Here, it's 1.5% of the bar's opening price.
SMA Length (smaLength): The period for the Simple Moving Average, which helps confirm the trend direction. Here, it's set to 20.
Cooldown Period (cooldownPeriod): Prevents signals from being too close together, set to 10 bars.
ATR Period (atrPeriod): The period for calculating Average True Range (ATR), used to measure market volatility.
Volatility Threshold (volatilityThreshold): If ATR divided by the close price exceeds this, the market is considered too volatile for trading according to this strategy.
Calculations:
SMA (Simple Moving Average): Used for trend confirmation. A bullish signal is more likely if the price is above this average.
ATR (Average True Range): Measures market volatility. Lower volatility (below the threshold) is preferred for this strategy.
Signal Generation:
The indicator checks if:
Volume has increased significantly (volumeDelta > 0 and volume / volume >= volumeThreshold).
There's enough price change (math.abs(priceDelta / open) >= priceChangeThreshold).
The market isn't too volatile (lowVolatility).
The trend supports the direction of the price change (trendUp for bullish, trendDown for bearish).
If all these conditions are met, it predicts:
1 (Bullish) if conditions suggest buying.
0 (Bearish) if conditions suggest selling.
Cooldown Mechanism:
After a signal, the script waits for a number of bars (cooldownPeriod) before considering another signal to avoid over-trading.
Visual Feedback:
Labels are placed on the chart:
Green label for bullish breakouts below the low price.
Red label for bearish breakouts above the high price.
How to Use:
Entry Points: Look for the labels on your chart to decide when to enter trades.
Risk Management: Since this is for scalping, ensure each trade has tight stop-losses to manage risk due to the quick, small movements.
Market Conditions: This strategy might work best in markets with consistent volume and price changes but not extreme volatility.
Caveats:
This isn't real AI; it's a heuristic based on volume and price. Actual AI would involve machine learning algorithms trained on historical data.
Always backtest any strategy, and consider how it behaves in different market conditions, not just the ones it was designed for.
Swing Breakout System (SBS)The Swing Breakout Sequence (SBS) is a trading strategy that focuses on identifying high-probability entry points based on a specific pattern of price swings. This indicator will identify these patterns, then draw lines and labels to show confirmation.
How To Use:
The indicator will show both Bullish and Bearish SBS patterns.
Bullish Pattern is made up of 6 points: Low (0), HH (1), LL (2 | but higher than initial Low), New HH (3), LL (5), LL again (5)
Bearish Patten is made up of 6 points: High (0), LL (1), HH (2 | but lower than initial high), New LL (3), HH (5), HH again (5)
A label with an arrow will appear at the end, showing the completion of a successful sequence
Idea behind the strategy:
The idea behind this strategy, is the accumulation and then manipulation of liquidity throughout the sequence. For example, during SBS sequence, liquidity is accumulated during step (2), then price will push away to make a new high/low (step 3), after making a minor new high/low, price will retrace breaking the key level set up in step (2). This is price manipulating taking liquidity from behind high/low from step (2). After taking liquidity price the idea is price will continue in the original direction.
Step 0 - Setting up initial direction
Step 1 - Setting up initial direction
Step 2 - Key low/high establishing liquidity
Step 3 - Failed New high/low
Step 4 - Taking liquidity from step (2)
Step 5 - Taking liquidity from step 2 and 4
Pattern Detection:
- Uses pivot high/low points to identify swing patterns
- Stores 6 consecutive swing points in arrays
- Identifies two types of patterns:
1. Bullish Pattern: A specific sequence of higher lows and higher highs
2. Bearish Pattern: A specific sequence of lower highs and lower lows
Note: Because the indicator is identifying a perfect sequence of 6 steps, set ups may not appear frequently.
Visualization:
- Draws connecting lines between swing points
- Labels each point numerically (optional)
- Shows breakout arrows (↑ for bullish, ↓ for bearish)
- Generates alerts on valid breakouts
User Input Settings:
Core Parameters
1. Pivot Lookback Period (default: 2)
- Controls how many bars to look back/forward for pivot point detection
- Higher values create fewer but more significant pivot points
2. Minimum Pattern Height % (default: 0.1)
- Minimum required height of the pattern as a percentage of price
- Filters out insignificant patterns
3. Maximum Pattern Width (bars) (default: 50)
- Maximum allowed width of the pattern in bars
- Helps exclude patterns that form over too long a period
Advanced 1-Minute Open Range Breakout IndicatorThis indicator is designed for the market on a 1-minute chart. It calculates the open range based on the first 5 minutes after the market open (09:30 – 09:35) and plots the high and low of this period as the daily resistance and support levels respectively. Additionally, the indicator displays the previous day’s high and low as blue horizontal lines, providing extra reference levels.
Trade signals are generated only during the active trading session (09:35 – 16:00). The advanced trade logic works as follows:
• For long entries:
- When the price first breaks above the open range high, the indicator enters a “breakout” state.
- If the price then retraces to (or below) the open range high, it moves to a “retest” state.
- Finally, if the price breaks above the open range high again, a long signal is issued.
• For short entries:
- When the price first breaks below the open range low, the indicator enters a “breakdown” state.
- If the price then retraces to (or above) the open range low, it moves to a “retest” state.
- Finally, if the price breaks below the open range low again, a short signal is issued.
All signals and the open range lines are only displayed during the trading session (09:35 to 16:00).
Use this indicator to help identify high-probability breakout setups in the early part of the trading day.
200 EMA Breakout & Retest Strategy200 EMA Breakout & Retest Strategy
This script is designed for traders who rely on the 200 EMA as a key indicator for trend direction and trade setups. The strategy identifies potential buy and sell opportunities based on breakouts and subsequent retests of the 200 EMA.
How It Works
EMA Breakout Detection:
The script monitors when the price crosses and closes above or below the 200 EMA.
No signal is generated immediately upon the breakout.
Retest Confirmation:
After the breakout, the price must retrace to touch the 200 EMA.
A valid signal occurs only when the price touches the EMA and the candle closes above (for buy) or below (for sell).
Trade Signal Generation:
Once the retest is confirmed:
A Buy Signal is generated if the price closes above the 200 EMA after the retest.
A Sell Signal is generated if the price closes below the 200 EMA after the retest.
The script calculates:
Stop Loss: Placed at the low of the candle for a buy signal and at the high of the candle for a sell signal.
Take Profit: Based on a customizable Risk-Reward Ratio (default is 1:2).
Visual Indicators:
The 200 EMA is plotted on the chart for reference.
Buy/Sell signals are displayed as labels on the chart.
Stop loss and take profit levels are drawn using dotted lines.
Customization Options
EMA Length: Adjustable (default is 200).
Risk-Reward Ratio: Customizable to suit different trading styles.
Who Is This For?
This strategy is ideal for traders who:
Prefer trading with the trend using EMA-based strategies.
Look for precise entry points with confirmation from retests.
Require automated calculation of risk-reward levels.
SSL Channel MTFSSL Channel with MTF support, This eliminates the noise of a basic SSL Channel script which is based on ErwinBeckers SSL Channel. So i have used a Multi Time Frame approach to have a clear confirmation of trend and reduce Noise and False signals unlike basic SSL Channel.
This script can be used to determine.
Support/Resistance
High/Low Breakout
Trend Direction
MA candles for Entry
The high and low sma are plotted as SSL CHANNEL when ever the high and low sma cross each other a direction change is observed.
The direction of SSL channel determines the trend of the price. The length of the channel can be changed as required a low value has a high noise and direction can be determined with low accuracy. Increasing the length of SSL channel has high accuracy trend confirmation.
The MTF SSL Channel uses plot from higher timeframe this helps in using SSL Channel as a Price Action Tool. Price when ever crosses over or below the channel determines a breakout. Price tries to move between the High SMA line and Low SMA Line of the SSL Channel rejection, breakouts can be easily observed on a lower timeframe using SSL Channel Plot from a higher timeframe.
I have used 5min/15min chart with MTF SSL from a 1Hr/4Hr and a length of 5 instead of 10. This helps quick direction changes over a period of 1hr to 4hr. Price is trapped within the High SMA and Low SMA lines of SSL Channel. In addition to SSL High Low and average mid line is plotted to additional reference.
Buy Sell Signals are plotted based on crossover of SMA High and Low.
Candle are Plotted Using a SMA with length of 5. This Candle Plot can be used to make an entry based on direction confirmation of SSL. keep in mind the direction of SSL Plot and the candle must be same. Preferably Entry can made above or below the midline of SSL Channel. The Candle Plot eliminates the Noise of traditional Japanese Candlesticks.
Additionally MACD Crossover and MACD Trend line confirmations can be used to confirm a Buy Sell and Entry signals
Alerts are also plotted accordingly.
Inside Bar Breakout/Fakeout with AI Scenarios [Yosiet]Inside Bar Breakout/Fakeout Indicator with Scenarios
The Indicator is a powerful tool for traders looking to identify potential breakout and fakeout opportunities based on inside bar patterns. This indicator combines multiple technical analysis concepts to provide a comprehensive view of market behavior, helping traders make more informed decisions.
Key Features
Inside bar detection with filtering
Breakout and fakeout identification
Three distinct scenario detections
Customizable moving average calculations
Flexible visualization options
Alert conditions for various events
How It Works
The indicator identifies inside bars and filters them based on a maximum number of consecutive inside bars. It then detects breakouts and fakeouts using user-defined parameters. The script also calculates moving averages to determine trend direction.
Three specific scenarios are detected:
Strong breakout followed by a strong reversal
Weak breakout with multiple doji/weak candles
Strong breakout without reversal
These scenarios are visually represented on the chart, allowing traders to quickly identify potential trading opportunities.
How to Use
Apply the indicator to your chart
Adjust the input parameters to suit your trading style
Look for inside bar patterns and subsequent breakouts/fakeouts
Pay attention to the three scenario markers for additional context
Use the alert conditions to stay informed of potential opportunities
Bollinger Breakout Strategy with Direction Control [4H crypto]Bollinger Breakout Strategy with Direction Control - User Guide
This strategy leverages Bollinger Bands, RSI, and directional filters to identify potential breakout trading opportunities. It is designed for traders looking to capitalize on significant price movements while maintaining control over trade direction (long, short, or both). Here’s how to use this strategy effectively:
How the Strategy Works
Indicators Used:
Bollinger Bands:
A volatility-based indicator with an upper and lower band around a simple moving average (SMA). The bands expand or contract based on market volatility.
RSI (Relative Strength Index):
Measures momentum to determine overbought or oversold conditions. In this strategy, RSI is used to confirm breakout strength.
Trade Direction Control:
You can select whether to trade:
Long only: Buy positions.
Short only: Sell positions.
Both: Trade in both directions depending on conditions.
Breakout Conditions:
Long Trade:
The price closes above the upper Bollinger Band.
RSI is above the midline (50), confirming upward momentum.
The "Trade Direction" setting allows either "Long" or "Both."
Short Trade:
The price closes below the lower Bollinger Band.
RSI is below the midline (50), confirming downward momentum.
The "Trade Direction" setting allows either "Short" or "Both."
Risk Management:
Stop-Loss:
Long trades: Set at 2% below the entry price.
Short trades: Set at 2% above the entry price.
Take-Profit:
Calculated using a Risk/Reward Ratio (default is 2:1).
Adjust this in the strategy settings.
Inputs and Customization
Key Parameters:
Bollinger Bands Length: Default is 20. Adjust based on the desired sensitivity.
Multiplier: Default is 2.0. Higher values widen the bands; lower values narrow them.
RSI Length: Default is 14, which is standard for RSI.
Risk/Reward Ratio: Default is 2.0. Increase for more aggressive profit targets, decrease for conservative exits.
Trade Direction:
Options: "Long," "Short," or "Both."
Example: Set to "Long" in a bullish market to focus only on buy trades.
How to Use This Strategy
Adding the Strategy:
Paste the script into TradingView’s Pine Editor and add it to your chart.
Setting Parameters:
Adjust the Bollinger Band settings, RSI, and Risk/Reward Ratio to fit the asset and timeframe you're trading.
Analyzing Signals:
Green line (Upper Band): Signals breakout potential for long trades.
Red line (Lower Band): Signals breakout potential for short trades.
Blue line (Basis): Central Bollinger Band (SMA), helpful for understanding price trends.
Testing the Strategy:
Use the Strategy Tester in TradingView to backtest performance on your chosen asset and timeframe.
Optimizing for Assets:
Forex pairs, cryptocurrencies (like BTC), or stocks with high volatility are ideal for this strategy.
Works best on higher timeframes like 4H or Daily.
Best Practices
Combine with Volume: Confirm breakouts with increased volume for higher reliability.
Avoid Sideways Markets: Use additional trend filters (like ADX) to avoid trades in low-volatility conditions.
Optimize Parameters: Regularly adjust the Bollinger Bands multiplier and RSI settings to match the asset's behavior.
By utilizing this strategy, you can effectively trade breakouts while maintaining flexibility in trade direction. Adjust the parameters to match your trading style and market conditions for optimal results!
Silver Bullet ICT Strategy [TradingFinder] 10-11 AM NY Time +FVG🔵 Introduction
The ICT Silver Bullet trading strategy is a precise, time-based algorithmic approach that relies on Fair Value Gaps and Liquidity to identify high-probability trade setups. The strategy primarily focuses on the New York AM Session from 10:00 AM to 11:00 AM, leveraging heightened market activity within this critical window to capture short-term trading opportunities.
As an intraday strategy, it is most effective on lower timeframes, with ICT recommending a 15-minute chart or lower. While experienced traders often utilize 1-minute to 5-minute charts, beginners may find the 1-minute timeframe more manageable for applying this strategy.
This approach specifically targets quick trades, designed to take advantage of market movements within tight one-hour windows. By narrowing its focus, the Silver Bullet offers a streamlined and efficient method for traders to capitalize on liquidity shifts and price imbalances with precision.
In the fast-paced world of forex trading, the ability to identify market manipulation and false price movements is crucial for traders aiming to stay ahead of the curve. The Silver Bullet Indicator simplifies this process by integrating ICT principles such as liquidity traps, Order Blocks, and Fair Value Gaps (FVG).
These concepts form the foundation of a tool designed to mimic the strategies of institutional players, empowering traders to align their trades with the "smart money." By transforming complex market dynamics into actionable insights, the Silver Bullet Indicator provides a powerful framework for short-term trading success
Silver Bullet Bullish Setup :
Silver Bullet Bearish Setup :
🔵 How to Use
The Silver Bullet Indicator is a specialized tool that operates within the critical time windows of 9:00-10:00 and 10:00-11:00 in the forex market. Its design incorporates key principles from ICT (Inner Circle Trader) methodology, focusing on concepts such as liquidity traps, CISD Levels, Order Blocks, and Fair Value Gaps (FVG) to provide precise and actionable trade setups.
🟣 Bullish Setup
In a bullish setup, the indicator starts by marking the high and low of the session, serving as critical reference points for liquidity. A typical sequence involves a liquidity grab below the low, where the price manipulates retail traders into selling positions by breaching a key support level.
This movement is often orchestrated by smart money to accumulate buy orders. Following this liquidity grab, a market structure shift (MSS) occurs, signaled by the price breaking the CISD Level—a confirmation of bullish intent. The indicator then highlights an Order Block near the CISD Level, representing the zone where institutional buying is concentrated.
Additionally, it identifies a Fair Value Gap, which acts as a high-probability area for price retracement and trade entry. Traders can confidently take long positions when the price revisits these zones, targeting the next significant liquidity pool or resistance level.
Bullish Setup in CAPITALCOM:US100 :
🟣 Bearish Setup
Conversely, in a bearish setup, the price manipulates liquidity by creating a false breakout above the high of the session. This move entices retail traders into long positions, allowing institutional players to enter sell orders.
Once the price reverses direction and breaches the CISD Level to the downside, a change of character (CHOCH) becomes evident, confirming a bearish market structure. The indicator highlights an Order Block near this level, indicating the origin of the institutional sell orders, along with an associated FVG, which represents an imbalance zone likely to be revisited before the price continues downward.
By entering short positions when the price retraces to these levels, traders align their strategies with the anticipated continuation of bearish momentum, targeting nearby liquidity voids or support zones.
Bearish Setup in OANDA:XAUUSD :
🔵 Settings
Refine Order Block : Enables finer adjustments to Order Block levels for more accurate price responses.
Mitigation Level OB : Allows users to set specific reaction points within an Order Block, including: Proximal: Closest level to the current price. 50% OB: Midpoint of the Order Block. Distal: Farthest level from the current price.
FVG Filter : The Judas Swing indicator includes a filter for Fair Value Gap (FVG), allowing different filtering based on FVG width: FVG Filter Type: Can be set to "Very Aggressive," "Aggressive," "Defensive," or "Very Defensive." Higher defensiveness narrows the FVG width, focusing on narrower gaps.
Mitigation Level FVG : Like the Order Block, you can set price reaction levels for FVG with options such as Proximal, 50% OB, and Distal.
CISD : The Bar Back Check option enables traders to specify the number of past candles checked for identifying the CISD Level, enhancing CISD Level accuracy on the chart.
🔵 Conclusion
The Silver Bullet Indicator is a cutting-edge tool designed specifically for forex traders who aim to leverage market dynamics during critical liquidity windows. By focusing on the highly active 9:00-10:00 and 10:00-11:00 timeframes, the indicator simplifies complex market concepts such as liquidity traps, Order Blocks, Fair Value Gaps (FVG), and CISD Levels, transforming them into actionable insights.
What sets the Silver Bullet Indicator apart is its precision in detecting false breakouts and market structure shifts (MSS), enabling traders to align their strategies with institutional activity. The visual clarity of its signals, including color-coded zones and directional arrows, ensures that both novice and experienced traders can easily interpret and apply its findings in real-time.
By integrating ICT principles, the indicator empowers traders to identify high-probability entry and exit points, minimize risk, and optimize trade execution. Whether you are capturing short-term price movements or navigating complex market conditions, the Silver Bullet Indicator offers a robust framework to enhance your trading performance.
Ultimately, this tool is more than just an indicator; it is a strategic ally for traders who seek to decode the movements of smart money and capitalize on institutional strategies. With the Silver Bullet Indicator, traders can approach the market with greater confidence, precision, and profitability.
Bearish BreakerDescription:
The Bearish Breaker is designed to detect significant bearish candles that meet specific customizable conditions, allowing traders to easily identify potential sell signals or strong downtrends. This indicator highlights bearish candles based on size, close position within the candle's range, and other specific criteria, with options to plot Fibonacci levels, a stop loss line, and dollar loss estimation.
Key Features:
1. Customizable Candle Highlighting Conditions:
Highlights candles that are bearish and whose body is greater than a user-defined multiple of the average candle body size over a specified period.
2.Checks if the candle’s close is within a customizable percentage from the bottom of the candle’s range (default is 35%).
3. Ensures the close is lower than the lows of the previous two candles.
Visual Markings:
1. A plus sign appears below large bearish candles that meet the highlighting criteria.
2. Optionally plots a line at the low of the previous candle, labeled as "FVG" (Fair Value Gap).
3. Fibonacci Levels:
Plots 61.8% and 50% Fibonacci levels from the low to high of the highlighted candle.
4. Provides options to show/hide labels and adjust line colors.
5. Shaded Area:
Fills the area between the 50% and 61.8% levels with customizable color and transparency.
Stop Loss and Dollar Calculation:
1. Calculates a stop loss level, set a user-defined number of ticks above the high of the highlighted candle.
2. Displays a label with the potential dollar loss from the "FVG" to the stop loss line, using a specified dollar value per tick.
How To Use
1. Highlight Conditions: Adjust parameters like the average body length, threshold multiplier, and close percentage to fine-tune the bearish candle detection. typically I like to use the 4-6 body length with a 1.5 multiplier
2. Visual Elements: Toggle labels, colors, and transparency of Fibonacci and FVG lines, allowing you to customize the display for clarity.
3. Risk Management: Set the dollar value per tick and stop loss distance (in ticks) to display potential risk for your specific instrument , for example dollar per tick on NQ is $5 , ES is $12.50, CL is $10
4. Alerts:
An alert can be set to trigger each time a large bearish candle forms and meets all conditions, helping you stay notified of potential bearish momentum shifts.
5. Parameters:
Threshold Multiplier: Adjusts the size threshold for highlighting a bearish candle.
Close Percent in Range: Sets how close to the bottom of the candle’s range the close must be (0-100%). I like the candle to close in the lower 75 percent of the candle.
6. Stop Loss Ticks Above High: Controls how far above the high of the highlighted candle to place the stop loss.
7. Dollar Value per Tick: Calculates potential dollar loss between the FVG level and stop loss based on the asset’s tick value.
8. To trade this setup I like to wait for the first 1-2 candles after the highlighted breaker candle to pull back into the shaded area for a short position and target the low of the breaker candle or a 2-1 risk to reward.
Ideal For:
This indicator is ideal for traders looking to identify strong bearish momentum, manage risk visually, and use Fibonacci and fair value gaps on large bearish candles as potential areas for short entries with suggested stop loss areas and target profits.
Disclaimer: This indicator is for educational and informational purposes only and should not be used as a sole trading strategy. Always perform your own analysis before making trading decisions.