
کیا آپ کو معلوم ہے؟ یہ “برن ڈاکو” حکمت عملی مارکیٹ میں قزاقوں کی طرح ہے! ارے، یہ وہ نہیں ہے جو کسی بھی وقت گولی مار دیتا ہے، لیکن یہ خاص طور پر برن کی حد کے ارد گرد “سرحد پار کرنے والوں” کو نشانہ بناتا ہے۔ جب قیمت ایک شرارتی بچے کی طرح برن کی حد کے “محفوظ علاقے” سے باہر نکل جاتی ہے، تو یہ حکمت عملی فوری طور پر ریبوٹ کے موقع پر قبضہ کرتی ہے!
اس حکمت عملی کا خلاصہ “ریورس سوچ” ہے:
یہاں سب سے زیادہ نمایاں ڈیزائن کیا ہے؟ درجہ بندی کی روک تھام! روایتی حکمت عملی کے برعکس، یہ حکمت عملی ایک ہوشیار تاجر کی طرح ہے:
یہ اس طرح کی ہے جیسے آپ کسی چیز کو بیچتے ہیں، پہلے آدھی قیمت پر بیچتے ہیں، اور پھر باقی کو بہتر قیمت پر بیچتے ہیں!
گڑھے کی ہدایت نامہ!
یاد رکھیں: یہ حکمت عملی زلزلے کی صورت حال کے لئے بہترین ہے ، اور ایک طرفہ رجحانات میں “جعلی توڑ” کے ساتھ محتاط رہیں!
اگر آپ “مستحکم جیت” کے خواہشمند ہیں تو ، یہ حکمت عملی آپ کے لئے بالکل موزوں ہے۔ یہ آپ کو راتوں رات امیر نہیں بنائے گا ، لیکن یہ آپ کو مارکیٹ میں اتار چڑھاؤ کے دوران مستحکم منافع کمانے میں مدد فراہم کرے گا۔
/*backtest
start: 2024-08-25 00:00:00
end: 2025-01-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Bollinger Bandit + TP Escalonado", overlay=true)
// Configuración básica
length = input.int(20, "Periodo", minval=1)
mult = input.float(1.0, "Multiplicador", minval=0.1, maxval=3.0)
source = input(close, "Fuente")
// Opción para cierre en media
close_on_ma = input.bool(true, "Cierre en Media Móvil")
// SL/TP CONFIGURABLE CON NIVELES FIJOS
use_sltp = input.bool(true, "Usar SL/TP Personalizado", group="Gestión de Riesgo")
sl_points = input.int(5, "Puntos para SL", minval=1, group="Gestión de Riesgo")
tp1_points = input.int(3, "Puntos para TP1", minval=1, group="Gestión de Riesgo")
tp2_points = input.int(5, "Puntos para TP2", minval=1, group="Gestión de Riesgo")
// MOSTRAR TEXTO DE PRECIO
show_price_text = input.bool(true, "Mostrar Precio SL/TP", group="Visualización")
// Cálculo de las Bandas de Bollinger
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
// Detección de cruces
longCondition = ta.crossover(close, lower)
shortCondition = ta.crossunder(close, upper)
// Cálculo de SL/TP con niveles FIJOS EXACTOS - CORREGIDO
var float last_sl_price = na
var float last_tp1_price = na
var float last_tp2_price = na
var int last_entry_bar = 0
var float last_entry_price = na
var bool last_is_long = false
if longCondition or shortCondition
last_entry_price := close
last_is_long := longCondition
if longCondition
// COMPRA: SL = entrada - 5 puntos, TP1 = entrada + 3 puntos, TP2 = entrada + 5 puntos
last_sl_price := last_entry_price - sl_points
last_tp1_price := last_entry_price + tp1_points
last_tp2_price := last_entry_price + tp2_points
else
// VENTA: SL = entrada + 5 puntos, TP1 = entrada - 3 puntos, TP2 = entrada - 5 puntos
last_sl_price := last_entry_price + sl_points
last_tp1_price := last_entry_price - tp1_points
last_tp2_price := last_entry_price - tp2_points
last_entry_bar := bar_index
// Entradas
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// DETECCIÓN DE CIERRES CON TEXTO PERSONALIZADO
var bool long_closed_by_sl = false
var bool long_closed_by_tp1 = false
var bool long_closed_by_tp2 = false
var bool short_closed_by_sl = false
var bool short_closed_by_tp1 = false
var bool short_closed_by_tp2 = false
// Para posiciones LARGAS
if (use_sltp and strategy.position_size > 0)
if low <= last_sl_price
strategy.close("Long", comment="LongSL")
long_closed_by_sl := true
else if high >= last_tp1_price and not long_closed_by_tp1
strategy.close("Long", qty_percent=50, comment="LongTP1")
long_closed_by_tp1 := true
else if high >= last_tp2_price and not long_closed_by_tp2
strategy.close("Long", comment="LongTP2")
long_closed_by_tp2 := true
else if (strategy.position_size > 0)
if (ta.crossunder(close, upper))
strategy.close("Long", comment="STOP")
if (close_on_ma and ta.crossunder(close, basis))
strategy.close("Long", comment="STOPMedia")
// Para posiciones CORTAS
if (use_sltp and strategy.position_size < 0)
if high >= last_sl_price
strategy.close("Short", comment="ShortSL")
short_closed_by_sl := true
else if low <= last_tp1_price and not short_closed_by_tp1
strategy.close("Short", qty_percent=50, comment="ShortTP1")
short_closed_by_tp1 := true
else if low <= last_tp2_price and not short_closed_by_tp2
strategy.close("Short", comment="ShortTP2")
short_closed_by_tp2 := true
else if (strategy.position_size < 0)
if (ta.crossover(close, lower))
strategy.close("Short", comment="STOP")
if (close_on_ma and ta.crossover(close, basis))
strategy.close("Short", comment="STOPMedia")
// Reset flags cuando no hay posición
if strategy.position_size == 0
long_closed_by_sl := false
long_closed_by_tp1 := false
long_closed_by_tp2 := false
short_closed_by_sl := false
short_closed_by_tp1 := false
short_closed_by_tp2 := false
// Visualización (manteniendo tus colores y estilo)
plot(basis, "Media", color=color.blue, linewidth=1)
plot(upper, "Banda Superior", color=color.orange, linewidth=2)
plot(lower, "Banda Inferior", color=color.green, linewidth=2)
// Señales de entrada
plotshape(longCondition, "↑ Compra", shape.triangleup, location.belowbar, color=color.green, size=size.tiny)
plotshape(shortCondition, "↓ Venta", shape.triangledown, location.abovebar, color=color.red, size=size.tiny)
// Relleno entre bandas (manteniendo tu estilo)
bgcolor = color.new(color.yellow,80)
fill(plot(upper), plot(lower), bgcolor)