بوہر بینڈ اے ٹی آر ٹریلنگ اسٹاپ لاس سٹریٹیجی


تخلیق کی تاریخ: 2024-01-03 11:20:06 آخر میں ترمیم کریں: 2024-01-03 11:20:06
کاپی: 1 کلکس کی تعداد: 976
1
پر توجہ دیں
1621
پیروکار

بوہر بینڈ اے ٹی آر ٹریلنگ اسٹاپ لاس سٹریٹیجی

جائزہ

اس حکمت عملی میں بولڈ بینڈ اشارے اور اوسط حقیقی طول موج ((ATR) اشارے کا استعمال کیا گیا ہے ، جس میں ٹریول اسٹاپ کی خصوصیت والی ایک بریک ٹریڈنگ حکمت عملی تشکیل دی گئی ہے۔ جب قیمت بولڈ بینڈ کے ذریعے مخصوص معیاری فرق سے گزرتی ہے تو ، اس کے بعد ٹریڈنگ سگنل جاری کیا جاتا ہے۔ اس کے علاوہ ، اے ٹی آر اشارے کا استعمال کرتے ہوئے ، نقصان کی شرح کو کنٹرول کرنے کے لئے اسٹاپ نقصان کی سطح اور اسٹاپ آؤٹ لیٹ کا حساب کتاب کیا جاتا ہے۔ اس کے علاوہ ، حکمت عملی میں وقت کی فلٹرنگ اور پیرامیٹرز کی اصلاح جیسے افعال بھی ہیں۔

حکمت عملی کا اصول

پہلا مرحلہ ، درمیانی ، اوپری اور نچلی لائنوں کا حساب لگائیں۔ درمیانی لائن قیمت کی ایک سادہ حرکت پذیر اوسط SMA ہے ، اور اوپری اور نچلی لائن قیمت کے معیاری فرق کے پورے گنا ہیں۔ جب قیمت نیچے کی لائن سے اوپر کی طرف بڑھتی ہے تو ، زیادہ کام کریں اور جب قیمت اوپر کی لائن سے نیچے کی طرف بڑھتی ہے تو ، خالی کریں۔

دوسرا مرحلہ ، اے ٹی آر اشارے کا حساب لگائیں۔ اے ٹی آر اشارے قیمت کی اوسط اتار چڑھاؤ کی عکاسی کرتے ہیں۔ اے ٹی آر کی قیمت کے مطابق لمبی پوزیشن کی روک تھام اور مختصر پوزیشن کی روک تھام کی حد طے کریں۔ اس کے ساتھ ہی ، اے ٹی آر کی قیمت کے مطابق اسٹاپ پوزیشن طے کریں ، منافع اور نقصان کی شرح کو کنٹرول کریں۔

تیسرا ، ٹائم فلٹر کا استعمال کریں ، صرف ایک مخصوص وقت کے دوران تجارت کریں ، اور اہم خبروں کے واقعات میں شدید اتار چڑھاؤ سے بچیں۔

چوتھا مرحلہ ، ٹریلنگ اسٹاپ میکانزم۔ تازہ ترین اے ٹی آر پوزیشن کے مطابق ، اسٹاپ نقصان کو حقیقی وقت میں ایڈجسٹ کریں ، مزید منافع کو لاک کریں۔

طاقت کا تجزیہ

  1. بول بینڈ اشارے خود قیمتوں کے مرکز کی عکاسی کرتے ہیں ، جو کہ ایک متحرک اوسط سے کہیں زیادہ موثر ہیں۔

  2. اے ٹی آر اسٹاپ نقصان ہر ایک منافع اور نقصان کا تناسب کنٹرول کرتا ہے ، جو خطرے کو مؤثر طریقے سے کنٹرول کرتا ہے۔

  3. ٹریلنگ اسٹاپ خود بخود مارکیٹ میں اتار چڑھاو کے مطابق ایڈجسٹ ہوتا ہے ، جس سے زیادہ منافع لاک ہوتا ہے۔

  4. پالیسی پیرامیٹرز میں امیر، اپنی مرضی کے مطابق ذاتی نوعیت کا مجموعہ.

خطرے کا تجزیہ

  1. بڑے پیمانے پر جھٹکے کی ایڈجسٹمنٹ کے دوران ، چھوٹے نقصانات کا سامنا کرنا پڑتا ہے۔

  2. ان کا کہنا تھا کہ ‘یہ ایک بہت بڑا قدم ہے’۔

  3. رات کے وقت اور اہم خبروں کے دوران تجارت کرنا خطرناک ہے ، اس سے بچنے کے لئے محتاط رہیں

ردعمل:

  1. خطرے کے انتظام کے اصولوں پر سختی سے عمل کریں اور ایک نقصان پر قابو پالیں۔
  2. اس کے علاوہ ، اس نے اپنی زندگی میں بہت ساری کامیابیاں حاصل کیں۔
  3. ٹائم فلٹرز کا استعمال کرتے ہوئے اعلی خطرے کے اوقات سے بچیں

اصلاح کی سمت

  1. مختلف پیرامیٹرز کے مجموعے کو بہتر بنانے کے لئے ترتیب کی جانچ
  2. OBV جیسے گرمی کے اشارے میں اضافہ کریں
  3. مشین لرننگ ماڈیول کو بہتر بنانا

خلاصہ کریں۔

اس حکمت عملی میں مرکزی رجحانات اور اس سے تجاوز کرنے کی سمت کا تعین کرنے کے لئے بولڈ بینڈ اشارے کا استعمال کیا گیا ہے۔ اے ٹی آر اشارے اسٹاپ اسٹاپ نقصان کو یقینی بنانے کے لئے منافع کی شرح کا حساب لگاتا ہے ، اور منافع کو روکنے کے لئے اس کی پیروی کی جاتی ہے۔ اس حکمت عملی کا فائدہ یہ ہے کہ یہ انتہائی مرضی کے مطابق ، خطرے پر قابو پانے والا ہے ، جو مختصر لائن کے لئے موزوں ہے۔ Intraday Trading۔ پیرامیٹرز کی اصلاح اور مشین لرننگ حکمت عملی کی کامیابی اور منافع بخش صلاحیت کو مزید بڑھا سکتی ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sadeq_haddadi

//@version=5

strategy('Bollinger Bands + ATR / trail- V2', overlay=true ) // Interactive Brokers rate)



//date and time
startDate   = input(title="Start Date", defval=timestamp("01 Aug 2023 00:00 +0000"), tooltip="Date & time to begin analysis",group = 'Time Filter')
endDate     = input(title="End Date", defval=timestamp("1 Jan 2099 00:00 +0000"), tooltip="Date & time to stop analysis")
timeSession = input(title="Time Session To Analyze", defval="0300-1700", tooltip="Time session to analyze")
inSession(sess) => true

// indicators 

length = input.int(20, minval=1,group = 'Bollinger Band')
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult1 = input.float(2.0, minval=0.001, maxval=50, title="StdDev1")
mult2 = input.float(3.0, minval=0.001, maxval=50, title="StdDev2")

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)
dev1 = mult1 * ta.stdev(src, length)
dev2 = mult2 * ta.stdev(src, length)
upper1 = basis + dev1
lower1 = basis - dev1
upper2 = basis + dev2
lower2 = basis - dev2
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#2962FF, offset = offset,linewidth=2)
p1 = plot(upper1, "Upper", color=color.new(color.white,50), offset = offset,linewidth=2)
p2 = plot(lower1, "Lower", color=color.new(color.white,50), offset = offset,linewidth=2)
p3 = plot(upper2, "Upper", color=color.new(color.white,80), offset = offset,linewidth=1)
p4 = plot(lower2, "Lower", color=color.new(color.white,80), offset = offset,linewidth=1)

fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
fill(p3, p4, title = "Background", color=color.rgb(33, 150, 243, 95))

show_crosses = input(false, "Show Cross the Bands?")

plotshape(show_crosses and ta.crossover(close, upper2)  ? src : na, "S", style = shape.triangledown, location =location.abovebar, color = color.yellow, size = size.tiny)
plotshape(show_crosses and ta.crossunder(low, lower2) ? src : na ,"L", style = shape.triangleup, location =  location.belowbar, color = color.purple, size = size.tiny)

second_entry = input(true, "Show second deviation entry point?")

//atr

length_ATR = input.int(title="Length", defval=5, minval=1,group = 'ATR')
smoothing = input.string(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
m = input.float(1, "Multiplier")
src1 = input(high)
src2 = input(low)
pline = input.bool(title = 'show ATR lines ?', defval=false)



ma_function(source, length_ATR) =>
	if smoothing == "RMA"
		ta.rma(source, length_ATR)
	else
		if smoothing == "SMA"
			ta.sma(source, length_ATR)
		else
			if smoothing == "EMA"
				ta.ema(source, length_ATR)
			else
				ta.wma(source, length_ATR)
				
a = ma_function(ta.tr(true), length_ATR) * m
x = ma_function(ta.tr(true), length_ATR) * m + src1
x2 = src2 - ma_function(ta.tr(true), length_ATR) * m

PP1 = plot(pline ? x :na , title = "ATR Short Stop Loss", color= color.new(color.red,20) )
PP2 = plot(pline ? x2:na , title = "ATR Long Stop Loss",  color=color.new(color.green,20) )

Tp_to_Sl = input.float(1.5, "TP/SL")
candle_size =  input.float(10, "candle/pip")
distance_source =  input.float(1.5, "distance to midline/pip")
//strategy

buyCondition = low[2] < lower1 and  ta.crossover(close[1], lower1)  and strategy.position_size == 0 and (close[1] - open[1]) < candle_size * 0.0001 and close > open and ( basis - close) > distance_source * 0.0001

sellCondition = high[2] > upper1 and ta.crossunder(close[1], upper1)  and strategy.position_size == 0 and (open[1] - close[1]) < candle_size * 0.0001 and close < open  and (close - basis) > distance_source * 0.0001
//
buyCondition2 = low[2] < lower2 and  ta.crossover(close[1], lower2)  and (close[1] - open[1]) < candle_size * 0.0001 and close > open and ( basis - close) > distance_source * 0.0001
sellCondition2 = high[2] > upper2 and ta.crossunder(close[1], upper2)   and (open[1] - close[1]) < candle_size * 0.0001 and close < open  and (close - basis) > distance_source * 0.0001

plotshape(second_entry and  sellCondition2 ? src : na, "S", style = shape.triangledown, location =location.abovebar, color = color.rgb(241, 153, 177), size = size.tiny)
plotshape(second_entry and buyCondition2 ? src : na ,"L", style = shape.triangleup, location =  location.belowbar, color = color.rgb(177, 230, 168), size = size.tiny)
//
since_buy  =ta.barssince(buyCondition)
since_sell =ta.barssince(sellCondition)
entry_price = ta.valuewhen(buyCondition or sellCondition, src, 0)

sl_long = ta.valuewhen(buyCondition, x2[1], 0)
sl_short = ta.valuewhen(sellCondition, x[1], 0)
buyprofit = entry_price + (Tp_to_Sl*( entry_price - sl_long))
sellprofit= entry_price + (Tp_to_Sl*( entry_price - sl_short))

//alert_massage = "new strategy position is {{strategy.position_size}}"
//prof = ta.crossover(high,upper1)
//buyexit=ta.valuewhen(prof,upper1,0)

if buyCondition and inSession(timeSession)

    strategy.entry( id = "long", direction = strategy.long , alert_message='Open Long Position' )

if sellCondition and inSession(timeSession)
   
    strategy.entry(id= "short", direction = strategy.short, alert_message='Open Short Position')

//trail-stop loss
use_trailing = input.bool(title = 'use trailing stop loss?', defval=true)
pricestop_long=0.00
pricestop_short=100000.00
if (strategy.position_size > 0)
   
    if use_trailing == false
        pricestop_long := sl_long
    else
        pricestop_long := math.max (x2, pricestop_long[1]) //trail - long

if (strategy.position_size < 0)
   
    if use_trailing == false
        pricestop_short := sl_short
    else
        pricestop_short := math.min (x, pricestop_short[1])  // trail - short 

if strategy.position_size > 0 
   
    strategy.exit(id = 'close', limit =  buyprofit , stop = pricestop_long  )

if strategy.position_size < 0 

    strategy.exit(id = 'close', limit = sellprofit  , stop = pricestop_short  )

alertcondition(buyCondition or sellCondition, 'Enter_position')