यह रणनीति QQE संकेतक और RSI संकेतक पर आधारित है। यह लंबे-लघु संकेत अंतराल का निर्माण करने के लिए RSI संकेतक के चिकनी चलती औसत और गतिशील दोलन रेंज की गणना करता है। जब RSI संकेतक ऊपरी रेल को तोड़ता है, तो यह एक लंबा संकेत उत्पन्न करता है, और जब यह निचले रेल को तोड़ता है, तो यह एक छोटा संकेत उत्पन्न करता है। रणनीति का मुख्य विचार बाजार के रुझानों और अस्थिरता के अवसरों में परिवर्तन को पकड़ने के लिए 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)