
اس حکمت عملی میں آر ایس آئی اشارے کو متحرک اوسط ((ما) کے ساتھ جوڑ کر ٹریڈنگ سگنل تیار کیے جاتے ہیں۔ آر ایس آئی کا استعمال اس بات کا تعین کرنے کے لئے کیا جاتا ہے کہ آیا مارکیٹ زیادہ خرید یا زیادہ فروخت ہوئی ہے اور ایم اے کا استعمال قیمت کے رجحان کا تعین کرنے کے لئے کیا جاتا ہے۔ آر ایس آئی خریدنے کا اشارہ پیدا کرتا ہے جب آر ایس آئی زیادہ خرید اور قیمت ایم اے سے زیادہ ہے۔ جب آر ایس آئی اوور سیل یا ایم اے ڈیڈ فورک پیدا کرتا ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔ اس کے علاوہ ، حکمت عملی میں بے ترتیب آر ایس آئی اشارے ((StochRSI) کو بطور معاون فیصلہ متعارف کرایا گیا ہے ، جب اسٹوچ آر ایس آئی نے اشارہ پیدا کیا تو اس کو چارٹ پر نشان زد کیا جائے گا۔
یہ حکمت عملی آر ایس آئی اور ایم اے کے دو کلاسیکی اشارے کو جوڑ کر ، رجحان کی صورتحال اور اوور بیئر اوور سیل وقت کو پکڑنے کے قابل ہے ، اور اسٹوک آر ایس آئی اشارے کو معاون فیصلے کے طور پر متعارف کرایا گیا ہے۔ مجموعی طور پر ، یہ حکمت عملی آسان اور واضح ہے۔ تاہم ، اس حکمت عملی میں کچھ خامیاں بھی ہیں ، جیسے خطرے سے متعلق کنٹرول کے اقدامات کی کمی ، سگنل کی درستگی کو بہتر بنانا ہے۔ مستقبل میں ، اس حکمت عملی کو مزید اشارے متعارف کرانے ، سگنل کے قواعد کو بہتر بنانے اور خطرے سے متعلق ماڈیول میں شامل کرنے سے بہتر بنایا جاسکتا ہے ، تاکہ زیادہ مستحکم منافع حاصل کیا جاسکے۔
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Customizable MA and StochRSI Alert", overlay=true)
// กำหนดค่า RSI สำหรับการเปิดสัญญาณซื้อและขาย
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
// เลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
maType = input.string("EMA", title="MA Type", options=["EMA", "SMA", "HMA", "WMA"])
// กำหนดค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShortLength = input(12, title="MA Short Length")
maLongLength = input(26, title="MA Long Length")
// เลือกการแสดงผลของเส้นค่าเฉลี่ยเคลื่อนที่
showShortMA = input(true, title="Show Short Moving Average")
showLongMA = input(true, title="Show Long Moving Average")
// ฟังก์ชันสำหรับเลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
f_ma(src, length, type) =>
switch type
"SMA" => ta.sma(src, length)
"EMA" => ta.ema(src, length)
"HMA" => ta.hma(src, length)
"WMA" => ta.wma(src, length)
// คำนวณค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShort = showShortMA ? f_ma(close, maShortLength, maType) : na
maLong = showLongMA ? f_ma(close, maLongLength, maType) : na
// คำนวณค่า RSI
rsiValue = ta.rsi(close, 14)
// สร้างสัญญาณซื้อและขาย
buySignal = (rsiValue > rsiOverbought and ((showShortMA and showLongMA and close > maShort and maShort > maLong) or (showShortMA and not showLongMA and close > maShort) or (showLongMA and not showShortMA and close > maLong)))
sellSignal = (showShortMA and showLongMA and ta.crossover(maLong, maShort)) or (showShortMA and not showLongMA and ta.crossover(maShort, close)) or (showLongMA and not showShortMA and ta.crossover(maLong, close))
// แสดงค่าเส้นค่าเฉลี่ยเคลื่อนที่บนกราฟ
plot(maShort, color=color.red, title="MA Short")
plot(maLong, color=color.green, title="MA Long")
// คำนวณค่า Stochastic RSI
smoothK = 3
smoothD = 3
RSIlen = 14
STOlen = 14
SRsrc = close
OSlevel = 30
OBlevel = 70
rsi1 = ta.rsi(SRsrc, RSIlen)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, STOlen), smoothK)
d = ta.sma(k, smoothD)
stochRSIOverbought = OBlevel
stochRSIOversold = OSlevel
stochRSIBuyAlert = ta.crossover(k, stochRSIOversold)
stochRSISellAlert = ta.crossunder(k, stochRSIOverbought)
// สร้างคำสั่งซื้อและขายเมื่อมีสัญญาณจาก RSI และ MA เท่านั้น
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.close("Buy")
// แสดงสัญญาณเตือนจาก Stochastic RSI บนกราฟ
plotshape(series=stochRSIBuyAlert, location=location.belowbar, color=color.green, style=shape.labelup, title="StochRSI Buy Alert")
plotshape(series=stochRSISellAlert, location=location.abovebar, color=color.red, style=shape.labeldown, title="StochRSI Sell Alert")
// แสดงสัญญาณซื้อและขายจาก RSI และ MA บนกราฟ
plotshape(series=buySignal, location=location.top, color=color.green, style=shape.triangleup, title="RSI>70")
plotshape(series=sellSignal, location=location.top, color=color.red, style=shape.triangledown, title="MA crossoverDown")