
यह रणनीति एक मात्रात्मक व्यापार प्रणाली है जो एक डबल एक्सपोनेंशियल मूविंग एवरेज (ईएमए) और एक स्टोकेस्टिक ऑसिलेटर को जोड़ती है। बाजार के रुझान को निर्धारित करने के लिए 20-अवधि और 50-अवधि ईएमए का उपयोग करें, और ओवरबॉट और ओवरसोल्ड क्षेत्रों में ट्रेडिंग के अवसर खोजने के लिए स्टोकेस्टिक ऑसिलेटर का उपयोग करें, जिससे रुझान और गति का एक आदर्श संयोजन प्राप्त हो। इस रणनीति में निश्चित स्टॉप-लॉस और लाभ लक्ष्य सेटिंग सहित सख्त जोखिम प्रबंधन उपाय अपनाए जाते हैं।
रणनीति का मूल तर्क तीन भागों में विभाजित है: प्रवृत्ति निर्णय, प्रवेश समय और जोखिम नियंत्रण। प्रवृत्ति निर्णय मुख्य रूप से तेज़ ईएमए (20 अवधि) और धीमी ईएमए (50 अवधि) की सापेक्ष स्थिति पर निर्भर करता है। जब तेज़ रेखा धीमी रेखा से ऊपर होती है, तो इसे ऊपर की ओर प्रवृत्ति माना जाता है, अन्यथा यह नीचे की ओर प्रवृत्ति होती है . प्रवेश संकेत की पुष्टि स्टोकेस्टिक ऑसिलेटर के क्रॉसओवर द्वारा की जाती है, जो ओवरबॉट और ओवरसोल्ड क्षेत्रों में उच्च-संभावना वाले ट्रेडिंग अवसरों की तलाश करता है। जोखिम नियंत्रण एक निश्चित प्रतिशत स्टॉप लॉस और 2x लाभ अनुपात सेटिंग का उपयोग करता है ताकि यह सुनिश्चित किया जा सके कि प्रत्येक लेनदेन में स्पष्ट जोखिम-वापसी अनुपात हो।
यह रणनीति प्रवृत्ति और गति संकेतकों को मिलाकर एक सम्पूर्ण ट्रेडिंग प्रणाली तैयार करती है। इस रणनीति का मुख्य लाभ इसकी स्पष्ट तार्किक रूपरेखा और सख्त जोखिम नियंत्रण में निहित है, लेकिन वास्तविक अनुप्रयोग में, विशिष्ट बाजार स्थितियों के आधार पर पैरामीटर अनुकूलन अभी भी आवश्यक है। निरंतर सुधार और अनुकूलन के माध्यम से, इस रणनीति से विभिन्न बाजार परिवेशों में स्थिर प्रदर्शन बनाए रखने की उम्मीद है।
/*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")