RSI اشارے طویل اور مختصر علیحدگی تجارتی حکمت عملی


تخلیق کی تاریخ: 2024-02-26 13:49:25 آخر میں ترمیم کریں: 2024-02-26 13:49:25
کاپی: 0 کلکس کی تعداد: 680
1
پر توجہ دیں
1617
پیروکار

RSI اشارے طویل اور مختصر علیحدگی تجارتی حکمت عملی

جائزہ

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

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

یہ حکمت عملی بنیادی طور پر آر ایس آئی اشارے کو استعمال کرتی ہے جس میں قیمتوں اور آر ایس آئی کے مابین کثیر خلائی علیحدگی کی شناخت کی جاتی ہے۔

  1. آر ایس آئی اشارے پیرامیٹر 13 کا استعمال کرتے ہوئے ، اختتامی قیمت کے لئے ماخذ ڈیٹا
  2. 14 دن کا بائیں بازو کا دورانیہ اور 2 دن کا دائیں بازو کا دورانیہ جس میں کثیر سر علیحدگی کی وضاحت کی گئی ہے
  3. خالی سر علیحدگی کے لئے بائیں بازو کی 47 دن کی حد اور دائیں بازو کی 1 دن کی حد کی وضاحت
  4. جب قیمت کم کم ہوتی ہے لیکن RSI اشارے زیادہ کم ہوتا ہے تو ، کثیر سر علیحدگی کی شرائط کو پورا کرتے ہوئے ، کثیر سگنل پیدا ہوتا ہے
  5. جب قیمت ایک اعلی اونچائی کو چھوتی ہے لیکن RSI اشارے ایک کم اونچائی کو چھوتا ہے تو ، خالی سر علیحدگی کی شرائط کو پورا کرنے کے لئے ، ایک مختصر سگنل تیار کیا جاتا ہے

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

اسٹریٹجک فوائد

اس حکمت عملی کے اہم فوائد یہ ہیں:

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

خطرات اور حل

اس حکمت عملی میں کچھ خطرات بھی ہیں:

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

  2. طویل عرصے تک الگ تھلگ رہنے سے بھی خطرہ بڑھ جاتا ہے۔ اس کا حل یہ ہے کہ فلٹرنگ کی شرائط کے طور پر زیادہ طویل عرصے تک ڈیلی لائن یا سرکلر آر ایس آئی اشارے کو جوڑا جائے۔

  3. اس کے علاوہ ، اس میں کوئی فرق نہیں ہے کہ کسٹمر کی قیمتوں میں اضافہ ہوتا ہے یا کم ہوتا ہے۔ اس میں کوئی فرق نہیں ہے کہ کسٹمر کی قیمتوں میں اضافہ ہوتا ہے یا کم ہوتا ہے۔

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

اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:

  1. RSI پیرامیٹرز کو بہتر بنانے کے لئے بہترین پیرامیٹرز کا مجموعہ تلاش کریں

  2. دیگر تکنیکی اشارے جیسے MACD، KD وغیرہ کو آزمائیں تاکہ زیادہ خلائی علیحدگی کی شناخت کی جاسکے

  3. ہنگامہ خیز دور کے دوران غلط ٹرانزیکشنوں کی تعداد میں اضافے سے بچنے کے لئے مناسب فلٹرنگ شرائط شامل کریں

  4. RSI اشارے کے ساتھ زیادہ ٹائم پیکیجز کے ساتھ ، بہترین مجموعہ سگنل تلاش کریں

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 3h
basePeriod: 15m
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/
// © Nextep

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







// INPUT Settings --------------------------------------------------------------------------------------------------------------------------------------------------
len = input(title="RSI Period", minval=1, defval=13)
src = input(title="RSI Source", defval=close)





// defining the lookback range for shorts
lbRshort = input(title="Short Lookback Right", defval=1)
lbLshort = input(title="Short Lookback Left", defval=47)

// defining the lookback range for longs
lbRlong = input(title="Long Lookback Right", defval=2)
lbLlong = input(title="Long Lookback Left", defval=14)


rangeUpper = input(title="Max of Lookback Range", defval=400)
rangeLower = input(title="Min of Lookback Range", defval=1)

// take profit levels
takeProfitLongRSILevel = input(title="Take Profit at RSI Level", minval=0, defval=75)
takeProfitShortRSILevel = input(title="Take Profit for Short at RSI Level", minval=0, defval=25)




// Stop loss settings
longStopLossType = input("PERC", title="Long Stop Loss Type", options=['ATR','PERC', 'FIB', 'NONE'])
shortStopLossType = input("PERC", title="Short Stop Loss Type", options=['ATR','PERC', 'FIB', 'NONE'])
longStopLossValue = input(title="Long Stop Loss Value", defval=14, minval=0)
shortStopLossValue = input(title="Short Stop Loss Value", defval=5, minval=-10)








// PLOTTING THE CHARTS --------------------------------------------------------------------------------------------------------------------------------------------------
// Plotting the Divergence
plotBull = input(title="Plot Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
bearColor = color.orange
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)

// Adding the RSI oscillator
osc = rsi(src, len)
ma_len = 14 // Length for the moving average
rsi_ma = sma(osc, ma_len) // Calculate the moving average of RSI
plot(osc, title="RSI", linewidth=1, color=color.purple)
plot(rsi_ma, color=color.blue, title="RSI MA") // Plot the RSI MA

// Adding the lines of the RSI oscillator
plot(osc, title="RSI", linewidth=1, color=color.purple)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(75, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(25, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=color.purple, transp=80)


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







// RSI PIVOTS --------------------------------------------------------------------------------------------------------------------------------------------------
// Define a condition for RSI pivot low
isFirstPivotLowlong = not na(pivotlow(osc, lbLlong, lbRlong))
// Define a condition for RSI pivot high
isFirstPivotHighlong = not na(pivothigh(osc, lbLlong, lbRlong))
// Define a condition for the first RSI value
firstPivotRSIValuelong = isFirstPivotLowlong ? osc[lbRlong] : na
// Define a condition for the second RSI value
secondPivotRSIValuelong = isFirstPivotLowlong ? valuewhen(isFirstPivotLowlong, osc[lbRlong], 1) : na


// Define a condition for RSI pivot low
isFirstPivotLowshort = not na(pivotlow(osc, lbLshort, lbRshort))
// Define a condition for RSI pivot high
isFirstPivotHighshort = not na(pivothigh(osc, lbLshort, lbRshort))
// Define a condition for the first RSI value
firstPivotRSIValueshort = isFirstPivotLowshort ? osc[lbRshort] : na
// Define a condition for the second RSI value
secondPivotRSIValueshort = isFirstPivotLowshort ? valuewhen(isFirstPivotLowshort, osc[lbRshort], 1) : na

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









// ADDITIONAL ENTRY CRITERIA --------------------------------------------------------------------------------------------------------------------------------------------------
// RSI crosses RSI MA up by more than 2 points and subsequently down
rsiUpCross = crossover(osc, rsi_ma + 1)
rsiDownCross = crossunder(osc, rsi_ma - 1)

// Calculate the daily RSI
rsiDaily = security(syminfo.ticker, "D", rsi(src, 14))





// BULLISH CONDITIONS --------------------------------------------------------------------------------------------------------------------------------------------------

// LOWER LOW PRICE & HIGHER LOW OSC

// Price: Lower Low
priceLL = na(isFirstPivotLowlong[1]) ? false : (low[lbRlong] < valuewhen(isFirstPivotLowlong, low[lbRlong], 1))
// Osc: Higher Low
oscHL = na(isFirstPivotLowlong[1]) ? false : (osc[lbRlong] > valuewhen(isFirstPivotLowlong, osc[lbRlong], 1) and _inRange(isFirstPivotLowlong[1]))



// BULLISH PLOT
bullCond = plotBull and priceLL and oscHL and isFirstPivotLowlong
plot(
     isFirstPivotLowlong ? osc[lbRlong] : na,
     offset=-lbRlong,
     title="Regular Bullish",
     linewidth=2,
     color=(bullCond ? bullColor : noneColor),
     transp=0
     )

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









// BEARISH CONDITIONS --------------------------------------------------------------------------------------------------------------------------------------------------

// HIGHER HIGH PRICE & LOWER LOW OSC
// Osc: Lower High
oscLH = na(isFirstPivotHighshort[1]) ? false : (osc[lbRshort] < valuewhen(isFirstPivotHighshort, osc[lbRshort], 1) and _inRange(isFirstPivotHighshort[1]))
// Price: Higher High
priceHH = na(isFirstPivotHighshort[1]) ? false : (high[lbRshort] > valuewhen(isFirstPivotHighshort, high[lbRshort], 1))


// BEARISH PLOT
bearCond = plotBear and priceHH and oscLH and isFirstPivotHighshort

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

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




// ENTRY CONDITIONS --------------------------------------------------------------------------------------------------------------------------------------------------

longCondition = false
shortCondition = false

// Entry Conditions
longCondition := bullCond
shortCondition := bearCond

// Conditions to prevent entering trades based on daily RSI
longCondition := longCondition and rsiDaily >= 23
shortCondition := shortCondition and rsiDaily <= 80




// STOPLOSS CONDITIONS --------------------------------------------------------------------------------------------------------------------------------------------------
// Stoploss Conditions
long_sl_val = 
      longStopLossType == "ATR" ? longStopLossValue * atr(atrLength) 
      : longStopLossType == "PERC" ? close * longStopLossValue / 100 : 0.00
long_trailing_sl = 0.0
long_trailing_sl := strategy.position_size >= 1 ? max(low - long_sl_val, nz(long_trailing_sl[1])) : na

// Calculate Trailing Stop Loss for Short Entries
short_sl_val = 
      shortStopLossType == "ATR" ? 1 - shortStopLossValue * atr(atrLength) 
      : shortStopLossType == "PERC" ? close * (shortStopLossValue / 100) : 0.00 //PERC = shortstoplossvalue = -21300 * 5 / 100 = -1065
short_trailing_sl = 0.0
short_trailing_sl := strategy.position_size <= -1 ? max(high + short_sl_val, nz(short_trailing_sl[1])) : na






// RSI STOP CONDITION
 
rsiStopShort = (strategy.position_avg_price != 0.0 and close <= strategy.position_avg_price * 0.90) or (strategy.position_avg_price != 0.0 and rsi(src, 14) >= 75)
 
rsiStopLong = (strategy.position_avg_price != 0.0 and close >= strategy.position_avg_price * 1.10) or (strategy.position_avg_price != 0.0 and rsi(src, 14) <= 25)


// LONG CONDITIONS --------------------------------------------------------------------------------------------------------------------------------------------------
strategy.entry(id="RSIDivLELong", long=true, when=longCondition)

strategy.entry(id="RSIDivLEShort", long=false, when=shortCondition)







// Close Conditions
shortCloseCondition = bullCond // or cross(osc, takeProfitShortRSILevel)
strategy.close(id="RSIDivLEShort", comment="Close All="+tostring(-close + strategy.position_avg_price, "####.##"), when=abs(strategy.position_size) <= -1 and shortStopLossType == "NONE" and shortCloseCondition )
strategy.close(id="RSIDivLEShort", comment="TSL="+tostring(-close + strategy.position_avg_price, "####.##"), when=abs(strategy.position_size) >= -1 and ((shortStopLossType == "PERC" or shortStopLossType == "ATR") and cross(short_trailing_sl,high))) // or rsiStopShort)// or rsiStopShort)


longCloseCondition = bearCond
strategy.close(id="RSIDivLELong", comment="Close All="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size) >= 1 and longStopLossType == "NONE" and longCloseCondition)
strategy.close(id="RSIDivLELong", comment="TSL="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size) >= 1 and ((longStopLossType == "PERC" or longStopLossType == "ATR") and cross(long_trailing_sl,low)))  //or rsiStopLong