यह रणनीति आरएसआई संकेतक और औसत प्रतिगमन सिद्धांतों पर आधारित एक मात्रात्मक ट्रेडिंग प्रणाली है। यह मूल्य सीमा विश्लेषण और समापन मूल्य स्थिति के साथ संयुक्त ओवरबॉट और ओवरसोल्ड स्थितियों का पता लगाकर बाजार प्रतिगमन के अवसरों की पहचान करता है। मूल अवधारणा चरम बाजार स्थितियों के बाद औसत प्रतिगमन के अवसरों को पकड़ना है, सख्त प्रवेश मानदंडों और गतिशील स्टॉप-लॉस तंत्र के माध्यम से जोखिम का प्रबंधन करना है।
यह रणनीति ट्रेडिंग सिग्नल निर्धारित करने के लिए कई फ़िल्टरिंग तंत्रों का उपयोग करती हैः सबसे पहले, कीमत को 10-अवधि के निचले स्तर तक पहुंचना चाहिए, जो एक ओवरसोल्ड बाजार की स्थिति को इंगित करता है; दूसरा, दिन की कीमत सीमा पिछले 10 ट्रेडिंग दिनों में सबसे बड़ी होनी चाहिए, जो बाजार में अस्थिरता को बढ़ाती है; अंत में, यह यह जांचकर संभावित उलट सिग्नल की पुष्टि करता है कि क्या समापन मूल्य दिन की सीमा के ऊपरी क्वार्टिल में है। प्रवेश ब्रेकआउट पुष्टि के माध्यम से निष्पादित किया जाता है, यदि शर्तों को पूरा करने के बाद 2 दिनों के भीतर कीमत पिछले उच्च से ऊपर टूट जाती है। लाभ की रक्षा के लिए स्टॉप-लॉस एक ट्रैलिंग तंत्र के माध्यम से लागू किया जाता है।
यह स्पष्ट तर्क के साथ एक अच्छी तरह से संरचित औसत प्रतिगमन रणनीति है। कई शर्त फ़िल्टरिंग और गतिशील स्टॉप-लॉस प्रबंधन के माध्यम से, रणनीति प्रभावी रूप से जोखिम को नियंत्रित करते हुए बाजार के ओवरसोल्ड रिबाउंड अवसरों को पकड़ती है। हालांकि इसकी कुछ सीमाएं हैं, लेकिन उचित अनुकूलन और परिष्करण के माध्यम से समग्र प्रदर्शन में सुधार किया जा सकता है। निवेशकों को लाइव ट्रेडिंग में रणनीति लागू करते समय विशिष्ट बाजार विशेषताओं और उनके जोखिम सहिष्णुता के आधार पर मापदंडों को समायोजित करने की सलाह दी जाती है।
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Larry Conners SMTP Strategy", overlay=true, margin_long=100, margin_short=100) // --- Inputs --- // Corrected the input type declaration by removing 'type=' tickSize = input.float(0.01, title="Tick Size (e.g., 1/8 for stocks)") // --- Calculate conditions --- // 1. Today the market must make a 10-period low low10 = ta.lowest(low, 10) is10PeriodLow = low == low10 // 2. Today's range must be the largest of the past 10 bars rangeToday = high - low maxRange10 = ta.highest(high - low, 10) isLargestRange = rangeToday == maxRange10 // 3. Today's close must be in the top 25 percent of today's range rangePercent = (close - low) / rangeToday isCloseInTop25 = rangePercent >= 0.75 // Combine all buy conditions buyCondition = is10PeriodLow and isLargestRange and isCloseInTop25 // --- Buy Entry (on the next day) --- var float buyPrice = na var bool orderPending = false var float stopLoss = na // Initialize stopLoss at the top level to avoid 'Undeclared identifier' errors if (buyCondition and strategy.position_size == 0) buyPrice := high + tickSize stopLoss := low orderPending := true // Condition to place buy order the next day or the day after if orderPending and ta.barssince(buyCondition) <= 2 strategy.entry("Buy", strategy.long, stop=buyPrice) orderPending := false // --- Stop-Loss and Trailing Stop --- if (strategy.position_size > 0) stopLoss := math.max(stopLoss, low) // Move stop to higher lows (manual trailing) strategy.exit("Exit", from_entry="Buy", stop=stopLoss) // --- Plotting --- // Highlight buy conditions bgcolor(buyCondition ? color.new(color.green, 50) : na) //plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy Setup") // Plot Stop-Loss level for visualization //plot(strategy.position_size > 0 ? stopLoss : na, color=color.red, linewidth=2, title="Stop-Loss Level")