मल्टी-इंडिकेटर ईएमए रणनीति


निर्माण तिथि: 2023-09-28 15:57:34 अंत में संशोधित करें: 2023-09-28 15:57:34
कॉपी: 1 क्लिक्स: 766
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

एक बहु-सूचक ईएमए रणनीति एक प्रवृत्ति ट्रैकिंग रणनीति है जो ईएमए, एमएसीडी, ऑस्सिलेटर, आरएसआई, स्टोचैस्टिक और बोलिंगर बैंड जैसे कई संकेतकों का उपयोग करती है। यह रणनीति कई संकेतकों के समग्र संकेतों की गणना करके यह निर्धारित करती है कि वर्तमान में एक उछाल या गिरावट की प्रवृत्ति में है, जिससे खरीदारी और बिक्री के संकेत मिलते हैं।

रणनीति सिद्धांत

इस रणनीति के तहत, पहले निम्नलिखित सूचकांकों की गणना की जाती हैः

  • ईएमए: एक निश्चित अवधि के लिए एक सूचकांक चलती औसत ईएमए की गणना करना

  • एमएसीडीः एमएसीडी सूचक की डीआईएफ लाइन और डीईए लाइन की गणना करें

  • ऑस्सिलेटर: एक निश्चित चक्र के समापन मूल्य और उद्घाटन मूल्य के बीच अंतर की गणना करता है।

  • आरएसआई: एक निश्चित चक्र के लिए एक सापेक्ष शक्ति-कमजोरी सूचकांक की गणना।

  • Stochastic: एक निश्चित पैरामीटर के लिए यादृच्छिक संकेतक K और D मानों की गणना करना।

  • Bollinger Bands: एक निश्चित अवधि के लिए बुलिंग बैंडों की गणना करता है।

फिर इन सूचकांकों को वर्तमान स्थिति के आधार पर अलग-अलग संख्यात्मक मान दिए जाते हैं। उदाहरण के लिए, जब स्टोचैस्टिक 20 से कम होता है, तो मान 2 होता है; जब आरएसआई 80 से अधिक होता है, तो मान -2 होता है।

इसके बाद, सभी संकेतकों के मानों को जोड़कर, एक समग्र संकेत ट्रिगर की गणना की जाती है। यदि ट्रिगर 7 से अधिक है, तो एक खरीद संकेत उत्पन्न होता है; यदि ट्रिगर 7 से कम है, तो एक बिक्री संकेत उत्पन्न होता है।

कई संकेतकों के संयोजन के संकेतों की गणना करके, वर्तमान रुझान की दिशा को अधिक सटीक रूप से निर्धारित किया जा सकता है, जिससे अधिक विश्वसनीय व्यापारिक संकेत उत्पन्न होते हैं।

श्रेष्ठता विश्लेषण

इस बहु-सूचक रणनीति का सबसे बड़ा लाभ यह है कि यह कई सूचकांकों को एकीकृत करने का लाभ उठाता है, जो एक एकल सूचक के कारण होने वाले गलत संकेतों से बचने के लिए अधिक व्यापक और सटीक निर्णय लेता है।

विशेष रूप से, इस रणनीति के फायदे निम्नलिखित हैंः

  1. एक साथ कई सूचकांकों का उपयोग करना, प्रवृत्ति को अधिक विश्वसनीयता से निर्धारित करना। एक एकल सूचक एक भ्रामक संकेत दे सकता है, कई सूचकांक एक दूसरे को सत्यापित कर सकते हैं, जिससे त्रुटि कम हो सकती है।

  2. एक सूचक की विभिन्न विशेषताओं का उपयोग करके, एक प्रवृत्ति के विभिन्न चरणों की पहचान करें। उदाहरण के लिए, MACD एक प्रवृत्ति की शुरुआत की पहचान कर सकता है, RSI यह निर्धारित कर सकता है कि क्या यह गर्म है या नहीं।

  3. विभिन्न पैरामीटर सेटिंग्स के साथ एक सूचक कैप्चर कर सकता है विभिन्न चक्रों की विशेषताएं। जैसे कि तेज चक्र ईएमए और धीमी अवधि ईएमए आदि।

  4. प्रत्येक सूचकांक के लिए वजन को अनुकूलित किया जा सकता है. अधिक महत्वपूर्ण सूचकांक के लिए, इसे अधिक वजन दिया जा सकता है.

  5. बैकटैस्ट परिणामों के आधार पर, बेहतर रणनीतिक प्रभाव के लिए सूचकांक संयोजन और भार वितरण को अनुकूलित किया जा सकता है।

जोखिम विश्लेषण

हालांकि रणनीति में प्रवृत्तियों को पहचानने के लिए कई मापदंडों का उपयोग किया गया है, फिर भी निम्नलिखित जोखिम हैं:

  1. कई सूचकांकों का संयोजन अनुचित है, प्रत्येक सूचकांक का लाभ नहीं उठाया जा सकता है, या निर्णय संघर्ष का कारण बनता है। प्रत्येक सूचकांक के लिए लागू परिस्थितियों को समझने की आवश्यकता है।

  2. वजन का वितरण अनुचित है, प्रत्येक सूचकांक के महत्व को सटीक रूप से व्यक्त करने में असमर्थ। वजन को बार-बार परीक्षण के माध्यम से अनुकूलित करने की आवश्यकता है।

  3. एकल चक्र पैरामीटर सेटिंग गलत हो सकता है, बहु समय चक्र सत्यापन का उपयोग करना चाहिए

  4. निश्चित सूचक भार और पैरामीटर बाजार में परिवर्तन के लिए अनुकूल नहीं हैं, गतिशील समायोजन तंत्र की आवश्यकता है।

  5. सूचक सिग्नल में देरी है, अन्य तकनीकी तरीकों के साथ संयोजन में नुकसान के समय का आकलन करना चाहिए।

  6. कई सूचकांकों के संयोजन से रणनीतिक जटिलता बढ़ जाती है, पर्याप्त ऐतिहासिक डेटा समर्थन की आवश्यकता होती है, और पैरामीटर अनुकूलन में अधिक कठिनाई होती है।

अनुकूलन दिशा

इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः

  1. वर्तमान बाजार परिदृश्य के लिए अधिक संवेदनशील संकेतकों को खोजने के लिए अधिक प्रकार के संकेतकों का परीक्षण करें।

  2. प्रत्येक सूचकांक के लिए आवधिक मापदंडों को अनुकूलित करें ताकि यह विभिन्न स्तरों की प्रवृत्ति विशेषताओं को पकड़ सके।

  3. प्रत्येक सूचकांक के भार को अनुकूलित करना ताकि यह प्रत्येक सूचकांक के सापेक्ष महत्व को अधिक सटीक रूप से व्यक्त कर सके।

  4. गतिशील समायोजन तंत्र को जोड़ना, वास्तविक समय में पैरामीटर और भार का अनुकूलन करना, बाजार में बदलाव के लिए अनुकूलन करना।

  5. स्टॉप-लॉस रणनीति के साथ, उचित स्टॉप-लॉस सेट करें और नुकसान के जोखिम को कम करें।

  6. एकल-चक्र अति-अनुकूलन से बचने के लिए बहु-समय-चक्र सत्यापन जोड़ें

  7. चरणबद्ध अनुकूलन और संयोजन अनुकूलन के तरीकों का उपयोग करके, इष्टतम पैरामीटर संयोजन की तलाश करें।

  8. अधिक बुद्धिमान सूचक भार समायोजन के लिए मशीन सीखने जैसे उन्नत तरीकों को जोड़ना।

  9. रणनीतियों को अनुकूलित करने के लिए खरीदारी और बिक्री के तर्क को ट्रैक करें और बहुत अधिक लेनदेन से बचें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 4h
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/
// © ally17

//@version=4
// strategy("ELIA MULTI STRATEGY",overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.00, default_qty_value=25)

//INPUT
start = timestamp(input(2021, "start year"), 1, 1, 00, 00)
end = timestamp(input(9999, "end year"), 1, 1, 00, 00)

emalen=input(80, title="Ema Len")
macdfast=input(12, title="Macd Fast Len")
macdslow=input(26, title="Macd Fast Len")
macdsig=input(12, title="Macd Signal Len")
occlen=input(15, title="Occ Len")

rsilen=input(2, title="Rsi Len")
stochklen=input(11, title="Stk K Len")
stochdlen=input(3, title="Stk D Len")
stochlen=input(3, title="Stk Smooth Len")
bblength = input(10, minval=1, title="BB Len")
mult = input(2.0, minval=0.001, maxval=50, title="BB Std Dev")

momlen=input(10, title="Mom Len")


//CALCOLI
var trigger = 0.0

var emavar = 0.0
var macdvar = 0.0
var occvar = 0.0

var rsivar = 0.0
var stochvar = 0.0
var bbvar = 0.0

var donvar =0.0

ema = ema(close,emalen)

[macdLine, signalLine, histLine] = macd(close, 12, 26, 9) // MACD

occ = ema(close,occlen) - ema(open,occlen)

rsi = rsi(close, rsilen) // RSI

stoch = sma(stoch(close, high, low, stochklen), stochlen) // Stoch

basis = sma(close, bblength)
dev = mult * stdev(close, bblength)
upper = basis + dev
lower = basis - dev

moment = mom(close, momlen) // Momentum

Obv = obv // OBV


//PLOT


//STRATEGIA
emavar := (close>ema)? 3 : -3
macdvar := (macdLine>signalLine)? 3 : -3
occvar := (occ>0)? 3 : -3

rsivar := (rsi<20)? 2 : (rsi>50 and rsi<80)? 1 : (rsi>80)? -2 : (rsi<50 and rsi>20)? -1 : 0
stochvar := (stoch<20)? 2 : (stoch>80)? -2 : 0
bbvar :=  (close<lower)? 2 : (close>upper)? -2 : 0

trigger := emavar+macdvar+occvar+rsivar+stochvar+bbvar

longcondition = trigger>=7
closelong = trigger<3

shortcondition = trigger<=-7
closeshort = trigger >-3

trendcolor = longcondition ? color.green : shortcondition? color.red : (trigger>3 and trigger<7)? #A2E1BF : (trigger<-3 and trigger>-7)? #E19997 : na
bgcolor(trendcolor, transp=80)


if time > start and time < end
    if longcondition
        strategy.entry("LONG", long=strategy.long)

if closelong
    strategy.close("LONG", comment="CLOSE LONG")
    
if time > start and time < end
    if shortcondition
        strategy.entry("SHORT", long=strategy.short)

if closeshort
    strategy.close("SHORT", comment="CLOSE SHORT")
    
//plotshape(longcondition, color=color.green, text="L", size=size.small, style=shape.triangledown)
//plotshape(shortcondition, color=color.red, "S"(trigger), size=size.small, style=shape.triangledown)
//plotshape(closelong, color=color.purple, text="LC", size=size.small, style=shape.triangledown)
//plotshape(closeshort, color=color.purple, text="SC", size=size.small, style=shape.triangledown)