اے ٹی آر اور آر ایس آئی کے رجحان کو اپنانے کے بعد ٹریلنگ سٹاپ نقصان کے ساتھ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-23 11:31:14
ٹیگز:

img

جائزہ

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

اصول

  1. اے ٹی آر کا حساب لگائیں۔ اے ٹی آر مارکیٹ میں اتار چڑھاؤ اور خطرے کی سطح کو ظاہر کرتا ہے۔ یہ حکمت عملی موافقت پذیر رسک کنٹرول کے لئے متحرک اسٹاپ نقصان کا حساب لگانے کے لئے اے ٹی آر کا استعمال کرتی ہے۔

  2. RSI کا حساب لگائیں۔ RSI overbought / oversold کی حیثیت کا فیصلہ کرتا ہے۔ جب RSI 50 سے اوپر ہوتا ہے تو یہ تیزی کی پیش گوئی کا اشارہ کرتا ہے ، جب 50 سے نیچے ہوتا ہے تو bearish کا اشارہ کرتا ہے۔ یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے RSI کا استعمال کرتی ہے۔

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

  4. خاص طور پر، طویل جب RSI 50 سے اوپر جاتا ہے، مختصر جب 50 سے نیچے جاتا ہے. پھر رجحان کے ساتھ منافع میں مقفل کرنے کے لئے ATR پر مبنی نقصان کو روکنے کے لئے.

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

  1. اے ٹی آر ایڈجسٹ سٹاپ نقصان مارکیٹ کی اتار چڑھاؤ پر غور کرتا ہے، بہت وسیع یا بہت تنگ سٹاپ نقصان سے بچتا ہے.

  2. RSI قابل اعتماد رجحان کی نشاندہی کرتا ہے، whipsaws سے بچتا ہے.

  3. ٹریلنگ سٹاپ نقصان منافع ہدف کو بڑھانے کے لئے رجحان کی پٹریوں.

خطرے کا تجزیہ

  1. اے ٹی آر اور آر ایس آئی پیرامیٹرز کو بیک ٹیسٹ کی اصلاح کی ضرورت ہے، ورنہ حکمت عملی کی کارکردگی پر اثر انداز ہوتا ہے.

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

  3. حکمت عملی کی کارکردگی مختلف مصنوعات کے لئے پیرامیٹر ٹیوننگ پر بہت زیادہ انحصار کرتی ہے۔

بہتری

  1. موافقت پذیر پیرامیٹر کی اصلاح کے لئے مشین لرننگ الگورتھم پر غور کریں۔

  2. مارکیٹ کی حالت کی بنیاد پر متحرک ایڈجسٹمنٹ کے لئے پوزیشن سائزنگ کنٹرول شامل کریں، سٹاپ نقصان کے دخول کے امکان کو کم کرنے کے لئے.

  3. مزید رجحان کے اشارے شامل کریں تاکہ رجحان کے اہم موڑ کے مقامات کو یاد کرنے سے بچیں۔

نتیجہ

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-19 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="UTBot Strategy", overlay = true )
   
// CREDITS to @HPotter for the orginal code. 
// CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code -
// CREDITS to @TradersAITradingPlans for making this Strategy. 
// Strategy fixed with Time period by Kirk65.
// I am using this UT bot with 2 hours time frame with god resultss. Alert with "Once per bar" and stoploss 1.5%. If Alerts triggered and price goes against Alert. Stoploss will catch it. Wait until next Alert.
// While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above, witch is a lot less risky, but less profitable. 

testStartYear = input(2019, "BACKTEST START YEAR", minval = 1980, maxval = 2222) 
testStartMonth = input(01, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222)
testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12)
testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31)
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod = true

SOURCE = input(hlc3)
RSILENGTH = input(14, title = "RSI LENGTH")
RSICENTERLINE = input(52, title = "RSI CENTER LINE")
MACDFASTLENGTH = input(7, title = "MACD FAST LENGTH")
MACDSLOWLENGTH = input(12, title = "MACD SLOW LENGTH")
MACDSIGNALSMOOTHING = input(12, title = "MACD SIGNAL SMOOTHING")
a = input(10, title = "Key Vaule. 'This changes the sensitivity'") 
SmoothK = input(3)
SmoothD = input(3)
LengthRSI = input(14)
LengthStoch = input(14)
RSISource = input(close) 
c = input(10, title="ATR Period")
xATR = atr(c)
nLoss = a * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
     iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
     iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
     iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? red: pos == 1 ? green : blue 
ema= ema(close,1)
above = crossover(ema,xATRTrailingStop )
below = crossover(xATRTrailingStop,ema)
buy = close > xATRTrailingStop and above 
sell = close < xATRTrailingStop and below
barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= green,textcolor = white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= red,textcolor = white, transp = 0, size = size.tiny)
barcolor(barbuy? green:na)
barcolor(barsell? red:na)
//alertcondition(buy, title='Buy', message='Buy')
//alertcondition(sell, title='Sell', message='Sell')

if (buy)
    strategy.entry("UTBotBuy",strategy.long, when=testPeriod)
if (sell)
    strategy.entry("UTBotSell",strategy.short, when=testPeriod)

مزید