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

کثیر ٹائم فریم RSI-SRSI ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-18 16:13:50
ٹیگز:

img

جائزہ

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

حکمت عملی کا نام

کثیر ٹائم فریم RSI-SRSI ٹریڈنگ حکمت عملی

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

حکمت عملی RSI اقدار کی بنیاد پر زیادہ خریدنے اور زیادہ فروخت ہونے والی حالتوں کا جائزہ لیتی ہے۔ RSI 30 سے نیچے oversold سگنل سمجھا جاتا ہے اور RSI 70 سے اوپر overbought سگنل سمجھا جاتا ہے۔ اسٹوکاسٹک RSI اشارے RSI اقدار کی اتار چڑھاؤ کا مشاہدہ کرتا ہے۔ 5 سے نیچے اسٹوکاسٹک RSI oversold ہے اور 50 سے اوپر اسٹوکاسٹک RSI overbought ہے۔

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

خرید و فروخت کے سگنلز کو جعلی سگنلز سے بچنے کے لئے اصل ٹریڈنگ سگنل پیدا ہونے سے پہلے کئی ادوار (مثال کے طور پر 8 بار) کی تصدیق کی ضرورت ہے۔

فوائد

  • کلاسیکی تکنیکی تجزیہ کا طریقہ RSI کا استعمال کرتے ہوئے overbought / oversold کی سطح کی نشاندہی کرنے کے لئے
  • RSI کی تبدیلیوں کو پکڑنے کے لئے اسٹوکاسٹک RSI کو شامل کرتا ہے
  • جعلی سگنل کو فلٹر کرنے اور معیار کو بہتر بنانے کے لئے کثیر ٹائم فریم تکنیک کا استعمال کرتا ہے

خطرات اور حل

  • RSI جھوٹے سگنل پیدا کرنے کا شکار ہے
    • جعلی سگنل فلٹر کرنے کے لئے دیگر اشارے کو یکجا کریں
    • رجحان کی تصدیق کی تکنیکوں کا اطلاق کریں
  • غلط حد کی ترتیبات بہت زیادہ سگنل پیدا کر سکتے ہیں
    • بہترین مجموعہ تلاش کرنے کے لئے پیرامیٹرز کو بہتر بنائیں
  • سگنلز کی تصدیق کا وقت درکار ہے
    • بیلنس کی تصدیق کی مدت - غلط سگنل کو فلٹر کریں تاکہ مواقع ضائع نہ ہوں

بہتری کے شعبے

  • مضبوط سگنل کے لئے زیادہ اشارے کے مجموعے کی جانچ کریں
    • مثال کے طور پر MACD اشارے کو شامل کریں
  • بہترین پیرامیٹرز تلاش کرنے کے لئے مشین سیکھنے کے طریقوں کا استعمال کریں
    • مثال کے طور پر جینیاتی الگورتھم / خودکار اصلاح کے لئے ارتقائی الگورتھم
  • ایک ہی تجارت کے خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان کی حکمت عملی شامل کریں
    • جب قیمت سپورٹ لیول کو توڑتی ہے تو اسٹاپ نقصان مقرر کریں

نتیجہ

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


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI and Stochatic Strategy", overlay=true, use_bar_magnifier = false)


/////// Inputs ///////////////

// RSI and SRSI
rsiLength = input(14, title="RSI Length") 
stochLength = input(14, title="Stochastic Length")
kSmooth = input(3, title="K Smooth")
dSmooth = input(3, title="D Smooth")


//////// thresholds ///////////////
st_low = input(5, title="Low SRSI") // stochastic RSI low -- prepare to sell
st_hi = input(50, title="High SRSI") // stochastic RSI high -- prepare to buy
diff = input(5, title="difference") // minimum change in RSI
// inval_diff = input(12, title="difference") // invalidation difference: change in the oposite direction that invalidates rsi falling/rising
rsi_low = input(30, title="Low RSI") // RSI considered low
rsi_hi = input(60, title="High RSI") // RSI considered high
rsi_ht_hi = input(45, title="High higher time frame RSI") // RSI in higher time frame considered high


/// buy trigger duration 
tr_dur = input(8, title="Trigger duration")
low_dur = input(20, title="Monitoring last low")


///////////////// Higher time frame trend ///////////////////
// higher time frame resolution
res2 = input.timeframe("W", title="Higher time-frame")
// Input for the ticker symbol, default is an empty string
// For instance we could monitor BTC higher time frame trend
symbol = input("BTC_USDT:swap", "Input Ticker (leave empty for current)")

// Determine the symbol to use
inputSymbol = symbol == "" ? syminfo.tickerid : symbol
//////////////////////////////////////////////////////////

// Calculate RSI //
rsi = ta.rsi(close, rsiLength)

// Calculate Stochastic RSI //
rsiLowest = ta.lowest(rsi, stochLength)
rsiHighest = ta.highest(rsi, stochLength)
stochRsi = 100 * (rsi - rsiLowest) / (rsiHighest - rsiLowest)

// Apply smoothing
K = ta.sma(stochRsi, kSmooth)
D = ta.sma(K, dSmooth)

// Higher time Frame RSI
cl2 = request.security(inputSymbol, res2, close)
rsi2 = ta.rsi(cl2, 14)

// SRSI BUY/SELL signals 
sell_stoch = (ta.lowest(K, tr_dur) < st_low) or (ta.highest(rsi, tr_dur) < rsi_low)
buy_stoch = ((ta.lowest(K, tr_dur) > st_hi) or (ta.lowest(rsi, tr_dur) > rsi_hi)) and (rsi2 > rsi_ht_hi)

 // valitation / invalidation sell signal
ll = ta.barssince(not sell_stoch)+1
sell_validation = (ta.highest(rsi, ll)>rsi[ll]+diff and rsi < rsi[ll]) or (rsi < rsi[ll]-diff)

// valitation / invalidation buy signal
llb = ta.barssince(not buy_stoch)+1
buy_validation = (ta.lowest(rsi, llb)<rsi[llb]-diff and rsi > rsi[llb]) or (rsi > rsi_hi and rsi - rsi[tr_dur] > 0)

sell_signal = sell_stoch and sell_validation
buy_signal = buy_stoch and buy_validation 

// Define the start date for the strategy
startYear = input(2019, "Start Year")
startMonth = input(1, "Start Month")
startDay = input(1, "Start Day")

// Convert the start date to Unix time
startTime = timestamp(startYear, startMonth, startDay, 00, 00)

// Define the end date for the strategy
endYear = input(2030, "End Year")
endMonth = input(1, "End Month")
endDay = input(1, "End Day")

// Convert the end date to Unix time
endTime = timestamp(endYear, endMonth, endDay, 00, 00)


if true
    if buy_signal
        strategy.entry("buy", strategy.long, comment = "Buy")
    if sell_signal
        strategy.close("buy", "Sell")

مزید