यह रणनीति रिलेटिव स्ट्रेंथ इंडेक्स (आरएसआई) पर आधारित एक बहु-स्तरीय संकेतक ओवरलैपिंग ट्रेडिंग प्रणाली है। एक विशिष्ट ट्रेडिंग विंडो के भीतर संचालित, यह आरएसआई के ओवरबॉट और ओवरसोल्ड संकेतों के माध्यम से ट्रेडिंग अवसरों की पहचान करता है, जो एक गतिशील स्थिति समायोजन तंत्र के साथ संयुक्त है जो प्रतिकूल बाजार आंदोलनों के दौरान एक स्केलेड एंट्री दृष्टिकोण को नियोजित करता है। रणनीति औसत प्रवेश मूल्य लक्ष्यों के आधार पर लाभ लेने को लागू करती है।
यह रणनीति निम्नलिखित मुख्य घटकों पर आधारित है: 1. आरएसआई की गणना के लिए स्रोत डेटा के रूप में समापन मूल्य के साथ मानक 14 अवधियों का उपयोग किया जाता है 2. व्यापार खिड़की 2-4 घंटे के बीच नियंत्रित है, बाजार की विशेषताओं के आधार पर समायोज्य है 3. आरएसआई पर आधारित प्रवेश संकेत 30 (अतिविक्री) से नीचे और 70 (अतिविक्री) से ऊपर के स्तर 4. स्थिति निर्माण में प्रारंभिक स्थिति और गतिशील समायोजन स्तर शामिल हैं 5. स्केलिंग तंत्र तब सक्रिय होता है जब कीमत 1 अंक प्रतिकूल रूप से आगे बढ़ती है 6. लाभ लेने की दर औसत प्रवेश मूल्य से 1.5 अंकों पर निर्धारित की जाती है
रणनीति आरएसआई संकेतकों और स्केलेड एंट्री तंत्र के संयोजन के माध्यम से एक अपेक्षाकृत पूर्ण ट्रेडिंग प्रणाली का गठन करती है। इसके मुख्य फायदे इसके बहु-स्तरीय सिग्नल फ़िल्टरिंग तंत्र और लचीले स्थिति प्रबंधन दृष्टिकोण में निहित हैं, जबकि प्रवृत्ति बाजार जोखिम और पैरामीटर अनुकूलन मुद्दों पर ध्यान देने की आवश्यकता है। रणनीति के समग्र प्रदर्शन को प्रवृत्ति फिल्टर जोड़ने और स्टॉप लॉस तंत्र को अनुकूलित करने जैसे संवर्द्धन के माध्यम से और बेहतर बनाया जा सकता है।
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-08 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("TonyM RSI", overlay=true) // Input Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") startHour = input.int(2, "Start Hour", minval=0, maxval=23, group="Trading Window") endHour = input.int(4, "End Hour", minval=0, maxval=23, group="Trading Window") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // Time Filter inTradingWindow = (hour >= startHour and hour < endHour) // Strategy Settings buyLevel = 30 sellLevel = 70 scaleDistance = 1.0 // Distance in points to add to the position takeProfitPoints = 1.5 // Profit target from average price initialQty = 1 // Initial trade size scalingQty = 1 // Additional trade size for scaling // Trade Logic if inTradingWindow // Entry Logic if rsi <= buyLevel and strategy.position_size == 0 strategy.entry("Buy", strategy.long, qty=initialQty) if rsi >= sellLevel and strategy.position_size == 0 strategy.entry("Sell", strategy.short, qty=initialQty) // Scaling Logic if strategy.position_size > 0 and close <= strategy.position_avg_price - scaleDistance strategy.entry("Scale Buy", strategy.long, qty=scalingQty) if strategy.position_size < 0 and close >= strategy.position_avg_price + scaleDistance strategy.entry("Scale Sell", strategy.short, qty=scalingQty) // Exit Logic (based on average price) if strategy.position_size > 0 strategy.exit("Take Profit Long", "Buy", limit=strategy.position_avg_price + takeProfitPoints) if strategy.position_size < 0 strategy.exit("Take Profit Short", "Sell", limit=strategy.position_avg_price - takeProfitPoints) // Plot RSI plot(rsi, "RSI", color=color.blue, linewidth=1) rsiUpperBand = hline(70, "RSI Upper Band", color=color.red) rsiLowerBand = hline(30, "RSI Lower Band", color=color.green) fill(rsiUpperBand, rsiLowerBand, color=color.new(color.gray, 90))