بولنگر بینڈ ٹرینڈ چیسر

مصنف:چاؤ ژانگ، تاریخ: 2023-11-22 16:51:27
ٹیگز:

img

جائزہ

اس حکمت عملی کا خیال یہ ہے کہ رجحان اسٹاک (یا کسی بھی دوسرے رجحان مارکیٹ) پر کم خطرہ کی حکمت عملی ہے، جس کا مقصد کم سے کم کھپت حاصل کرنا ہے (مثال کے طور پر لکھنے کے وقت AAPL صرف ~ 1.36٪ کھپت تھی، FB ~ 1.93% کھپت اور SPY 0.80٪ کھپت تھی اور سب منافع بخش رہے تھے).

اصول

اس حکمت عملی میں 200 دن کی حرکت پذیر اوسط، کسٹم بولنگر بینڈ، 52 مدت کے وزن والے حرکت پذیر اوسط اور ADX طاقت کے ساتھ ایک TSI کا استعمال کیا گیا ہے۔

خریدنے کا اشارہ دیا جاتا ہے جب 200 سے زیادہ چلتی اوسط + 5 موم بتیاں اوپری کسٹم بولنگر + ایس ٹی آئی مثبت + اے ڈی ایکس 20 سے زیادہ ہے.

فوائد

اس حکمت عملی کے فوائد کم ڈراؤنڈ اور کم سے کم خطرہ ہیں۔ یہ کم خطرہ آپریشن کے ساتھ زیادہ تر رجحان اسٹاک کے لئے موزوں ہے۔ ٹیسٹ کے اعداد و شمار کے مطابق ، واپسی زیادہ ہے اور ٹیسٹ کی مدت کے دوران اے اے پی ایل کا زیادہ سے زیادہ ڈراؤنڈ صرف 1.36٪ اور ایف بی کا زیادہ سے زیادہ ڈراؤنڈ 1.93% تھا۔

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

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

خطرے کا تجزیہ

اس حکمت عملی کے سامنے دو اہم خطرات ہیں:

  1. بلیک سوان ایونٹ کا خطرہ۔ کچھ بلیک سوان ایونٹس اسٹاک کو تیزی سے گرنے کا سبب بن سکتے ہیں اور نقصان کو روک نہیں سکتے ہیں۔

  2. رجحان ختم ہونے کا خطرہ۔ جب اسٹاک رجحان سے استحکام کی طرف بڑھتا ہے تو ، زیادہ سے زیادہ کھپت ہوسکتی ہے۔

خطرہ 1 کے لئے ، زیادہ سخت اسٹاپ نقصان کے طریقہ کار طے کیے جاسکتے ہیں ، یا دستی مداخلت رکنے کا استعمال کیا جاسکتا ہے۔ خطرہ 2 کے ل more ، رجحان کے اختتام کا پتہ لگانے کے لئے مزید فیصلے کرنے والے عوامل کو جوڑا جاسکتا ہے ، جیسے تجارتی حجم کے اشارے میں اضافہ۔

اصلاح کی ہدایات

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بھی بہتر بنایا جاسکتا ہے:

  1. سٹاپ نقصان کی حکمت عملی شامل کریں تاکہ خطرات کو بہتر طور پر کنٹرول کرنے کے لئے زیادہ درست سٹاپ نقصان کے مقامات مقرر کیے جائیں.

  2. مختلف پیرامیٹر مجموعوں کے استحکام کو جانچنے کے لئے چلتی اوسط پیرامیٹرز کو بہتر بنائیں۔

  3. رجحانات کے آغاز اور اختتام کو زیادہ درست طریقے سے طے کرنے کے لئے رفتار کے اشارے میں اضافہ کریں.

  4. طویل مدتی آپریشن کے مطابق طویل مدتی سائیکل پیرامیٹرز کی جانچ کریں.

نتیجہ

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
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/
// © gary_trades
//This script has been designed to be used on trending stocks as a low risk trade with minimal drawdown, utilising 200 Moving Average, Custom Bollinger Band, TSI with weighted moving average and ADX strength. 
//Backtest dates are set to 2010 - 2020 and all other filters (moving average, ADX, TSI , Bollinger Band) are not locked so they can be user amended if desired. 
//Buy signal is given when trading above the 200 moving average + 5 candles have closed above the upper custom Bollinger + the TSI is positive + ADX is above 20.
//As back testing proved that this traded better only in tends then some Sell/Short conditions have been removed and this focueses on  Long orders.
//Only requires 2 additional lines of code to add shorting orders.
//Close for either long or short trades is signaled once the TSI crosses in the opposite direction indicating change in trend strength or if stop loss is trggered.
//Further optimization could be achieved by adding a stop loss.
//NOTE: This only shows the lower indicators however for visualization you can use my script "CUSTOM BOLLINGER WITH SMA", which is the upper indicators in this stratergy.
//------------
//@version=4
strategy(shorttitle="Trend Chaser", title="ADX_TSI_Bol Band Trend Chaser", overlay=false, pyramiding=0,
 currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10,
 initial_capital=10000, commission_value=0.1)
//------------
//Custom Bollinger Band
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(0.382, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=color.gray, offset = offset, display=display.none)
p1 = plot(upper, "Upper", color=color.gray, offset = offset, display=display.none)
p2 = plot(lower, "Lower", color=color.gray, offset = offset, display=display.none)
fill(p1, p2, title = "Background", color=#787B86, transp=85)
//------------
//Moving Average
MAlen = input(200, minval=1, title="Length")
MAout = sma(src, MAlen)
plot(MAout, color=color.black, title="MA", offset=offset, linewidth=2, display=display.none)
//------------
//True Strength WMA
TSlong = input(title="Long Length", type=input.integer, defval=25)
TSshort = input(title="Short Length", type=input.integer, defval=13)
TSsignal = input(title="Signal Length", type=input.integer, defval=52)
double_smooth(src, TSlong, TSshort) =>
    fist_smooth = wma(src, TSlong)
    wma(fist_smooth, TSshort)
price = close     
pc = change(price)
double_smoothed_pc = double_smooth(pc, TSlong, TSshort)
double_smoothed_abs_pc = double_smooth(abs(pc), TSlong, TSshort)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2 = wma(tsi_value, TSsignal)
plot(tsi_value, color=color.blue)
plot(wma(tsi_value, TSsignal), color=color.red)
hline(0, title="Zero")
//------------
//ADX
adxlen = input(13, title="ADX Smoothing")
dilen = input(13, title="DI Length")
keyLevel = input(20, title="Keylevel for ADX")
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)

plot(sig, color=color.black, title="ADX", style=plot.style_histogram, transp=40)
plot(20, color=color.green, title="ADX Keyline", linewidth=1)
//------------
//Identify Triggers

//Back Test Range
start = timestamp("America/New_York", 2010, 1, 1, 9,30)
end = timestamp("America/New_York", 2030, 7, 1, 0, 0)

//Custom Bollinger Band
Long1 = close > upper[5] and close[5] > upper [6]
Short1 = close < lower[5] and close[5] < lower [6]

//Moving Average
Long2 = close >= MAout[1]
Short2 = close <= MAout[1]

//True Strength WMA
Long3 = tsi_value > tsi2  
Short3 = tsi_value < tsi2

//ADX
ADXkey = adx(dilen, adxlen) > 20 and adx(dilen, adxlen) < 100

//Buy
Buy = Long1 and Long2 and Long3 and ADXkey
CloseLong = crossunder(tsi_value,tsi2)

//Short
Sell = Short1 and Short2 and Short3 and ADXkey
CloseShort = crossover(tsi_value,tsi2)
//------------
//Entry and Exit
if time >= start and time <= end
    strategy.entry("Long", true, when = Buy)

strategy.close("Long", when = CloseLong)


مزید