यह रणनीति एक मात्रात्मक ट्रेडिंग प्रणाली है जो दोहरे घातीय चलती औसत (ईएमए) को स्टोकैस्टिक ऑसिलेटर के साथ जोड़ती है। यह स्टोकैस्टिक ऑसिलेटर का उपयोग ओवरबॉट और ओवरसोल्ड जोन में ट्रेडिंग के अवसरों की पहचान करने के लिए करते हुए बाजार के रुझानों को निर्धारित करने के लिए 20-अवधि और 50-अवधि ईएमए का उपयोग करती है, जिससे प्रवृत्ति और गति का सही मिश्रण प्राप्त होता है। रणनीति में निश्चित स्टॉप-लॉस और लाभ लक्ष्य सहित सख्त जोखिम प्रबंधन उपाय लागू होते हैं।
मूल तर्क में तीन घटक होते हैंः प्रवृत्ति पहचान, प्रवेश समय और जोखिम नियंत्रण। प्रवृत्ति पहचान मुख्य रूप से तेजी से ईएमए (20-अवधि) और धीमी ईएमए (50-अवधि) की सापेक्ष स्थिति पर निर्भर करती है, जहां तेजी से रेखा धीमी रेखा से ऊपर होने पर एक अपट्रेंड की पुष्टि होती है, और इसके विपरीत। स्टोकेस्टिक ऑसिलेटर क्रॉसओवर द्वारा प्रवेश संकेतों की पुष्टि की जाती है, ओवरबॉट और ओवरसोल्ड क्षेत्रों में उच्च संभावना वाले ट्रेडों की तलाश में। जोखिम नियंत्रण में निश्चित प्रतिशत स्टॉप-लॉस और 2: 1 लाभ लक्ष्य शामिल हैं, जो प्रत्येक व्यापार के लिए स्पष्ट जोखिम-लाभ अनुपात सुनिश्चित करते हैं।
यह रणनीति प्रवृत्ति और गति संकेतक को मिलाकर एक पूर्ण व्यापार प्रणाली स्थापित करती है। इसकी मुख्य ताकत इसके स्पष्ट तार्किक ढांचे और सख्त जोखिम नियंत्रण में निहित है, हालांकि व्यावहारिक अनुप्रयोग के लिए विशिष्ट बाजार स्थितियों के आधार पर पैरामीटर अनुकूलन की आवश्यकता होती है। निरंतर सुधार और अनुकूलन के माध्यम से, रणनीति में विभिन्न बाजार वातावरण में स्थिर प्रदर्शन बनाए रखने की क्षमता है।
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA + Stochastic Strategy", overlay=true) // Inputs for EMA emaShortLength = input.int(20, title="Short EMA Length") emaLongLength = input.int(50, title="Long EMA Length") // Inputs for Stochastic stochK = input.int(14, title="Stochastic %K Length") stochD = input.int(3, title="Stochastic %D Smoothing") stochOverbought = input.int(85, title="Stochastic Overbought Level") stochOversold = input.int(15, title="Stochastic Oversold Level") // Inputs for Risk Management riskRewardRatio = input.float(2.0, title="Risk-Reward Ratio") stopLossPercent = input.float(1.0, title="Stop Loss (%)") // EMA Calculation emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) // Stochastic Calculation k = ta.stoch(high, low, close, stochK) d = ta.sma(k, stochD) // Trend Condition isUptrend = emaShort > emaLong isDowntrend = emaShort < emaLong // Stochastic Signals stochBuyCrossover = ta.crossover(k, d) stochBuySignal = k < stochOversold and stochBuyCrossover stochSellCrossunder = ta.crossunder(k, d) stochSellSignal = k > stochOverbought and stochSellCrossunder // Entry Signals buySignal = isUptrend and stochBuySignal sellSignal = isDowntrend and stochSellSignal // Strategy Execution if buySignal strategy.entry("Buy", strategy.long) stopLoss = close * (1 - stopLossPercent / 100) takeProfit = close * (1 + stopLossPercent * riskRewardRatio / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLoss, limit=takeProfit) if sellSignal strategy.entry("Sell", strategy.short) stopLoss = close * (1 + stopLossPercent / 100) takeProfit = close * (1 - stopLossPercent * riskRewardRatio / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLoss, limit=takeProfit) // Plotting plot(emaShort, color=color.blue, title="Short EMA") plot(emaLong, color=color.red, title="Long EMA")