
यह रणनीति QQE और RSI पर आधारित है, और RSI के चिकनी चलती औसत और गतिशील अस्थिरता की गणना करके बहु-अंतर सिग्नल क्षेत्र का निर्माण करती है। जब RSI संकेतकों का उछाल होता है, तो एक बहु-अंतर सिग्नल उत्पन्न होता है, और जब यह उछाल होता है, तो एक शून्य-अंतर सिग्नल उत्पन्न होता है। रणनीति का मुख्य विचार RSI संकेतकों की प्रवृत्ति विशेषताओं और QQE संकेतकों की अस्थिरता विशेषताओं का उपयोग करना है, जो बाजार के रुझान परिवर्तन और उतार-चढ़ाव के अवसरों को पकड़ता है।
रणनीति RSI और QQE संकेतकों के आधार पर एक बहु-हॉल सिग्नल का निर्माण करती है, जिसमें रुझान पकड़ने और उतार-चढ़ाव को पकड़ने की विशेषता होती है। रणनीति तर्क स्पष्ट है, पैरामीटर कम हैं, और आगे अनुकूलन और सुधार के लिए उपयुक्त हैं। लेकिन रणनीति में कुछ जोखिम भी हैं, जैसे कि वापसी नियंत्रण, पैरामीटर सेटिंग आदि को आगे सुधारने की आवश्यकता है। भविष्य में रणनीति की स्थिरता और लाभप्रदता को बढ़ाने के लिए रणनीति को स्टॉप, पैरामीटर अनुकूलन, सिग्नल समृद्धि और विभिन्न बाजार अनुकूलन आदि के रूप में अनुकूलित किया जा सकता है।
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=4
// modified by swigle
// thanks colinmck
strategy("QQE signals bot", overlay=true)
RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")
src = close
Wilders_Period = RSI_Period * 2 - 1
Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE
longband = 0.0
shortband = 0.0
trend = 0
DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband
// Find all the QQE Crosses
QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0
//Conditions
qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na
// Plotting
plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)
// trade
//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
if qqeShort > 0
strategy.close("buy long")
// strategy.exit("close_position", "buy long", loss=1000)
// strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)