
اس حکمت عملی کا استعمال کرتے ہوئے Brin کی پٹی کے اوپر اور نیچے ریل، متحرک سٹاپ کے لئے. قیمتوں کے Brin کی پٹی کے اوپر ریل توڑ جب خالی کرو, نیچے ریل توڑ جب زیادہ کرو, اور متحرک سٹاپ قائم, قیمتوں کے آپریشن کو ٹریک.
اس حکمت عملی کا مرکز برن بینڈ کے اوپر اور نیچے کی سڑکوں پر ہے۔ برن بینڈ کا مرکزی سڑکا n دن کی متحرک اوسط ہے اور اوپری سڑکا مرکزی سڑکا + k ہے۔*n دن معیاری خرابی ، نیچے کا ریل وسط ریل-k ہے*n دن کا معیاری فرق۔ جب قیمت نیچے کی طرف سے اوپر کی طرف اچھالتی ہے تو ، زیادہ کام کریں۔ جب قیمت اوپر کی طرف سے نیچے کی طرف گرتی ہے تو ، خالی ہوجائیں۔ اس کے ساتھ ہی ، حکمت عملی کو روکنے کی پوزیشنیں مرتب کریں ، قیمت کے عمل کے دوران ، اسٹاپ نقصان کی پوزیشنوں کو متحرک طور پر ایڈجسٹ کریں ، اور احتیاط سے خطرے پر قابو پانے کے لئے اسٹاپ پوزیشنیں مرتب کریں۔
یہ حکمت عملی ، جس میں برن بینڈ کی رجعت کی خاصیت کا استعمال کیا جاتا ہے ، متحرک سلائڈ اسٹاپ نقصان کے ساتھ مل کر ، خطرے پر قابو پانے کے پیش نظر وسط اور لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="BB Strategy", title="Bollinger Bands Strategy", overlay=true)
length = input.int(20, minval=1, group = "Bollinger Bands")
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Bollinger Bands")
src = input(close, title="Source", group = "Bollinger Bands")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev", group = "Bollinger Bands")
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500, group = "Bollinger Bands")
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
lo = input.bool(true, "Long", group = "Strategy")
sh = input.bool(true, "Short", group = "Strategy")
x = input.float(3.0, "Target Multiplier (X)", group = "Strategy", minval = 1.0, step = 0.1)
token = input.string(defval = "", title = "Token", group = "AUTOMATION")
Buy_CE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(1) + '"}'
Buy_PE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(2) + '"}'
Exit_CE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(-1) + '"}'
Exit_PE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(-2) + '"}'
Exit_PE_CE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(2.5) + '"}'
Exit_CE_PE = '{"auth-token":"' + token + '","key":"Value1","value":"' + str.tostring(1.5) + '"}'
long = high < lower
short = low > upper
var sl_b = 0.0
var tar_b = 0.0
var sl_s = 0.0
var tar_s = 0.0
var static_sl = 0.0
entry = strategy.opentrades.entry_price(strategy.opentrades - 1)
if long and lo and strategy.position_size == 0
strategy.entry("Long", strategy.long, alert_message = Buy_CE, stop = high)
strategy.exit("LX", "Long", profit = (math.abs(high - low) * x)/syminfo.mintick, stop = low, alert_message = Exit_CE)
sl_b := low
tar_b := high + (math.abs(high - low) * x)
static_sl := math.abs(low - high)
if short and sh and strategy.position_size == 0
strategy.entry("Short", strategy.short, alert_message = Buy_PE, stop = low)
strategy.exit("SX", "Short", profit = (math.abs(high - low) * x)/syminfo.mintick, stop = high, alert_message = Exit_PE)
sl_s := high
tar_s := low - (math.abs(high - low) * x)
static_sl := math.abs(high - low)
// if long and strategy.position_size < 0
// strategy.entry("Long", strategy.long, alert_message = Exit_PE_CE, stop = high)
// strategy.exit("LX", "Long", profit = (math.abs(high - low) * x)/syminfo.mintick, stop = low, alert_message = Exit_CE)
// sl_b := low
// tar_b := high + (math.abs(high - low) * x)
// if short and strategy.position_size > 0
// strategy.entry("Short", strategy.short, alert_message = Exit_CE_PE, stop = low)
// strategy.exit("SX", "Short", profit = (math.abs(high - low) * x)/syminfo.mintick, stop = high, alert_message = Exit_PE)
// sl_s := math.max(high[1], high)
// tar_s := low - (math.abs(high - low) * x)
if ta.change(dayofmonth) or (long[1] and not long[2])
strategy.cancel("Long")
if ta.change(dayofmonth) or (short[1] and not short[2])
strategy.cancel("Short")
var count = 1
if strategy.position_size != 0
if strategy.position_size > 0
if close > (entry + (static_sl * count))
strategy.exit("LX", "Long", limit = tar_b, stop = sl_b, alert_message = Exit_CE)
sl_b := entry + (static_sl * (count - 1))
count += 1
else
if close < (entry - (static_sl * count))
strategy.exit("SX", "Short", limit = tar_s, stop = sl_s, alert_message = Exit_PE)
sl_s := entry - (static_sl * (count - 1))
count += 1
// label.new(bar_index, high, str.tostring(static_sl))
if strategy.position_size == 0
count := 1
plot(strategy.position_size > 0 ? sl_b : na, "", color.red, style = plot.style_linebr)
plot(strategy.position_size < 0 ? sl_s : na, "", color.red, style = plot.style_linebr)
plot(strategy.position_size > 0 ? tar_b : na, "", color.green, style = plot.style_linebr)
plot(strategy.position_size < 0 ? tar_s : na, "", color.green, style = plot.style_linebr)