وسائل لوڈ ہو رہے ہیں... لوڈنگ...

آر ایس آئی متغیر حکمت عملی

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

img

جائزہ

یہ حکمت عملی ممکنہ تجارتی سگنل تلاش کرنے کے لئے RSI EMA لائنوں کے درمیان RSI اشارے اور کراس اوورز کا حساب کتاب کرکے طویل اور مختصر پوزیشنوں کا تعین کرتی ہے۔ یہ رجحان کی پیروی کرنے والی حکمت عملیوں سے تعلق رکھتی ہے۔

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

  1. 14 پیریڈ آر ایس آئی اشارے کا حساب لگائیں، آر ایس آئی 50 سے اوپر کا نشان خریدنے کا اشارہ ہے اور 50 سے نیچے کا نشان فروخت کا اشارہ ہے۔

  2. RSI کے 20 پیریڈ EMA اور 14 پیریڈ EMA کا حساب لگائیں، سست EMA کے اوپر تیز EMA کراسنگ خرید سگنل ہے اور نیچے کراسنگ فروخت سگنل ہے۔

  3. RSI اور قیمت کے درمیان اختلافات کا پتہ لگائیں:

  • باقاعدگی سے تیزی سے انحراف: قیمت نئی کم ہوتی ہے لیکن آر ایس آئی نہیں کرتا ، خریدنے کا اشارہ

  • خفیہ تیزی کا فرق: قیمت نئی اونچائی تک پہنچتی ہے لیکن آر ایس آئی نہیں پہنچتی ، خریدنے کا اشارہ

  • باقاعدگی سے bearish انحراف: قیمت نئی اعلی بناتا ہے لیکن RSI نہیں کرتا، سگنل فروخت

  • پوشیدہ bearish divergence: قیمت نئی کم کرتا ہے لیکن RSI نہیں کرتا، سگنل فروخت

  1. اسٹاپ نقصان کی حکمت عملی کو فعال کیا جاسکتا ہے، بشمول فیصد پر مبنی اور اے ٹی آر پر مبنی۔

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

  1. آر ایس آئی اشارے زیادہ خریدنے اور زیادہ فروخت کی صورتحال کا پتہ لگانے میں اچھے ہیں۔ ای ایم اے اعداد و شمار میں شور کو ہموار کرسکتے ہیں۔

  2. آر ایس آئی اور قیمت کے درمیان اختلافات ابتدائی الٹ سگنل فراہم کرسکتے ہیں۔

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

  4. سٹاپ نقصان کے طریقہ کار ایک ہی تجارت کے نقصان کو کنٹرول کرتے ہیں.

خطرے کا تجزیہ

  1. ایک رفتار کے اشارے کے طور پر، جب قیمت میں شدید اتار چڑھاؤ ہوتا ہے تو آر ایس آئی کم کارکردگی کا مظاہرہ کرسکتا ہے۔

  2. ای ایم اے میں وقت کی تاخیر ہوتی ہے اور وہ موڑ کے مقامات کو درست طریقے سے نہیں ڈھونڈ سکتے۔

  3. جب رجحان جاری رہتا ہے تو مختلف سگنل غلط سگنل پیدا کرسکتے ہیں۔

  4. غلط سٹاپ نقصان کی ترتیب غیر ضروری نقصان کا سبب بن سکتی ہے۔

  5. ڈراؤونگ بڑی ہوسکتی ہے، کافی سرمایہ کی ضرورت ہوتی ہے۔

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

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

  2. مجموعی اصلاح کے لیے ایم اے سی ڈی جیسے دیگر اشارے کے ساتھ ای ایم اے کی جگہ لینے پر غور کریں۔

  3. غلط اختلافات سے بچنے کے لئے تصدیق کے طریقہ کار شامل کریں ، مثال کے طور پر ایک دوسرے کے بعد سگنل کی ضرورت ہے۔

  4. منافع حاصل کرنے کی حکمت عملیوں کو شامل کریں تاکہ منافع میں مقفل ہوسکیں۔

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

خلاصہ

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


/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="RSI Divergence Indicator", overlay=false,pyramiding=2, default_qty_value=2,   default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)

len = input(title="RSI Period", minval=1, defval=14)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=3)
lbL = input(title="Pivot Lookback Left", defval=1)
takeProfitRSILevel = input(title="Take Profit at RSI Level", minval=70, defval=80)

rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)

sl_type = input("NONE", title="Trailing StopLoss Type", options=['ATR','PERC', 'NONE'])

stopLoss = input(title="Stop Loss%", defval=5, minval=1)

atrLength=input(14, title="ATR Length (for Trailing stop loss)")
atrMultiplier=input(3.5, title="ATR Multiplier (for Trailing stop loss)")


bearColor = color.red
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)

osc = rsi(src, len)

plot(osc, title="RSI", linewidth=2, color=color.white)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=color.gray, transp=90)

plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true

_inRange(cond) =>
    bars = barssince(cond == true)
    rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish

// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)

bullCond = plotBull and priceLL and oscHL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish",
	 linewidth=2,
	 color=(bullCond ? bullColor : noneColor),
	 transp=0
	 )


plotshape(
	 bullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish Label",
	 text=" Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bullish

// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)

hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish Label",
	 text=" H Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

longCondition=bullCond or hiddenBullCond
//? osc[lbR] : na  
//hiddenBullCond
strategy.entry(id="RSIDivLE", long=true,  when=longCondition)


//Trailing StopLoss
////// Calculate trailing SL
/////////////////////////////////////////////////////
sl_val = sl_type == "ATR"      ? stopLoss * atr(atrLength) : 
         sl_type == "PERC" ? close * stopLoss / 100 : 0.00

trailing_sl = 0.0
trailing_sl :=   strategy.position_size>=1 ?  max(low  - sl_val, nz(trailing_sl[1])) :  na

//draw initil stop loss
//plot(strategy.position_size>=1 ? trailing_sl : na, color = color.blue , style=plot.style_linebr,  linewidth = 2, title = "stop loss")
//plot(trailing_sl, title="ATR Trailing Stop Loss", style=plot.style_linebr, linewidth=1, color=color.purple, transp=30)
//Trailing StopLoss
////// Calculate trailing SL
/////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Regular Bearish

// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)

bearCond = plotBear and priceHH and oscLH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor),
	 transp=0
	 )

plotshape(
	 bearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish Label",
	 text=" Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bearish

// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish Label",
	 text=" H Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )
longCloseCondition=crossover(osc,takeProfitRSILevel) or bearCond
strategy.close(id="RSIDivLE", comment="Close All="+tostring(close - strategy.position_avg_price, "####.##"), when= abs(strategy.position_size)>=1  and  sl_type == "NONE" and longCloseCondition)

//close all on stop loss
strategy.close(id="RSIDivLE", comment="TSL="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and (sl_type == "PERC"   or sl_type == "ATR" ) and crossunder(close, trailing_sl)  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89

src1 = close, 
len6 = input(14, minval=1, title="RSI Length")
len7 = input(20, minval=1, title="EMA of RSI Length")
len8 = input(14,minval=1, title="Fast EMA")
up = rma(max(change(src1), 0), len6)
down = rma(-min(change(src1), 0), len6)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
emaRSI = ema(rsi,len7)
fastEmaRSI=ema(rsi,len8)

plot(emaRSI, title="EMA of RSI", linewidth=1, color=color.red)
plot(fastEmaRSI,title="Fast EMA of RSI", linewidth=1,color = color.lime)
band1 = hline(80, title="Upper Line", linewidth=1, color=color.red)
band0 = hline(20, title="Lower Line", linewidth=1, color=color.lime)
fill(band1, band0, color=color.purple)

مزید