دوہری بریک آؤٹ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-03 17:16:02
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

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

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

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

فوائد کا تجزیہ

  • بولنگر بینڈ رجحان کے مواقع کو پکڑنے کے لئے واضح بریک آؤٹ سگنل پیش کرتے ہیں
  • ADX فلٹر واضح رجحانات کے بغیر متنازعہ مارکیٹوں کی تجارت سے بچتا ہے
  • اسٹاپ نقصان مؤثر طریقے سے ایک ہی تجارت کے نقصان کو کنٹرول کرتا ہے
  • زیادہ تر منافع میں منافع لینے کے پیچھے لاک

خطرے کا تجزیہ

  • حجم کو مدنظر رکھے بغیر بریک آؤٹ غلط ہوسکتے ہیں
  • ADX فلٹر بھی رجحانات کے مواقع سے محروم ہوسکتا ہے
  • سٹاپ نقصان اور منافع لینے کے لئے بہت قریب ہو سکتا ہے باہر روکا جائے
  • پیرامیٹرز کی ناقص ایڈجسٹمنٹ حکمت عملی کی کارکردگی کو متاثر کرتی ہے

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

بہتری کی ہدایات

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

نتیجہ

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


/*backtest
start: 2023-10-26 00:00:00
end: 2023-11-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/
// © tweakerID

// This strategy uses Bollinger Bands to buy when the price 
// crosses over the lower band and sell when it crosses down
// the upper band. It only takes trades when the ADX is 
// below a certain level, and exits all trades when it's above it.

//@version=4
strategy("BB + ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value = 0.04, initial_capital=100)

//Inputs
i_reverse=input(false, title="Reverse Trades")
i_ADXClose=input(true, title="ADX Close")
i_SL=input(false, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.5, title="SL Expander")
i_TPExpander=input(defval=0, step=.5, title="TP Expander")

//ADX Calculations
adxlen = input(14, title="ADX Smoothing")
dilen = input(20, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
adxlevel=input(30, step=5)

//BB Calculations
BBCALC=input(false, title="-----------BB Inputs-----------")

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
MAlen=input(defval=9)
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Entry Logic
BUY = crossover(source, lower) and sig < adxlevel
SELL = crossunder(source, upper) and sig < adxlevel

//SL & TP Calculations
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0))*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0))*i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))+((valuewhen(bought, atr(14), 0))*i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0)-strategy.position_avg_price)-((valuewhen(bought, atr(14), 0))*i_TPExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
TP= islong ? lTP : isshort ? sTP : na

//Entries
strategy.entry("long", long=i_reverse?false:true, when=BUY)
strategy.entry("short", long=i_reverse?true:false, when=SELL)

//EXITS
if i_ADXClose
    strategy.close_all(when=sig > adxlevel)
if i_SL
    strategy.exit("longexit", "long", stop=SL, limit=TP)
    strategy.exit("shortexit", "short", stop=SL, limit=TP)

//Plots	
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")
plot(upper)
plot(lower)




مزید