بولبن بینڈ + RSI + ADX + ATR ریورسل ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2024-02-21 14:13:47 آخر میں ترمیم کریں: 2024-02-21 14:13:47
کاپی: 0 کلکس کی تعداد: 979
1
پر توجہ دیں
1617
پیروکار

بولبن بینڈ + RSI + ADX + ATR ریورسل ٹریڈنگ حکمت عملی

جائزہ

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

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

  1. بیس سائیکل بورن بینڈ کا استعمال کرتے ہوئے ، جب قیمت اوپر اور نیچے کی طرف جاتی ہے تو ، خرید و فروخت کے سگنل کا انتظار کریں جو الٹ K لائن کی تشکیل کرتا ہے۔

  2. آر ایس آئی اشارے کا فیصلہ کرتا ہے کہ آیا مارکیٹ زلزلہ زون میں ہے یا نہیں۔ آر ایس آئی 60 سے زیادہ بولی کی حد ہے اور 40 سے کم بولی کی حد ہے۔

  3. ADX 20 سے نیچے کا مطلب ہے کہ مارکیٹ ہلچل میں ہے ، 20 سے اوپر کا مطلب ہے کہ مارکیٹ کا رجحان ہے۔

  4. اے ٹی آر سٹاپ نقصان کی ترتیب اور ٹریکنگ سٹاپ نقصان۔

  5. ای ایم اے یونیفارم فلٹرنگ سگنل کے ساتھ مل کر.

حکمت عملی کا تجزیہ

  1. متعدد اشارے ایک دوسرے کے ساتھ مل کر اعلی امکانات کے تجارتی سگنل بناتے ہیں۔

  2. مختلف مارکیٹ کے حالات کو ایڈجسٹ کرنے کے لئے ترتیب کے پیرامیٹرز.

  3. نقصانات کو روکنے کے قواعد سخت ہیں اور خطرات کو مؤثر طریقے سے کنٹرول کیا جاتا ہے۔

حکمت عملی کے خطرے کا تجزیہ

  1. پیرامیٹرز کی غلط ترتیب کے نتیجے میں زیادہ بار بار تجارت ہوسکتی ہے۔

  2. اس کے نتیجے میں، آپ کو اس کے بارے میں مزید معلومات حاصل کرنے کی ضرورت ہے.

  3. اسٹاپ لاس ٹریکنگ بعض مارکیٹوں میں غیر موثر ہو سکتی ہے۔

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

  1. زیادہ سے زیادہ اشارے کے مجموعے کی جانچ پڑتال کریں، زیادہ مناسب پیرامیٹرز کی ترتیب تلاش کریں.

  2. ٹرانسمیشن کی ناکامیوں کے بعد دوبارہ شروع کرنے کے مواقع کی بروقت نشاندہی کریں۔

  3. مختلف نقصانات کو روکنے کے طریقوں کو آزمائیں تاکہ نقصانات کو زیادہ ذہین بنایا جاسکے۔

خلاصہ کریں۔

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

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

//@version=4
strategy(shorttitle="BB + EMA + RSI + ADX + ATR Reversal", title="Bollinger Bands Reversal", overlay=true)

// Inputs
ema1Input       = input(title = "EMA1 Input",                          defval = 200,   minval = 10,    maxval = 400,   step = 10,                      group = "Indicators")
ema2Input       = input(title = "EMA2 Input",                          defval = 100,   minval = 10,    maxval = 400,   step = 10,                      group = "Indicators")
length          = input(title = "BB Length",                           defval = 20,    minval=1,                                                       group = "Bollinger Band Indicator")
bbsrc           = input(title = "BB Source",                            defval = close,                                                                 group = "Bollinger Band Indicator")
mult            = input(title = "BB Standard Deviation",            type = input.float,     defval = 2.0,   minval=0.001,   maxval=50,                                      group = "Bollinger Band Indicator")
offset          = input(title = "BB Offset",                           defval = 0,     minval = -500,  maxval = 500,                                   group = "Bollinger Band Indicator")  
rsilen          = input(title = "RSI Length",                          defval = 14,    minval=1,                                                       group = "RSI Indicator")
rsisrc          = input(title = "RSI Source",                           defval = close,                                                                 group = "RSI Indicator")
rsiMaxEntry     = input(title = "RSI Maximum Value",                   defval = 60,    minval = 50,    maxval = 100,                                   group = "RSI Indicator")
rsiMinEntry     = input(title = "RSI Minimum Value",                   defval = 40,    minval = 0,     maxval = 50,                                    group = "RSI Indicator")
rsiMaxExit      = input(title = "RSI Max Exit Value",                  defval = 70,    minval = 50,    maxval = 100,                                   group = "RSI Indicator")
rsiMinExit      = input(title = "RSI Min Exit Value",                  defval = 30,    minval = 0,     maxval = 50,                                    group = "RSI Indicator")
atrLength       = input(title = "ATR Length",                          defval = 14,    minval = 1,                                                     group = "ATR Indicator")
useStructure    = input(title = "Use Trailing Stop?",               type = input.bool,      defval = true,                                                                  group = "ATR Indicator")
atrlookback     = input(title = "ATR Lookback Period",                 defval = 7,     minval = 1,                                                     group = "ATR Indicator")
atrMultiplier   = input(title = "ATR Multiplier",                   type = input.float,     defval = 1.0,   minval = 0.1,                                                   group = "ATR Indicator")
sigMaxValue     = input(title = "ADX Max Value",                    type = input.float,     defval = 20.0,  minval = 0,     maxval = 100,   step = 0.1,                     group = "ADX Indicator")
adxlen          = input(title = "ADX Smoothing",                       defval = 14,                                                                    group = "ADX Indicator")
dilen           = input(title = "DI Length",                           defval = 14,                                                                    group = "ADX Indicator")

// Date input
fromMonth       = input(defval = 1,    title = "From Month",           minval = 1,     maxval = 12,    group = "Backtest Date Range")
fromDay         = input(defval = 1,    title = "From Day",             minval = 1,     maxval = 31,    group = "Backtest Date Range")
fromYear        = input(defval = 2000, title = "From Year",            minval = 1970,                  group = "Backtest Date Range")
thruMonth       = input(defval = 1,    title = "Thru Month",           minval = 1,     maxval = 12,    group = "Backtest Date Range")
thruDay         = input(defval = 1,    title = "Thru Day",             minval = 1,     maxval = 31,    group = "Backtest Date Range")
thruYear        = input(defval = 2099, title = "Thru Year",            minval = 1970,                  group = "Backtest Date Range")
inDataRange     = true

// Built in Bollinger Band
basis           = sma(bbsrc, length)
dev             = mult * stdev(bbsrc, length)
upper           = basis + dev
lower           = basis - dev
// Built in RSI
up              = rma(max(change(rsisrc), 0), rsilen)
down            = rma(-min(change(rsisrc), 0), rsilen)
rsi             = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// Built in 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)

// Custom variables
ema1 = ema(close, ema1Input)
ema2 = ema(close, ema2Input)
atr = atr(atrLength)

// Entry and exit signals
CrossLongEntry  = (close <= lower or close[1] <= lower[1]) and close > open and close[1] < open[1] and close > ema1 and close > ema2 and strategy.position_size == 0 and inDataRange and rsi > rsiMinEntry and rsi < rsiMaxEntry and sig < sigMaxValue
CrossShortEntry = (close >= upper or close[1] >= upper[1]) and close < open and close[1] > open[1] and close < ema1 and close < ema2 and strategy.position_size == 0 and inDataRange and rsi > rsiMinEntry and rsi < rsiMaxEntry and sig < sigMaxValue

CrossLongExit   = (close >= upper or close[1] >= upper[1]) and close < open and close[1] > open[1] and strategy.position_size > 0 and inDataRange or rsi < rsiMinExit or rsi > rsiMaxExit
CrossShortExit  = (close <= lower or close[1] <= lower[1]) and close > open and close[1] < open[1] and strategy.position_size < 0 and inDataRange or rsi < rsiMinExit or rsi > rsiMaxExit

// Determining the stop loss based on ATR
StopLossLong    = (useStructure ? lowest(low, atrlookback) : close) - atr * atrMultiplier
StopLossShort   = (useStructure ? highest(high, atrlookback) : close) + atr * atrMultiplier

// Custom variables used to store the stoploss value
var StopLong    = 0.0
var StopShort   = 0.0
// Telling my script to store the stoploss value in the corresponding variables
if CrossLongEntry
    StopLong := StopLossLong
if CrossShortEntry
    StopShort := StopLossShort

// Strategy
strategy.entry("Entry Long", strategy.long, when = CrossLongEntry, comment = "Entry Long")
strategy.close("Entry Long", when = CrossLongExit or close < StopLong, comment = "Long Exit")

strategy.entry("Entry Short", strategy.short, when = CrossShortEntry, comment = "Entry Short")
strategy.close("Entry Short", when = CrossShortExit or close > StopShort, comment = "Short Exit")

// Plots the Bollinger Band
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)

// Use this if you want to see the stoploss visualised, be aware though plotting these can be confusing
// plot(StopLong)
// plot(StopShort)