स्टोकैस्टिक आरएसआई रणनीति के साथ 3EMA

लेखक:चाओझांग, दिनांक: 2023-11-15 10:47:20
टैगः

img

अवलोकन

यह कई संकेतकों को मिलाकर एक प्रवृत्ति के बाद की रणनीति है। यह प्रवृत्ति की दिशा की पहचान करने और पदों को स्थापित करने के लिए विभिन्न अवधियों के साथ तीन ईएमए, स्टोकैस्टिक आरएसआई और एटीआर का उपयोग करता है। यह लंबे समय तक जाता है जब तेज ईएमए धीमे ईएमए से ऊपर पार करता है, जिसमें स्टॉप लॉस हाल के एटीआर मूल्य के 3 गुना पर सेट होता है और हाल के एटीआर के 2 गुना पर लाभ लेता है।

सिद्धांत

यह रणनीति तीन ईएमए लाइनों का उपयोग करती है - 8-, 14- और 50-पीरियड ईएमए, जो विभिन्न समय सीमाओं पर मूल्य रुझानों का प्रतिनिधित्व करती है। जब 8-पीरियड ईएमए 14-पीरियड ईएमए से ऊपर जाता है, और 14-पीरियड ईएमए 50-पीरियड ईएमए से ऊपर जाता है, तो यह एक अपट्रेंड की शुरुआत का संकेत देता है और एक लंबी स्थिति शुरू की जा सकती है।

स्टोकैस्टिक आरएसआई सूचक में ओवरबॉट/ओवरसोल्ड स्थितियों की पहचान करने के लिए आरएसआई और स्टोकैस्टिक गणनाएं शामिल हैं। जब स्टोकैस्टिक आरएसआई के रेखा नीचे से डी रेखा के ऊपर से गुजरती है, तो यह इंगित करती है कि बाजार ओवरसोल्ड से तेजी की संभावना में संक्रमण कर रहा है, जिससे लंबी स्थिति की अनुमति मिलती है।

एटीआर हालिया अस्थिरता सीमा का प्रतिनिधित्व करता है। रणनीति लाभ में लॉक करने और जोखिम को नियंत्रित करने के लिए स्टॉप लॉस दूरी के रूप में 3 गुना एटीआर और लाभ दूरी के रूप में 2 गुना एटीआर का उपयोग करती है।

लाभ

  • ईएमए मूल्य डेटा में शोर को फ़िल्टर करते हैं और प्रवृत्ति की दिशा की पहचान करते हैं
  • स्टोकैस्टिक आरएसआई रिवर्स अवसरों की पहचान करता है
  • एटीआर गतिशील रूप से बाजार की अस्थिरता के आधार पर स्टॉप लॉस/टेक प्रॉफिट ट्रेल करता है

जोखिम

  • कई संकेतक परस्पर विरोधी संकेत उत्पन्न कर सकते हैं
  • फिक्स्ड स्टॉप लॉस/टेक प्रॉफिट अनुपात बदलती बाजार स्थितियों के अनुकूल नहीं हो सकते
  • रिवर्स के प्रति संवेदनशील लघु अवधि के लॉन्ग

अनुकूलन संवेदनशीलता को अनुकूलित करने के लिए ईएमए अवधि को समायोजित करके किया जा सकता है। एटीआर अनुपात को समायोज्य बनाने से बाजार की स्थितियों के आधार पर अनुकूलन की अनुमति मिलती है। अन्य संकेतकों को जोड़ने से संकेतों को मान्य करने और गलतियों से बचने में मदद मिलती है।

सुधार

  • संवेदनशीलता को अनुकूलित करने के लिए ईएमए अवधि को समायोजित करें
  • एटीआर अनुपात को समायोज्य बनाएं
  • झूठे संकेतों से बचने के लिए अन्य संकेतक जोड़ें

निष्कर्ष

रणनीति में प्रवृत्ति, ओवरबॉट/ओवरसोल्ड स्तर और अस्थिरता सीमा को ध्यान में रखते हुए प्रवेश समय की पहचान की जाती है। ईएमए और स्टोकैस्टिक आरएसआई संयुक्त रूप से प्रभावी रूप से रुझानों की पहचान करते हैं, जबकि एटीआर का गतिशील स्टॉप लॉस/टेक प्रॉफिट जोखिम नियंत्रण में मदद करता है। पैरामीटर ट्यूनिंग और अनुकूलन के साथ, रणनीति एक विश्वसनीय प्रवृत्ति अनुसरण प्रणाली बन सकती है। लेकिन झूठे संकेतों और फिक्स्ड स्टॉप लॉस/टेक प्रॉफिट चेतावनी के लिए सावधान रहने की आवश्यकता है।


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FreddieChopin
 
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
 
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
 
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
 
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
 
// ATR
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
 
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
 
float stopLoss = na
float takeProfit = na
 
if (strategy.position_size > 0)
    if (na(stopLoss[1]))
        stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
    else
        stopLoss := stopLoss[1]
    if (na(takeProfit[1]))
        takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
    else
        takeProfit := takeProfit[1]
 
    strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
 
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)

अधिक