یہ حکمت عملی ممکنہ تجارتی سگنل تلاش کرنے کے لئے RSI EMA لائنوں کے درمیان RSI اشارے اور کراس اوورز کا حساب کتاب کرکے طویل اور مختصر پوزیشنوں کا تعین کرتی ہے۔ یہ رجحان کی پیروی کرنے والی حکمت عملیوں سے تعلق رکھتی ہے۔
14 پیریڈ آر ایس آئی اشارے کا حساب لگائیں، آر ایس آئی 50 سے اوپر کا نشان خریدنے کا اشارہ ہے اور 50 سے نیچے کا نشان فروخت کا اشارہ ہے۔
RSI کے 20 پیریڈ EMA اور 14 پیریڈ EMA کا حساب لگائیں، سست EMA کے اوپر تیز EMA کراسنگ خرید سگنل ہے اور نیچے کراسنگ فروخت سگنل ہے۔
RSI اور قیمت کے درمیان اختلافات کا پتہ لگائیں:
باقاعدگی سے تیزی سے انحراف: قیمت نئی کم ہوتی ہے لیکن آر ایس آئی نہیں کرتا ، خریدنے کا اشارہ
خفیہ تیزی کا فرق: قیمت نئی اونچائی تک پہنچتی ہے لیکن آر ایس آئی نہیں پہنچتی ، خریدنے کا اشارہ
باقاعدگی سے bearish انحراف: قیمت نئی اعلی بناتا ہے لیکن RSI نہیں کرتا، سگنل فروخت
پوشیدہ bearish divergence: قیمت نئی کم کرتا ہے لیکن RSI نہیں کرتا، سگنل فروخت
آر ایس آئی اشارے زیادہ خریدنے اور زیادہ فروخت کی صورتحال کا پتہ لگانے میں اچھے ہیں۔ ای ایم اے اعداد و شمار میں شور کو ہموار کرسکتے ہیں۔
آر ایس آئی اور قیمت کے درمیان اختلافات ابتدائی الٹ سگنل فراہم کرسکتے ہیں۔
دو اشارے کے اشاروں کو ملا کر ایک دوسرے کی توثیق کی جاسکتی ہے اور حکمت عملی کے استحکام کو بہتر بنایا جاسکتا ہے۔
سٹاپ نقصان کے طریقہ کار ایک ہی تجارت کے نقصان کو کنٹرول کرتے ہیں.
ایک رفتار کے اشارے کے طور پر، جب قیمت میں شدید اتار چڑھاؤ ہوتا ہے تو آر ایس آئی کم کارکردگی کا مظاہرہ کرسکتا ہے۔
ای ایم اے میں وقت کی تاخیر ہوتی ہے اور وہ موڑ کے مقامات کو درست طریقے سے نہیں ڈھونڈ سکتے۔
جب رجحان جاری رہتا ہے تو مختلف سگنل غلط سگنل پیدا کرسکتے ہیں۔
غلط سٹاپ نقصان کی ترتیب غیر ضروری نقصان کا سبب بن سکتی ہے۔
ڈراؤونگ بڑی ہوسکتی ہے، کافی سرمایہ کی ضرورت ہوتی ہے۔
RSI اور EMA کے حساب کے لئے مختلف پیرامیٹرز کا تجربہ کریں تاکہ بہترین مجموعے مل سکیں۔
مجموعی اصلاح کے لیے ایم اے سی ڈی جیسے دیگر اشارے کے ساتھ ای ایم اے کی جگہ لینے پر غور کریں۔
غلط اختلافات سے بچنے کے لئے تصدیق کے طریقہ کار شامل کریں ، مثال کے طور پر ایک دوسرے کے بعد سگنل کی ضرورت ہے۔
منافع حاصل کرنے کی حکمت عملیوں کو شامل کریں تاکہ منافع میں مقفل ہوسکیں۔
اس حکمت عملی کے رجحان کے فیصلے کے ساتھ مل کر انٹری کے لئے موم بتی کے پیٹرن جیسے قلیل مدتی سگنل شامل کریں.
اس حکمت عملی میں آر ایس آئی کے زیادہ خرید / زیادہ فروخت کا پتہ لگانے ، ای ایم اے کے ساتھ رجحان کی پیروی کرنے ، اور متغیرات کی الٹ پیش گوئی کو منظم رجحان ٹریکنگ سسٹم میں شامل کیا گیا ہے۔ پیرامیٹر ٹوننگ اور مجموعی اصلاح کے ساتھ ، اچھے نتائج حاصل کیے جاسکتے ہیں۔ لیکن رجحان کے جھٹکے اور جھوٹے سگنلز جیسے خطرات سے بچنا چاہئے۔ مناسب رقم کے انتظام کے ساتھ ، یہ حکمت عملی درمیانے اور طویل مدتی میں مستحکم اضافی منافع پیدا کرسکتی ہے۔
/*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)